diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index d418484fd8b..cd965f3457d 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -92,7 +92,7 @@ services: realtime: container_name: supabase-realtime - image: supabase/realtime:v0.21.0 + image: supabase/realtime:v0.22.4 depends_on: - db restart: unless-stopped @@ -151,7 +151,7 @@ services: db: container_name: supabase-db - image: supabase/postgres:14.1.0.19 + image: supabase/postgres:14.1.0.21 command: postgres -c config_file=/etc/postgresql/postgresql.conf restart: unless-stopped ports: diff --git a/docker/volumes/db/init/04-pg-graphql.sql b/docker/volumes/db/init/04-pg-graphql.sql index a4929abdbae..a3eb7b9ede0 100644 --- a/docker/volumes/db/init/04-pg-graphql.sql +++ b/docker/volumes/db/init/04-pg-graphql.sql @@ -17,13 +17,19 @@ as $$ IF server_version >= 14 THEN RETURN jsonb_build_object( - 'data', null::jsonb, - 'errors', array['pg_graphql extension is not enabled.'] + 'errors', jsonb_build_array( + jsonb_build_object( + 'message', 'pg_graphql extension is not enabled.' + ) + ) ); ELSE RETURN jsonb_build_object( - 'data', null::jsonb, - 'errors', array['pg_graphql is only available on projects running Postgres 14 onwards.'] + 'errors', jsonb_build_array( + jsonb_build_object( + 'message', 'pg_graphql is only available on projects running Postgres 14 onwards.' + ) + ) ); END IF; END; @@ -42,13 +48,13 @@ alter default privileges for user supabase_admin in schema graphql_public grant on functions to postgres, anon, authenticated, service_role; -- Trigger upon enabling pg_graphql -CREATE OR REPLACE FUNCTION extensions.grant_pg_graphql_access() -RETURNS event_trigger -LANGUAGE plpgsql +create or replace function extensions.grant_pg_graphql_access() + returns event_trigger + language plpgsql AS $func$ - DECLARE +DECLARE func_is_graphql_resolve bool; - BEGIN +BEGIN func_is_graphql_resolve = ( SELECT n.proname = 'resolve' FROM pg_event_trigger_ddl_commands() AS ev @@ -65,23 +71,29 @@ AS $func$ alter default privileges in schema graphql grant all on functions to postgres, anon, authenticated, service_role; alter default privileges in schema graphql grant all on sequences to postgres, anon, authenticated, service_role; + -- Update public wrapper to pass all arguments through to the pg_graphql resolve func create or replace function graphql_public.graphql( "operationName" text default null, query text default null, variables jsonb default null, - extensions jsonb default null + extensions jsonb default null ) returns jsonb language sql as $$ - SELECT graphql.resolve(query, coalesce(variables, '{}')); + select graphql.resolve( + query := query, + variables := coalesce(variables, '{}'), + "operationName" := "operationName", + extensions := extensions + ); $$; grant select on graphql.field, graphql.type, graphql.enum_value to postgres, anon, authenticated, service_role; grant execute on function graphql.resolve to postgres, anon, authenticated, service_role; END IF; - END; +END; $func$; CREATE EVENT TRIGGER issue_pg_graphql_access ON ddl_command_end WHEN TAG in ('CREATE FUNCTION') @@ -120,13 +132,19 @@ AS $func$ IF server_version >= 14 THEN RETURN jsonb_build_object( - 'data', null::jsonb, - 'errors', array['pg_graphql extension is not enabled.'] + 'errors', jsonb_build_array( + jsonb_build_object( + 'message', 'pg_graphql extension is not enabled.' + ) + ) ); ELSE RETURN jsonb_build_object( - 'data', null::jsonb, - 'errors', array['pg_graphql is only available on projects running Postgres 14 onwards.'] + 'errors', jsonb_build_array( + jsonb_build_object( + 'message', 'pg_graphql is only available on projects running Postgres 14 onwards.' + ) + ) ); END IF; END; @@ -138,4 +156,7 @@ $func$; CREATE EVENT TRIGGER issue_graphql_placeholder ON sql_drop WHEN TAG in ('DROP EXTENSION') EXECUTE PROCEDURE extensions.set_graphql_placeholder(); -COMMENT ON FUNCTION extensions.set_graphql_placeholder IS 'Reintroduces placeholder function for graphql_public.graphql'; \ No newline at end of file +COMMENT ON FUNCTION extensions.set_graphql_placeholder IS 'Reintroduces placeholder function for graphql_public.graphql'; + +drop extension if exists pg_graphql; +create extension if not exists pg_graphql; \ No newline at end of file diff --git a/examples/nextjs-auth/package-lock.json b/examples/nextjs-auth/package-lock.json index 782bc1380ce..cc826676a01 100644 --- a/examples/nextjs-auth/package-lock.json +++ b/examples/nextjs-auth/package-lock.json @@ -3606,9 +3606,9 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/mississippi": { "version": "3.0.0", @@ -10124,9 +10124,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "mississippi": { "version": "3.0.0", diff --git a/examples/nextjs-auth/yarn.lock b/examples/nextjs-auth/yarn.lock index 455605a0f9d..147785cd579 100644 --- a/examples/nextjs-auth/yarn.lock +++ b/examples/nextjs-auth/yarn.lock @@ -1988,8 +1988,8 @@ minimatch@^3.0.4: brace-expansion "^1.1.7" minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" mississippi@^3.0.0: version "3.0.0" diff --git a/examples/nextjs-live-tracker-map/package-lock.json b/examples/nextjs-live-tracker-map/package-lock.json index bb5a3695b03..133a63b4d16 100644 --- a/examples/nextjs-live-tracker-map/package-lock.json +++ b/examples/nextjs-live-tracker-map/package-lock.json @@ -2202,9 +2202,9 @@ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/ms": { "version": "2.0.0", @@ -5152,9 +5152,9 @@ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "ms": { "version": "2.0.0", diff --git a/examples/nextjs-slack-clone/package-lock.json b/examples/nextjs-slack-clone/package-lock.json index 439a3320f57..ca58bcee257 100644 --- a/examples/nextjs-slack-clone/package-lock.json +++ b/examples/nextjs-slack-clone/package-lock.json @@ -648,9 +648,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "ms": { "version": "2.0.0", diff --git a/examples/nextjs-todo-list/package-lock.json b/examples/nextjs-todo-list/package-lock.json index ecc3525c011..e5749911fea 100644 --- a/examples/nextjs-todo-list/package-lock.json +++ b/examples/nextjs-todo-list/package-lock.json @@ -1733,9 +1733,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "ms": { "version": "2.0.0", diff --git a/examples/nextjs-ts-user-management/package-lock.json b/examples/nextjs-ts-user-management/package-lock.json index 830a818d030..6b68cfcd483 100644 --- a/examples/nextjs-ts-user-management/package-lock.json +++ b/examples/nextjs-ts-user-management/package-lock.json @@ -1192,9 +1192,9 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/ms": { "version": "2.0.0", @@ -2486,9 +2486,9 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "ms": { "version": "2.0.0", diff --git a/examples/nextjs-with-supabase-auth/package-lock.json b/examples/nextjs-with-supabase-auth/package-lock.json index 11ebb5551da..bd2fafd1efb 100644 --- a/examples/nextjs-with-supabase-auth/package-lock.json +++ b/examples/nextjs-with-supabase-auth/package-lock.json @@ -2364,9 +2364,9 @@ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/ms": { "version": "2.0.0", @@ -5460,9 +5460,9 @@ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "ms": { "version": "2.0.0", diff --git a/examples/nextjs-with-supabase-auth/yarn.lock b/examples/nextjs-with-supabase-auth/yarn.lock index 2e4b82ae731..61cb5d02cd8 100644 --- a/examples/nextjs-with-supabase-auth/yarn.lock +++ b/examples/nextjs-with-supabase-auth/yarn.lock @@ -2,367 +2,154 @@ # yarn lockfile v1 -"@ampproject/remapping@^2.0.0": - "integrity" "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==" - "resolved" "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.1.tgz" - "version" "2.1.1" - dependencies: - "@jridgewell/trace-mapping" "^0.3.0" - -"@babel/code-frame@^7.16.7": - "integrity" "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==" - "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz" - "version" "7.16.7" - dependencies: - "@babel/highlight" "^7.16.7" - "@babel/code-frame@7.12.11": - "integrity" "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==" - "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" - "version" "7.12.11" + version "7.12.11" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.16.4": - "integrity" "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==" - "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz" - "version" "7.17.0" - -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0": - "integrity" "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==" - "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz" - "version" "7.17.2" - dependencies: - "@ampproject/remapping" "^2.0.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.0" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.17.2" - "@babel/parser" "^7.17.0" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.0" - "@babel/types" "^7.17.0" - "convert-source-map" "^1.7.0" - "debug" "^4.1.0" - "gensync" "^1.0.0-beta.2" - "json5" "^2.1.2" - "semver" "^6.3.0" - -"@babel/generator@^7.17.0": - "integrity" "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==" - "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz" - "version" "7.17.0" - dependencies: - "@babel/types" "^7.17.0" - "jsesc" "^2.5.1" - "source-map" "^0.5.0" - -"@babel/helper-compilation-targets@^7.16.7": - "integrity" "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==" - "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz" - "version" "7.16.7" - dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-validator-option" "^7.16.7" - "browserslist" "^4.17.5" - "semver" "^6.3.0" - -"@babel/helper-environment-visitor@^7.16.7": - "integrity" "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==" - "resolved" "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz" - "version" "7.16.7" - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.16.7": - "integrity" "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==" - "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz" - "version" "7.16.7" - dependencies: - "@babel/helper-get-function-arity" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-get-function-arity@^7.16.7": - "integrity" "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==" - "resolved" "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz" - "version" "7.16.7" - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-hoist-variables@^7.16.7": - "integrity" "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==" - "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz" - "version" "7.16.7" - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.16.7": - "integrity" "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==" - "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" - "version" "7.16.7" - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.16.7": - "integrity" "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==" - "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz" - "version" "7.16.7" - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - "@babel/helper-plugin-utils@^7.14.5": - "integrity" "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" - "version" "7.16.7" - -"@babel/helper-simple-access@^7.16.7": - "integrity" "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==" - "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz" - "version" "7.16.7" - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-split-export-declaration@^7.16.7": - "integrity" "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==" - "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz" - "version" "7.16.7" - dependencies: - "@babel/types" "^7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.16.7": - "integrity" "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" -"@babel/helper-validator-option@^7.16.7": - "integrity" "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" - "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz" - "version" "7.16.7" - -"@babel/helpers@^7.17.2": - "integrity" "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==" - "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz" - "version" "7.17.2" - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.0" - "@babel/types" "^7.17.0" - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7": - "integrity" "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==" - "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz" - "version" "7.16.10" +"@babel/highlight@^7.10.4": + version "7.16.10" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz" dependencies: "@babel/helper-validator-identifier" "^7.16.7" - "chalk" "^2.0.0" - "js-tokens" "^4.0.0" - -"@babel/parser@^7.16.7", "@babel/parser@^7.17.0": - "integrity" "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==" - "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz" - "version" "7.17.0" + chalk "^2.0.0" + js-tokens "^4.0.0" "@babel/plugin-syntax-jsx@7.14.5": - "integrity" "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/runtime@7.15.3": - "integrity" "sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==" - "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.3.tgz" - "version" "7.15.3" + version "7.15.3" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.3.tgz" dependencies: - "regenerator-runtime" "^0.13.4" - -"@babel/template@^7.16.7": - "integrity" "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==" - "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" - "version" "7.16.7" - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/traverse@^7.16.7", "@babel/traverse@^7.17.0": - "integrity" "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==" - "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz" - "version" "7.17.0" - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.0" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.0" - "@babel/types" "^7.17.0" - "debug" "^4.1.0" - "globals" "^11.1.0" - -"@babel/types@^7.16.7": - "integrity" "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==" - "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz" - "version" "7.17.0" - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - "to-fast-properties" "^2.0.0" - -"@babel/types@^7.17.0": - "integrity" "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==" - "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz" - "version" "7.17.0" - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - "to-fast-properties" "^2.0.0" + regenerator-runtime "^0.13.4" "@babel/types@7.15.0": - "integrity" "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==" - "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz" - "version" "7.15.0" + version "7.15.0" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz" dependencies: "@babel/helper-validator-identifier" "^7.14.9" - "to-fast-properties" "^2.0.0" + to-fast-properties "^2.0.0" "@hapi/accept@5.0.2": - "integrity" "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==" - "resolved" "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz" - "version" "5.0.2" + version "5.0.2" + resolved "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz" dependencies: "@hapi/boom" "9.x.x" "@hapi/hoek" "9.x.x" "@hapi/boom@9.x.x": - "integrity" "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==" - "resolved" "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz" - "version" "9.1.4" + version "9.1.4" + resolved "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz" dependencies: "@hapi/hoek" "9.x.x" "@hapi/hoek@9.x.x": - "integrity" "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" - "resolved" "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz" - "version" "9.2.0" - -"@jridgewell/resolve-uri@^3.0.3": - "integrity" "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==" - "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz" - "version" "3.0.5" - -"@jridgewell/sourcemap-codec@^1.4.10": - "integrity" "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" - "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz" - "version" "1.4.11" - -"@jridgewell/trace-mapping@^0.3.0": - "integrity" "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==" - "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz" - "version" "0.3.4" - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" + version "9.2.0" + resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz" "@napi-rs/triples@^1.0.3": - "integrity" "sha512-jDJTpta+P4p1NZTFVLHJ/TLFVYVcOqv6l8xwOeBKNPMgY/zDYH/YH7SJbvrr/h1RcS9GzbPcLKGzpuK9cV56UA==" - "resolved" "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.0.3.tgz" - "version" "1.0.3" + version "1.0.3" + resolved "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.0.3.tgz" "@next/env@11.1.4": - "integrity" "sha512-vEW+fSulzZams4nYmcX9LByb1moMBlkwOAVf0eF+44u+1N/h7HDeznPBWIjEfihzTku8rdLB0k7u8VT8AGtNkQ==" - "resolved" "https://registry.npmjs.org/@next/env/-/env-11.1.4.tgz" - "version" "11.1.4" + version "11.1.4" + resolved "https://registry.npmjs.org/@next/env/-/env-11.1.4.tgz" "@next/polyfill-module@11.1.4": - "integrity" "sha512-CY3bOSQf9Dy3+34dFjFbOdg3DRXIGfujb54D/AVO83ajyQczRZ3xdU0i5VV0eSR6B56ktVy3/aelOffpTUq6LA==" - "resolved" "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-11.1.4.tgz" - "version" "11.1.4" + version "11.1.4" + resolved "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-11.1.4.tgz" "@next/react-dev-overlay@11.1.4": - "integrity" "sha512-8/9JflJwRXEvVb6cKCWgRTOmALzDJHpWD5diRbtXWsllqxcMBjtscgnO4PaK+9QyZnSYSUbn0zZUZvxOXOTE1Q==" - "resolved" "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-11.1.4.tgz" - "version" "11.1.4" + version "11.1.4" + resolved "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-11.1.4.tgz" dependencies: "@babel/code-frame" "7.12.11" - "anser" "1.4.9" - "chalk" "4.0.0" - "classnames" "2.2.6" - "css.escape" "1.5.1" - "data-uri-to-buffer" "3.0.1" - "platform" "1.3.6" - "shell-quote" "1.7.2" - "source-map" "0.8.0-beta.0" - "stacktrace-parser" "0.1.10" - "strip-ansi" "6.0.0" + anser "1.4.9" + chalk "4.0.0" + classnames "2.2.6" + css.escape "1.5.1" + data-uri-to-buffer "3.0.1" + platform "1.3.6" + shell-quote "1.7.2" + source-map "0.8.0-beta.0" + stacktrace-parser "0.1.10" + strip-ansi "6.0.0" "@next/react-refresh-utils@11.1.4": - "integrity" "sha512-jTme207yEV4On9Gk0QJYK2N3kfKVBx17lLOL3qSjqNbqk1TnE51xvzogOCQXNABbzQlBY+J/NN+eylPS4QOKwA==" - "resolved" "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-11.1.4.tgz" - "version" "11.1.4" + version "11.1.4" + resolved "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-11.1.4.tgz" "@next/swc-darwin-arm64@11.1.4": - "integrity" "sha512-jt8dMtIRWnJjRYLid6NWCxXzXdpr9VFT/vhDp8ioh+TtOR0UKPHMxei6R4GA3RqoyPEfFcSNmkG7OtyqCSxNIw==" - "resolved" "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-11.1.4.tgz" - "version" "11.1.4" + version "11.1.4" + resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-11.1.4.tgz" + +"@next/swc-darwin-x64@11.1.4": + version "11.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-11.1.4.tgz#bd548cf3fb3dc5e79a54b330f14e4b7b8a4e1320" + +"@next/swc-linux-x64-gnu@11.1.4": + version "11.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-11.1.4.tgz#967c92aa0d9d6bc9414bbff9395c85c7755ba9d1" + +"@next/swc-win32-x64-msvc@11.1.4": + version "11.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-11.1.4.tgz#370c310ba197e799235492bf71084d3acbbb2c6a" "@node-rs/helper@1.2.1": - "integrity" "sha512-R5wEmm8nbuQU0YGGmYVjEc0OHtYsuXdpRG+Ut/3wZ9XAvQWyThN08bTh2cBJgoZxHQUPtvRfeQuxcAgLuiBISg==" - "resolved" "https://registry.npmjs.org/@node-rs/helper/-/helper-1.2.1.tgz" - "version" "1.2.1" + version "1.2.1" + resolved "https://registry.npmjs.org/@node-rs/helper/-/helper-1.2.1.tgz" dependencies: "@napi-rs/triples" "^1.0.3" "@supabase/gotrue-js@^1.22.0": - "integrity" "sha512-Uqiw03Sd/PYGrjq/sfEGyRcZh868y2B2fxVtZgkUAGDHnQ84K1MpsGiIMCL6x/9JPKDCOkzpSZQdKIohcY8l2Q==" - "resolved" "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.22.1.tgz" - "version" "1.22.1" + version "1.22.1" + resolved "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.22.1.tgz" dependencies: - "cross-fetch" "^3.0.6" + cross-fetch "^3.0.6" "@supabase/postgrest-js@^0.36.0": - "integrity" "sha512-KOnhVy8tEr/qNnvOLpFqwOkt7ilRDFMXY+JJfmLjS3+eZuna1G57w4zb3L0SdY6BL7AKnfzP5BG3yHTAuJPSww==" - "resolved" "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-0.36.0.tgz" - "version" "0.36.0" + version "0.36.0" + resolved "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-0.36.0.tgz" dependencies: - "cross-fetch" "^3.0.6" + cross-fetch "^3.0.6" "@supabase/realtime-js@^1.3.5": - "integrity" "sha512-If+C0A6eT1BflFOOZNlnGw/91gNuj7f/M19/WutsPM0pjhx++8Dj0YH8z+tbgxX0nf/2UGVUMMgTBckzpk9R3g==" - "resolved" "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.3.5.tgz" - "version" "1.3.5" + version "1.3.5" + resolved "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.3.5.tgz" dependencies: "@types/websocket" "^1.0.3" - "websocket" "^1.0.34" + websocket "^1.0.34" "@supabase/storage-js@^1.5.1": - "integrity" "sha512-W82st1RvkChVJ/FTCcPXFXfS3V0Z4rZuMnoDnB9/NI5i9r9zspZS40tHpUQ+vbN6R6k0pfr/Waa1jcEd3YAtrQ==" - "resolved" "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.5.1.tgz" - "version" "1.5.1" + version "1.5.1" + resolved "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.5.1.tgz" dependencies: - "cross-fetch" "^3.1.0" + cross-fetch "^3.1.0" "@supabase/supabase-auth-helpers@^1.0.6": - "integrity" "sha512-1IA6fmPve0XtnSOhpJsEqaRAX7n7oTIFLPUtohrROa5cX+BRTkvxzNSBIpcidcJRzMASsBflKrd4Kv7iJ283IQ==" - "resolved" "https://registry.npmjs.org/@supabase/supabase-auth-helpers/-/supabase-auth-helpers-1.0.6.tgz" - "version" "1.0.6" + version "1.0.6" + resolved "https://registry.npmjs.org/@supabase/supabase-auth-helpers/-/supabase-auth-helpers-1.0.6.tgz" dependencies: "@supabase/supabase-js" "^1.30.0" "@supabase/ui" "^0.36.3" - "tslib" "^2.3.1" + tslib "^2.3.1" "@supabase/supabase-js@^1.30.0": - "integrity" "sha512-r/hOnJ6Rx91NnAnT+/eFcrknAYCERvLi6y9lNRgfXqYZ9XFKNh9O8tSVSTmb9INS2vPfSY6fuPCS7M4791tOWw==" - "resolved" "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.30.2.tgz" - "version" "1.30.2" + version "1.30.2" + resolved "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.30.2.tgz" dependencies: "@supabase/gotrue-js" "^1.22.0" "@supabase/postgrest-js" "^0.36.0" @@ -370,1114 +157,906 @@ "@supabase/storage-js" "^1.5.1" "@supabase/ui@^0.36.3": - "integrity" "sha512-a0GxsnEqL8wxb1ZmhFdk9PoeT68Z/Lzvimpc8ETJllGg/6gicaS6HF5wYMfbvtlYA2A9ek2Asg2u43OVFp9lhA==" - "resolved" "https://registry.npmjs.org/@supabase/ui/-/ui-0.36.3.tgz" - "version" "0.36.3" + version "0.36.3" + resolved "https://registry.npmjs.org/@supabase/ui/-/ui-0.36.3.tgz" dependencies: - "lodash" "^4.17.20" - "prop-types" "^15.7.2" + lodash "^4.17.20" + prop-types "^15.7.2" optionalDependencies: - "fsevents" "^2.3.2" + fsevents "^2.3.2" "@types/node@*": - "integrity" "sha512-cHYfKsnwllYhjOzuC5q1VpguABBeecUp24yFluHpn/BQaVxB1CuQ1FSRZCzrPxrkIfWISXV2LbeoBthLWg0+0A==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-14.14.21.tgz" - "version" "14.14.21" + version "14.14.21" + resolved "https://registry.npmjs.org/@types/node/-/node-14.14.21.tgz" "@types/websocket@^1.0.3": - "integrity" "sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==" - "resolved" "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz" - "version" "1.0.5" + version "1.0.5" + resolved "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz" dependencies: "@types/node" "*" -"anser@1.4.9": - "integrity" "sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==" - "resolved" "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz" - "version" "1.4.9" +anser@1.4.9: + version "1.4.9" + resolved "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz" -"ansi-regex@^5.0.0": - "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - "version" "5.0.1" +ansi-regex@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" -"ansi-styles@^3.2.1": - "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - "version" "3.2.1" +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" dependencies: - "color-convert" "^1.9.0" + color-convert "^1.9.0" -"ansi-styles@^4.1.0": - "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - "version" "4.3.0" +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" dependencies: - "color-convert" "^2.0.1" + color-convert "^2.0.1" -"anymatch@~3.1.1": - "integrity" "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==" - "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz" - "version" "3.1.1" +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz" dependencies: - "normalize-path" "^3.0.0" - "picomatch" "^2.0.4" + normalize-path "^3.0.0" + picomatch "^2.0.4" -"array-filter@^1.0.0": - "integrity" "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" - "resolved" "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz" - "version" "1.0.0" +array-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz" -"asn1.js@^5.2.0": - "integrity" "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==" - "resolved" "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" - "version" "5.4.1" +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" dependencies: - "bn.js" "^4.0.0" - "inherits" "^2.0.1" - "minimalistic-assert" "^1.0.0" - "safer-buffer" "^2.1.0" + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" -"assert@^1.1.1": - "integrity" "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==" - "resolved" "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz" - "version" "1.5.0" +assert@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz" dependencies: - "object-assign" "^4.1.1" - "util" "0.10.3" + es6-object-assign "^1.1.0" + is-nan "^1.2.1" + object-is "^1.0.1" + util "^0.12.0" -"assert@2.0.0": - "integrity" "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==" - "resolved" "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz" - "version" "2.0.0" +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz" dependencies: - "es6-object-assign" "^1.1.0" - "is-nan" "^1.2.1" - "object-is" "^1.0.1" - "util" "^0.12.0" + object-assign "^4.1.1" + util "0.10.3" -"ast-types@0.13.2": - "integrity" "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==" - "resolved" "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz" - "version" "0.13.2" +ast-types@0.13.2: + version "0.13.2" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz" -"available-typed-arrays@^1.0.2": - "integrity" "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==" - "resolved" "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz" - "version" "1.0.2" +available-typed-arrays@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz" dependencies: - "array-filter" "^1.0.0" + array-filter "^1.0.0" -"base64-js@^1.0.2": - "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - "version" "1.5.1" +base64-js@^1.0.2: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" -"big.js@^5.2.2": - "integrity" "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - "resolved" "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" - "version" "5.2.2" +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" -"binary-extensions@^2.0.0": - "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - "version" "2.2.0" +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" -"bn.js@^4.0.0": - "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - "version" "4.12.0" +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" -"bn.js@^4.1.0": - "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - "version" "4.12.0" +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.1.3" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz" -"bn.js@^4.11.9": - "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - "version" "4.12.0" - -"bn.js@^5.0.0", "bn.js@^5.1.1": - "integrity" "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==" - "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz" - "version" "5.1.3" - -"braces@~3.0.2": - "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" - "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - "version" "3.0.2" +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" dependencies: - "fill-range" "^7.0.1" + fill-range "^7.0.1" -"brorand@^1.0.1", "brorand@^1.1.0": - "integrity" "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - "resolved" "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" - "version" "1.1.0" +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" -"browserify-aes@^1.0.0", "browserify-aes@^1.0.4": - "integrity" "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==" - "resolved" "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" - "version" "1.2.0" +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" dependencies: - "buffer-xor" "^1.0.3" - "cipher-base" "^1.0.0" - "create-hash" "^1.1.0" - "evp_bytestokey" "^1.0.3" - "inherits" "^2.0.1" - "safe-buffer" "^5.0.1" + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" -"browserify-cipher@^1.0.0": - "integrity" "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==" - "resolved" "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" - "version" "1.0.1" +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" dependencies: - "browserify-aes" "^1.0.4" - "browserify-des" "^1.0.0" - "evp_bytestokey" "^1.0.0" + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" -"browserify-des@^1.0.0": - "integrity" "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==" - "resolved" "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" - "version" "1.0.2" +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" dependencies: - "cipher-base" "^1.0.1" - "des.js" "^1.0.0" - "inherits" "^2.0.1" - "safe-buffer" "^5.1.2" + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" -"browserify-rsa@^4.0.0", "browserify-rsa@^4.0.1": - "integrity" "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==" - "resolved" "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" - "version" "4.1.0" +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" dependencies: - "bn.js" "^5.0.0" - "randombytes" "^2.0.1" + bn.js "^5.0.0" + randombytes "^2.0.1" -"browserify-sign@^4.0.0": - "integrity" "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==" - "resolved" "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" - "version" "4.2.1" +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" dependencies: - "bn.js" "^5.1.1" - "browserify-rsa" "^4.0.1" - "create-hash" "^1.2.0" - "create-hmac" "^1.1.7" - "elliptic" "^6.5.3" - "inherits" "^2.0.4" - "parse-asn1" "^5.1.5" - "readable-stream" "^3.6.0" - "safe-buffer" "^5.2.0" + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" -"browserify-zlib@^0.2.0", "browserify-zlib@0.2.0": - "integrity" "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==" - "resolved" "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" - "version" "0.2.0" +browserify-zlib@0.2.0, browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" dependencies: - "pako" "~1.0.5" + pako "~1.0.5" -"browserslist@^4.17.5": - "integrity" "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==" - "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz" - "version" "4.19.1" +browserslist@4.16.6: + version "4.16.6" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz" dependencies: - "caniuse-lite" "^1.0.30001286" - "electron-to-chromium" "^1.4.17" - "escalade" "^3.1.1" - "node-releases" "^2.0.1" - "picocolors" "^1.0.0" + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" + escalade "^3.1.1" + node-releases "^1.1.71" -"browserslist@4.16.6": - "integrity" "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==" - "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz" - "version" "4.16.6" +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + +buffer@5.6.0: + version "5.6.0" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz" dependencies: - "caniuse-lite" "^1.0.30001219" - "colorette" "^1.2.2" - "electron-to-chromium" "^1.3.723" - "escalade" "^3.1.1" - "node-releases" "^1.1.71" + base64-js "^1.0.2" + ieee754 "^1.1.4" -"buffer-xor@^1.0.3": - "integrity" "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - "resolved" "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" - "version" "1.0.3" - -"buffer@^4.3.0": - "integrity" "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==" - "resolved" "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" - "version" "4.9.2" +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" dependencies: - "base64-js" "^1.0.2" - "ieee754" "^1.1.4" - "isarray" "^1.0.0" + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" -"buffer@5.6.0": - "integrity" "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==" - "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz" - "version" "5.6.0" +bufferutil@^4.0.1: + version "4.0.6" + resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz" dependencies: - "base64-js" "^1.0.2" - "ieee754" "^1.1.4" + node-gyp-build "^4.3.0" -"bufferutil@^4.0.1": - "integrity" "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==" - "resolved" "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz" - "version" "4.0.6" +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" dependencies: - "node-gyp-build" "^4.3.0" + function-bind "^1.1.1" + get-intrinsic "^1.0.2" -"builtin-status-codes@^3.0.0": - "integrity" "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - "resolved" "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" - "version" "3.0.0" +caniuse-lite@^1.0.30001202, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001228: + version "1.0.30001312" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz" -"bytes@3.1.0": - "integrity" "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" - "version" "3.1.0" - -"call-bind@^1.0.0", "call-bind@^1.0.2": - "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" - "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - "version" "1.0.2" +chalk@2.4.2, chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" dependencies: - "function-bind" "^1.1.1" - "get-intrinsic" "^1.0.2" + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" -"caniuse-lite@^1.0.30001202", "caniuse-lite@^1.0.30001219", "caniuse-lite@^1.0.30001228", "caniuse-lite@^1.0.30001286": - "integrity" "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==" - "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz" - "version" "1.0.30001312" - -"chalk@^2.0.0", "chalk@2.4.2": - "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - "version" "2.4.2" +chalk@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz" dependencies: - "ansi-styles" "^3.2.1" - "escape-string-regexp" "^1.0.5" - "supports-color" "^5.3.0" + ansi-styles "^4.1.0" + supports-color "^7.1.0" -"chalk@4.0.0": - "integrity" "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz" - "version" "4.0.0" +chokidar@3.5.1: + version "3.5.1" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz" dependencies: - "ansi-styles" "^4.1.0" - "supports-color" "^7.1.0" - -"chokidar@3.5.1": - "integrity" "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==" - "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz" - "version" "3.5.1" - dependencies: - "anymatch" "~3.1.1" - "braces" "~3.0.2" - "glob-parent" "~5.1.0" - "is-binary-path" "~2.1.0" - "is-glob" "~4.0.1" - "normalize-path" "~3.0.0" - "readdirp" "~3.5.0" + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" optionalDependencies: - "fsevents" "~2.3.1" + fsevents "~2.3.1" -"cipher-base@^1.0.0", "cipher-base@^1.0.1", "cipher-base@^1.0.3": - "integrity" "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==" - "resolved" "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" - "version" "1.0.4" +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" dependencies: - "inherits" "^2.0.1" - "safe-buffer" "^5.0.1" + inherits "^2.0.1" + safe-buffer "^5.0.1" -"classnames@2.2.6": - "integrity" "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - "resolved" "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz" - "version" "2.2.6" +classnames@2.2.6: + version "2.2.6" + resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz" -"color-convert@^1.9.0": - "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - "version" "1.9.3" +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" dependencies: - "color-name" "1.1.3" + color-name "1.1.3" -"color-convert@^2.0.1": - "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - "version" "2.0.1" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" dependencies: - "color-name" "~1.1.4" + color-name "~1.1.4" -"color-name@~1.1.4": - "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - "version" "1.1.4" +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" -"color-name@1.1.3": - "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - "version" "1.1.3" +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" -"colorette@^1.2.2": - "integrity" "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==" - "resolved" "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz" - "version" "1.3.0" +colorette@^1.2.2: + version "1.3.0" + resolved "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz" -"commondir@^1.0.1": - "integrity" "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - "resolved" "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" - "version" "1.0.1" +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" -"console-browserify@^1.1.0": - "integrity" "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - "resolved" "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz" - "version" "1.2.0" +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz" -"constants-browserify@^1.0.0", "constants-browserify@1.0.0": - "integrity" "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - "resolved" "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" - "version" "1.0.0" +constants-browserify@1.0.0, constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" -"convert-source-map@^1.7.0", "convert-source-map@1.7.0": - "integrity" "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==" - "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" - "version" "1.7.0" +convert-source-map@1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" dependencies: - "safe-buffer" "~5.1.1" + safe-buffer "~5.1.1" -"core-util-is@~1.0.0": - "integrity" "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - "version" "1.0.2" +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" -"create-ecdh@^4.0.0": - "integrity" "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==" - "resolved" "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" - "version" "4.0.4" +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" dependencies: - "bn.js" "^4.1.0" - "elliptic" "^6.5.3" + bn.js "^4.1.0" + elliptic "^6.5.3" -"create-hash@^1.1.0", "create-hash@^1.1.2", "create-hash@^1.2.0": - "integrity" "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==" - "resolved" "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" - "version" "1.2.0" +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" dependencies: - "cipher-base" "^1.0.1" - "inherits" "^2.0.1" - "md5.js" "^1.3.4" - "ripemd160" "^2.0.1" - "sha.js" "^2.4.0" + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" -"create-hmac@^1.1.0", "create-hmac@^1.1.4", "create-hmac@^1.1.7": - "integrity" "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==" - "resolved" "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" - "version" "1.1.7" +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" dependencies: - "cipher-base" "^1.0.3" - "create-hash" "^1.1.0" - "inherits" "^2.0.1" - "ripemd160" "^2.0.0" - "safe-buffer" "^5.0.1" - "sha.js" "^2.4.8" + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" -"cross-fetch@^3.0.6", "cross-fetch@^3.1.0": - "integrity" "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==" - "resolved" "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz" - "version" "3.1.5" +cross-fetch@^3.0.6, cross-fetch@^3.1.0: + version "3.1.5" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz" dependencies: - "node-fetch" "2.6.7" + node-fetch "2.6.7" -"crypto-browserify@^3.11.0", "crypto-browserify@3.12.0": - "integrity" "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==" - "resolved" "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" - "version" "3.12.0" +crypto-browserify@3.12.0, crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" dependencies: - "browserify-cipher" "^1.0.0" - "browserify-sign" "^4.0.0" - "create-ecdh" "^4.0.0" - "create-hash" "^1.1.0" - "create-hmac" "^1.1.0" - "diffie-hellman" "^5.0.0" - "inherits" "^2.0.1" - "pbkdf2" "^3.0.3" - "public-encrypt" "^4.0.0" - "randombytes" "^2.0.0" - "randomfill" "^1.0.3" + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" -"css.escape@1.5.1": - "integrity" "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" - "resolved" "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz" - "version" "1.5.1" +css.escape@1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz" -"cssnano-preset-simple@^3.0.0": - "integrity" "sha512-vxQPeoMRqUT3c/9f0vWeVa2nKQIHFpogtoBvFdW4GQ3IvEJ6uauCP6p3Y5zQDLFcI7/+40FTgX12o7XUL0Ko+w==" - "resolved" "https://registry.npmjs.org/cssnano-preset-simple/-/cssnano-preset-simple-3.0.0.tgz" - "version" "3.0.0" +cssnano-preset-simple@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssnano-preset-simple/-/cssnano-preset-simple-3.0.0.tgz" dependencies: - "caniuse-lite" "^1.0.30001202" + caniuse-lite "^1.0.30001202" -"cssnano-simple@3.0.0": - "integrity" "sha512-oU3ueli5Dtwgh0DyeohcIEE00QVfbPR3HzyXdAl89SfnQG3y0/qcpfLVW+jPIh3/rgMZGwuW96rejZGaYE9eUg==" - "resolved" "https://registry.npmjs.org/cssnano-simple/-/cssnano-simple-3.0.0.tgz" - "version" "3.0.0" +cssnano-simple@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssnano-simple/-/cssnano-simple-3.0.0.tgz" dependencies: - "cssnano-preset-simple" "^3.0.0" + cssnano-preset-simple "^3.0.0" -"d@^1.0.1", "d@1": - "integrity" "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==" - "resolved" "https://registry.npmjs.org/d/-/d-1.0.1.tgz" - "version" "1.0.1" +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" dependencies: - "es5-ext" "^0.10.50" - "type" "^1.0.1" + es5-ext "^0.10.50" + type "^1.0.1" -"data-uri-to-buffer@3.0.1": - "integrity" "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" - "resolved" "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz" - "version" "3.0.1" +data-uri-to-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz" -"debug@^2.2.0", "debug@2": - "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" - "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - "version" "2.6.9" +debug@2, debug@^2.2.0: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" dependencies: - "ms" "2.0.0" + ms "2.0.0" -"debug@^4.1.0": - "integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" - "version" "4.3.3" +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" dependencies: - "ms" "2.1.2" + object-keys "^1.0.12" -"define-properties@^1.1.3": - "integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" - "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" - "version" "1.1.3" +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + +dequal@2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz" + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" dependencies: - "object-keys" "^1.0.12" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" -"depd@~1.1.2": - "integrity" "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - "resolved" "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - "version" "1.1.2" - -"dequal@2.0.2": - "integrity" "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==" - "resolved" "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz" - "version" "2.0.2" - -"des.js@^1.0.0": - "integrity" "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==" - "resolved" "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" - "version" "1.0.1" +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" dependencies: - "inherits" "^2.0.1" - "minimalistic-assert" "^1.0.0" + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" -"diffie-hellman@^5.0.0": - "integrity" "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==" - "resolved" "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" - "version" "5.0.3" +domain-browser@4.19.0: + version "4.19.0" + resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" + +electron-to-chromium@^1.3.723: + version "1.4.68" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.68.tgz" + +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" dependencies: - "bn.js" "^4.1.0" - "miller-rabin" "^4.0.0" - "randombytes" "^2.0.0" + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" -"domain-browser@^1.1.1": - "integrity" "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - "resolved" "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" - "version" "1.2.0" +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz" -"domain-browser@4.19.0": - "integrity" "sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==" - "resolved" "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz" - "version" "4.19.0" - -"electron-to-chromium@^1.3.723", "electron-to-chromium@^1.4.17": - "integrity" "sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==" - "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.68.tgz" - "version" "1.4.68" - -"elliptic@^6.5.3": - "integrity" "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==" - "resolved" "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" - "version" "6.5.4" +encoding@0.1.13: + version "0.1.13" + resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" dependencies: - "bn.js" "^4.11.9" - "brorand" "^1.1.0" - "hash.js" "^1.0.0" - "hmac-drbg" "^1.0.1" - "inherits" "^2.0.4" - "minimalistic-assert" "^1.0.1" - "minimalistic-crypto-utils" "^1.0.1" + iconv-lite "^0.6.2" -"emojis-list@^2.0.0": - "integrity" "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - "resolved" "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz" - "version" "2.1.0" - -"encoding@^0.1.0", "encoding@0.1.13": - "integrity" "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==" - "resolved" "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" - "version" "0.1.13" +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz" dependencies: - "iconv-lite" "^0.6.2" + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.2" + is-string "^1.0.5" + object-inspect "^1.9.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.0" -"es-abstract@^1.18.0-next.1", "es-abstract@^1.18.0-next.2": - "integrity" "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==" - "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz" - "version" "1.18.0" +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" dependencies: - "call-bind" "^1.0.2" - "es-to-primitive" "^1.2.1" - "function-bind" "^1.1.1" - "get-intrinsic" "^1.1.1" - "has" "^1.0.3" - "has-symbols" "^1.0.2" - "is-callable" "^1.2.3" - "is-negative-zero" "^2.0.1" - "is-regex" "^1.1.2" - "is-string" "^1.0.5" - "object-inspect" "^1.9.0" - "object-keys" "^1.1.1" - "object.assign" "^4.1.2" - "string.prototype.trimend" "^1.0.4" - "string.prototype.trimstart" "^1.0.4" - "unbox-primitive" "^1.0.0" + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" -"es-to-primitive@^1.2.1": - "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" - "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - "version" "1.2.1" +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.53" + resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz" dependencies: - "is-callable" "^1.1.4" - "is-date-object" "^1.0.1" - "is-symbol" "^1.0.2" + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" -"es5-ext@^0.10.35", "es5-ext@^0.10.50": - "integrity" "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==" - "resolved" "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz" - "version" "0.10.53" +es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" dependencies: - "es6-iterator" "~2.0.3" - "es6-symbol" "~3.1.3" - "next-tick" "~1.0.0" + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" -"es6-iterator@~2.0.3": - "integrity" "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=" - "resolved" "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" - "version" "2.0.3" +es6-object-assign@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz" + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" dependencies: - "d" "1" - "es5-ext" "^0.10.35" - "es6-symbol" "^3.1.1" + d "^1.0.1" + ext "^1.1.2" -"es6-object-assign@^1.1.0": - "integrity" "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" - "resolved" "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz" - "version" "1.1.0" +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" -"es6-symbol@^3.1.1", "es6-symbol@~3.1.3": - "integrity" "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==" - "resolved" "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" - "version" "3.1.3" +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + +etag@1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + +events@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/events/-/events-3.2.0.tgz" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" dependencies: - "d" "^1.0.1" - "ext" "^1.1.2" + md5.js "^1.3.4" + safe-buffer "^5.1.1" -"escalade@^3.1.1": - "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - "version" "3.1.1" - -"escape-string-regexp@^1.0.5": - "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - "version" "1.0.5" - -"etag@1.8.1": - "integrity" "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - "version" "1.8.1" - -"events@^3.0.0": - "integrity" "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" - "resolved" "https://registry.npmjs.org/events/-/events-3.2.0.tgz" - "version" "3.2.0" - -"evp_bytestokey@^1.0.0", "evp_bytestokey@^1.0.3": - "integrity" "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==" - "resolved" "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" - "version" "1.0.3" +ext@^1.1.2: + version "1.6.0" + resolved "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz" dependencies: - "md5.js" "^1.3.4" - "safe-buffer" "^5.1.1" + type "^2.5.0" -"ext@^1.1.2": - "integrity" "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==" - "resolved" "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz" - "version" "1.6.0" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" dependencies: - "type" "^2.5.0" + to-regex-range "^5.0.1" -"fill-range@^7.0.1": - "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" - "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - "version" "7.0.1" +find-cache-dir@3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz" dependencies: - "to-regex-range" "^5.0.1" + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" -"find-cache-dir@3.3.1": - "integrity" "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==" - "resolved" "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz" - "version" "3.3.1" +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" dependencies: - "commondir" "^1.0.1" - "make-dir" "^3.0.2" - "pkg-dir" "^4.1.0" + locate-path "^5.0.0" + path-exists "^4.0.0" -"find-up@^4.0.0": - "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - "version" "4.1.0" +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz" + +fsevents@^2.3.2, fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" dependencies: - "locate-path" "^5.0.0" - "path-exists" "^4.0.0" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" -"foreach@^2.0.5": - "integrity" "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - "resolved" "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz" - "version" "2.0.5" - -"fsevents@^2.3.2", "fsevents@~2.3.1": - "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==" - "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - "version" "2.3.2" - -"function-bind@^1.1.1": - "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - "version" "1.1.1" - -"gensync@^1.0.0-beta.2": - "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - "version" "1.0.0-beta.2" - -"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.1": - "integrity" "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==" - "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" - "version" "1.1.1" +get-orientation@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/get-orientation/-/get-orientation-1.1.2.tgz" dependencies: - "function-bind" "^1.1.1" - "has" "^1.0.3" - "has-symbols" "^1.0.1" + stream-parser "^0.3.1" -"get-orientation@1.1.2": - "integrity" "sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ==" - "resolved" "https://registry.npmjs.org/get-orientation/-/get-orientation-1.1.2.tgz" - "version" "1.1.2" +glob-parent@~5.1.0: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" dependencies: - "stream-parser" "^0.3.1" + is-glob "^4.0.1" -"glob-parent@~5.1.0": - "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" - "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - "version" "5.1.2" +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + +graceful-fs@^4.1.2: + version "4.2.4" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz" + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" dependencies: - "is-glob" "^4.0.1" + function-bind "^1.1.1" -"glob-to-regexp@^0.4.1": - "integrity" "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - "resolved" "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" - "version" "0.4.1" - -"globals@^11.1.0": - "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - "version" "11.12.0" - -"graceful-fs@^4.1.2": - "integrity" "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz" - "version" "4.2.4" - -"has-bigints@^1.0.1": - "integrity" "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" - "version" "1.0.1" - -"has-flag@^3.0.0": - "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - "version" "3.0.0" - -"has-flag@^4.0.0": - "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - "version" "4.0.0" - -"has-symbols@^1.0.1", "has-symbols@^1.0.2": - "integrity" "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" - "version" "1.0.2" - -"has@^1.0.3": - "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" - "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - "version" "1.0.3" +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" dependencies: - "function-bind" "^1.1.1" + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" -"hash-base@^3.0.0": - "integrity" "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==" - "resolved" "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" - "version" "3.1.0" +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" dependencies: - "inherits" "^2.0.4" - "readable-stream" "^3.6.0" - "safe-buffer" "^5.2.0" + inherits "^2.0.3" + minimalistic-assert "^1.0.1" -"hash.js@^1.0.0", "hash.js@^1.0.3": - "integrity" "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==" - "resolved" "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" - "version" "1.1.7" +he@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" dependencies: - "inherits" "^2.0.3" - "minimalistic-assert" "^1.0.1" + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" -"he@1.2.0": - "integrity" "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - "resolved" "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - "version" "1.2.0" - -"hmac-drbg@^1.0.1": - "integrity" "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=" - "resolved" "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" - "version" "1.0.1" +http-errors@1.7.3: + version "1.7.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz" dependencies: - "hash.js" "^1.0.3" - "minimalistic-assert" "^1.0.0" - "minimalistic-crypto-utils" "^1.0.1" + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" -"http-errors@1.7.3": - "integrity" "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==" - "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz" - "version" "1.7.3" +https-browserify@1.0.0, https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" dependencies: - "depd" "~1.1.2" - "inherits" "2.0.4" - "setprototypeof" "1.1.1" - "statuses" ">= 1.5.0 < 2" - "toidentifier" "1.0.0" + safer-buffer ">= 2.1.2 < 3" -"https-browserify@^1.0.0", "https-browserify@1.0.0": - "integrity" "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - "resolved" "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" - "version" "1.0.0" - -"iconv-lite@^0.6.2": - "integrity" "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==" - "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz" - "version" "0.6.2" +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz" dependencies: - "safer-buffer" ">= 2.1.2 < 3.0.0" + safer-buffer ">= 2.1.2 < 3.0.0" -"iconv-lite@0.4.24": - "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" - "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - "version" "0.4.24" +ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + +image-size@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz" dependencies: - "safer-buffer" ">= 2.1.2 < 3" + queue "6.0.2" -"ieee754@^1.1.4": - "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - "version" "1.2.1" +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" -"image-size@1.0.0": - "integrity" "sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==" - "resolved" "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz" - "version" "1.0.0" +inherits@2.0.3, inherits@~2.0.1: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + +inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + +is-arguments@^1.0.4: + version "1.1.0" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz" dependencies: - "queue" "6.0.2" + call-bind "^1.0.0" -"inherits@^2.0.1", "inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.3", "inherits@~2.0.4", "inherits@2.0.4": - "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - "version" "2.0.4" +is-bigint@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz" -"inherits@~2.0.1", "inherits@2.0.3": - "integrity" "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - "version" "2.0.3" - -"inherits@2.0.1": - "integrity" "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - "version" "2.0.1" - -"is-arguments@^1.0.4": - "integrity" "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==" - "resolved" "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz" - "version" "1.1.0" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" dependencies: - "call-bind" "^1.0.0" + binary-extensions "^2.0.0" -"is-bigint@^1.0.1": - "integrity" "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" - "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz" - "version" "1.0.2" - -"is-binary-path@~2.1.0": - "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" - "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - "version" "2.1.0" +is-boolean-object@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz" dependencies: - "binary-extensions" "^2.0.0" + call-bind "^1.0.2" -"is-boolean-object@^1.1.0": - "integrity" "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==" - "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz" - "version" "1.1.1" +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz" + +is-date-object@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + +is-generator-function@^1.0.7: + version "1.0.9" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz" + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" dependencies: - "call-bind" "^1.0.2" + is-extglob "^2.1.1" -"is-callable@^1.1.4", "is-callable@^1.2.3": - "integrity" "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" - "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz" - "version" "1.2.3" - -"is-date-object@^1.0.1": - "integrity" "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==" - "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz" - "version" "1.0.4" - -"is-extglob@^2.1.1": - "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - "version" "2.1.1" - -"is-generator-function@^1.0.7": - "integrity" "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==" - "resolved" "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz" - "version" "1.0.9" - -"is-glob@^4.0.1", "is-glob@~4.0.1": - "integrity" "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==" - "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" - "version" "4.0.1" +is-nan@^1.2.1: + version "1.3.2" + resolved "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz" dependencies: - "is-extglob" "^2.1.1" + call-bind "^1.0.0" + define-properties "^1.1.3" -"is-nan@^1.2.1": - "integrity" "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==" - "resolved" "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz" - "version" "1.3.2" +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" + +is-number-object@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + +is-regex@^1.1.2: + version "1.1.3" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz" dependencies: - "call-bind" "^1.0.0" - "define-properties" "^1.1.3" + call-bind "^1.0.2" + has-symbols "^1.0.2" -"is-negative-zero@^2.0.1": - "integrity" "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" - "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" - "version" "2.0.1" +is-string@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz" -"is-number-object@^1.0.4": - "integrity" "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==" - "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz" - "version" "1.0.5" - -"is-number@^7.0.0": - "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - "version" "7.0.0" - -"is-regex@^1.1.2": - "integrity" "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==" - "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz" - "version" "1.1.3" +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" dependencies: - "call-bind" "^1.0.2" - "has-symbols" "^1.0.2" + has-symbols "^1.0.2" -"is-string@^1.0.5": - "integrity" "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==" - "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz" - "version" "1.0.6" - -"is-symbol@^1.0.2", "is-symbol@^1.0.3": - "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==" - "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - "version" "1.0.4" +is-typed-array@^1.1.3: + version "1.1.5" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz" dependencies: - "has-symbols" "^1.0.2" + available-typed-arrays "^1.0.2" + call-bind "^1.0.2" + es-abstract "^1.18.0-next.2" + foreach "^2.0.5" + has-symbols "^1.0.1" -"is-typed-array@^1.1.3": - "integrity" "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==" - "resolved" "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz" - "version" "1.1.5" - dependencies: - "available-typed-arrays" "^1.0.2" - "call-bind" "^1.0.2" - "es-abstract" "^1.18.0-next.2" - "foreach" "^2.0.5" - "has-symbols" "^1.0.1" +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" -"is-typedarray@^1.0.0": - "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - "version" "1.0.0" +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" -"isarray@^1.0.0", "isarray@~1.0.0": - "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - "version" "1.0.0" - -"jest-worker@27.0.0-next.5": - "integrity" "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==" - "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz" - "version" "27.0.0-next.5" +jest-worker@27.0.0-next.5: + version "27.0.0-next.5" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz" dependencies: "@types/node" "*" - "merge-stream" "^2.0.0" - "supports-color" "^8.0.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" -"js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0": - "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - "version" "4.0.0" +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" -"jsesc@^2.5.1": - "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - "version" "2.5.2" - -"json5@^1.0.1": - "integrity" "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==" - "resolved" "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" - "version" "1.0.1" +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" dependencies: - "minimist" "^1.2.0" + minimist "^1.2.0" -"json5@^2.1.2": - "integrity" "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==" - "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" - "version" "2.2.0" +loader-utils@1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz" dependencies: - "minimist" "^1.2.5" + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" -"loader-utils@1.2.3": - "integrity" "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==" - "resolved" "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz" - "version" "1.2.3" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" dependencies: - "big.js" "^5.2.2" - "emojis-list" "^2.0.0" - "json5" "^1.0.1" + p-locate "^4.1.0" -"locate-path@^5.0.0": - "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" - "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - "version" "5.0.0" +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" + +lodash@^4.17.20: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + +loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" dependencies: - "p-locate" "^4.1.0" + js-tokens "^3.0.0 || ^4.0.0" -"lodash.sortby@^4.7.0": - "integrity" "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - "resolved" "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" - "version" "4.7.0" - -"lodash@^4.17.20": - "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - "version" "4.17.21" - -"loose-envify@^1.1.0", "loose-envify@^1.4.0": - "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==" - "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - "version" "1.4.0" +make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" dependencies: - "js-tokens" "^3.0.0 || ^4.0.0" + semver "^6.0.0" -"make-dir@^3.0.2": - "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" - "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - "version" "3.1.0" +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" dependencies: - "semver" "^6.0.0" + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" -"md5.js@^1.3.4": - "integrity" "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==" - "resolved" "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" - "version" "1.3.5" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" dependencies: - "hash-base" "^3.0.0" - "inherits" "^2.0.1" - "safe-buffer" "^5.1.2" + bn.js "^4.0.0" + brorand "^1.0.1" -"merge-stream@^2.0.0": - "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - "version" "2.0.0" +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" -"miller-rabin@^4.0.0": - "integrity" "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==" - "resolved" "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" - "version" "4.0.1" +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + +minimist@^1.2.0: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + +nanoid@^3.1.23: + version "3.2.0" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz" + +native-url@0.3.4: + version "0.3.4" + resolved "https://registry.npmjs.org/native-url/-/native-url-0.3.4.tgz" dependencies: - "bn.js" "^4.0.0" - "brorand" "^1.0.1" + querystring "^0.2.0" -"minimalistic-assert@^1.0.0", "minimalistic-assert@^1.0.1": - "integrity" "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - "resolved" "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - "version" "1.0.1" +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz" -"minimalistic-crypto-utils@^1.0.1": - "integrity" "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - "resolved" "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" - "version" "1.0.1" - -"minimist@^1.2.0", "minimist@^1.2.5": - "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - "version" "1.2.5" - -"ms@2.0.0": - "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - "version" "2.0.0" - -"ms@2.1.2": - "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - "version" "2.1.2" - -"nanoid@^3.1.23": - "integrity" "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==" - "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz" - "version" "3.2.0" - -"native-url@0.3.4": - "integrity" "sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA==" - "resolved" "https://registry.npmjs.org/native-url/-/native-url-0.3.4.tgz" - "version" "0.3.4" - dependencies: - "querystring" "^0.2.0" - -"next-tick@~1.0.0": - "integrity" "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - "resolved" "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz" - "version" "1.0.0" - -"next@^11.1.4": - "integrity" "sha512-GWQJrWYkfAKP8vmrzJcCfRSKv955Khyjqd5jipTcVKDGg+SH+NfjDMWFtCwArcQlHPvzisGu1ERLY0+Eoj7G+g==" - "resolved" "https://registry.npmjs.org/next/-/next-11.1.4.tgz" - "version" "11.1.4" +next@^11.1.4: + version "11.1.4" + resolved "https://registry.npmjs.org/next/-/next-11.1.4.tgz" dependencies: "@babel/runtime" "7.15.3" "@hapi/accept" "5.0.2" @@ -1486,885 +1065,752 @@ "@next/react-dev-overlay" "11.1.4" "@next/react-refresh-utils" "11.1.4" "@node-rs/helper" "1.2.1" - "assert" "2.0.0" - "ast-types" "0.13.2" - "browserify-zlib" "0.2.0" - "browserslist" "4.16.6" - "buffer" "5.6.0" - "caniuse-lite" "^1.0.30001228" - "chalk" "2.4.2" - "chokidar" "3.5.1" - "constants-browserify" "1.0.0" - "crypto-browserify" "3.12.0" - "cssnano-simple" "3.0.0" - "domain-browser" "4.19.0" - "encoding" "0.1.13" - "etag" "1.8.1" - "find-cache-dir" "3.3.1" - "get-orientation" "1.1.2" - "https-browserify" "1.0.0" - "image-size" "1.0.0" - "jest-worker" "27.0.0-next.5" - "native-url" "0.3.4" - "node-fetch" "2.6.7" - "node-html-parser" "1.4.9" - "node-libs-browser" "^2.2.1" - "os-browserify" "0.3.0" - "p-limit" "3.1.0" - "path-browserify" "1.0.1" - "pnp-webpack-plugin" "1.6.4" - "postcss" "8.2.15" - "process" "0.11.10" - "querystring-es3" "0.2.1" - "raw-body" "2.4.1" - "react-is" "17.0.2" - "react-refresh" "0.8.3" - "stream-browserify" "3.0.0" - "stream-http" "3.1.1" - "string_decoder" "1.3.0" - "styled-jsx" "4.0.1" - "timers-browserify" "2.0.12" - "tty-browserify" "0.0.1" - "use-subscription" "1.5.1" - "util" "0.12.4" - "vm-browserify" "1.1.2" - "watchpack" "2.1.1" + assert "2.0.0" + ast-types "0.13.2" + browserify-zlib "0.2.0" + browserslist "4.16.6" + buffer "5.6.0" + caniuse-lite "^1.0.30001228" + chalk "2.4.2" + chokidar "3.5.1" + constants-browserify "1.0.0" + crypto-browserify "3.12.0" + cssnano-simple "3.0.0" + domain-browser "4.19.0" + encoding "0.1.13" + etag "1.8.1" + find-cache-dir "3.3.1" + get-orientation "1.1.2" + https-browserify "1.0.0" + image-size "1.0.0" + jest-worker "27.0.0-next.5" + native-url "0.3.4" + node-fetch "2.6.7" + node-html-parser "1.4.9" + node-libs-browser "^2.2.1" + os-browserify "0.3.0" + p-limit "3.1.0" + path-browserify "1.0.1" + pnp-webpack-plugin "1.6.4" + postcss "8.2.15" + process "0.11.10" + querystring-es3 "0.2.1" + raw-body "2.4.1" + react-is "17.0.2" + react-refresh "0.8.3" + stream-browserify "3.0.0" + stream-http "3.1.1" + string_decoder "1.3.0" + styled-jsx "4.0.1" + timers-browserify "2.0.12" + tty-browserify "0.0.1" + use-subscription "1.5.1" + util "0.12.4" + vm-browserify "1.1.2" + watchpack "2.1.1" optionalDependencies: "@next/swc-darwin-arm64" "11.1.4" "@next/swc-darwin-x64" "11.1.4" "@next/swc-linux-x64-gnu" "11.1.4" "@next/swc-win32-x64-msvc" "11.1.4" -"node-fetch@2.6.7": - "integrity" "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==" - "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" - "version" "2.6.7" +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" dependencies: - "whatwg-url" "^5.0.0" + whatwg-url "^5.0.0" -"node-gyp-build@^4.3.0": - "integrity" "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" - "resolved" "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz" - "version" "4.3.0" +node-gyp-build@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz" -"node-html-parser@1.4.9": - "integrity" "sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==" - "resolved" "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz" - "version" "1.4.9" +node-html-parser@1.4.9: + version "1.4.9" + resolved "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz" dependencies: - "he" "1.2.0" + he "1.2.0" -"node-libs-browser@^2.2.1": - "integrity" "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==" - "resolved" "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz" - "version" "2.2.1" +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz" dependencies: - "assert" "^1.1.1" - "browserify-zlib" "^0.2.0" - "buffer" "^4.3.0" - "console-browserify" "^1.1.0" - "constants-browserify" "^1.0.0" - "crypto-browserify" "^3.11.0" - "domain-browser" "^1.1.1" - "events" "^3.0.0" - "https-browserify" "^1.0.0" - "os-browserify" "^0.3.0" - "path-browserify" "0.0.1" - "process" "^0.11.10" - "punycode" "^1.2.4" - "querystring-es3" "^0.2.0" - "readable-stream" "^2.3.3" - "stream-browserify" "^2.0.1" - "stream-http" "^2.7.2" - "string_decoder" "^1.0.0" - "timers-browserify" "^2.0.4" - "tty-browserify" "0.0.0" - "url" "^0.11.0" - "util" "^0.11.0" - "vm-browserify" "^1.0.1" + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" -"node-releases@^1.1.71": - "integrity" "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" - "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz" - "version" "1.1.77" +node-releases@^1.1.71: + version "1.1.77" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz" -"node-releases@^2.0.1": - "integrity" "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" - "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz" - "version" "2.0.2" +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" -"normalize-path@^3.0.0", "normalize-path@~3.0.0": - "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - "version" "3.0.0" +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" -"object-assign@^4.1.1": - "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - "version" "4.1.1" +object-inspect@^1.9.0: + version "1.10.3" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz" -"object-inspect@^1.9.0": - "integrity" "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==" - "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz" - "version" "1.10.3" - -"object-is@^1.0.1": - "integrity" "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==" - "resolved" "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" - "version" "1.1.5" +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" + call-bind "^1.0.2" + define-properties "^1.1.3" -"object-keys@^1.0.12", "object-keys@^1.1.1": - "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - "version" "1.1.1" +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" -"object.assign@^4.1.2": - "integrity" "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==" - "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" - "version" "4.1.2" +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" dependencies: - "call-bind" "^1.0.0" - "define-properties" "^1.1.3" - "has-symbols" "^1.0.1" - "object-keys" "^1.1.1" + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" -"os-browserify@^0.3.0", "os-browserify@0.3.0": - "integrity" "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - "resolved" "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" - "version" "0.3.0" +os-browserify@0.3.0, os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" -"p-limit@^2.2.0": - "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" - "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - "version" "2.3.0" +p-limit@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" dependencies: - "p-try" "^2.0.0" + yocto-queue "^0.1.0" -"p-limit@3.1.0": - "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" - "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - "version" "3.1.0" +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" dependencies: - "yocto-queue" "^0.1.0" + p-try "^2.0.0" -"p-locate@^4.1.0": - "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" - "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - "version" "4.1.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" dependencies: - "p-limit" "^2.2.0" + p-limit "^2.2.0" -"p-try@^2.0.0": - "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - "version" "2.2.0" +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" -"pako@~1.0.5": - "integrity" "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" - "version" "1.0.11" +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" -"parse-asn1@^5.0.0", "parse-asn1@^5.1.5": - "integrity" "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==" - "resolved" "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" - "version" "5.1.6" +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" dependencies: - "asn1.js" "^5.2.0" - "browserify-aes" "^1.0.0" - "evp_bytestokey" "^1.0.0" - "pbkdf2" "^3.0.3" - "safe-buffer" "^5.1.1" + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" -"path-browserify@0.0.1": - "integrity" "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - "resolved" "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" - "version" "0.0.1" +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" -"path-browserify@1.0.1": - "integrity" "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" - "resolved" "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" - "version" "1.0.1" +path-browserify@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" -"path-exists@^4.0.0": - "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - "version" "4.0.0" +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" -"pbkdf2@^3.0.3": - "integrity" "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==" - "resolved" "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz" - "version" "3.1.1" +pbkdf2@^3.0.3: + version "3.1.1" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz" dependencies: - "create-hash" "^1.1.2" - "create-hmac" "^1.1.4" - "ripemd160" "^2.0.1" - "safe-buffer" "^5.0.1" - "sha.js" "^2.4.8" + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" -"picocolors@^1.0.0": - "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - "version" "1.0.0" +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" -"picomatch@^2.0.4", "picomatch@^2.2.1": - "integrity" "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" - "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" - "version" "2.2.2" - -"pkg-dir@^4.1.0": - "integrity" "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==" - "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - "version" "4.2.0" +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" dependencies: - "find-up" "^4.0.0" + find-up "^4.0.0" -"platform@1.3.6": - "integrity" "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" - "resolved" "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz" - "version" "1.3.6" +platform@1.3.6: + version "1.3.6" + resolved "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz" -"pnp-webpack-plugin@1.6.4": - "integrity" "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==" - "resolved" "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz" - "version" "1.6.4" +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz" dependencies: - "ts-pnp" "^1.1.6" + ts-pnp "^1.1.6" -"postcss@^8.2.15", "postcss@8.2.15": - "integrity" "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==" - "resolved" "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz" - "version" "8.2.15" +postcss@8.2.15: + version "8.2.15" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz" dependencies: - "colorette" "^1.2.2" - "nanoid" "^3.1.23" - "source-map" "^0.6.1" + colorette "^1.2.2" + nanoid "^3.1.23" + source-map "^0.6.1" -"process-nextick-args@~2.0.0": - "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" - "version" "2.0.1" +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" -"process@^0.11.10", "process@0.11.10": - "integrity" "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - "resolved" "https://registry.npmjs.org/process/-/process-0.11.10.tgz" - "version" "0.11.10" +process@0.11.10, process@^0.11.10: + version "0.11.10" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" -"prop-types@^15.7.2": - "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==" - "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" - "version" "15.8.1" +prop-types@^15.7.2: + version "15.8.1" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" dependencies: - "loose-envify" "^1.4.0" - "object-assign" "^4.1.1" - "react-is" "^16.13.1" + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" -"public-encrypt@^4.0.0": - "integrity" "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==" - "resolved" "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" - "version" "4.0.3" +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" dependencies: - "bn.js" "^4.1.0" - "browserify-rsa" "^4.0.0" - "create-hash" "^1.1.0" - "parse-asn1" "^5.0.0" - "randombytes" "^2.0.1" - "safe-buffer" "^5.1.2" + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" -"punycode@^1.2.4": - "integrity" "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - "version" "1.4.1" +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" -"punycode@^2.1.0": - "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - "version" "2.1.1" +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" -"punycode@1.3.2": - "integrity" "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - "version" "1.3.2" +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" -"querystring-es3@^0.2.0", "querystring-es3@0.2.1": - "integrity" "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - "resolved" "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" - "version" "0.2.1" +querystring-es3@0.2.1, querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" -"querystring@^0.2.0", "querystring@0.2.0": - "integrity" "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - "resolved" "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - "version" "0.2.0" +querystring@0.2.0, querystring@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" -"queue@6.0.2": - "integrity" "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==" - "resolved" "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz" - "version" "6.0.2" +queue@6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz" dependencies: - "inherits" "~2.0.3" + inherits "~2.0.3" -"randombytes@^2.0.0", "randombytes@^2.0.1", "randombytes@^2.0.5": - "integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==" - "resolved" "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" - "version" "2.1.0" +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" dependencies: - "safe-buffer" "^5.1.0" + safe-buffer "^5.1.0" -"randomfill@^1.0.3": - "integrity" "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==" - "resolved" "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" - "version" "1.0.4" +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" dependencies: - "randombytes" "^2.0.5" - "safe-buffer" "^5.1.0" + randombytes "^2.0.5" + safe-buffer "^5.1.0" -"raw-body@2.4.1": - "integrity" "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==" - "resolved" "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz" - "version" "2.4.1" +raw-body@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz" dependencies: - "bytes" "3.1.0" - "http-errors" "1.7.3" - "iconv-lite" "0.4.24" - "unpipe" "1.0.0" + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" -"react-dom@^16.13.1 || ^17.0.1", "react-dom@^17.0.2", "react-dom@17.0.2": - "integrity" "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==" - "resolved" "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" - "version" "17.0.2" +react-dom@17.0.2: + version "17.0.2" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" dependencies: - "loose-envify" "^1.1.0" - "object-assign" "^4.1.1" - "scheduler" "^0.20.2" + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" -"react-is@^16.13.1": - "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" - "version" "16.13.1" +react-is@17.0.2: + version "17.0.2" + resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" -"react-is@17.0.2": - "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" - "version" "17.0.2" +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" -"react-refresh@0.8.3": - "integrity" "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" - "resolved" "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz" - "version" "0.8.3" +react-refresh@0.8.3: + version "0.8.3" + resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz" -"react@^16.11.0 || ^17.0.0", "react@^16.13.1 || ^17.0.1", "react@^16.8.0 || ^17.0.0", "react@^17.0.2", "react@>= 16.8.0 || 17.x.x || 18.x.x", "react@17.0.2": - "integrity" "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==" - "resolved" "https://registry.npmjs.org/react/-/react-17.0.2.tgz" - "version" "17.0.2" +react@17.0.2: + version "17.0.2" + resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz" dependencies: - "loose-envify" "^1.1.0" - "object-assign" "^4.1.1" + loose-envify "^1.1.0" + object-assign "^4.1.1" -"readable-stream@^2.0.2", "readable-stream@^2.3.3", "readable-stream@^2.3.6": - "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" - "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" - "version" "2.3.7" +readable-stream@^2.0.2, readable-stream@^2.3.3, readable-stream@^2.3.6: + version "2.3.7" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" dependencies: - "core-util-is" "~1.0.0" - "inherits" "~2.0.3" - "isarray" "~1.0.0" - "process-nextick-args" "~2.0.0" - "safe-buffer" "~5.1.1" - "string_decoder" "~1.1.1" - "util-deprecate" "~1.0.1" + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" -"readable-stream@^3.5.0", "readable-stream@^3.6.0": - "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" - "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" - "version" "3.6.0" +readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" dependencies: - "inherits" "^2.0.3" - "string_decoder" "^1.1.1" - "util-deprecate" "^1.0.1" + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" -"readdirp@~3.5.0": - "integrity" "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==" - "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz" - "version" "3.5.0" +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz" dependencies: - "picomatch" "^2.2.1" + picomatch "^2.2.1" -"regenerator-runtime@^0.13.4": - "integrity" "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" - "version" "0.13.9" +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" -"ripemd160@^2.0.0", "ripemd160@^2.0.1": - "integrity" "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==" - "resolved" "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" - "version" "2.0.2" +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" dependencies: - "hash-base" "^3.0.0" - "inherits" "^2.0.1" + hash-base "^3.0.0" + inherits "^2.0.1" -"safe-buffer@^5.0.1", "safe-buffer@^5.1.0", "safe-buffer@^5.1.1", "safe-buffer@^5.1.2", "safe-buffer@^5.2.0", "safe-buffer@~5.2.0": - "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - "version" "5.2.1" +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" -"safe-buffer@~5.1.0", "safe-buffer@~5.1.1": - "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - "version" "5.1.2" +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" -"safer-buffer@^2.1.0", "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": - "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - "version" "2.1.2" +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" -"scheduler@^0.20.2": - "integrity" "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==" - "resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz" - "version" "0.20.2" +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz" dependencies: - "loose-envify" "^1.1.0" - "object-assign" "^4.1.1" + loose-envify "^1.1.0" + object-assign "^4.1.1" -"semver@^6.0.0", "semver@^6.3.0": - "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - "version" "6.3.0" +semver@^6.0.0: + version "6.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" -"setimmediate@^1.0.4": - "integrity" "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - "resolved" "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - "version" "1.0.5" +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" -"setprototypeof@1.1.1": - "integrity" "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" - "version" "1.1.1" +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" -"sha.js@^2.4.0", "sha.js@^2.4.8": - "integrity" "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==" - "resolved" "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" - "version" "2.4.11" +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" dependencies: - "inherits" "^2.0.1" - "safe-buffer" "^5.0.1" + inherits "^2.0.1" + safe-buffer "^5.0.1" -"shell-quote@1.7.2": - "integrity" "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" - "resolved" "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz" - "version" "1.7.2" +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz" -"source-map@^0.5.0": - "integrity" "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - "version" "0.5.7" +source-map@0.7.3: + version "0.7.3" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" -"source-map@^0.6.1": - "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - "version" "0.6.1" - -"source-map@0.7.3": - "integrity" "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" - "version" "0.7.3" - -"source-map@0.8.0-beta.0": - "integrity" "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz" - "version" "0.8.0-beta.0" +source-map@0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz" dependencies: - "whatwg-url" "^7.0.0" + whatwg-url "^7.0.0" -"stacktrace-parser@0.1.10": - "integrity" "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==" - "resolved" "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" - "version" "0.1.10" +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + +stacktrace-parser@0.1.10: + version "0.1.10" + resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" dependencies: - "type-fest" "^0.7.1" + type-fest "^0.7.1" "statuses@>= 1.5.0 < 2": - "integrity" "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - "resolved" "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - "version" "1.5.0" + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" -"stream-browserify@^2.0.1": - "integrity" "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==" - "resolved" "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz" - "version" "2.0.2" +stream-browserify@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz" dependencies: - "inherits" "~2.0.1" - "readable-stream" "^2.0.2" + inherits "~2.0.4" + readable-stream "^3.5.0" -"stream-browserify@3.0.0": - "integrity" "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==" - "resolved" "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz" - "version" "3.0.0" +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz" dependencies: - "inherits" "~2.0.4" - "readable-stream" "^3.5.0" + inherits "~2.0.1" + readable-stream "^2.0.2" -"stream-http@^2.7.2": - "integrity" "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==" - "resolved" "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz" - "version" "2.8.3" +stream-http@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz" dependencies: - "builtin-status-codes" "^3.0.0" - "inherits" "^2.0.1" - "readable-stream" "^2.3.6" - "to-arraybuffer" "^1.0.0" - "xtend" "^4.0.0" + builtin-status-codes "^3.0.0" + inherits "^2.0.4" + readable-stream "^3.6.0" + xtend "^4.0.2" -"stream-http@3.1.1": - "integrity" "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==" - "resolved" "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz" - "version" "3.1.1" +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz" dependencies: - "builtin-status-codes" "^3.0.0" - "inherits" "^2.0.4" - "readable-stream" "^3.6.0" - "xtend" "^4.0.2" + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" -"stream-parser@^0.3.1": - "integrity" "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=" - "resolved" "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz" - "version" "0.3.1" +stream-parser@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz" dependencies: - "debug" "2" + debug "2" -"string_decoder@^1.0.0", "string_decoder@~1.1.1": - "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" - "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - "version" "1.1.1" +string-hash@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" dependencies: - "safe-buffer" "~5.1.0" + call-bind "^1.0.2" + define-properties "^1.1.3" -"string_decoder@^1.1.1", "string_decoder@1.3.0": - "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" - "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - "version" "1.3.0" +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" dependencies: - "safe-buffer" "~5.2.0" + call-bind "^1.0.2" + define-properties "^1.1.3" -"string-hash@1.1.3": - "integrity" "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" - "resolved" "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz" - "version" "1.1.3" - -"string.prototype.trimend@^1.0.4": - "integrity" "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==" - "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" - "version" "1.0.4" +string_decoder@1.3.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" + safe-buffer "~5.2.0" -"string.prototype.trimstart@^1.0.4": - "integrity" "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==" - "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" - "version" "1.0.4" +string_decoder@^1.0.0, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.3" + safe-buffer "~5.1.0" -"strip-ansi@6.0.0": - "integrity" "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" - "version" "6.0.0" +strip-ansi@6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" dependencies: - "ansi-regex" "^5.0.0" + ansi-regex "^5.0.0" -"styled-jsx@4.0.1": - "integrity" "sha512-Gcb49/dRB1k8B4hdK8vhW27Rlb2zujCk1fISrizCcToIs+55B4vmUM0N9Gi4nnVfFZWe55jRdWpAqH1ldAKWvQ==" - "resolved" "https://registry.npmjs.org/styled-jsx/-/styled-jsx-4.0.1.tgz" - "version" "4.0.1" +styled-jsx@4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/styled-jsx/-/styled-jsx-4.0.1.tgz" dependencies: "@babel/plugin-syntax-jsx" "7.14.5" "@babel/types" "7.15.0" - "convert-source-map" "1.7.0" - "loader-utils" "1.2.3" - "source-map" "0.7.3" - "string-hash" "1.1.3" - "stylis" "3.5.4" - "stylis-rule-sheet" "0.0.10" + convert-source-map "1.7.0" + loader-utils "1.2.3" + source-map "0.7.3" + string-hash "1.1.3" + stylis "3.5.4" + stylis-rule-sheet "0.0.10" -"stylis-rule-sheet@0.0.10": - "integrity" "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" - "resolved" "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz" - "version" "0.0.10" +stylis-rule-sheet@0.0.10: + version "0.0.10" + resolved "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz" -"stylis@^3.5.0", "stylis@3.5.4": - "integrity" "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" - "resolved" "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz" - "version" "3.5.4" +stylis@3.5.4: + version "3.5.4" + resolved "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz" -"supports-color@^5.3.0": - "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - "version" "5.5.0" +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" dependencies: - "has-flag" "^3.0.0" + has-flag "^3.0.0" -"supports-color@^7.1.0": - "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - "version" "7.2.0" +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" dependencies: - "has-flag" "^4.0.0" + has-flag "^4.0.0" -"supports-color@^8.0.0": - "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - "version" "8.1.1" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" dependencies: - "has-flag" "^4.0.0" + has-flag "^4.0.0" -"swr@^0.5.5": - "integrity" "sha512-Bmx3L4geMZjYT5S2Z6EE6/5Cx6v1Ka0LhqZKq8d6WL2eu9y6gHWz3dUzfIK/ymZVHVfwT/EweFXiYGgfifei3w==" - "resolved" "https://registry.npmjs.org/swr/-/swr-0.5.6.tgz" - "version" "0.5.6" +swr@^0.5.5: + version "0.5.6" + resolved "https://registry.npmjs.org/swr/-/swr-0.5.6.tgz" dependencies: - "dequal" "2.0.2" + dequal "2.0.2" -"timers-browserify@^2.0.4", "timers-browserify@2.0.12": - "integrity" "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==" - "resolved" "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz" - "version" "2.0.12" +timers-browserify@2.0.12, timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz" dependencies: - "setimmediate" "^1.0.4" + setimmediate "^1.0.4" -"to-arraybuffer@^1.0.0": - "integrity" "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - "resolved" "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" - "version" "1.0.1" +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" -"to-fast-properties@^2.0.0": - "integrity" "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - "version" "2.0.0" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" -"to-regex-range@^5.0.1": - "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" - "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - "version" "5.0.1" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" dependencies: - "is-number" "^7.0.0" + is-number "^7.0.0" -"toidentifier@1.0.0": - "integrity" "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - "resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" - "version" "1.0.0" +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" -"tr46@^1.0.1": - "integrity" "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=" - "resolved" "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz" - "version" "1.0.1" +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz" dependencies: - "punycode" "^2.1.0" + punycode "^2.1.0" -"tr46@~0.0.3": - "integrity" "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - "resolved" "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - "version" "0.0.3" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" -"ts-pnp@^1.1.6": - "integrity" "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==" - "resolved" "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz" - "version" "1.2.0" +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz" -"tslib@^2.3.1": - "integrity" "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" - "version" "2.3.1" +tslib@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" -"tty-browserify@0.0.0": - "integrity" "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - "resolved" "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" - "version" "0.0.0" +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" -"tty-browserify@0.0.1": - "integrity" "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" - "resolved" "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz" - "version" "0.0.1" +tty-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz" -"type-fest@^0.7.1": - "integrity" "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==" - "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" - "version" "0.7.1" +type-fest@^0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" -"type@^1.0.1": - "integrity" "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - "resolved" "https://registry.npmjs.org/type/-/type-1.2.0.tgz" - "version" "1.2.0" +type@^1.0.1: + version "1.2.0" + resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" -"type@^2.5.0": - "integrity" "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==" - "resolved" "https://registry.npmjs.org/type/-/type-2.6.0.tgz" - "version" "2.6.0" +type@^2.5.0: + version "2.6.0" + resolved "https://registry.npmjs.org/type/-/type-2.6.0.tgz" -"typedarray-to-buffer@^3.1.5": - "integrity" "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==" - "resolved" "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" - "version" "3.1.5" +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" dependencies: - "is-typedarray" "^1.0.0" + is-typedarray "^1.0.0" -"unbox-primitive@^1.0.0": - "integrity" "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==" - "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" - "version" "1.0.1" +unbox-primitive@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" dependencies: - "function-bind" "^1.1.1" - "has-bigints" "^1.0.1" - "has-symbols" "^1.0.2" - "which-boxed-primitive" "^1.0.2" + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" -"unpipe@1.0.0": - "integrity" "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - "version" "1.0.0" +unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" -"url@^0.11.0": - "integrity" "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=" - "resolved" "https://registry.npmjs.org/url/-/url-0.11.0.tgz" - "version" "0.11.0" +url@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" dependencies: - "punycode" "1.3.2" - "querystring" "0.2.0" + punycode "1.3.2" + querystring "0.2.0" -"use-subscription@1.5.1": - "integrity" "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==" - "resolved" "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz" - "version" "1.5.1" +use-subscription@1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz" dependencies: - "object-assign" "^4.1.1" + object-assign "^4.1.1" -"utf-8-validate@^5.0.2": - "integrity" "sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==" - "resolved" "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.8.tgz" - "version" "5.0.8" +utf-8-validate@^5.0.2: + version "5.0.8" + resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.8.tgz" dependencies: - "node-gyp-build" "^4.3.0" + node-gyp-build "^4.3.0" -"util-deprecate@^1.0.1", "util-deprecate@~1.0.1": - "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - "version" "1.0.2" +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" -"util@^0.11.0": - "integrity" "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==" - "resolved" "https://registry.npmjs.org/util/-/util-0.11.1.tgz" - "version" "0.11.1" +util@0.10.3: + version "0.10.3" + resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz" dependencies: - "inherits" "2.0.3" + inherits "2.0.1" -"util@^0.12.0", "util@0.12.4": - "integrity" "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==" - "resolved" "https://registry.npmjs.org/util/-/util-0.12.4.tgz" - "version" "0.12.4" +util@0.12.4, util@^0.12.0: + version "0.12.4" + resolved "https://registry.npmjs.org/util/-/util-0.12.4.tgz" dependencies: - "inherits" "^2.0.3" - "is-arguments" "^1.0.4" - "is-generator-function" "^1.0.7" - "is-typed-array" "^1.1.3" - "safe-buffer" "^5.1.2" - "which-typed-array" "^1.1.2" + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" -"util@0.10.3": - "integrity" "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=" - "resolved" "https://registry.npmjs.org/util/-/util-0.10.3.tgz" - "version" "0.10.3" +util@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz" dependencies: - "inherits" "2.0.1" + inherits "2.0.3" -"vm-browserify@^1.0.1", "vm-browserify@1.1.2": - "integrity" "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" - "resolved" "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" - "version" "1.1.2" +vm-browserify@1.1.2, vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" -"watchpack@2.1.1": - "integrity" "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==" - "resolved" "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz" - "version" "2.1.1" +watchpack@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz" dependencies: - "glob-to-regexp" "^0.4.1" - "graceful-fs" "^4.1.2" + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" -"webidl-conversions@^3.0.0": - "integrity" "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - "version" "3.0.1" +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" -"webidl-conversions@^4.0.2": - "integrity" "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz" - "version" "4.0.2" +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz" -"websocket@^1.0.34": - "integrity" "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==" - "resolved" "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz" - "version" "1.0.34" +websocket@^1.0.34: + version "1.0.34" + resolved "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz" dependencies: - "bufferutil" "^4.0.1" - "debug" "^2.2.0" - "es5-ext" "^0.10.50" - "typedarray-to-buffer" "^3.1.5" - "utf-8-validate" "^5.0.2" - "yaeti" "^0.0.6" + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.50" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" -"whatwg-url@^5.0.0": - "integrity" "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=" - "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - "version" "5.0.0" +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" dependencies: - "tr46" "~0.0.3" - "webidl-conversions" "^3.0.0" + tr46 "~0.0.3" + webidl-conversions "^3.0.0" -"whatwg-url@^7.0.0": - "integrity" "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==" - "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz" - "version" "7.1.0" +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz" dependencies: - "lodash.sortby" "^4.7.0" - "tr46" "^1.0.1" - "webidl-conversions" "^4.0.2" + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" -"which-boxed-primitive@^1.0.2": - "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==" - "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - "version" "1.0.2" +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" dependencies: - "is-bigint" "^1.0.1" - "is-boolean-object" "^1.1.0" - "is-number-object" "^1.0.4" - "is-string" "^1.0.5" - "is-symbol" "^1.0.3" + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" -"which-typed-array@^1.1.2": - "integrity" "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==" - "resolved" "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz" - "version" "1.1.4" +which-typed-array@^1.1.2: + version "1.1.4" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz" dependencies: - "available-typed-arrays" "^1.0.2" - "call-bind" "^1.0.0" - "es-abstract" "^1.18.0-next.1" - "foreach" "^2.0.5" - "function-bind" "^1.1.1" - "has-symbols" "^1.0.1" - "is-typed-array" "^1.1.3" + available-typed-arrays "^1.0.2" + call-bind "^1.0.0" + es-abstract "^1.18.0-next.1" + foreach "^2.0.5" + function-bind "^1.1.1" + has-symbols "^1.0.1" + is-typed-array "^1.1.3" -"xtend@^4.0.0", "xtend@^4.0.2": - "integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" - "version" "4.0.2" +xtend@^4.0.0, xtend@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" -"yaeti@^0.0.6": - "integrity" "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" - "resolved" "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz" - "version" "0.0.6" +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz" -"yocto-queue@^0.1.0": - "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" - "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - "version" "0.1.0" +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" diff --git a/examples/nuxtjs-user-management/package-lock.json b/examples/nuxtjs-user-management/package-lock.json index 5a85bdd16f2..44e7e28baaa 100644 --- a/examples/nuxtjs-user-management/package-lock.json +++ b/examples/nuxtjs-user-management/package-lock.json @@ -6191,9 +6191,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minipass": { "version": "3.1.3", diff --git a/examples/react-user-management/package-lock.json b/examples/react-user-management/package-lock.json index bad89cd2686..9b7fc01ffc0 100644 --- a/examples/react-user-management/package-lock.json +++ b/examples/react-user-management/package-lock.json @@ -13123,9 +13123,9 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/minipass": { "version": "3.1.3", @@ -31734,9 +31734,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minipass": { "version": "3.1.3", diff --git a/examples/remix-auth/package-lock.json b/examples/remix-auth/package-lock.json index c4f2f01f11a..ac8f9b51a3d 100644 --- a/examples/remix-auth/package-lock.json +++ b/examples/remix-auth/package-lock.json @@ -3892,9 +3892,9 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "node_modules/minimist-options": { @@ -8442,9 +8442,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "minimist-options": { diff --git a/examples/sveltejs-todo-list/package-lock.json b/examples/sveltejs-todo-list/package-lock.json index 77fd862a51c..5efacc0d0bb 100644 --- a/examples/sveltejs-todo-list/package-lock.json +++ b/examples/sveltejs-todo-list/package-lock.json @@ -9762,9 +9762,9 @@ "dev": true }, "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "version": "2.29.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", + "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==", "dev": true }, "ms": { diff --git a/examples/vue3-ts-todo-list/package-lock.json b/examples/vue3-ts-todo-list/package-lock.json index 5dd1a045701..895196f1ff2 100644 --- a/examples/vue3-ts-todo-list/package-lock.json +++ b/examples/vue3-ts-todo-list/package-lock.json @@ -9524,9 +9524,9 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "node_modules/minipass": { @@ -23742,9 +23742,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "minipass": { diff --git a/examples/with-stencil/package-lock.json b/examples/with-stencil/package-lock.json index 4f85f9a959f..4bb99785c4c 100644 --- a/examples/with-stencil/package-lock.json +++ b/examples/with-stencil/package-lock.json @@ -5415,9 +5415,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "mixin-deep": { diff --git a/studio/.nvmrc b/studio/.nvmrc new file mode 100644 index 00000000000..8351c19397f --- /dev/null +++ b/studio/.nvmrc @@ -0,0 +1 @@ +14 diff --git a/studio/components/interfaces/App/RouteValidationWrapper.tsx b/studio/components/interfaces/App/RouteValidationWrapper.tsx index a9c35f14893..c8d5dc8e3e9 100644 --- a/studio/components/interfaces/App/RouteValidationWrapper.tsx +++ b/studio/components/interfaces/App/RouteValidationWrapper.tsx @@ -15,7 +15,30 @@ const RouteValidationWrapper: FC = ({ children }) => { const projectRef = router.query.ref const orgSlug = router.query.slug + /** + * Array of urls/routes that should be ignored + */ + const excemptUrls: string[] = [ + // project creation route, allows the page to self determine it's own route, it will redirect to the first org + // or prompt the user to create an organaization + // this is used by database.dev, usually as /new/new-project + '/new/[slug]', + ] + + /** + * Map through all the urls that are excluded + * from route validation check + * + * @returns a boolean + */ + function isExceptUrl() { + return excemptUrls.includes(router?.pathname) + } + useEffect(() => { + // check if current route is excempted from route validation check + if (isExceptUrl()) return + if (orgsInitialized && orgSlug) { // Check validity of organization that user is trying to access const organizations = app.organizations.list() @@ -30,6 +53,9 @@ const RouteValidationWrapper: FC = ({ children }) => { }, [orgsInitialized]) useEffect(() => { + // check if current route is excempted from route validation check + if (isExceptUrl()) return + if (projectsInitialized && projectRef) { // Check validity of project that the user is trying to access const projects = app.projects.list() diff --git a/studio/components/interfaces/Home/ProjectUsage.tsx b/studio/components/interfaces/Home/ProjectUsage.tsx index a22236c13cc..1e514f86353 100644 --- a/studio/components/interfaces/Home/ProjectUsage.tsx +++ b/studio/components/interfaces/Home/ProjectUsage.tsx @@ -27,7 +27,13 @@ import { USAGE_COLORS } from 'components/ui/Charts/Charts.constants' import { EndpointResponse, PathsDatum, StatusCodesDatum } from './ChartData.types' const CHART_INTERVALS = [ - { key: 'minutely', label: '60 minutes', startValue: 1, startUnit: 'hour', format: 'MMM D, h:mma' }, + { + key: 'minutely', + label: '60 minutes', + startValue: 1, + startUnit: 'hour', + format: 'MMM D, h:mma', + }, { key: 'hourly', label: '24 hours', startValue: 24, startUnit: 'hour', format: 'MMM D, ha' }, { key: 'daily', label: '7 days', startValue: 7, startUnit: 'day', format: 'MMM D' }, ] @@ -37,7 +43,6 @@ interface Props { const ProjectUsage: FC = ({ project }) => { const logsUsageCodesPaths = useFlag('logsUsageCodesPaths') - const logsUsageChartIntervals = useFlag('logsUsageChartIntervals') const [interval, setInterval] = useState('hourly') const router = useRouter() const { ref } = router.query @@ -59,9 +64,7 @@ const ProjectUsage: FC = ({ project }) => { get ) - const selectedInterval = logsUsageChartIntervals - ? CHART_INTERVALS.find((i) => i.key === interval) || CHART_INTERVALS[1] - : CHART_INTERVALS[2] + const selectedInterval = CHART_INTERVALS.find((i) => i.key === interval) || CHART_INTERVALS[1] const startDate = dayjs() .subtract(selectedInterval.startValue, selectedInterval.startUnit) .format(DATE_FORMAT) @@ -85,25 +88,23 @@ const ProjectUsage: FC = ({ project }) => { return (
- {logsUsageChartIntervals && ( - - {CHART_INTERVALS.map((i) => ( - - {i.label} - - ))} - - } - > - - - )} + + {CHART_INTERVALS.map((i) => ( + + {i.label} + + ))} + + } + > + + Statistics for past {selectedInterval.label} diff --git a/studio/components/interfaces/Settings/Logs/Logs.constants.ts b/studio/components/interfaces/Settings/Logs/Logs.constants.ts index b346c5e9d80..75577262633 100644 --- a/studio/components/interfaces/Settings/Logs/Logs.constants.ts +++ b/studio/components/interfaces/Settings/Logs/Logs.constants.ts @@ -1,4 +1,4 @@ -import { LogTemplate } from '.' +import { FilterTableSet, LogTemplate } from '.' export const TEMPLATES: LogTemplate[] = [ { @@ -185,58 +185,21 @@ export const LOG_TYPE_LABEL_MAPPING: { [k: string]: string } = { database: 'Database', } -export const genDefaultQuery = (table: LogsTableName, where: string | undefined) => { - switch (table) { - case 'edge_logs': - return `select id, timestamp, event_message, metadata, request, response, request.method, request.path, response.status_code -from ${table} -cross join unnest(metadata) as m -cross join unnest(m.request) as request -cross join unnest(m.response) as response -${where} -limit 100 -` - break - case 'postgres_logs': - return `select postgres_logs.timestamp, id, event_message, metadata, metadataparsed.error_severity from ${table} -cross join unnest(metadata) as m -cross join unnest(m.parsed) as metadataparsed -${where} -limit 100 -` - break - case 'function_logs': - return `select id, ${table}.timestamp, event_message, metadata.event_type, metadata.function_id, metadata.level, metadata from ${table} -cross join unnest(metadata) as metadata -${where} -limit 100 - ` - break - - case 'function_edge_logs': - return `select id, ${table}.timestamp, event_message, response.status_code, response, request, request.method, m.function_id, m.execution_time_ms, m.deployment_id, m.version from ${table} -cross join unnest(metadata) as m -cross join unnest(m.response) as response -cross join unnest(m.request) as request -${where} -limit 100 -` - - default: - return "" - break - } +const _SQL_FILTER_COMMON = { + 'search_query': (value: string) => `regexp_contains(event_message, '${value}')` } export const SQL_FILTER_TEMPLATES: any = { postgres_logs: { + ..._SQL_FILTER_COMMON, 'severity.error': `metadataParsed.error_severity in ('ERROR', 'FATAL', 'PANIC')`, 'severity.noError': `metadataParsed.error_severity not in ('ERROR', 'FATAL', 'PANIC')`, 'severity.log': `metadataParsed.error_severity = 'LOG'`, }, edge_logs: { + ..._SQL_FILTER_COMMON, 'status_code.error': `response.status_code between 500 and 599`, 'status_code.success': `response.status_code between 200 and 299`, 'status_code.warning': `response.status_code between 400 and 499`, @@ -252,11 +215,13 @@ export const SQL_FILTER_TEMPLATES: any = { 'method.options': `request.method = 'OPTIONS'`, }, function_edge_logs: { + ..._SQL_FILTER_COMMON, 'status_code.error': `response.status_code between 500 and 599`, 'status_code.success': `response.status_code between 200 and 299`, 'status_code.warning': `response.status_code between 400 and 499`, }, function_logs: { + ..._SQL_FILTER_COMMON, 'severity.error': `metadata.level = 'error'`, 'severity.notError': `metadata.level != 'error'`, 'severity.log': `metadata.level = 'log'`, @@ -265,12 +230,6 @@ export const SQL_FILTER_TEMPLATES: any = { }, } -// export const genDefaultQuery = (table: string, where: string = ''): string => `SELECT -// id, timestamp, event_message, metadata -// FROM -// ${table}${where ? ' WHERE\n ' + where : ''} -// LIMIT 100 -// ` // export const cleanQuery = (str: string) => str.replaceAll(/\n/g, ' ') export const cleanQuery = (str: string) => str.replace(/\n/g, ' ') // .replace(/\n.*\-\-.*(\n)?$?/, "") @@ -309,23 +268,7 @@ export const genQueryParams = (params: { [k: string]: string }) => { const qs = new URLSearchParams(params).toString() return qs } - -interface Filter { - label: string - key: string - options: { - key: string - label: string - description?: string - }[] -} -type FilterOptions = { - [table: string]: { - [filterName: string]: Filter - } -} - -export const FILTER_OPTIONS: FilterOptions = { +export const FILTER_OPTIONS: FilterTableSet = { // Postgres logs postgres_logs: { severity: { diff --git a/studio/components/interfaces/Settings/Logs/Logs.filter.tsx b/studio/components/interfaces/Settings/Logs/Logs.filter.tsx deleted file mode 100644 index 1339850c555..00000000000 --- a/studio/components/interfaces/Settings/Logs/Logs.filter.tsx +++ /dev/null @@ -1,141 +0,0 @@ -import { Button, Checkbox, Form, Popover } from '@supabase/ui' -import { pluckObjectFields } from 'lib/helpers' -import { useState } from 'react' - -export const LogsFilter = ({ options, filtersState, dispatchFilters, classes }: any) => { - const [open, setOpen] = useState(false) - - function handleReset() { - // console.log('handleReset ran!') - const empty = { - [options.key]: [], - } - - dispatchFilters({ ...empty }) - setOpen(!open) - } - - // console.log('filters', filters) - - // console.log('item in filter', options) - // console.log('options.key', options.key) - - const filteredKey = filtersState[options.key] - - // loop through options in saved filters - // and check if any options are active - function checkIsActive() { - let active = false - options.options.map((x: any) => { - if (filteredKey && filteredKey.includes(x.key)) { - active = true - } - }) - return active - } - - const isActive = checkIsActive() - - function initialValues() { - let compiledOptions = {} - - options.options.map((x: any) => { - compiledOptions = { - ...compiledOptions, - [x.key]: filteredKey && filteredKey.includes(x.key) ? true : false, - } - }) - - return compiledOptions - } - - return ( -
- setOpen(!open)} - overlay={ - <> -
{ - setSubmitting(true) - setOpen(false) - - // console.log('values in Logs.filter submit', values) - - const payload: any = { - [options.key]: [], - } - - Object.keys(values).map((filterKey) => { - if (values[filterKey]) { - payload[options.key].push(filterKey) - } - }) - - console.log('payload', payload) - // console.log('submit form ran') - dispatchFilters({ ...payload }) - // handleReset() - }} - > - {({ isSubmitting }: { isSubmitting: boolean }) => ( - <> -
- {options.options.map((x: any, i: number) => { - return ( - <> - - {i !== options.options.length - 1 && } - - ) - })} -
-
- - -
- - )} -
- - } - portalled - showClose - side="bottom" - > - -
-
- ) -} diff --git a/studio/components/interfaces/Settings/Logs/Logs.helpers.ts b/studio/components/interfaces/Settings/Logs/Logs.helpers.ts deleted file mode 100644 index 244c19cd5e1..00000000000 --- a/studio/components/interfaces/Settings/Logs/Logs.helpers.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { LogsTableName, SQL_FILTER_TEMPLATES } from './Logs.constants' -import { FilterObject, Override } from './Logs.types' - -export function filterSqlWhereBuilder( - filters: FilterObject | any, - table: LogsTableName, - override?: Override, - search?: string -) { - // remove any filter arrays that are empty - const filtersSanitized: any = Object.values(filters).filter((x: any) => x && x.length > 0) - - const keys = Object.keys(filters) - - const hasOverride = override && override.value && override.key - // build array of where statements - // first item is `where` if there are any filters - let whereArray: string[] = - (filtersSanitized.length > 0 || hasOverride) && !search ? ['where'] : search ? ['and'] : [] - - if (filtersSanitized.length === 0 && !hasOverride) return whereArray - - if (hasOverride) { - // count = +1 - const sql = `(${override?.key}='${override?.value}')` - whereArray.push(sql) - if (filtersSanitized.length > 0) whereArray.push('and') - } - - if (filtersSanitized.length === 0) return whereArray - - keys.map((x: string, i) => { - let count = 0 - // do not parse empty key - if (!x) return - - const filterKeyArray: string[] = [] - - filters[x].map((value: string, i: number) => { - // first line should be WHERE - const last = i === filters[x].length - 1 - - if (count === 0) { - count = +1 - // the first argument begins with a `(` - // if this is also the last argument, it is closed with a `)` - const sql = `( ${SQL_FILTER_TEMPLATES[table][`${x}.${value}`]}${last ? ' ) ' : ''}` - filterKeyArray.push(sql) - return sql - } else { - count = +1 - // remaining lines use `or` as standard - // if this is also the last argument, it is closed with a `)` - const sql = ` or ${SQL_FILTER_TEMPLATES[table][`${x}.${value}`]}${last ? ' ) ' : ''}` - filterKeyArray.push(sql) - return sql - } - }) - - whereArray.push(...filterKeyArray) - - // if there are multiple filters in an 'and' sequence - // then `and` is inserted between them - if (filtersSanitized.length > 0 && i < filtersSanitized.length - 1) { - whereArray.push(' and ') - } - - return filterKeyArray - }) - return whereArray -} - -export function filterReducer(state: FilterObject, action: any) { - const oldState = { ...state } - const newState = { ...oldState, ...action } - - return newState -} diff --git a/studio/components/interfaces/Settings/Logs/Logs.types.ts b/studio/components/interfaces/Settings/Logs/Logs.types.ts index 7112ce59153..2d2036353d8 100644 --- a/studio/components/interfaces/Settings/Logs/Logs.types.ts +++ b/studio/components/interfaces/Settings/Logs/Logs.types.ts @@ -65,6 +65,28 @@ export interface FilterObject { te?: string } + +export interface FilterSet { + label: string + key: string + options: FilterOption[] +} +export interface FilterOption { + key: string + label: string + description?: string +} + +export type FilterTableSet = { + [table: string]: { + [filterName: string]: FilterSet + } +} + +export interface Filters { + [key: string]: string | string[] | boolean | undefined | Filters +} + export type Override = { key: string value: string | string[] | undefined diff --git a/studio/components/interfaces/Settings/Logs/Logs.utils.ts b/studio/components/interfaces/Settings/Logs/Logs.utils.ts new file mode 100644 index 00000000000..3dac12eca1b --- /dev/null +++ b/studio/components/interfaces/Settings/Logs/Logs.utils.ts @@ -0,0 +1,135 @@ +import { get } from "lodash" +import { Filters, LogsTableName, SQL_FILTER_TEMPLATES } from "." + +/** + * Recursively retrieve all nested object key paths. + * + * TODO: move to utils + * + * @param obj any object + * @param parent a string representing the parent key + * @returns string[] all dot paths for keys. + */ +const getDotKeys = (obj: { [k: string]: unknown }, parent?: string): string[] => { + const keys = Object.keys(obj).filter(k => obj[k]) + return keys.flatMap(k => { + const currKey = parent ? `${parent}.${k}` : k + if (typeof obj[k] === 'object') { + return getDotKeys(obj[k] as any, currKey) + } else { + return [currKey] + } + }) +} + +/** + * Root keys in the filter object are considered to be AND filters. + * Nested keys under a root key are considered to be OR filters. + * + * For example: + * ``` + * {my_value: 'something', nested: {id: 123, test: 123 }} + * ``` + * This would be converted into `WHERE (my_value = 'something') and (id = 123 or test = 123) + * + * The template of the filter determines the actual filter statement. If no template is provided, a generic equality statement will be used. + * This only applies for root keys of the filter. + * For example: + * ``` + * {'my.nested.value': 123} + * ``` + * with no template, it will be converted into `WHERE (my.nested.value = 123) + * + * @returns a whewhere statement with WHERE clause. + */ +const _genWhereStatement = (table: LogsTableName, filters: Filters) => { + const keys = Object.keys(filters) + const filterTemplates = SQL_FILTER_TEMPLATES[table] + const _resolveTemplateToStatement = (dotKey: string): string | null => { + const template = filterTemplates[dotKey] + const value = get(filters, dotKey) + if (value !== undefined && typeof template === 'function') { + return template(value) + } else if (template === undefined) { + // resolve unknwon filters (possibly from filter overrides) + // no template, set a default + if (typeof value === 'string') { + return `${dotKey} = '${value}'` + } else { + return `${dotKey} = ${value}` + } + } else if (value === undefined && typeof template === 'function') { + return null + } else { + return template + } + } + + const statement = keys.map(rootKey => { + if (typeof filters[rootKey] === 'object') { + // join all statements with an OR + const nestedStatement = getDotKeys(filters[rootKey] as Filters, rootKey).map(_resolveTemplateToStatement).filter(Boolean).join(" or ") + return `(${nestedStatement})` + } else { + const nestedStatement = _resolveTemplateToStatement(rootKey) + if (nestedStatement === null) return null + return `(${nestedStatement})` + } + + }).filter(Boolean) + // join all root statements with AND + .join(" and ") + + if (statement) { + return 'where ' + statement + } else { + return '' + } +} + +export const genDefaultQuery = (table: LogsTableName, filters: Filters) => { + const where = _genWhereStatement(table, filters) + + switch (table) { + case 'edge_logs': + return `select id, timestamp, event_message, metadata, request, response, request.method, request.path, response.status_code + from ${table} + cross join unnest(metadata) as m + cross join unnest(m.request) as request + cross join unnest(m.response) as response + ${where} + limit 100 + ` + break + + case 'postgres_logs': + return `select postgres_logs.timestamp, id, event_message, metadata, metadataparsed.error_severity from ${table} + cross join unnest(metadata) as m + cross join unnest(m.parsed) as metadataparsed + ${where} + limit 100 + ` + break + + case 'function_logs': + return `select id, ${table}.timestamp, event_message, metadata.event_type, metadata.function_id, metadata.level, metadata from ${table} + cross join unnest(metadata) as metadata + ${where} + limit 100 + ` + break + + case 'function_edge_logs': + return `select id, ${table}.timestamp, event_message, response.status_code, response, request, request.method, m.function_id, m.execution_time_ms, m.deployment_id, m.version from ${table} + cross join unnest(metadata) as m + cross join unnest(m.response) as response + cross join unnest(m.request) as request + ${where} + limit 100 + ` + + default: + return "" + break + } +} \ No newline at end of file diff --git a/studio/components/interfaces/Settings/Logs/LogsFilterPopover.tsx b/studio/components/interfaces/Settings/Logs/LogsFilterPopover.tsx new file mode 100644 index 00000000000..3825fd1817a --- /dev/null +++ b/studio/components/interfaces/Settings/Logs/LogsFilterPopover.tsx @@ -0,0 +1,96 @@ +import { Button, Checkbox, Form, Popover } from '@supabase/ui' +import React, { useState } from 'react' +import { Filters, FilterSet } from '.' + +interface Props { + options: FilterSet + filters: Filters + onFiltersChange: (filters: Filters) => void + buttonClassName: string +} + +const LogsFilterPopover: React.FC = ({ + options, + filters, + onFiltersChange, + buttonClassName, +}) => { + const [open, setOpen] = useState(false) + + const handleReset = () => { + onFiltersChange({}) + setOpen(false) + } + const handleToggle = () => setOpen(!open) + const checkIsActive = () => { + const filter = filters[options.key] + if (typeof filter === 'object' && Object.values(filter).some(Boolean)) { + return true + } + return false + } + + return ( + { + setSubmitting(true) + onFiltersChange(values) + setOpen(false) + }} + > + {({ isSubmitting }: { isSubmitting: boolean }) => ( + <> +
+ {options.options.map((x, i: number) => ( + + + {i !== options.options.length - 1 && } + + ))} +
+
+ + +
+ + )} + + } + portalled + showClose + side="bottom" + > + +
+ ) +} + +export default LogsFilterPopover diff --git a/studio/components/interfaces/Settings/Logs/LogsNavigation.tsx b/studio/components/interfaces/Settings/Logs/LogsNavigation.tsx index 8432c76b892..6885ea51601 100644 --- a/studio/components/interfaces/Settings/Logs/LogsNavigation.tsx +++ b/studio/components/interfaces/Settings/Logs/LogsNavigation.tsx @@ -2,21 +2,23 @@ import { Tabs } from '@supabase/ui' import { useFlag } from 'hooks' import { useRouter } from 'next/router' +interface TabItem { + label: string + id: string +} const LogsNavigation = () => { const router = useRouter() const activeRoute = router.pathname.split('/')[4] const { ref } = router.query const indexRoute = 'query' - const logsSourcesPage = useFlag('logsSourcesPage') const logsSavedQueries = useFlag('logsSavedQueries') const tabs = [ { id: 'query', label: 'Query' }, - logsSourcesPage ? { id: 'sources', label: 'Sources' } : null, logsSavedQueries ? { id: 'saved', label: 'Saved' } : null, { id: 'templates', label: 'Templates' }, - ].filter(Boolean) + ].filter(Boolean) as TabItem[] return ( { router.push(`/project/${ref}/logs-explorer/${e === indexRoute ? '' : e}`) }} > - {/* TODO: type properly */} - {(tabs as any[]).map(({ id, label }) => ( - + {tabs.map((item) => ( + ))} ) diff --git a/studio/components/interfaces/Settings/Logs/LogsPreviewer.tsx b/studio/components/interfaces/Settings/Logs/LogsPreviewer.tsx index 1656b5a720d..acf657d4900 100644 --- a/studio/components/interfaces/Settings/Logs/LogsPreviewer.tsx +++ b/studio/components/interfaces/Settings/Logs/LogsPreviewer.tsx @@ -1,14 +1,6 @@ import React, { useEffect, useReducer, useState } from 'react' import { useRouter } from 'next/router' -import { - Typography, - IconLoader, - IconAlertCircle, - IconRewind, - Button, - Card, - Input, -} from '@supabase/ui' +import { Typography, IconAlertCircle, IconRewind, Button, Card, Input } from '@supabase/ui' import { LogTable, @@ -16,10 +8,10 @@ import { TEMPLATES, LogSearchCallback, LogsTableName, - filterSqlWhereBuilder, - filterReducer, QueryType, LogEventChart, + FilterObject, + Filters, } from 'components/interfaces/Settings/Logs' import dayjs from 'dayjs' import useLogsPreview from 'hooks/analytics/useLogsPreview' @@ -27,7 +19,6 @@ import PreviewFilterPanel from 'components/interfaces/Settings/Logs/PreviewFilte import { LOGS_TABLES } from './Logs.constants' import { Override } from './Logs.types' -import ShimmeringLoader from 'components/ui/ShimmeringLoader' import ShimmerLine from 'components/ui/ShimmerLine' import LoadingOpacity from 'components/ui/LoadingOpacity' @@ -44,14 +35,14 @@ import LoadingOpacity from 'components/ui/LoadingOpacity' interface Props { projectRef: string queryType: QueryType - override?: Override + filterOverride?: Filters condensedLayout?: boolean tableName?: LogsTableName } export const LogsPreviewer: React.FC = ({ projectRef, queryType, - override, + filterOverride, condensedLayout = false, tableName, }) => { @@ -59,22 +50,12 @@ export const LogsPreviewer: React.FC = ({ const { s, te, ts } = router.query const [showChart, setShowChart] = useState(true) - const [whereFilters, dispatchWhereFilters] = useReducer(filterReducer, {}) - const table = !tableName ? LOGS_TABLES[queryType] : tableName const [ { error, logData, params, newCount, filters, isLoading, oldestTimestamp }, { loadOlder, setFilters, refresh, setTo, setFrom }, - ] = useLogsPreview(projectRef as string, table, { - initialFilters: { search_query: s as string }, - whereStatementFactory: (filterObj) => `${ - filterObj.search_query - ? `where REGEXP_CONTAINS(event_message, '${filterObj.search_query}')` - : '' - } - ${filterSqlWhereBuilder(whereFilters, table, override, filterObj.search_query).join('\n')}`, - }) + ] = useLogsPreview(projectRef as string, table, filterOverride) useEffect(() => { setFilters((prev) => ({ ...prev, search_query: s as string })) @@ -91,14 +72,9 @@ export const LogsPreviewer: React.FC = ({ }, [s, te, ts]) const onSelectTemplate = (template: LogTemplate) => { - setFilters((prev) => ({ ...prev, search_query: template.searchString })) + setFilters((prev: any) => ({ ...prev, search_query: template.searchString })) } - useEffect(() => { - // runs when any of the filters change - handleRefresh() - }, [whereFilters]) - const handleRefresh = () => { refresh() router.push({ @@ -135,7 +111,6 @@ export const LogsPreviewer: React.FC = ({ }, }) } - return (
= ({ )} onRefresh={handleRefresh} onSearch={handleSearch} - defaultSearchValue={filters.search_query} + defaultSearchValue={filters.search_query as string} defaultToValue={ params.timestamp_end ? dayjs(Number(params.timestamp_end) / 1000).toISOString() : '' } @@ -162,8 +137,8 @@ export const LogsPreviewer: React.FC = ({ router.push(`/project/${projectRef}/logs-explorer?q=${encodeURIComponent(params.rawSql)}`) }} onSelectTemplate={onSelectTemplate} - dispatchWhereFilters={dispatchWhereFilters} - whereFilters={whereFilters} + filters={filters} + onFiltersChange={setFilters} table={table} condensedLayout={condensedLayout} isShowingEventChart={showChart} @@ -182,7 +157,7 @@ export const LogsPreviewer: React.FC = ({ { - handleSearch({ query: filters.search_query, toMicro: timestampMicro }) + handleSearch({ query: filters.search_query as string, toMicro: timestampMicro }) }} /> )} diff --git a/studio/components/interfaces/Settings/Logs/PreviewFilterPanel.tsx b/studio/components/interfaces/Settings/Logs/PreviewFilterPanel.tsx index c5cbfd3f1fa..47cd0ce3ef8 100644 --- a/studio/components/interfaces/Settings/Logs/PreviewFilterPanel.tsx +++ b/studio/components/interfaces/Settings/Logs/PreviewFilterPanel.tsx @@ -9,11 +9,11 @@ import { IconEye, IconEyeOff, } from '@supabase/ui' -import { LogSearchCallback, LogTemplate } from '.' +import { Filters, LogSearchCallback, LogTemplate } from '.' import dayjs from 'dayjs' import utc from 'dayjs/plugin/utc' import { FILTER_OPTIONS, LogsTableName } from './Logs.constants' -import { LogsFilter } from './Logs.filter' +import LogsFilterPopover from './LogsFilterPopover' import DatePickers from './Logs.DatePickers' import CSVButton from 'components/ui/CSVButton' @@ -28,13 +28,13 @@ interface Props { onSearch?: LogSearchCallback onExploreClick?: () => void onSelectTemplate: (template: LogTemplate) => void - dispatchWhereFilters: (x: any) => void - whereFilters: any table: LogsTableName condensedLayout: Boolean isShowingEventChart: boolean onToggleEventChart: () => void csvData?: unknown[] + onFiltersChange: (filters: Filters) => void + filters: Filters } dayjs.extend(utc) @@ -51,13 +51,13 @@ const PreviewFilterPanel: FC = ({ defaultToValue = '', defaultFromValue = '', onExploreClick, - dispatchWhereFilters, - whereFilters: filters, - table, condensedLayout, isShowingEventChart, onToggleEventChart, csvData, + onFiltersChange, + filters, + table, }) => { const [search, setSearch] = useState('') @@ -174,12 +174,12 @@ const PreviewFilterPanel: FC = ({ } return ( - ) })} diff --git a/studio/components/interfaces/Settings/Logs/index.ts b/studio/components/interfaces/Settings/Logs/index.ts index f0c24f1ec94..a6ebf8dac2d 100644 --- a/studio/components/interfaces/Settings/Logs/index.ts +++ b/studio/components/interfaces/Settings/Logs/index.ts @@ -1,8 +1,8 @@ export * from './Logs.types' export * from './Logs.constants' -export * from './Logs.helpers' -export * from './Logs.filter' +export * from './Logs.utils' export { default as LogsSavedQueriesItem } from './Logs.SavedQueriesItem' export { default as LogsQueryPanel } from './LogsQueryPanel' export { default as LogTable } from './LogTable' export { default as LogEventChart } from './LogEventChart' +export { default as LogsFilterPopover } from "./LogsFilterPopover" \ No newline at end of file diff --git a/studio/components/layouts/ProjectLayout/NavigationBar/NavigationBar.utils.tsx b/studio/components/layouts/ProjectLayout/NavigationBar/NavigationBar.utils.tsx index 16ceb4efdc9..b34b1d6c3e6 100644 --- a/studio/components/layouts/ProjectLayout/NavigationBar/NavigationBar.utils.tsx +++ b/studio/components/layouts/ProjectLayout/NavigationBar/NavigationBar.utils.tsx @@ -82,12 +82,11 @@ export const generateProductRoutes = (ref: string, project?: ProjectBase): Route } export const generateOtherRoutes = (ref: string, project?: ProjectBase) => { - const logsExplorer = useFlag('logsExplorer') const isProjectBuilding = project?.status !== PROJECT_STATUS.ACTIVE_HEALTHY const buildingUrl = `/project/${ref}/building` return [ - ...(IS_PLATFORM && logsExplorer + ...(IS_PLATFORM ? [ { key: 'logsExplorer', diff --git a/studio/hooks/analytics/useLogsPreview.tsx b/studio/hooks/analytics/useLogsPreview.tsx index cfca0195216..070892622bd 100644 --- a/studio/hooks/analytics/useLogsPreview.tsx +++ b/studio/hooks/analytics/useLogsPreview.tsx @@ -1,6 +1,7 @@ import { cleanQuery, Count, + Filters, genCountQuery, genDefaultQuery, genQueryParams, @@ -15,50 +16,36 @@ import useSWRInfinite, { SWRInfiniteKeyLoader } from 'swr/infinite' import { API_URL } from 'lib/constants' import { get } from 'lib/common/fetch' -interface Data { +interface Data { logData: LogData[] error: string | Object | null newCount: number isLoading: boolean pageSize: number - filters: T + filters: Filters params: LogsEndpointParams oldestTimestamp?: string } -interface Handlers { +interface Handlers { loadOlder: () => void refresh: () => void - setFilters: Dispatch> + setFilters: (filters: Filters | ((previous: Filters) => Filters)) => void setFrom: (value: string) => void setTo: (value: string) => void } - -interface Options { - initialFilters: Filters - whereStatementFactory: WhereStatementFactory -} - -type WhereStatementFactory = (filters: T) => string - -function useLogsPreview( +function useLogsPreview( projectRef: string, table: LogsTableName, - opts?: Partial> -): [Data, Handlers] { - const options: Options = { - initialFilters: {} as Filters, - whereStatementFactory: () => '', - ...(opts ?? {}), - } - + filterOverride?: Filters +): [Data, Handlers] { const [latestRefresh, setLatestRefresh] = useState(new Date().toISOString()) - const [filters, setFilters] = useState(options.initialFilters) + const [filters, setFilters] = useState({ ...filterOverride }) const [params, setParams] = useState({ project: projectRef, - sql: cleanQuery(genDefaultQuery(table, options.whereStatementFactory(filters))), - rawSql: genDefaultQuery(table, options.whereStatementFactory(filters)), + sql: '', + rawSql: '', period_start: '', period_end: '', timestamp_start: '', @@ -74,6 +61,14 @@ function useLogsPreview( // handle url generation for log pagination const getKeyLogs: SWRInfiniteKeyLoader = (_pageIndex: number, prevPageData: Logs) => { let queryParams + + // cancel request if no sql provided + if(!params.sql) { + // return null to restrict unnecessary requests to api + // https://swr.vercel.app/docs/conditional-fetching#conditional + return null + } + // if prev page data is 100 items, could possibly have more records that are not yet fetched within this interval if (prevPageData === null) { // reduce interval window limit by using the timestamp of the last log @@ -96,22 +91,36 @@ function useLogsPreview( isValidating, size, setSize, - } = useSWRInfinite(getKeyLogs, get, { revalidateOnFocus: false }) + } = useSWRInfinite(getKeyLogs, get, { revalidateOnFocus: false, dedupingInterval: 3000 }) let logData: LogData[] = [] - const countUrl = `${API_URL}/projects/${projectRef}/analytics/endpoints/logs.all?${genQueryParams( - { - ...params, - sql: genCountQuery(table), - period_start: String(latestRefresh), - } as any - )}` + const countUrl = () => { + + // cancel request if no sql provided + if(!params.sql) { + // return null to restrict unnecessary requests to api + // https://swr.vercel.app/docs/conditional-fetching#conditional + return null + } - const { data: countData } = useSWR(countUrl, get, { refreshInterval: 5000 }) + return `${API_URL}/projects/${projectRef}/analytics/endpoints/logs.all?${genQueryParams( + { + ...params, + sql: genCountQuery(table), + period_start: String(latestRefresh), + } as any + )}` + } + + const { data: countData } = useSWR(countUrl, get, { + revalidateOnFocus: false, + dedupingInterval: 5000, + refreshInterval: 5000, + }) const newCount = countData?.result?.[0]?.count ?? 0 const refresh = async () => { - const generatedSql = genDefaultQuery(table, options.whereStatementFactory(filters)) + const generatedSql = genDefaultQuery(table, filters) setParams((prev) => ({ ...prev, sql: cleanQuery(generatedSql), rawSql: generatedSql })) setLatestRefresh(new Date().toISOString()) setSize(1) @@ -126,7 +135,19 @@ function useLogsPreview( error = response.error } }) + const oldestTimestamp = logData[logData.length - 1]?.timestamp + + const handleSetFilters: Handlers['setFilters'] = (newFilters) => { + if (typeof newFilters === 'function') { + setFilters((prev) => { + const resolved = newFilters(prev) + return { ...resolved, ...filterOverride } + }) + } else { + setFilters((prev) => ({ ...prev, ...newFilters, ...filterOverride })) + } + } return [ { newCount, @@ -141,7 +162,7 @@ function useLogsPreview( { setFrom: (value) => setParams((prev) => ({ ...prev, timestamp_start: value })), setTo: (value) => setParams((prev) => ({ ...prev, timestamp_end: value })), - setFilters, + setFilters: handleSetFilters, refresh, loadOlder: () => setSize((prev) => prev + 1), }, diff --git a/studio/package-lock.json b/studio/package-lock.json index b4c45cdc268..2cfecca20d0 100644 --- a/studio/package-lock.json +++ b/studio/package-lock.json @@ -6143,9 +6143,9 @@ } }, "@supabase/ui": { - "version": "0.37.0-alpha.50", - "resolved": "https://registry.npmjs.org/@supabase/ui/-/ui-0.37.0-alpha.50.tgz", - "integrity": "sha512-d5jFxIVCRrZ6cHQ6qpuvyaexTmqMnxDWm0hg7vj9D2x5qcmySRCTC42uhpKXz5fKre2TUl38pFT+UpscWw/OyA==", + "version": "0.37.0-alpha.51", + "resolved": "https://registry.npmjs.org/@supabase/ui/-/ui-0.37.0-alpha.51.tgz", + "integrity": "sha512-9N5k6m3iEwR8HYyH7Ekz6EPI2VW2CZZh0TOZuvaKIXSfccgp2w5kcNcRoyGv/t4c7j+8VAyS+H9cRHHSLiwLzQ==", "requires": { "@headlessui/react": "^1.0.0", "@mertasan/tailwindcss-variables": "^2.0.1", diff --git a/studio/package.json b/studio/package.json index c60c675f5bd..b3ddf7ba229 100644 --- a/studio/package.json +++ b/studio/package.json @@ -26,7 +26,7 @@ "@supabase/react-data-grid": "^7.1.0-beta.7", "@supabase/shared-types": "^0.1.15", "@supabase/supabase-js": "^1.29.1", - "@supabase/ui": "0.37.0-alpha.50", + "@supabase/ui": "0.37.0-alpha.51", "ajv": "^8.6.3", "analytics-node": "^3.5.0", "clipboard": "^2.0.8", diff --git a/studio/pages/project/[ref]/functions/[id]/invocations.tsx b/studio/pages/project/[ref]/functions/[id]/invocations.tsx index 872126b3d43..d5bca274f48 100644 --- a/studio/pages/project/[ref]/functions/[id]/invocations.tsx +++ b/studio/pages/project/[ref]/functions/[id]/invocations.tsx @@ -16,7 +16,7 @@ export const LogPage: NextPageWithLayout = () => { ) } diff --git a/studio/pages/project/[ref]/functions/[id]/logs.tsx b/studio/pages/project/[ref]/functions/[id]/logs.tsx index 4b8e8853417..bdaf82e2195 100644 --- a/studio/pages/project/[ref]/functions/[id]/logs.tsx +++ b/studio/pages/project/[ref]/functions/[id]/logs.tsx @@ -16,7 +16,7 @@ export const LogPage: NextPageWithLayout = () => { ) } diff --git a/studio/pages/project/[ref]/logs-explorer/index.tsx b/studio/pages/project/[ref]/logs-explorer/index.tsx index c8d52f8f36c..85059a869e4 100644 --- a/studio/pages/project/[ref]/logs-explorer/index.tsx +++ b/studio/pages/project/[ref]/logs-explorer/index.tsx @@ -139,7 +139,6 @@ export const LogsExplorerPage: NextPage = () => { try { const { data: query, error } = await content.create(payload) if (error) throw error - console.log(query) setSubmitting(false) setSaveModalOpen(false) toast.success(`Saved "${values.name}" log query`) diff --git a/studio/pages/project/[ref]/logs-explorer/sources.tsx b/studio/pages/project/[ref]/logs-explorer/sources.tsx deleted file mode 100644 index a65cac6f0a4..00000000000 --- a/studio/pages/project/[ref]/logs-explorer/sources.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import React from 'react' -import { NextPage } from 'next' -import { useRouter } from 'next/router' -import { observer } from 'mobx-react-lite' -import { IconCode, Badge, IconDatabase, Icon, IconCloud } from '@supabase/ui' -import { withAuth } from 'hooks' -import { LogsTableName, LOGS_SOURCE_DESCRIPTION } from 'components/interfaces/Settings/Logs' -import LogsExplorerLayout from 'components/layouts/LogsExplorerLayout/LogsExplorerLayout' -import CardButton from 'components/ui/CardButton' - -export const LogsExplorerPage: NextPage = () => { - const router = useRouter() - const { ref } = router.query - // @ts-ignore - const sources = Object.values(LogsTableName).sort((a, b) => a - b) - return ( - -
- {sources.map((source) => ( - -
- {source === LogsTableName.POSTGRES && } - {source === LogsTableName.EDGE && } - {source === LogsTableName.FUNCTIONS && } - {source === LogsTableName.FN_EDGE && } -
-
- } - linkHref={`/project/${ref}/logs-explorer/sources/${source}`} - description={LOGS_SOURCE_DESCRIPTION[source]} - /> - ))} -
- - ) -} - -export default withAuth(observer(LogsExplorerPage)) diff --git a/studio/pages/project/[ref]/logs-explorer/sources/[source].tsx b/studio/pages/project/[ref]/logs-explorer/sources/[source].tsx deleted file mode 100644 index 6ef025b4251..00000000000 --- a/studio/pages/project/[ref]/logs-explorer/sources/[source].tsx +++ /dev/null @@ -1,35 +0,0 @@ -import React from 'react' -import { NextPage } from 'next' -import { useRouter } from 'next/router' -import { observer } from 'mobx-react-lite' -import { withAuth } from 'hooks' -import { LogsExplorerLayout } from 'components/layouts/' -import { LogsTableName } from 'components/interfaces/Settings/Logs' -import LogsPreviewer from 'components/interfaces/Settings/Logs/LogsPreviewer' - -export const LogPage: NextPage = () => { - const router = useRouter() - const { ref, source } = router.query - - // quick fix to get correct queryType - const queryType = { - edge_logs: 'api', - postgres_logs: 'database', - function_logs: 'functions', - function_edge_logs: 'fn_edge', - } - - return ( - {source}}> - - - ) -} - -export default withAuth(observer(LogPage)) diff --git a/studio/tailwind.config.js b/studio/tailwind.config.js index 41fcac0dfa1..ad3a4f15646 100644 --- a/studio/tailwind.config.js +++ b/studio/tailwind.config.js @@ -52,7 +52,7 @@ const coolGray = { module.exports = ui({ darkMode: 'class', // or 'media' or 'class' - purge: [ + content: [ // purge styles from app './pages/**/*.{js,ts,jsx,tsx}', './components/**/*.{js,ts,jsx,tsx}', diff --git a/studio/tests/pages/projects/Logs.utils.test.js b/studio/tests/pages/projects/Logs.utils.test.js new file mode 100644 index 00000000000..053d45e670a --- /dev/null +++ b/studio/tests/pages/projects/Logs.utils.test.js @@ -0,0 +1,41 @@ +import { genDefaultQuery, LogsTableName } from 'components/interfaces/Settings/Logs' + +describe.each(Object.values(LogsTableName))('%s', (table) => { + describe.each([ + { filter: { search_query: '' } }, + { filter: { search_query: undefined } }, + { filter: {} }, + { filter: { search_query: '123test' }, contains: ['123test'] }, + // test behaviour with overrides + { + filter: { search_query: '123test', override: 'something' }, + contains: ['123test', 'override', 'something'], + }, + { + filter: { search_query: '', override: 'something' }, + contains: ['override', 'something'], + }, + { + filter: { search_query: undefined, override: 'something' }, + contains: ['override', 'something'], + }, + { + filter: { override: 'something' }, + contains: ['override', 'something'], + }, + { + filter: { 'override.nested': 'something' }, + contains: ['override.nested', 'something'], + }, + ])('generates sql for filter $filter', ({ filter, contains = [] }) => { + test('generates query correctly', async () => { + const generated = genDefaultQuery(table, filter) + // should not contain functions + expect(generated).not.toMatch(/function[ A-Za-z_-]+\(.+\).+\{.+return.+\}/) + expect(generated).not.toMatch(/\=\>|\$\{.+\}/) + expect(generated).not.toContain('return') + + contains.forEach((str) => expect(generated).toContain(str)) + }) + }) +}) diff --git a/studio/tests/pages/projects/LogsPreviewer.test.js b/studio/tests/pages/projects/LogsPreviewer.test.js index 129e63add72..9b736329441 100644 --- a/studio/tests/pages/projects/LogsPreviewer.test.js +++ b/studio/tests/pages/projects/LogsPreviewer.test.js @@ -291,4 +291,33 @@ test("bug: nav to explorer preserves newlines", async ()=>{ const router = useRouter() userEvent.click(await screen.findByText(/Explore/)) await expect(router.push).toBeCalledWith(expect.stringContaining(encodeURIComponent("\n"))) -} \ No newline at end of file +} +test('filters alter generated query', async () => { + render() + userEvent.click(await screen.findByRole('button', { name: 'Status' })) + userEvent.click(await screen.findByText(/500 error codes/)) + userEvent.click(await screen.findByText(/200 codes/)) + userEvent.click(await screen.findByText(/Save/)) + + await waitFor(() => { + expect(get).toHaveBeenCalledWith(expect.stringContaining('select')) + expect(get).toHaveBeenCalledWith(expect.stringContaining('500')) + expect(get).toHaveBeenCalledWith(expect.stringContaining('200')) + expect(get).toHaveBeenCalledWith(expect.stringContaining('where')) + expect(get).toHaveBeenCalledWith(expect.stringContaining('and')) + }) +}) +test('filters accept filterOverride', async () => { + render( + + ) + + await waitFor(() => { + expect(get).toHaveBeenCalledWith(expect.stringContaining('my.nestedkey')) + expect(get).toHaveBeenCalledWith(expect.stringContaining('myvalue')) + }) +}) diff --git a/studio/tests/pages/projects/logs-preview.test.js b/studio/tests/pages/projects/logs-preview.test.js deleted file mode 100644 index 50c21941b17..00000000000 --- a/studio/tests/pages/projects/logs-preview.test.js +++ /dev/null @@ -1,287 +0,0 @@ -// mock the fetch function -jest.mock('lib/common/fetch') -import { get } from 'lib/common/fetch' - -// mock mobx -jest.mock('mobx-react-lite') -import { observer } from 'mobx-react-lite' -observer.mockImplementation((v) => v) - -// mock the router -jest.mock('next/router') -import { useRouter } from 'next/router' -const defaultRouterMock = () => { - const router = jest.fn() - router.query = {} - router.push = jest.fn() - router.pathname = 'logs/path' - return router -} -useRouter.mockReturnValue(defaultRouterMock()) - -// mock monaco editor -jest.mock('@monaco-editor/react') -import Editor, { useMonaco } from '@monaco-editor/react' -Editor = jest.fn() -Editor.mockImplementation((props) => { - return ( - - ) -}) -useMonaco.mockImplementation((v) => v) - -// mock usage flags -jest.mock('components/ui/Flag/Flag') -import Flag from 'components/ui/Flag/Flag' -Flag.mockImplementation(({ children }) => <>{children}) -jest.mock('hooks') -import { useFlag } from 'hooks' -useFlag.mockReturnValue(true) - -import { SWRConfig } from 'swr' -jest.mock('components/interfaces/Settings/Logs/LogsPreviewer') -import LogsPreviewer from 'components/interfaces/Settings/Logs/LogsPreviewer' -LogsPreviewer.mockImplementation((props) => { - const Comp = jest.requireActual('components/interfaces/Settings/Logs/LogsPreviewer').default - // wrap with SWR to reset the cache each time - return ( - new Map(), - shouldRetryOnError: false, - }} - > - - - ) -}) - -import { render, fireEvent, waitFor, screen, act } from '@testing-library/react' -import userEvent from '@testing-library/user-event' -import { getToggleByText } from '../../helpers' -import { wait } from '@testing-library/user-event/dist/utils' -import { logDataFixture } from '../../fixtures' -import { LogsTableName } from 'components/interfaces/Settings/Logs' -import { find } from 'lodash' -beforeEach(() => { - // reset mocks between tests - get.mockReset() - useRouter.mockReset() - useRouter.mockReturnValue(defaultRouterMock()) -}) -test('can display log data and metadata', async () => { - get.mockResolvedValue({ - result: [ - logDataFixture({ - id: 'some-event-happened-id', - metadata: { - my_key: 'something_value', - }, - }), - ], - }) - render() - fireEvent.click(await screen.findByText(/some-event-happened-id/)) - await screen.findByText(/my_key/) - await screen.findByText(/something_value/) -}) - -test('Refresh page', async () => { - get.mockImplementation((url) => { - if (url.includes('count')) return { result: { count: 0 } } - return { - result: [ - logDataFixture({ - id: 'some-event-id', - metadata: { my_key: 'something_value' }, - }), - ], - } - }) - render() - - const row = await screen.findByText(/some-event-id/) - fireEvent.click(row) - await screen.findByText(/my_key/) -}) - -test('Search will trigger a log refresh', async () => { - get.mockImplementation((url) => { - if (url.includes('something')) { - return { - result: [logDataFixture({ id: 'some-event-id' })], - } - } - return { result: [] } - }) - render() - - userEvent.type(screen.getByPlaceholderText(/Search events/), 'something{enter}') - - await waitFor( - () => { - expect(get).toHaveBeenCalledWith(expect.stringContaining('something')) - - // updates router query params - const router = useRouter() - expect(router.push).toHaveBeenCalledWith( - expect.objectContaining({ - pathname: expect.any(String), - query: expect.objectContaining({ - s: expect.stringContaining('something'), - }), - }) - ) - }, - { timeout: 1500 } - ) - await screen.findByText(/some-event-id/) -}) - -test('poll count for new messages', async () => { - get.mockImplementation((url) => { - if (url.includes('count')) { - return { result: [{ count: 125 }] } - } - return { - result: [logDataFixture({ id: 'some-uuid123' })], - } - }) - render() - await waitFor(() => screen.queryByText(/some-uuid123/) === null) - // should display new logs count - await waitFor(() => screen.getByText(/125/)) - - userEvent.click(screen.getByText(/Refresh/)) - await waitFor(() => screen.queryByText(/125/) === null) - await screen.findByText(/some-uuid123/) -}) - -test('s= query param will populate the search bar', async () => { - const router = defaultRouterMock() - router.query = { ...router.query, s: 'someSearch' } - useRouter.mockReturnValue(router) - render() - // should populate search input with the search param - await screen.findByDisplayValue('someSearch') - expect(get).toHaveBeenCalledWith(expect.stringContaining('someSearch')) -}) - -test('te= query param will populate the timestamp to input', async () => { - // get time 20 mins before - const newDate = new Date() - newDate.setMinutes(new Date().getMinutes() - 20) - const isoString = newDate.toISOString() - const unixMicro = newDate.getTime() * 1000 //microseconds - const router = defaultRouterMock() - router.query = { ...router.query, te: unixMicro } - useRouter.mockReturnValue(router) - render() - - await waitFor(() => { - expect(get).toHaveBeenCalledWith( - expect.stringContaining(`timestamp_end=${encodeURIComponent(unixMicro)}`) - ) - }) - userEvent.click(await screen.findByText('Custom')) - expect(get).toHaveBeenCalledWith(expect.stringContaining('timestamp_end=' + unixMicro)) -}) -test('ts= query param will populate the timestamp from input', async () => { - // get time 20 mins before - const newDate = new Date() - newDate.setMinutes(new Date().getMinutes() - 20) - const isoString = newDate.toISOString() - const unixMicro = newDate.getTime() * 1000 //microseconds - const router = defaultRouterMock() - router.query = { ...router.query, ts: unixMicro } - useRouter.mockReturnValue(router) - render() - - await waitFor(() => { - expect(get).toHaveBeenCalledWith( - expect.stringContaining(`timestamp_start=${encodeURIComponent(unixMicro)}`) - ) - }) - userEvent.click(await screen.findByText('Custom')) - await screen.findByText(new RegExp(newDate.getFullYear())) - await screen.findByText(/Apply/) - expect(get).toHaveBeenCalledWith(expect.stringContaining('timestamp_start=' + unixMicro)) -}) - -test('load older btn will fetch older logs', async () => { - get.mockImplementation((url) => { - if (url.includes('count')) { - return {} - } - return { - result: [logDataFixture({ id: 'first event' })], - } - }) - render() - // should display first log but not second - await waitFor(() => screen.getByText('first event')) - await expect(screen.findByText('second event')).rejects.toThrow() - - get.mockResolvedValueOnce({ - result: [logDataFixture({ id: 'second event' })], - }) - // should display first and second log - userEvent.click(await screen.findByText('Load older')) - await screen.findByText('first event') - await screen.findByText('second event') - expect(get).toHaveBeenCalledWith(expect.stringContaining('timestamp_end=')) -}) - -test('bug: load older btn does not error out when previous page is empty', async () => { - // bugfix for https://sentry.io/organizations/supabase/issues/2903331460/?project=5459134&referrer=slack - get.mockImplementation((url) => { - if (url.includes('count')) { - return {} - } - return { result: [] } - }) - render() - - userEvent.click(await screen.findByText('Load older')) - // NOTE: potential race condition, since we are asserting that something DOES NOT EXIST - // wait for 500s to make sure all ui logic is complete - // need to wrap in act because internal react state is changing during this time. - await act(async () => await wait(100)) - - // clicking load older multiple times should not give error - await waitFor(() => { - expect(screen.queryByText(/Sorry/)).toBeNull() - expect(screen.queryByText(/An error occured/)).toBeNull() - expect(screen.queryByText(/undefined/)).toBeNull() - }) -}) - -test('log event chart hide', async () => { - render() - await screen.findByText('Events') - const toggle = await screen.findByText(/Chart/) - userEvent.click(toggle) - await expect(screen.findByText('Events')).rejects.toThrow() -}) - -test('bug: nav backwards with params change results in ui changing', async () => { - // bugfix for https://sentry.io/organizations/supabase/issues/2903331460/?project=5459134&referrer=slack - get.mockImplementation((url) => { - if (url.includes('count')) { - return {} - } - return { data: [] } - }) - const { container, rerender } = render( - - ) - - await expect(screen.findByDisplayValue('simple-query')).rejects.toThrow() - - const router = defaultRouterMock() - router.query = { ...router.query, s: 'simple-query' } - useRouter.mockReturnValue(router) - rerender() - - await screen.findByDisplayValue('simple-query') -}) diff --git a/studio/tests/pages/projects/logs-query.test.js b/studio/tests/pages/projects/logs-query.test.js index 104d1c080e4..3979f81ef69 100644 --- a/studio/tests/pages/projects/logs-query.test.js +++ b/studio/tests/pages/projects/logs-query.test.js @@ -91,7 +91,6 @@ test('can display log data', async () => { userEvent.click(await screen.findByText(/Run/)) const row = await screen.findByText("some-event-happened") - screen.debug() userEvent.click(row) await screen.findByText(/something_value/) }) diff --git a/web/docs/guides/api.mdx b/web/docs/guides/api.mdx index 917e713a93c..256da1d3023 100644 --- a/web/docs/guides/api.mdx +++ b/web/docs/guides/api.mdx @@ -54,11 +54,6 @@ GraphQL is in Beta, and may have breaking changes. It is only available on self- ::: GraphQL in Supabase works through [pg_graphql](/blog/2021/12/03/pg-graphql), an open source PostgreSQL extension for GraphQL. -To get started with GraphQL you must enable the `pg_graphql` extension in your project. - - ### Realtime API @@ -240,7 +235,8 @@ JS Reference: [select()](/docs/reference/javascript/select), :::note -While pg_graphql is in beta, we have disabled GraphQL auto-refreshing. If you want to refresh your GraphQL introspection, call `select graphql.rebuild_schema();` to rebuild your GraphQL schema. +To rebuild your GraphQL schema from the SQL schema, call `select graphql.rebuild_schema();`. +Be sure to rebuild the GraphQL schema after altering the SQL schema. ::: @@ -426,19 +422,14 @@ If they detect any keys with service_role privileges being pushed to GitHub, the ### Safeguards towards accidental deletes and updates -For new projects, by default, the Postgres extension [safeupdate](https://github.com/eradman/pg-safeupdate) is enabled for all queries coming from the API. +For all projects, by default, the Postgres extension [safeupdate](https://github.com/eradman/pg-safeupdate) is enabled for all queries coming from the API. This ensures that any `delete()` or `update()` would fail if there are no accompanying filters provided. -This can be disabled by running the following query on the SQL editor on the dashboard: - +To confirm that safeupdate is enabled for queries going through the API of your project, the following query could be run: ```sql -alter role "authenticator" -set "session_preload_libraries" to default; +select usename,useconfig from pg_shadow where usename = 'authenticator' ; ``` -To reenable it : -```sql -alter role "authenticator" -set "session_preload_libraries" = 'safeupdate'; +The expected value for `useconfig` should be: ``` -The above can also be run to enable it for existing projects. Settings are applied immediately and as such no restarts are needed after running any of the two. - +["session_preload_libraries=supautils, safeupdate"] +``` \ No newline at end of file diff --git a/web/docs/guides/auth.mdx b/web/docs/guides/auth.mdx index 2a2b5233818..4c3e0711577 100644 --- a/web/docs/guides/auth.mdx +++ b/web/docs/guides/auth.mdx @@ -27,7 +27,7 @@ There are two parts to every Auth system: - **Authorization:** once they are in, what are they allowed to do? Supabase Auth is designed to work either as a standalone product, or deeply integrated with the other Supabase products. -Postgres is at the heart of everything we do, and the Auth system follows this principle. We leverage Postgres' build-in Auth functionality wherever possible. +Postgres is at the heart of everything we do, and the Auth system follows this principle. We leverage Postgres' built-in Auth functionality wherever possible. ## Authentication diff --git a/web/docs/guides/auth/auth-email.mdx b/web/docs/guides/auth/auth-email.mdx index e2c3811c9e1..11b197e2398 100644 --- a/web/docs/guides/auth/auth-email.mdx +++ b/web/docs/guides/auth/auth-email.mdx @@ -87,9 +87,9 @@ async function signInWithEmail() { ```dart -function SignInWithEmail() { +Future signInWithEmail() async { await supabase.auth.signIn( - email: 'example@email.com', + email: 'example@email.com', password: 'example-password' ); } @@ -120,8 +120,8 @@ async function signOut() { ```dart -function SignOut() { - await supabase.auth.signOut(); +Future signOut() async { + await supabase.auth.signOut(); } ``` diff --git a/web/docs/guides/auth/auth-linkedin.mdx b/web/docs/guides/auth/auth-linkedin.mdx index eafc7cad337..d130a976d69 100644 --- a/web/docs/guides/auth/auth-linkedin.mdx +++ b/web/docs/guides/auth/auth-linkedin.mdx @@ -24,7 +24,7 @@ Setting up LinkedIn logins for your application consists of 3 parts: - Go to [LinkedIn Developer Dashboard](https://www.linkedin.com/developers/apps). - Log in (if necessary.) -![LinkedIn Developer Portal](/img/auth-linkedin/linkedin_developers_page.png) +![LinkedIn Developer Portal](/img/guides/auth-linkedin/linkedin_developers_page.png) ### Find your callback URL diff --git a/web/docs/guides/auth/auth-magic-link.mdx b/web/docs/guides/auth/auth-magic-link.mdx index c5d1b1b6a4d..19691ca46af 100644 --- a/web/docs/guides/auth/auth-magic-link.mdx +++ b/web/docs/guides/auth/auth-magic-link.mdx @@ -83,10 +83,8 @@ async function signInWithEmail() { ```dart -function SignInWithEmail() { - await supabase.auth.signIn( - email: 'example@email.com' - ); +Future signInWithEmail() async { + await supabase.auth.signIn(email: 'example@email.com'); } ``` @@ -115,7 +113,7 @@ async function signOut() { ```dart -function SignOut() { +Future signOut() async { await supabase.auth.signOut(); } ``` diff --git a/web/docs/guides/database/extensions/pgtap.mdx b/web/docs/guides/database/extensions/pgtap.mdx index 0c840eba2d4..b1882146496 100644 --- a/web/docs/guides/database/extensions/pgtap.mdx +++ b/web/docs/guides/database/extensions/pgtap.mdx @@ -107,7 +107,7 @@ rollback; API: -- [`hasTable()`](https://pgtap.org/documentation.html#has_table) +- [`has_table()`](https://pgtap.org/documentation.html#has_table) ### Testing columns @@ -130,4 +130,4 @@ API: ## Resources -- Official [`pgTAP` documentation](https://pgtap.org/). \ No newline at end of file +- Official [`pgTAP` documentation](https://pgtap.org/). diff --git a/web/docs/guides/integrations/pgmustard.mdx b/web/docs/guides/integrations/pgmustard.mdx index da2d915ec84..6efbb242ef4 100644 --- a/web/docs/guides/integrations/pgmustard.mdx +++ b/web/docs/guides/integrations/pgmustard.mdx @@ -17,7 +17,7 @@ pgMustard requires plans to be in json format, and the buffers, verbose, and set So a good prefix for your query would be: ```jsx -explain (analyze, format json, buffers, verbose, settings)` +explain (analyze, format json, buffers, verbose, settings) ``` Run the query, and copy the output. diff --git a/web/docs/guides/with-react.mdx b/web/docs/guides/with-react.mdx index d0455fad550..a925965c478 100644 --- a/web/docs/guides/with-react.mdx +++ b/web/docs/guides/with-react.mdx @@ -419,6 +419,9 @@ And then open the browser to [localhost:3000](http://localhost:3000) and you sho Every Supabase project is configured with [Storage](/docs/guides/storage) for managing large files like photos and videos. +### Add @reach/visually-hidden +The upload widget uses one additional npm library. You can install it like so: `npm install @reach/visually-hidden`. + ### Create an upload widget Let's create an avatar for the user so that they can upload a profile photo. We can start by creating a new component: diff --git a/web/static/img/auth-linkedin/linkedin_developers_page.png b/web/static/img/guides/auth-linkedin/linkedin_developers_page.png similarity index 100% rename from web/static/img/auth-linkedin/linkedin_developers_page.png rename to web/static/img/guides/auth-linkedin/linkedin_developers_page.png diff --git a/web/static/videos/api/api-enable-graphql.mp4 b/web/static/videos/api/api-enable-graphql.mp4 deleted file mode 100644 index f563d278f21..00000000000 Binary files a/web/static/videos/api/api-enable-graphql.mp4 and /dev/null differ diff --git a/www/pages/beta.tsx b/www/pages/beta.tsx index cbc7b9e355f..bc9cc2d297f 100644 --- a/www/pages/beta.tsx +++ b/www/pages/beta.tsx @@ -1001,7 +1001,7 @@ const Beta = (props: Props) => {
- + setMenuOpen(!menuOpen)} /> diff --git a/www/tailwind.config.js b/www/tailwind.config.js index cc947b3b99a..88890fa292e 100644 --- a/www/tailwind.config.js +++ b/www/tailwind.config.js @@ -3,7 +3,7 @@ const svgToDataUri = require('mini-svg-data-uri') module.exports = ui({ mode: 'JIT', - purge: [ + content: [ './components/**/*.tsx', './pages/**/*.tsx', './_blog/*.mdx',