From 8fcfd184f2bec804dd05bda48ec300ae8a02a2a9 Mon Sep 17 00:00:00 2001 From: alish <63276190+alisher-aituarov@users.noreply.github.com> Date: Wed, 19 Jul 2023 12:48:38 +0600 Subject: [PATCH] feat: multitenancy (#677) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * init web-js recipes, supertokens from auth-react * move recipe output type to types.ts * make combined recipes use web-js version * get rid of recipeImplementation for single recipes * add functionOverrides to thirdpartypasswordless recipe * add functionOverrides to thirdpartyemailpassword recipe * get rid of one the duplicate setLoginAttemptInfo calls * fix tests * update changelog * fixes after review * move initOutput type to root types * fix tests * review fixes * review fixes * add build files * use normalisedConfig for webjs init in combined recipes * remove commented code * disable isIE check in order to avoid error * test fixes caused by utils * fix typo * rename recipeImpl -> webJSRecipe for all recipes * add comments * utils-> normalization_function fix * type changes for recipe member * type change, renamein * move config normalization to init for session * Update thirdpartypasswordless comments Co-authored-by: Mihály Lengyel * Update thirdpartyemailpassword/recipe comments Co-authored-by: Mihály Lengyel * review fixes * reuse action type for RecipeInitResult * move onHandelEvent call to combined recipe overrides * fixes-session, overrides * add callbacks to isVerified claim * fix exampleTestHelper * fix build folder * add auth-react boolean claim * extend web-js claims * fix tests, rename callbacks * review fixes * fix tests * use web-js import instead of website * fix type GetRedirectionURLContext, add comment, pass context to getGlobalClaim function calls * fix duplication * move helper function to utils * fix emailverification wrapper type * self review fixes * second round review fixed * add access-denied page * add ability to override and change style of access-denied screen * add denial info to access denied page * update example apps * fix rollup watch mac issue * review fixes * fix redirection priorities * move cliam functions to session utils * fix util function * add unit tests for new utils function * initial splitting * create class for each recipe to handle routes * review fixes for /lib * update examples * fix partially sessionAuth tests * fix: typo * fix: sessionAuth test * update changelog * fix lintiing issues * fix tests * Merge branch '0.31' into 'feat/splitting-prebuild-ui-components' * fix: partially unit test * fix: unit test case * fix: broken components overriding after merge * fix: move themeBase & fix example app * fix: type fix * fix: access denial info * fix: exporting claims from auth-react * fix: review fixes * fix: by review comments * fix: adjust access-denied page * more review fixes * fix: review fixes * change implementataion & access denied page design * fix: default page & review changes * fix: default failed claim when none has callback * css: override container width * fix: review comments * fix: add comment * fix: respect rid when rendering UIs * fix tests * fix: add underscore prefix * test: add test for back button * fix: emailverification prebuilt ui * fix: review changes * fix no router case * fix: prebuiltui components types exoprt * fix: emailverification exports * fix: test apps * fix: adjust routing component to handle duplicate renders * feat: clean up onSuccessRedirection and add showAccessDeniedOnFailure * fix: e2e tests * update changelog * fix: example apps * fix examples & changelog * fix: preBuiltUI -> prebuiltui * fix filename casing * fix: preBuiltUI -> prebuiltui * fix filename casing * expose signle routing functons * rename: prebuiltui->ui * update test apps * fix: unit tests * preBuiltUI -> prebuiltui * update changelog * update example apps * getSuperTokensReactRouterDomRoutes casing fix * getSuperTokensReactRouterDomRoutes casing fix * review fixes * review fixes * review fixes * wip * fix: review comments(preBuiltUI interface consistency) * parent c3935c9925aed8a9588c2188446a6a938b7de340 author Alisher 1679996212 +0400 committer Alisher 1682072680 +0400 feat: multitenancy * feat: thirdparty rework (#676) * add missing providers & add prop to buttonComponent * fix: Thirdparty login popup (#675) * fix: thirdparty popup example * chore: changelog * fix: adding backend * fix: pr comment * fix: pr comment * fix: pr comment * fix: pr comment * feat: add new providers & add prop to buttonComponent * fix: activeDirectory width * update changelog * Update examples/with-thirdparty-popup/README.md Co-authored-by: Mihály Lengyel * fix: providers * fix: move getButton to base class * fix: review comments * Update examples/with-thirdparty-popup/frontend/src/App.tsx Co-authored-by: Mihály Lengyel * fixes --------- Co-authored-by: Alisher Co-authored-by: Sattvik Chakravarthy Co-authored-by: Mihály Lengyel * Update lib/ts/recipe/multitenancy/index.ts Co-authored-by: Mihály Lengyel * fix: review comments * revert providers form * fix: review 2nd round * fixes: getRoutingComponent * fix: review 2nd round & embedding components fixes * fix: review * fix: move provider picking logic into separate wrapper * fix: remove test data * fix: picking providers logic & types * fix: type fixes & move helper to utils * fix: add getter for dynamicLoginMethods * fix: provider selection algorithm * fixes * fixes * remove memoization of providders * fixes * chore: minor cleanup/test fixes + migration docs * test: revert merge issue * fixes * fixes * fixes * fixes * fixes * fixes * fixes reciperouter * fixes * fix: update to match ADRs & new BE version * test: multitenancy (#678) * wip: tests * test: additional tests * fix: picking providers logic & types * test: adds test case * fix test & remove redundant test case * fix: minor cleanup/small fix + test extension --------- Co-authored-by: Alisher Co-authored-by: Mihaly Lengyel * feat: update to latest interfaces and fix tests * test: updated test asserts to match new behaviour * fix: make the interface more consistent with web-js * feat: improve typing of getClaimValue * feat: update tests to use core + small fixes * test: add tests for tenant id exceptions * fix: fixed handling empty provider arrays + missing provider * fix: fix tests * fix: self-review fixes * fix: self-review fixes & chores * test: fix react 16 test app * docs: update examples --------- Co-authored-by: Alisher Co-authored-by: Mihály Lengyel Co-authored-by: Sattvik Chakravarthy --- CHANGELOG.md | 28 + examples/for-tests-react-16/src/App.js | 179 +- .../src/AppWithReactDomRouter.js | 31 +- .../src/AppWithReactDomRouterV5.js | 32 +- .../src/AppWithoutRouter.js | 31 +- .../for-tests-react-16/src/testContext.js | 46 + examples/for-tests/src/App.js | 208 +- .../for-tests/src/AppWithReactDomRouter.js | 32 +- examples/for-tests/src/AppWithoutRouter.js | 31 +- examples/for-tests/src/testContext.js | 46 + examples/with-cli-login/api-server/index.ts | 55 +- .../api-server.js | 58 +- .../with-emailverification-with-otp/README.md | 2 +- .../api-server/server.ts | 68 +- .../api-server.js | 53 +- examples/with-i18next/api-server.js | 53 +- .../api-server/index.js | 53 +- .../with-phone-password/api-server/index.ts | 2 +- examples/with-phone-password/package.json | 1 + .../with-supabase/config/backendConfig.ts | 51 +- .../server.js | 32 +- .../backend/config.ts | 111 +- .../backend/package.json | 1 + .../frontend/src/App.tsx | 6 +- .../frontend/src/config.tsx | 20 +- examples/with-thirdparty-popup/README.md | 1 - .../with-thirdparty-popup/backend/config.ts | 55 +- .../backend/package.json | 5 +- .../frontend/package.json | 2 +- .../frontend/src/App.tsx | 9 +- .../frontend/src/Home/index.tsx | 1 - .../api-server/index.ts | 57 +- .../api-server/index.ts | 54 +- .../api-server/index.js | 254 +- .../src/renderer.tsx | 3 +- .../backend/index.ts | 9 +- frontendDriverInterfaceSupported.json | 2 +- lib/build/SuperTokensBranding.js | 10 +- lib/build/arrowLeftIcon.js | 4 +- lib/build/authRecipe-shared.js | 26 +- lib/build/checkedRoundIcon.js | 10 +- lib/build/components/featureWrapper.d.ts | 2 +- lib/build/emailpassword-shared.js | 4 +- lib/build/emailpassword-shared2.js | 4 +- lib/build/emailpassword-shared4.js | 76 +- lib/build/emailpassword-shared5.js | 18 +- lib/build/emailpassword-shared6.js | 218 +- lib/build/emailpassword-shared7.js | 67 +- lib/build/emailpassword.js | 61 +- lib/build/emailpasswordprebuiltui.js | 11 +- lib/build/emailverification-shared.js | 44 +- lib/build/emailverification-shared2.js | 4 +- lib/build/emailverification.js | 39 +- lib/build/emailverificationprebuiltui.js | 183 +- lib/build/genericComponentOverrideContext.js | 7 +- lib/build/index.js | 29 +- lib/build/index2.js | 176 +- lib/build/multitenancy.js | 46 + lib/build/passwordless-shared2.js | 147 +- lib/build/passwordless-shared3.js | 315 +- lib/build/passwordless.js | 102 +- lib/build/passwordlessprebuiltui.js | 12 +- .../recipe/emailpassword/prebuiltui.d.ts | 2 +- lib/build/recipe/emailpassword/recipe.d.ts | 1 + .../recipe/emailverification/prebuiltui.d.ts | 2 +- .../recipe/emailverification/recipe.d.ts | 1 + lib/build/recipe/multitenancy/index.d.ts | 9 + lib/build/recipe/multitenancy/recipe.d.ts | 24 + lib/build/recipe/multitenancy/types.d.ts | 35 + lib/build/recipe/multitenancy/utils.d.ts | 7 + lib/build/recipe/passwordless/prebuiltui.d.ts | 2 +- lib/build/recipe/passwordless/recipe.d.ts | 1 + lib/build/recipe/passwordless/types.d.ts | 24 +- lib/build/recipe/passwordless/utils.d.ts | 77 +- .../recipe/recipeModule/baseRecipeModule.d.ts | 12 + lib/build/recipe/recipeModule/index.d.ts | 6 +- lib/build/recipe/recipeRouter/index.d.ts | 5 +- lib/build/recipe/session/index.d.ts | 2 +- lib/build/recipe/session/prebuiltui.d.ts | 2 +- lib/build/recipe/session/recipe.d.ts | 7 +- .../features/signInAndUp/index.d.ts | 3 +- .../components/themes/signInAndUp/index.d.ts | 6 +- lib/build/recipe/thirdparty/index.d.ts | 59 +- lib/build/recipe/thirdparty/prebuiltui.d.ts | 8 +- .../thirdparty/providers/activeDirectory.d.ts | 10 + .../recipe/thirdparty/providers/apple.d.ts | 3 +- .../thirdparty/providers/bitbucket.d.ts | 2 - .../recipe/thirdparty/providers/boxySaml.d.ts | 10 + .../recipe/thirdparty/providers/custom.d.ts | 3 - .../recipe/thirdparty/providers/discord.d.ts | 2 - .../recipe/thirdparty/providers/facebook.d.ts | 2 - .../recipe/thirdparty/providers/github.d.ts | 2 - .../recipe/thirdparty/providers/gitlab.d.ts | 2 - .../recipe/thirdparty/providers/google.d.ts | 2 - .../providers/googleWorkspaces.d.ts | 10 + .../recipe/thirdparty/providers/index.d.ts | 14 +- .../recipe/thirdparty/providers/linkedIn.d.ts | 10 + .../recipe/thirdparty/providers/okta.d.ts | 10 + .../recipe/thirdparty/providers/twitter.d.ts | 2 - .../recipe/thirdparty/providers/types.d.ts | 32 +- lib/build/recipe/thirdparty/recipe.d.ts | 1 + lib/build/recipe/thirdparty/types.d.ts | 11 +- lib/build/recipe/thirdparty/utils.d.ts | 18 +- .../features/signInAndUp/index.d.ts | 4 +- .../recipe/thirdpartyemailpassword/index.d.ts | 69 +- .../thirdpartyemailpassword/prebuiltui.d.ts | 2 +- .../thirdpartyemailpassword/recipe.d.ts | 1 + .../recipe/thirdpartyemailpassword/types.d.ts | 2 +- .../features/signInAndUp/index.d.ts | 4 +- .../recipe/thirdpartypasswordless/index.d.ts | 67 +- .../thirdpartypasswordless/prebuiltui.d.ts | 2 +- .../recipe/thirdpartypasswordless/recipe.d.ts | 1 + .../recipe/thirdpartypasswordless/types.d.ts | 5 +- lib/build/recipeModule-shared.js | 385 +- lib/build/session-shared.js | 43 +- lib/build/session-shared2.js | 84 +- lib/build/session-shared3.js | 60 +- lib/build/session.js | 11 +- lib/build/sessionprebuiltui.js | 50 +- lib/build/spinnerIcon.js | 6 +- lib/build/superTokens.d.ts | 7 +- lib/build/superTokens.js | 1345 ++ lib/build/thirdparty-shared.js | 1184 +- lib/build/thirdparty-shared2.js | 211 +- lib/build/thirdparty.js | 801 +- lib/build/thirdpartyemailpassword-shared.js | 129 +- lib/build/thirdpartyemailpassword.js | 254 +- .../thirdpartyemailpasswordprebuiltui.js | 136 +- lib/build/thirdpartypasswordless-shared.js | 164 +- lib/build/thirdpartypasswordless.js | 324 +- lib/build/thirdpartypasswordlessprebuiltui.js | 162 +- lib/build/thirdpartyprebuiltui.js | 12 +- lib/build/translationContext.js | 13 +- lib/build/translations.js | 46 +- lib/build/types.d.ts | 15 +- lib/build/ui-entry.js | 7 +- lib/build/ui/uiController.d.ts | 11 + lib/build/userContextWrapper.js | 8 +- lib/build/utils.js | 14281 +++++++++++++++- lib/build/utils2.js | 13566 --------------- lib/build/version.d.ts | 2 +- lib/ts/components/featureWrapper.tsx | 17 +- lib/ts/components/routingComponent.tsx | 35 +- lib/ts/recipe/emailpassword/prebuiltui.tsx | 5 +- lib/ts/recipe/emailpassword/recipe.tsx | 3 + .../recipe/emailverification/prebuiltui.tsx | 3 +- lib/ts/recipe/emailverification/recipe.tsx | 3 + lib/ts/recipe/multitenancy/index.ts | 33 + lib/ts/recipe/multitenancy/recipe.ts | 136 + lib/ts/recipe/multitenancy/types.ts | 39 + lib/ts/recipe/multitenancy/utils.ts | 32 + .../features/linkClickedScreen/index.tsx | 11 +- .../components/features/signInAndUp/index.tsx | 20 +- .../components/themes/signInUp/linkSent.tsx | 2 - .../themes/signInUp/userInputCodeForm.tsx | 4 - lib/ts/recipe/passwordless/index.ts | 13 +- lib/ts/recipe/passwordless/prebuiltui.tsx | 4 +- lib/ts/recipe/passwordless/recipe.tsx | 3 + lib/ts/recipe/passwordless/types.ts | 25 +- lib/ts/recipe/passwordless/utils.ts | 99 +- .../recipe/recipeModule/baseRecipeModule.ts | 18 + lib/ts/recipe/recipeModule/index.ts | 17 +- lib/ts/recipe/recipeRouter/index.tsx | 101 +- lib/ts/recipe/session/index.ts | 2 +- lib/ts/recipe/session/prebuiltui.tsx | 2 +- lib/ts/recipe/session/recipe.tsx | 8 +- .../components/features/signInAndUp/index.tsx | 68 +- .../components/themes/signInAndUp/index.tsx | 6 +- .../themes/signInAndUp/providersForm.tsx | 2 +- .../thirdparty/components/themes/styles.css | 2 +- lib/ts/recipe/thirdparty/index.ts | 101 +- lib/ts/recipe/thirdparty/prebuiltui.tsx | 22 +- .../thirdparty/providers/activeDirectory.tsx | 96 + lib/ts/recipe/thirdparty/providers/apple.tsx | 31 +- .../recipe/thirdparty/providers/bitbucket.tsx | 19 +- .../recipe/thirdparty/providers/boxySaml.tsx | 79 + lib/ts/recipe/thirdparty/providers/custom.tsx | 18 - .../recipe/thirdparty/providers/discord.tsx | 19 +- .../recipe/thirdparty/providers/facebook.tsx | 19 +- lib/ts/recipe/thirdparty/providers/github.tsx | 19 +- lib/ts/recipe/thirdparty/providers/gitlab.tsx | 19 +- lib/ts/recipe/thirdparty/providers/google.tsx | 19 +- .../thirdparty/providers/googleWorkspaces.tsx | 80 + lib/ts/recipe/thirdparty/providers/index.tsx | 68 +- .../recipe/thirdparty/providers/linkedIn.tsx | 81 + lib/ts/recipe/thirdparty/providers/okta.tsx | 79 + .../recipe/thirdparty/providers/twitter.tsx | 19 +- lib/ts/recipe/thirdparty/providers/types.ts | 21 +- lib/ts/recipe/thirdparty/recipe.tsx | 6 + lib/ts/recipe/thirdparty/types.ts | 10 +- lib/ts/recipe/thirdparty/utils.ts | 119 +- .../components/features/signInAndUp/index.tsx | 41 +- .../components/themes/signInAndUp/index.tsx | 20 +- .../recipe/thirdpartyemailpassword/index.ts | 111 +- .../thirdpartyemailpassword/prebuiltui.tsx | 3 +- .../recipe/thirdpartyemailpassword/recipe.tsx | 17 +- .../emailPasswordImplementation.ts | 1 + .../thirdPartyImplementation.ts | 11 - .../recipe/thirdpartyemailpassword/types.ts | 2 +- .../recipe/thirdpartyemailpassword/utils.ts | 33 +- .../components/features/signInAndUp/index.tsx | 37 +- .../components/themes/signInUp/index.tsx | 23 +- lib/ts/recipe/thirdpartypasswordless/index.ts | 146 +- .../thirdpartypasswordless/prebuiltui.tsx | 3 +- .../recipe/thirdpartypasswordless/recipe.tsx | 15 +- .../passwordlessImplementation.ts | 1 + .../thirdPartyImplementation.ts | 11 - lib/ts/recipe/thirdpartypasswordless/types.ts | 6 +- lib/ts/recipe/thirdpartypasswordless/utils.ts | 71 +- lib/ts/superTokens.tsx | 64 +- lib/ts/types.ts | 23 +- lib/ts/ui/index.tsx | 3 +- lib/ts/ui/uiController.ts | 32 + lib/ts/version.ts | 2 +- package-lock.json | 4 +- package.json | 28 +- recipe/multitenancy/index.d.ts | 17 + recipe/multitenancy/index.js | 20 + rollup.config.mjs | 1 + test/.env.js | 4 + test/constants.js | 1 + ...multitenancy.dynamic_login_methods.test.js | 946 + test/end-to-end/multitenancy.mock.test.js | 650 + .../multitenancy.tenant_interactions.test.js | 1318 ++ test/end-to-end/passwordless.test.js | 2 +- test/end-to-end/thirdparty.test.js | 15 +- .../thirdpartyemailpassword.test.js | 2 +- test/end-to-end/userContext.test.js | 12 - test/helpers.js | 17 +- test/server/index.js | 204 +- test/server/utils.js | 92 +- test/startTestApp.sh | 30 +- test/unit/exports.test.tsx | 76 +- test/unit/index.test.ts | 2 +- .../emailpassword/emailPassword.test.tsx | 2 +- .../unit/recipe/thirdparty/thirdParty.test.ts | 14 +- .../thirdPartyEmailPassword.test.ts | 5 +- test/with-typescript/package-lock.json | 11788 +------------ test/with-typescript/src/App.tsx | 627 +- webJsInterfaceSupported.json | 2 +- 240 files changed, 23812 insertions(+), 31612 deletions(-) create mode 100644 examples/for-tests-react-16/src/testContext.js create mode 100644 examples/for-tests/src/testContext.js create mode 100644 lib/build/multitenancy.js create mode 100644 lib/build/recipe/multitenancy/index.d.ts create mode 100644 lib/build/recipe/multitenancy/recipe.d.ts create mode 100644 lib/build/recipe/multitenancy/types.d.ts create mode 100644 lib/build/recipe/multitenancy/utils.d.ts create mode 100644 lib/build/recipe/recipeModule/baseRecipeModule.d.ts create mode 100644 lib/build/recipe/thirdparty/providers/activeDirectory.d.ts create mode 100644 lib/build/recipe/thirdparty/providers/boxySaml.d.ts create mode 100644 lib/build/recipe/thirdparty/providers/googleWorkspaces.d.ts create mode 100644 lib/build/recipe/thirdparty/providers/linkedIn.d.ts create mode 100644 lib/build/recipe/thirdparty/providers/okta.d.ts create mode 100644 lib/build/superTokens.js create mode 100644 lib/build/ui/uiController.d.ts delete mode 100644 lib/build/utils2.js create mode 100644 lib/ts/recipe/multitenancy/index.ts create mode 100644 lib/ts/recipe/multitenancy/recipe.ts create mode 100644 lib/ts/recipe/multitenancy/types.ts create mode 100644 lib/ts/recipe/multitenancy/utils.ts create mode 100644 lib/ts/recipe/recipeModule/baseRecipeModule.ts create mode 100644 lib/ts/recipe/thirdparty/providers/activeDirectory.tsx create mode 100644 lib/ts/recipe/thirdparty/providers/boxySaml.tsx create mode 100644 lib/ts/recipe/thirdparty/providers/googleWorkspaces.tsx create mode 100644 lib/ts/recipe/thirdparty/providers/linkedIn.tsx create mode 100644 lib/ts/recipe/thirdparty/providers/okta.tsx create mode 100644 lib/ts/ui/uiController.ts create mode 100644 recipe/multitenancy/index.d.ts create mode 100644 recipe/multitenancy/index.js create mode 100644 test/end-to-end/multitenancy.dynamic_login_methods.test.js create mode 100644 test/end-to-end/multitenancy.mock.test.js create mode 100644 test/end-to-end/multitenancy.tenant_interactions.test.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 19b8bc283..8d0bbe81b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [unreleased] +## [0.34.0] - 2023-07-18 + +### Changes + +- Added Active Directory, Okta, Linked In, Boxy SAML, Google Workspaces providers +- Added name prop to buttonComponent +- Added thirdparty login with popup window +- Added Multitenancy recipe +- Improved typing of `getClaimValue` +- Optional `clientType` config in the input for `SuperTokens.init` function, that is used by thirdparty and multitenancy recipes. +- Optional `usesDynamicLoginMethods` config in the input for `SuperTokens.init` function, which makes the SDK check the backend to see which recipes should be enabled +- Added an overrideable `getTenantIdFromURL` to multiple recipes + +### Breaking Changes + +- Only supporting FDI 1.17 +- Backend SDKs have to be updated first to a version that supports multi-tenancy for thirdparty + - supertokens-node: >= 15.0.0 +- In ThirdParty recipe, + - Changed signatures of the functions `getAuthorisationURLWithQueryParamsAndSetState` + - Removed functions - `setStateAndOtherInfoToStorage`, `getAuthorisationURLFromBackend`, `generateStateToSendToOAuthProvider`, `verifyAndGetStateOrThrowError`, `getAuthCodeFromURL`, `getAuthErrorFromURL`, `getAuthStateFromURL` +- In ThirdPartyEmailpassword recipe, + - Changed signatures of the functions `getAuthorisationURLWithQueryParamsAndSetState` + - Removed functions - `setStateAndOtherInfoToStorage`, `getAuthorisationURLFromBackend`, `generateStateToSendToOAuthProvider`, `verifyAndGetStateOrThrowError`, `getAuthCodeFromURL`, `getAuthErrorFromURL`, `getAuthStateFromURL` +- In ThirdPartyPasswordless recipe, + - Changed signatures of the functions `getThirdPartyAuthorisationURLWithQueryParamsAndSetState` + - Removed functions - `setThirdPartyStateAndOtherInfoToStorage`, `getAuthorisationURLFromBackend`, `generateThirdPartyStateToSendToOAuthProvider`, `verifyAndGetThirdPartyStateOrThrowError`, `getThirdPartyAuthCodeFromURL`, `getThirdPartyAuthErrorFromURL`, `getThirdPartyAuthStateFromURL` + ## [0.33.1] - 2023-06-08 ### Fixes diff --git a/examples/for-tests-react-16/src/App.js b/examples/for-tests-react-16/src/App.js index afe56b513..1c33e8df3 100644 --- a/examples/for-tests-react-16/src/App.js +++ b/examples/for-tests-react-16/src/App.js @@ -14,6 +14,7 @@ import ThirdParty from "supertokens-auth-react/recipe/thirdparty"; import ThirdPartyEmailPassword from "supertokens-auth-react/recipe/thirdpartyemailpassword"; import ThirdPartyPasswordless from "supertokens-auth-react/recipe/thirdpartypasswordless"; import UserRoles from "supertokens-auth-react/recipe/userroles"; +import MultiTenancy from "supertokens-auth-react/recipe/multitenancy"; import axios from "axios"; import { useSessionContext } from "supertokens-auth-react/recipe/session"; @@ -25,6 +26,7 @@ import HeliumTheme from "./Themes/Helium"; import HydrogenTheme from "./Themes/Hydrogen"; import { logWithPrefix } from "./logWithPrefix"; import { ErrorBoundary } from "./ErrorBoundary"; +import { getTestContext, getEnabledRecipes, getQueryParams } from "./testContext"; let { useNavigate } = require("react-router-dom"); let withRouter = undefined; const loadv5RRD = window.localStorage.getItem("react-router-dom-is-v5") === "true"; @@ -173,7 +175,31 @@ const formFields = [ }, ]; +const testContext = getTestContext(); + let recipeList = [ + MultiTenancy.init({ + override: { + functions: (oI) => ({ + ...oI, + getTenantId: (input) => { + if (testContext.mockTenantId) { + return testContext.mockTenantId; + } + + return oI.getTenantId(input); + }, + getLoginMethods: (input) => { + if (testContext.mockLoginMethodsForDynamicLogin) { + return { + ...JSON.parse(testContext.mockLoginMethodsForDynamicLogin), + }; + } + return oI.getLoginMethods(input); + }, + }), + }, + }), Session.init({ override: { functions: (implementation) => { @@ -223,22 +249,21 @@ let recipeList = [ }), ]; -const testContext = { - disableDefaultUI: getQueryParams("disableDefaultUI") === "true", - thirdPartyRedirectURL: localStorage.getItem("thirdPartyRedirectURL"), -}; +let enabledRecipes = getEnabledRecipes(); -if (authRecipe === "thirdparty") { +if (enabledRecipes.includes("thirdparty")) { recipeList = [getThirdPartyConfigs(testContext), ...recipeList]; -} else if (authRecipe === "emailpassword") { +} +if (enabledRecipes.includes("emailpassword")) { recipeList = [getEmailPasswordConfigs(testContext), ...recipeList]; -} else if (authRecipe === "both") { - recipeList = [getEmailPasswordConfigs(testContext), getThirdPartyConfigs(testContext), ...recipeList]; -} else if (authRecipe === "thirdpartyemailpassword") { +} +if (enabledRecipes.includes("thirdpartyemailpassword")) { recipeList = [getThirdPartyEmailPasswordConfigs(testContext), ...recipeList]; -} else if (authRecipe === "passwordless") { +} +if (enabledRecipes.includes("passwordless")) { recipeList = [getPasswordlessConfigs(testContext), ...recipeList]; -} else if (authRecipe === "thirdpartypasswordless") { +} +if (enabledRecipes.includes("thirdpartypasswordless")) { recipeList = [getThirdPartyPasswordlessConfigs(testContext), ...recipeList]; } @@ -246,6 +271,7 @@ if (emailVerificationMode !== "OFF") { recipeList.push(getEmailVerificationConfigs(testContext)); } SuperTokens.init({ + usesDynamicLoginMethods: testContext.usesDynamicLoginMethods, appInfo: { appName: "SuperTokens", websiteDomain: getWebsiteDomain(), @@ -305,11 +331,6 @@ function App() { } } -function getQueryParams(param) { - const urlParams = new URLSearchParams(window.location.search); - return urlParams.get(param); -} - export default App; export function BaseComponent({ children }) { @@ -616,7 +637,27 @@ function getEmailPasswordConfigs({ disableDefaultUI }) { }); } -function getThirdPartyPasswordlessConfigs({ disableDefaultUI, thirdPartyRedirectURL }) { +function getThirdPartyPasswordlessConfigs({ staticProviderList, disableDefaultUI, thirdPartyRedirectURL }) { + let providers = [ + ThirdParty.Github.init(), + ThirdParty.Google.init(), + ThirdParty.Facebook.init(), + ThirdParty.Apple.init(), + { + id: "custom", + name: "Custom", + }, + { + id: "auth0", + name: "Auth0", + getRedirectURL: thirdPartyRedirectURL !== null ? () => thirdPartyRedirectURL : undefined, + }, + ]; + if (staticProviderList) { + const ids = JSON.parse(staticProviderList); + providers = ids.map((id) => providers.find((p) => p.id === id) || { id, name: id }); + } + return ThirdPartyPasswordless.init({ override: { functions: (implementation) => { @@ -706,21 +747,7 @@ function getThirdPartyPasswordlessConfigs({ disableDefaultUI, thirdPartyRedirect `, privacyPolicyLink: "https://supertokens.io/legal/privacy-policy", termsOfServiceLink: "https://supertokens.io/legal/terms-and-conditions", - providers: [ - ThirdPartyEmailPassword.Github.init(), - ThirdPartyEmailPassword.Google.init(), - ThirdPartyEmailPassword.Facebook.init(), - ThirdPartyEmailPassword.Apple.init(), - { - id: "custom", - name: "Custom", - }, - { - id: "auth0", - name: "Auth0", - getRedirectURL: thirdPartyRedirectURL !== null ? () => thirdPartyRedirectURL : undefined, - }, - ], + providers, defaultCountry: passwordlessDefaultCountry, resendEmailOrSMSGapInSeconds: 2, guessInternationPhoneNumberFromInputPhoneNumber: passwordlessDisablePhoneGuess @@ -812,7 +839,26 @@ function getPasswordlessConfigs({ disableDefaultUI }) { }); } -function getThirdPartyConfigs({ disableDefaultUI, thirdPartyRedirectURL }) { +function getThirdPartyConfigs({ staticProviderList, disableDefaultUI, thirdPartyRedirectURL }) { + let providers = [ + ThirdParty.Github.init(), + ThirdParty.Google.init(), + ThirdParty.Facebook.init(), + ThirdParty.Apple.init(), + { + id: "custom", + name: "Custom", + }, + { + id: "auth0", + name: "Auth0", + getRedirectURL: thirdPartyRedirectURL !== null ? () => thirdPartyRedirectURL : undefined, + }, + ]; + if (staticProviderList) { + const ids = JSON.parse(staticProviderList); + providers = ids.map((id) => providers.find((p) => p.id === id) || { id, name: id }); + } return ThirdParty.init({ style: ` [data-supertokens~=container] { @@ -869,21 +915,7 @@ function getThirdPartyConfigs({ disableDefaultUI, thirdPartyRedirectURL }) { style: theme.style, privacyPolicyLink: "https://supertokens.com/legal/privacy-policy", termsOfServiceLink: "https://supertokens.com/legal/terms-and-conditions", - providers: [ - ThirdParty.Github.init(), - ThirdParty.Google.init(), - ThirdParty.Facebook.init(), - ThirdParty.Apple.init(), - { - id: "custom", - name: "Custom", - }, - { - id: "auth0", - name: "Auth0", - getRedirectURL: thirdPartyRedirectURL !== null ? () => thirdPartyRedirectURL : undefined, - }, - ], + providers, }, oAuthCallbackScreen: { @@ -892,7 +924,26 @@ function getThirdPartyConfigs({ disableDefaultUI, thirdPartyRedirectURL }) { }); } -function getThirdPartyEmailPasswordConfigs({ disableDefaultUI, thirdPartyRedirectURL }) { +function getThirdPartyEmailPasswordConfigs({ staticProviderList, disableDefaultUI, thirdPartyRedirectURL }) { + let providers = [ + ThirdParty.Github.init(), + ThirdParty.Google.init(), + ThirdParty.Facebook.init(), + ThirdParty.Apple.init(), + { + id: "custom", + name: "Custom", + }, + { + id: "auth0", + name: "Auth0", + getRedirectURL: thirdPartyRedirectURL !== null ? () => thirdPartyRedirectURL : undefined, + }, + ]; + if (staticProviderList) { + const ids = JSON.parse(staticProviderList); + providers = ids.map((id) => providers.find((p) => p.id === id) || { id, name: id }); + } return ThirdPartyEmailPassword.init({ preAPIHook: async (context) => { console.log(`ST_LOGS THIRD_PARTY_EMAIL_PASSWORD PRE_API_HOOKS ${context.action}`); @@ -1026,20 +1077,6 @@ function getThirdPartyEmailPasswordConfigs({ disableDefaultUI, thirdPartyRedirec return implementation.verifyAndGetStateOrThrowError(input); }, - getAuthCodeFromURL(input) { - if (input.userContext["key"] !== undefined) { - log(`GET_AUTH_CODE_FROM_URL RECEIVED_USER_CONTEXT`); - } - - return implementation.getAuthCodeFromURL(input); - }, - getAuthErrorFromURL(input) { - if (input.userContext["key"] !== undefined) { - log(`GET_AUTH_ERROR_FROM_URL RECEIVED_USER_CONTEXT`); - } - - return implementation.getAuthErrorFromURL(input); - }, }; }, }, @@ -1056,21 +1093,7 @@ function getThirdPartyEmailPasswordConfigs({ disableDefaultUI, thirdPartyRedirec termsOfServiceLink: "https://supertokens.com/legal/terms-and-conditions", }, style: theme.style, - providers: [ - ThirdPartyEmailPassword.Github.init(), - ThirdPartyEmailPassword.Google.init(), - ThirdPartyEmailPassword.Facebook.init(), - ThirdPartyEmailPassword.Apple.init(), - { - id: "custom", - name: "Custom", - }, - { - id: "auth0", - name: "Auth0", - getRedirectURL: thirdPartyRedirectURL !== null ? () => thirdPartyRedirectURL : undefined, - }, - ], + providers, }, disableEmailPassword: false, diff --git a/examples/for-tests-react-16/src/AppWithReactDomRouter.js b/examples/for-tests-react-16/src/AppWithReactDomRouter.js index 7ab1b9fdc..4e07febe2 100644 --- a/examples/for-tests-react-16/src/AppWithReactDomRouter.js +++ b/examples/for-tests-react-16/src/AppWithReactDomRouter.js @@ -16,24 +16,27 @@ import { EmailPasswordPreBuiltUI } from "supertokens-auth-react/recipe/emailpass import { PasswordlessPreBuiltUI } from "supertokens-auth-react/recipe/passwordless/prebuiltui"; import { ThirdPartyPreBuiltUI } from "supertokens-auth-react/recipe/thirdparty/prebuiltui"; import { AccessDeniedScreen } from "supertokens-auth-react/recipe/session/prebuiltui"; +import { getEnabledRecipes } from "./testContext"; function AppWithReactDomRouter(props) { - const authRecipe = window.localStorage.getItem("authRecipe") || "emailpassword"; + const enabledRecipes = getEnabledRecipes(); const emailVerificationMode = window.localStorage.getItem("mode") || "OFF"; - let recipePreBuiltUIList = [EmailPasswordPreBuiltUI]; - if (authRecipe === "thirdparty") { - recipePreBuiltUIList = [ThirdPartyPreBuiltUI]; - } else if (authRecipe === "emailpassword") { - recipePreBuiltUIList = [EmailPasswordPreBuiltUI]; - } else if (authRecipe === "both") { - recipePreBuiltUIList = [EmailPasswordPreBuiltUI, ThirdPartyPreBuiltUI]; - } else if (authRecipe === "thirdpartyemailpassword") { - recipePreBuiltUIList = [ThirdPartyEmailPasswordPreBuiltUI]; - } else if (authRecipe === "passwordless") { - recipePreBuiltUIList = [PasswordlessPreBuiltUI]; - } else if (authRecipe === "thirdpartypasswordless") { - recipePreBuiltUIList = [ThirdPartyPasswordlessPreBuiltUI]; + let recipePreBuiltUIList = []; + if (enabledRecipes.includes("emailpassword")) { + recipePreBuiltUIList.push(EmailPasswordPreBuiltUI); + } + if (enabledRecipes.includes("thirdparty")) { + recipePreBuiltUIList.push(ThirdPartyPreBuiltUI); + } + if (enabledRecipes.includes("thirdpartyemailpassword")) { + recipePreBuiltUIList.push(ThirdPartyEmailPasswordPreBuiltUI); + } + if (enabledRecipes.includes("passwordless")) { + recipePreBuiltUIList.push(PasswordlessPreBuiltUI); + } + if (enabledRecipes.includes("thirdpartypasswordless")) { + recipePreBuiltUIList.push(ThirdPartyPasswordlessPreBuiltUI); } if (emailVerificationMode !== "OFF") { diff --git a/examples/for-tests-react-16/src/AppWithReactDomRouterV5.js b/examples/for-tests-react-16/src/AppWithReactDomRouterV5.js index d03c2aa6f..11ee6b6ad 100644 --- a/examples/for-tests-react-16/src/AppWithReactDomRouterV5.js +++ b/examples/for-tests-react-16/src/AppWithReactDomRouterV5.js @@ -11,25 +11,29 @@ import { EmailPasswordPreBuiltUI } from "supertokens-auth-react/recipe/emailpass import { PasswordlessPreBuiltUI } from "supertokens-auth-react/recipe/passwordless/prebuiltui"; import { ThirdPartyPreBuiltUI } from "supertokens-auth-react/recipe/thirdparty/prebuiltui"; import { AccessDeniedScreen } from "supertokens-auth-react/recipe/session/prebuiltui"; +import { getEnabledRecipes } from "./testContext"; function AppWithReactDomRouter(props) { - const authRecipe = window.localStorage.getItem("authRecipe") || "emailpassword"; + const enabledRecipes = getEnabledRecipes(); const emailVerificationMode = window.localStorage.getItem("mode") || "OFF"; - let recipePreBuiltUIList = [EmailPasswordPreBuiltUI]; - if (authRecipe === "thirdparty") { - recipePreBuiltUIList = [ThirdPartyPreBuiltUI]; - } else if (authRecipe === "emailpassword") { - recipePreBuiltUIList = [EmailPasswordPreBuiltUI]; - } else if (authRecipe === "both") { - recipePreBuiltUIList = [EmailPasswordPreBuiltUI, ThirdPartyPreBuiltUI]; - } else if (authRecipe === "thirdpartyemailpassword") { - recipePreBuiltUIList = [ThirdPartyEmailPasswordPreBuiltUI]; - } else if (authRecipe === "passwordless") { - recipePreBuiltUIList = [PasswordlessPreBuiltUI]; - } else if (authRecipe === "thirdpartypasswordless") { - recipePreBuiltUIList = [ThirdPartyPasswordlessPreBuiltUI]; + let recipePreBuiltUIList = []; + if (enabledRecipes.includes("emailpassword")) { + recipePreBuiltUIList.push(EmailPasswordPreBuiltUI); } + if (enabledRecipes.includes("thirdparty")) { + recipePreBuiltUIList.push(ThirdPartyPreBuiltUI); + } + if (enabledRecipes.includes("thirdpartyemailpassword")) { + recipePreBuiltUIList.push(ThirdPartyEmailPasswordPreBuiltUI); + } + if (enabledRecipes.includes("passwordless")) { + recipePreBuiltUIList.push(PasswordlessPreBuiltUI); + } + if (enabledRecipes.includes("thirdpartypasswordless")) { + recipePreBuiltUIList.push(ThirdPartyPasswordlessPreBuiltUI); + } + if (emailVerificationMode !== "OFF") { recipePreBuiltUIList.push(EmailVerificationPreBuiltUI); } diff --git a/examples/for-tests-react-16/src/AppWithoutRouter.js b/examples/for-tests-react-16/src/AppWithoutRouter.js index d769628c1..7937b2898 100644 --- a/examples/for-tests-react-16/src/AppWithoutRouter.js +++ b/examples/for-tests-react-16/src/AppWithoutRouter.js @@ -7,6 +7,7 @@ import { EmailPasswordPreBuiltUI } from "supertokens-auth-react/recipe/emailpass import { PasswordlessPreBuiltUI } from "supertokens-auth-react/recipe/passwordless/prebuiltui"; import { ThirdPartyPreBuiltUI } from "supertokens-auth-react/recipe/thirdparty/prebuiltui"; import { EmailVerificationPreBuiltUI } from "supertokens-auth-react/recipe/emailverification/prebuiltui"; +import { getEnabledRecipes } from "./testContext"; function AppWithoutRouter() { return ( @@ -20,22 +21,24 @@ function AppWithoutRouter() { } function Routing() { - const authRecipe = window.localStorage.getItem("authRecipe") || "emailpassword"; + const enabledRecipes = getEnabledRecipes(); const emailVerificationMode = window.localStorage.getItem("mode") || "OFF"; - let recipePreBuiltUIList = [EmailPasswordPreBuiltUI]; - if (authRecipe === "thirdparty") { - recipePreBuiltUIList = [ThirdPartyPreBuiltUI]; - } else if (authRecipe === "emailpassword") { - recipePreBuiltUIList = [EmailPasswordPreBuiltUI]; - } else if (authRecipe === "both") { - recipePreBuiltUIList = [EmailPasswordPreBuiltUI, ThirdPartyPreBuiltUI]; - } else if (authRecipe === "thirdpartyemailpassword") { - recipePreBuiltUIList = [ThirdPartyEmailPasswordPreBuiltUI]; - } else if (authRecipe === "passwordless") { - recipePreBuiltUIList = [PasswordlessPreBuiltUI]; - } else if (authRecipe === "thirdpartypasswordless") { - recipePreBuiltUIList = [ThirdPartyPasswordlessPreBuiltUI]; + let recipePreBuiltUIList = []; + if (enabledRecipes.includes("thirdparty")) { + recipePreBuiltUIList.push(ThirdPartyPreBuiltUI); + } + if (enabledRecipes.includes("emailpassword")) { + recipePreBuiltUIList.push(EmailPasswordPreBuiltUI); + } + if (enabledRecipes.includes("thirdpartyemailpassword")) { + recipePreBuiltUIList.push(ThirdPartyEmailPasswordPreBuiltUI); + } + if (enabledRecipes.includes("passwordless")) { + recipePreBuiltUIList.push(PasswordlessPreBuiltUI); + } + if (enabledRecipes.includes("thirdpartypasswordless")) { + recipePreBuiltUIList.push(ThirdPartyPasswordlessPreBuiltUI); } if (emailVerificationMode !== "OFF") { diff --git a/examples/for-tests-react-16/src/testContext.js b/examples/for-tests-react-16/src/testContext.js new file mode 100644 index 000000000..4955fe020 --- /dev/null +++ b/examples/for-tests-react-16/src/testContext.js @@ -0,0 +1,46 @@ +export function getQueryParams(param) { + const urlParams = new URLSearchParams(window.location.search); + return urlParams.get(param); +} + +export function getTestContext() { + const ret = { + disableDefaultUI: getQueryParams("disableDefaultUI") === "true", + thirdPartyRedirectURL: localStorage.getItem("thirdPartyRedirectURL"), + authRecipe: window.localStorage.getItem("authRecipe") || "emailpassword", + usesDynamicLoginMethods: localStorage.getItem("usesDynamicLoginMethods") === "true", + clientRecipeListForDynamicLogin: localStorage.getItem("clientRecipeListForDynamicLogin"), + mockLoginMethodsForDynamicLogin: localStorage.getItem("mockLoginMethodsForDynamicLogin"), + staticProviderList: localStorage.getItem("staticProviderList"), + mockTenantId: localStorage.getItem("mockTenantId"), + }; + return ret; +} + +export function getEnabledRecipes() { + const testContext = getTestContext(); + + let enabledRecipes = []; + + if (testContext.usesDynamicLoginMethods) { + if (testContext.clientRecipeListForDynamicLogin) { + enabledRecipes = JSON.parse(testContext.clientRecipeListForDynamicLogin); + } else { + enabledRecipes = [ + "emailpassword", + "thirdparty", + "thirdpartyemailpassword", + "passwordless", + "thirdpartypasswordless", + ]; + } + } else { + if (testContext.authRecipe === "both") { + enabledRecipes.push("emailpassword", "thirdparty"); + } else { + enabledRecipes.push(testContext.authRecipe); + } + } + + return enabledRecipes; +} diff --git a/examples/for-tests/src/App.js b/examples/for-tests/src/App.js index 3587a8325..9cbbdd75f 100644 --- a/examples/for-tests/src/App.js +++ b/examples/for-tests/src/App.js @@ -10,6 +10,7 @@ import EmailVerification from "supertokens-auth-react/recipe/emailverification"; import EmailPassword from "supertokens-auth-react/recipe/emailpassword"; import Passwordless from "supertokens-auth-react/recipe/passwordless"; import ThirdParty from "supertokens-auth-react/recipe/thirdparty"; +import MultiTenancy from "supertokens-auth-react/recipe/multitenancy"; import ThirdPartyEmailPassword from "supertokens-auth-react/recipe/thirdpartyemailpassword"; import ThirdPartyPasswordless from "supertokens-auth-react/recipe/thirdpartypasswordless"; import UserRoles from "supertokens-auth-react/recipe/userroles"; @@ -25,6 +26,7 @@ import HydrogenTheme from "./Themes/Hydrogen"; import { logWithPrefix } from "./logWithPrefix"; import { ErrorBoundary } from "./ErrorBoundary"; import { useNavigate } from "react-router-dom"; +import { getTestContext, getEnabledRecipes, getQueryParams } from "./testContext"; const loadv5RRD = window.localStorage.getItem("react-router-dom-is-v5") === "true"; if (loadv5RRD) { @@ -94,8 +96,6 @@ if (getQueryParams("authRecipe")) { window.localStorage.setItem("authRecipe", getQueryParams("authRecipe")); } -const authRecipe = window.localStorage.getItem("authRecipe") || "emailpassword"; - if (getQueryParams("defaultToSignUp")) { window.localStorage.setItem("defaultToSignUp", getQueryParams("defaultToSignUp") === "true"); } @@ -168,7 +168,32 @@ const formFields = [ }, ]; +const testContext = getTestContext(); + let recipeList = [ + MultiTenancy.init({ + override: { + functions: (oI) => ({ + ...oI, + getTenantId: (input) => { + if (testContext.mockTenantId) { + return testContext.mockTenantId; + } + + return oI.getTenantId(input); + }, + getLoginMethods: (input) => { + if (testContext.mockLoginMethodsForDynamicLogin) { + return { + ...JSON.parse(testContext.mockLoginMethodsForDynamicLogin), + }; + } + + return oI.getLoginMethods(input); + }, + }), + }, + }), Session.init({ override: { functions: (implementation) => { @@ -230,29 +255,30 @@ let recipeList = [ }), ]; -const testContext = { - disableDefaultUI: getQueryParams("disableDefaultUI") === "true", - thirdPartyRedirectURL: localStorage.getItem("thirdPartyRedirectURL"), -}; +let enabledRecipes = getEnabledRecipes(); -if (authRecipe === "thirdparty") { +if (enabledRecipes.includes("thirdparty")) { recipeList = [getThirdPartyConfigs(testContext), ...recipeList]; -} else if (authRecipe === "emailpassword") { +} +if (enabledRecipes.includes("emailpassword")) { recipeList = [getEmailPasswordConfigs(testContext), ...recipeList]; -} else if (authRecipe === "both") { - recipeList = [getEmailPasswordConfigs(testContext), getThirdPartyConfigs(testContext), ...recipeList]; -} else if (authRecipe === "thirdpartyemailpassword") { +} +if (enabledRecipes.includes("thirdpartyemailpassword")) { recipeList = [getThirdPartyEmailPasswordConfigs(testContext), ...recipeList]; -} else if (authRecipe === "passwordless") { +} +if (enabledRecipes.includes("passwordless")) { recipeList = [getPasswordlessConfigs(testContext), ...recipeList]; -} else if (authRecipe === "thirdpartypasswordless") { +} +if (enabledRecipes.includes("thirdpartypasswordless")) { recipeList = [getThirdPartyPasswordlessConfigs(testContext), ...recipeList]; } if (emailVerificationMode !== "OFF") { recipeList.push(getEmailVerificationConfigs(testContext)); } + SuperTokens.init({ + usesDynamicLoginMethods: testContext.usesDynamicLoginMethods, appInfo: { appName: "SuperTokens", websiteDomain: getWebsiteDomain(), @@ -299,16 +325,11 @@ function App() { return ( - + ); } -function getQueryParams(param) { - const urlParams = new URLSearchParams(window.location.search); - return urlParams.get(param); -} - export default App; export function BaseComponent({ children }) { @@ -394,18 +415,8 @@ export function DashboardHelper({ redirectOnLogout, ...props } = {}) { const [sessionInfoUsingFetch, setSessionInfoUsingFetch] = useState(undefined); async function logout() { - const useRecipe = getQueryParams("rid") || authRecipe; - if (useRecipe === "thirdparty") { - await ThirdParty.signOut(); - } else if (useRecipe === "thirdpartyemailpassword") { - await ThirdPartyEmailPassword.signOut(); - } else if (useRecipe === "passwordless") { - await Passwordless.signOut(); - } else if (useRecipe === "thirdpartypasswordless") { - await ThirdPartyPasswordless.signOut(); - } else { - await EmailPassword.signOut(); - } + await Session.signOut(); + if (redirectOnLogout) { if (props.history === undefined) { window.location.href = "/auth"; @@ -631,7 +642,26 @@ function getEmailPasswordConfigs({ disableDefaultUI }) { }); } -function getThirdPartyPasswordlessConfigs({ disableDefaultUI, thirdPartyRedirectURL }) { +function getThirdPartyPasswordlessConfigs({ staticProviderList, disableDefaultUI, thirdPartyRedirectURL }) { + let providers = [ + ThirdParty.Github.init(), + ThirdParty.Google.init(), + ThirdParty.Facebook.init(), + ThirdParty.Apple.init(), + { + id: "custom", + name: "Custom", + }, + { + id: "auth0", + name: "Auth0", + getRedirectURL: thirdPartyRedirectURL !== null ? () => thirdPartyRedirectURL : undefined, + }, + ]; + if (staticProviderList) { + const ids = JSON.parse(staticProviderList); + providers = ids.map((id) => providers.find((p) => p.id === id) || { id, name: id }); + } return ThirdPartyPasswordless.init({ override: { functions: (implementation) => { @@ -734,21 +764,7 @@ function getThirdPartyPasswordlessConfigs({ disableDefaultUI, thirdPartyRedirect `, privacyPolicyLink: "https://supertokens.io/legal/privacy-policy", termsOfServiceLink: "https://supertokens.io/legal/terms-and-conditions", - providers: [ - ThirdPartyEmailPassword.Github.init(), - ThirdPartyEmailPassword.Google.init(), - ThirdPartyEmailPassword.Facebook.init(), - ThirdPartyEmailPassword.Apple.init(), - { - id: "custom", - name: "Custom", - }, - { - id: "auth0", - name: "Auth0", - getRedirectURL: thirdPartyRedirectURL !== null ? () => thirdPartyRedirectURL : undefined, - }, - ], + providers, defaultCountry: passwordlessDefaultCountry, resendEmailOrSMSGapInSeconds: 2, guessInternationPhoneNumberFromInputPhoneNumber: passwordlessDisablePhoneGuess @@ -849,7 +865,36 @@ function getPasswordlessConfigs({ disableDefaultUI }) { }); } -function getThirdPartyConfigs({ disableDefaultUI, thirdPartyRedirectURL }) { +function getThirdPartyConfigs({ staticProviderList, disableDefaultUI, thirdPartyRedirectURL }) { + let providers = [ + ThirdParty.Github.init(), + ThirdParty.Google.init(), + ThirdParty.Facebook.init(), + ThirdParty.Apple.init(), + { + id: "custom", + name: "Custom", + }, + { + id: "auth0", + name: "Auth0", + getRedirectURL: thirdPartyRedirectURL !== null ? () => thirdPartyRedirectURL : undefined, + buttonComponent: ({ name }) => ( + + ), + }, + ]; + if (staticProviderList) { + const ids = JSON.parse(staticProviderList); + providers = ids.map((id) => providers.find((p) => p.id === id) || { id, name: id }); + } return ThirdParty.init({ style: ` [data-supertokens~=container] { @@ -918,21 +963,7 @@ function getThirdPartyConfigs({ disableDefaultUI, thirdPartyRedirectURL }) { style: theme, privacyPolicyLink: "https://supertokens.com/legal/privacy-policy", termsOfServiceLink: "https://supertokens.com/legal/terms-and-conditions", - providers: [ - ThirdParty.Github.init(), - ThirdParty.Google.init(), - ThirdParty.Facebook.init(), - ThirdParty.Apple.init(), - { - id: "custom", - name: "Custom", - }, - { - id: "auth0", - name: "Auth0", - getRedirectURL: thirdPartyRedirectURL !== null ? () => thirdPartyRedirectURL : undefined, - }, - ], + providers, }, oAuthCallbackScreen: { @@ -941,7 +972,26 @@ function getThirdPartyConfigs({ disableDefaultUI, thirdPartyRedirectURL }) { }); } -function getThirdPartyEmailPasswordConfigs({ disableDefaultUI, thirdPartyRedirectURL }) { +function getThirdPartyEmailPasswordConfigs({ staticProviderList, disableDefaultUI, thirdPartyRedirectURL }) { + let providers = [ + ThirdParty.Github.init(), + ThirdParty.Google.init(), + ThirdParty.Facebook.init(), + ThirdParty.Apple.init(), + { + id: "custom", + name: "Custom", + }, + { + id: "auth0", + name: "Auth0", + getRedirectURL: thirdPartyRedirectURL !== null ? () => thirdPartyRedirectURL : undefined, + }, + ]; + if (staticProviderList) { + const ids = JSON.parse(staticProviderList); + providers = ids.map((id) => providers.find((p) => p.id === id) || { id, name: id }); + } return ThirdPartyEmailPassword.init({ preAPIHook: async (context) => { if (localStorage.getItem(`SHOW_GENERAL_ERROR`) === `THIRD_PARTY_EMAIL_PASSWORD ${context.action}`) { @@ -1088,20 +1138,6 @@ function getThirdPartyEmailPasswordConfigs({ disableDefaultUI, thirdPartyRedirec return implementation.verifyAndGetStateOrThrowError(input); }, - getAuthCodeFromURL(input) { - if (input.userContext["key"] !== undefined) { - log(`GET_AUTH_CODE_FROM_URL RECEIVED_USER_CONTEXT`); - } - - return implementation.getAuthCodeFromURL(input); - }, - getAuthErrorFromURL(input) { - if (input.userContext["key"] !== undefined) { - log(`GET_AUTH_ERROR_FROM_URL RECEIVED_USER_CONTEXT`); - } - - return implementation.getAuthErrorFromURL(input); - }, }; }, }, @@ -1118,21 +1154,7 @@ function getThirdPartyEmailPasswordConfigs({ disableDefaultUI, thirdPartyRedirec termsOfServiceLink: "https://supertokens.com/legal/terms-and-conditions", }, style: theme, - providers: [ - ThirdPartyEmailPassword.Github.init(), - ThirdPartyEmailPassword.Google.init(), - ThirdPartyEmailPassword.Facebook.init(), - ThirdPartyEmailPassword.Apple.init(), - { - id: "custom", - name: "Custom", - }, - { - id: "auth0", - name: "Auth0", - getRedirectURL: thirdPartyRedirectURL !== null ? () => thirdPartyRedirectURL : undefined, - }, - ], + providers, }, disableEmailPassword: false, diff --git a/examples/for-tests/src/AppWithReactDomRouter.js b/examples/for-tests/src/AppWithReactDomRouter.js index 387ca04a9..8a379448b 100644 --- a/examples/for-tests/src/AppWithReactDomRouter.js +++ b/examples/for-tests/src/AppWithReactDomRouter.js @@ -16,6 +16,7 @@ import { EmailVerificationPreBuiltUI } from "supertokens-auth-react/recipe/email import { ThirdPartyPreBuiltUI } from "supertokens-auth-react/recipe/thirdparty/prebuiltui"; import { AccessDeniedScreen } from "supertokens-auth-react/recipe/session/prebuiltui"; import { BaseComponent, Home, Contact, Dashboard, DashboardNoAuthRequired } from "./App"; +import { getEnabledRecipes } from "./testContext"; function AppWithReactDomRouter(props) { /** @@ -28,22 +29,25 @@ function AppWithReactDomRouter(props) { window.setClaimValidators = setClaimValidators; const keyWithClaimValidators = claimValidators !== undefined ? claimValidators.map((a) => a.id).join("_") : undefined; - const authRecipe = window.localStorage.getItem("authRecipe") || "emailpassword"; + + const enabledRecipes = getEnabledRecipes(); const emailVerificationMode = window.localStorage.getItem("mode") || "OFF"; - let recipePreBuiltUIList = [EmailPasswordPreBuiltUI]; - if (authRecipe === "thirdparty") { - recipePreBuiltUIList = [ThirdPartyPreBuiltUI]; - } else if (authRecipe === "emailpassword") { - recipePreBuiltUIList = [EmailPasswordPreBuiltUI]; - } else if (authRecipe === "both") { - recipePreBuiltUIList = [EmailPasswordPreBuiltUI, ThirdPartyPreBuiltUI]; - } else if (authRecipe === "thirdpartyemailpassword") { - recipePreBuiltUIList = [ThirdPartyEmailPasswordPreBuiltUI]; - } else if (authRecipe === "passwordless") { - recipePreBuiltUIList = [PasswordlessPreBuiltUI]; - } else if (authRecipe === "thirdpartypasswordless") { - recipePreBuiltUIList = [ThirdPartyPasswordlessPreBuiltUI]; + let recipePreBuiltUIList = []; + if (enabledRecipes.includes("emailpassword")) { + recipePreBuiltUIList.push(EmailPasswordPreBuiltUI); + } + if (enabledRecipes.includes("thirdparty")) { + recipePreBuiltUIList.push(ThirdPartyPreBuiltUI); + } + if (enabledRecipes.includes("thirdpartyemailpassword")) { + recipePreBuiltUIList.push(ThirdPartyEmailPasswordPreBuiltUI); + } + if (enabledRecipes.includes("passwordless")) { + recipePreBuiltUIList.push(PasswordlessPreBuiltUI); + } + if (enabledRecipes.includes("thirdpartypasswordless")) { + recipePreBuiltUIList.push(ThirdPartyPasswordlessPreBuiltUI); } if (emailVerificationMode !== "OFF") { recipePreBuiltUIList.push(EmailVerificationPreBuiltUI); diff --git a/examples/for-tests/src/AppWithoutRouter.js b/examples/for-tests/src/AppWithoutRouter.js index d769628c1..7937b2898 100644 --- a/examples/for-tests/src/AppWithoutRouter.js +++ b/examples/for-tests/src/AppWithoutRouter.js @@ -7,6 +7,7 @@ import { EmailPasswordPreBuiltUI } from "supertokens-auth-react/recipe/emailpass import { PasswordlessPreBuiltUI } from "supertokens-auth-react/recipe/passwordless/prebuiltui"; import { ThirdPartyPreBuiltUI } from "supertokens-auth-react/recipe/thirdparty/prebuiltui"; import { EmailVerificationPreBuiltUI } from "supertokens-auth-react/recipe/emailverification/prebuiltui"; +import { getEnabledRecipes } from "./testContext"; function AppWithoutRouter() { return ( @@ -20,22 +21,24 @@ function AppWithoutRouter() { } function Routing() { - const authRecipe = window.localStorage.getItem("authRecipe") || "emailpassword"; + const enabledRecipes = getEnabledRecipes(); const emailVerificationMode = window.localStorage.getItem("mode") || "OFF"; - let recipePreBuiltUIList = [EmailPasswordPreBuiltUI]; - if (authRecipe === "thirdparty") { - recipePreBuiltUIList = [ThirdPartyPreBuiltUI]; - } else if (authRecipe === "emailpassword") { - recipePreBuiltUIList = [EmailPasswordPreBuiltUI]; - } else if (authRecipe === "both") { - recipePreBuiltUIList = [EmailPasswordPreBuiltUI, ThirdPartyPreBuiltUI]; - } else if (authRecipe === "thirdpartyemailpassword") { - recipePreBuiltUIList = [ThirdPartyEmailPasswordPreBuiltUI]; - } else if (authRecipe === "passwordless") { - recipePreBuiltUIList = [PasswordlessPreBuiltUI]; - } else if (authRecipe === "thirdpartypasswordless") { - recipePreBuiltUIList = [ThirdPartyPasswordlessPreBuiltUI]; + let recipePreBuiltUIList = []; + if (enabledRecipes.includes("thirdparty")) { + recipePreBuiltUIList.push(ThirdPartyPreBuiltUI); + } + if (enabledRecipes.includes("emailpassword")) { + recipePreBuiltUIList.push(EmailPasswordPreBuiltUI); + } + if (enabledRecipes.includes("thirdpartyemailpassword")) { + recipePreBuiltUIList.push(ThirdPartyEmailPasswordPreBuiltUI); + } + if (enabledRecipes.includes("passwordless")) { + recipePreBuiltUIList.push(PasswordlessPreBuiltUI); + } + if (enabledRecipes.includes("thirdpartypasswordless")) { + recipePreBuiltUIList.push(ThirdPartyPasswordlessPreBuiltUI); } if (emailVerificationMode !== "OFF") { diff --git a/examples/for-tests/src/testContext.js b/examples/for-tests/src/testContext.js new file mode 100644 index 000000000..4955fe020 --- /dev/null +++ b/examples/for-tests/src/testContext.js @@ -0,0 +1,46 @@ +export function getQueryParams(param) { + const urlParams = new URLSearchParams(window.location.search); + return urlParams.get(param); +} + +export function getTestContext() { + const ret = { + disableDefaultUI: getQueryParams("disableDefaultUI") === "true", + thirdPartyRedirectURL: localStorage.getItem("thirdPartyRedirectURL"), + authRecipe: window.localStorage.getItem("authRecipe") || "emailpassword", + usesDynamicLoginMethods: localStorage.getItem("usesDynamicLoginMethods") === "true", + clientRecipeListForDynamicLogin: localStorage.getItem("clientRecipeListForDynamicLogin"), + mockLoginMethodsForDynamicLogin: localStorage.getItem("mockLoginMethodsForDynamicLogin"), + staticProviderList: localStorage.getItem("staticProviderList"), + mockTenantId: localStorage.getItem("mockTenantId"), + }; + return ret; +} + +export function getEnabledRecipes() { + const testContext = getTestContext(); + + let enabledRecipes = []; + + if (testContext.usesDynamicLoginMethods) { + if (testContext.clientRecipeListForDynamicLogin) { + enabledRecipes = JSON.parse(testContext.clientRecipeListForDynamicLogin); + } else { + enabledRecipes = [ + "emailpassword", + "thirdparty", + "thirdpartyemailpassword", + "passwordless", + "thirdpartypasswordless", + ]; + } + } else { + if (testContext.authRecipe === "both") { + enabledRecipes.push("emailpassword", "thirdparty"); + } else { + enabledRecipes.push(testContext.authRecipe); + } + } + + return enabledRecipes; +} diff --git a/examples/with-cli-login/api-server/index.ts b/examples/with-cli-login/api-server/index.ts index 48f18fa0d..dbce67816 100644 --- a/examples/with-cli-login/api-server/index.ts +++ b/examples/with-cli-login/api-server/index.ts @@ -36,23 +36,44 @@ supertokens.init({ providers: [ // We have provided you with development keys which you can use for testing. // IMPORTANT: Please replace them with your own OAuth keys for production use. - ThirdPartyEmailPassword.Google({ - clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", - clientSecret: "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", - }), - ThirdPartyEmailPassword.Github({ - clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", - clientId: "467101b197249757c71f", - }), - ThirdPartyEmailPassword.Apple({ - clientId: "4398792-io.supertokens.example.service", - clientSecret: { - keyId: "7M48Y4RYDL", - privateKey: - "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", - teamId: "YWQCXGJRJL", + { + config: { + thirdPartyId: "google", + clients: [ + { + clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], }, - }), + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientId: "467101b197249757c71f", + clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", + }, + ], + }, + }, + { + config: { + thirdPartyId: "apple", + clients: [ + { + clientId: "4398792-io.supertokens.example.service", + additionalConfig: { + keyId: "7M48Y4RYDL", + privateKey: + "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", + teamId: "YWQCXGJRJL", + }, + }, + ], + }, + }, ], }), UserMetadata.init(), @@ -98,6 +119,7 @@ app.post("/consumetoken", verifySession(), async (req: SessionRequest, res) => { let preAuthSessionId = req.body.preAuthSessionId; let response = await Passwordless.consumeCode({ + tenantId: req.session!.getTenantId(), preAuthSessionId, linkCode: token, }); @@ -122,6 +144,7 @@ app.post("/consumetoken", verifySession(), async (req: SessionRequest, res) => { app.get("/getmagiclink", async (req, res) => { let link = await Passwordless.createMagicLink({ + tenantId: "public", email: uuidv4(), }); res.status(200).send(link); diff --git a/examples/with-emailverification-then-password-thirdpartyemailpassword/api-server.js b/examples/with-emailverification-then-password-thirdpartyemailpassword/api-server.js index 857276592..0a8761bf7 100644 --- a/examples/with-emailverification-then-password-thirdpartyemailpassword/api-server.js +++ b/examples/with-emailverification-then-password-thirdpartyemailpassword/api-server.js @@ -51,6 +51,7 @@ supertokens.init({ emailPasswordEmailExistsGET: async function (input) { let email = input.email; let signInResponse = await ThirdPartyEmailPassword.emailPasswordSignIn( + input.tenantId, email, FAKE_PASSWORD ); @@ -93,6 +94,7 @@ supertokens.init({ // what's in the db too, then we shall treat this as a success, // but unverify their email. let signInResponse = await ThirdPartyEmailPassword.emailPasswordSignIn( + input.tenantId, email, FAKE_PASSWORD ); @@ -113,9 +115,10 @@ supertokens.init({ await Session.createNewSession( input.options.req, input.options.res, + input.tenantId, user.id, { - ...RealPasswordClaim.build(user.id, input.userContext), + ...RealPasswordClaim.build(user.id, input.tenantId, input.userContext), }, {} ); @@ -153,23 +156,44 @@ supertokens.init({ providers: [ // We have provided you with development keys which you can use for testing. // IMPORTANT: Please replace them with your own OAuth keys for production use. - ThirdPartyEmailPassword.Google({ - clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", - clientSecret: "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", - }), - ThirdPartyEmailPassword.Github({ - clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", - clientId: "467101b197249757c71f", - }), - ThirdPartyEmailPassword.Apple({ - clientId: "4398792-io.supertokens.example.service", - clientSecret: { - keyId: "7M48Y4RYDL", - privateKey: - "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", - teamId: "YWQCXGJRJL", + { + config: { + thirdPartyId: "google", + clients: [ + { + clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], }, - }), + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientId: "467101b197249757c71f", + clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", + }, + ], + }, + }, + { + config: { + thirdPartyId: "apple", + clients: [ + { + clientId: "4398792-io.supertokens.example.service", + additionalConfig: { + keyId: "7M48Y4RYDL", + privateKey: + "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", + teamId: "YWQCXGJRJL", + }, + }, + ], + }, + }, ], }), Session.init({ diff --git a/examples/with-emailverification-with-otp/README.md b/examples/with-emailverification-with-otp/README.md index eb44551ce..1c5a80490 100644 --- a/examples/with-emailverification-with-otp/README.md +++ b/examples/with-emailverification-with-otp/README.md @@ -64,7 +64,7 @@ Our backend will need to handle two main things: In the regular email verification flow, the url which is sent to the user for verification contains a token. This token will be used for verifying the user. -We will use the `createAndSendCustomEmail` function in our backend config where we will generate an OTP, map it to the token and send the OTP to the user via email using node mailer. +We will use the `emailDelivery` config in our backend config where we will generate an OTP, map it to the token and send the OTP to the user via email using node mailer. #### Verifying the OTP diff --git a/examples/with-emailverification-with-otp/api-server/server.ts b/examples/with-emailverification-with-otp/api-server/server.ts index 91c109b89..6ef26e03f 100644 --- a/examples/with-emailverification-with-otp/api-server/server.ts +++ b/examples/with-emailverification-with-otp/api-server/server.ts @@ -1,7 +1,7 @@ import express from "express"; import supertokens from "supertokens-node"; import Session from "supertokens-node/recipe/session"; -import ThirdPartyEmailPassword, { Google, Github } from "supertokens-node/recipe/thirdpartyemailpassword"; +import ThirdPartyEmailPassword from "supertokens-node/recipe/thirdpartyemailpassword"; import EmailVerification from "supertokens-node/recipe/emailverification"; import { middleware, errorHandler } from "supertokens-node/framework/express"; import cors from "cors"; @@ -34,22 +34,26 @@ supertokens.init({ recipeList: [ EmailVerification.init({ mode: "REQUIRED", - createAndSendCustomEmail: async (user, url) => { - // retrieve the token from the url - const token = new URL(url).searchParams.get("token"); - - if (token !== null) { - // generate a 6 digit otp - let otp = generateOtpAndMapToToken(token, otpToTokenMapping); - console.log(otp, user.email); - // send a mail to the user with the otp - await mailTransporter.sendMail({ - from: process.env.NODEMAILER_USER, - to: user.email, - subject: "SuperTokens Demo OTP", - html: getMessageBody(otp, user.email), - }); - } + emailDelivery: { + service: { + sendEmail: async ({ user, emailVerifyLink: url }) => { + // retrieve the token from the url + const token = new URL(url).searchParams.get("token"); + + if (token !== null) { + // generate a 6 digit otp + let otp = generateOtpAndMapToToken(token, otpToTokenMapping); + console.log(otp, user.email); + // send a mail to the user with the otp + await mailTransporter.sendMail({ + from: process.env.NODEMAILER_USER, + to: user.email, + subject: "SuperTokens Demo OTP", + html: getMessageBody(otp, user.email), + }); + } + }, + }, }, override: { apis: (oI) => { @@ -90,14 +94,28 @@ supertokens.init({ providers: [ // We have provided you with development keys which you can use for testing. // IMPORTANT: Please replace them with your own OAuth keys for production use. - Google({ - clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", - clientSecret: "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", - }), - Github({ - clientId: "467101b197249757c71f", - clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", - }), + { + config: { + thirdPartyId: "google", + clients: [ + { + clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], + }, + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientId: "467101b197249757c71f", + clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", + }, + ], + }, + }, ], }), Session.init(), // initializes session features diff --git a/examples/with-hasura-thirdpartyemailpassword/api-server.js b/examples/with-hasura-thirdpartyemailpassword/api-server.js index b7fadd323..183af8171 100644 --- a/examples/with-hasura-thirdpartyemailpassword/api-server.js +++ b/examples/with-hasura-thirdpartyemailpassword/api-server.js @@ -32,23 +32,44 @@ supertokens.init({ providers: [ // We have provided you with development keys which you can use for testing. // IMPORTANT: Please replace them with your own OAuth keys for production use. - ThirdPartyEmailPassword.Google({ - clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", - clientSecret: "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", - }), - ThirdPartyEmailPassword.Github({ - clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", - clientId: "467101b197249757c71f", - }), - ThirdPartyEmailPassword.Apple({ - clientId: "4398792-io.supertokens.example.service", - clientSecret: { - keyId: "7M48Y4RYDL", - privateKey: - "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", - teamId: "YWQCXGJRJL", + { + config: { + thirdPartyId: "google", + clients: [ + { + clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], }, - }), + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientId: "467101b197249757c71f", + clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", + }, + ], + }, + }, + { + config: { + thirdPartyId: "apple", + clients: [ + { + clientId: "4398792-io.supertokens.example.service", + additionalConfig: { + keyId: "7M48Y4RYDL", + privateKey: + "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", + teamId: "YWQCXGJRJL", + }, + }, + ], + }, + }, ], }), Session.init({ diff --git a/examples/with-i18next/api-server.js b/examples/with-i18next/api-server.js index d1fede5be..91aa462c2 100644 --- a/examples/with-i18next/api-server.js +++ b/examples/with-i18next/api-server.js @@ -35,23 +35,44 @@ supertokens.init({ providers: [ // We have provided you with development keys which you can use for testing. // IMPORTANT: Please replace them with your own OAuth keys for production use. - ThirdPartyEmailPassword.Google({ - clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", - clientSecret: "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", - }), - ThirdPartyEmailPassword.Github({ - clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", - clientId: "467101b197249757c71f", - }), - ThirdPartyEmailPassword.Apple({ - clientId: "4398792-io.supertokens.example.service", - clientSecret: { - keyId: "7M48Y4RYDL", - privateKey: - "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", - teamId: "YWQCXGJRJL", + { + config: { + thirdPartyId: "google", + clients: [ + { + clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], }, - }), + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientId: "467101b197249757c71f", + clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", + }, + ], + }, + }, + { + config: { + thirdPartyId: "apple", + clients: [ + { + clientId: "4398792-io.supertokens.example.service", + additionalConfig: { + keyId: "7M48Y4RYDL", + privateKey: + "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", + teamId: "YWQCXGJRJL", + }, + }, + ], + }, + }, ], }), Session.init(), diff --git a/examples/with-no-session-on-sign-up-thirdpartyemailpassword/api-server/index.js b/examples/with-no-session-on-sign-up-thirdpartyemailpassword/api-server/index.js index bdc0c4a35..0a38e6b68 100644 --- a/examples/with-no-session-on-sign-up-thirdpartyemailpassword/api-server/index.js +++ b/examples/with-no-session-on-sign-up-thirdpartyemailpassword/api-server/index.js @@ -31,23 +31,44 @@ supertokens.init({ providers: [ // We have provided you with development keys which you can use for testing. // IMPORTANT: Please replace them with your own OAuth keys for production use. - ThirdPartyEmailPassword.Google({ - clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", - clientSecret: "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", - }), - ThirdPartyEmailPassword.Github({ - clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", - clientId: "467101b197249757c71f", - }), - ThirdPartyEmailPassword.Apple({ - clientId: "4398792-io.supertokens.example.service", - clientSecret: { - keyId: "7M48Y4RYDL", - privateKey: - "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", - teamId: "YWQCXGJRJL", + { + config: { + thirdPartyId: "google", + clients: [ + { + clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], }, - }), + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientId: "467101b197249757c71f", + clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", + }, + ], + }, + }, + { + config: { + thirdPartyId: "apple", + clients: [ + { + clientId: "4398792-io.supertokens.example.service", + additionalConfig: { + keyId: "7M48Y4RYDL", + privateKey: + "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", + teamId: "YWQCXGJRJL", + }, + }, + ], + }, + }, ], override: { functions: (oI) => { diff --git a/examples/with-phone-password/api-server/index.ts b/examples/with-phone-password/api-server/index.ts index 01e130960..d0ed7f3a3 100644 --- a/examples/with-phone-password/api-server/index.ts +++ b/examples/with-phone-password/api-server/index.ts @@ -192,7 +192,7 @@ supertokens.init({ ...input, accessTokenPayload: { ...input.accessTokenPayload, - ...PhoneVerifiedClaim.build(input.userId, input.userContext), + ...PhoneVerifiedClaim.build(input.userId, input.tenantId, input.userContext), phoneNumber: userInfo?.email, }, }); diff --git a/examples/with-phone-password/package.json b/examples/with-phone-password/package.json index f92fa3045..f53629bb0 100644 --- a/examples/with-phone-password/package.json +++ b/examples/with-phone-password/package.json @@ -11,6 +11,7 @@ "@types/node": "^16.11.36", "@types/react": "^18.0.9", "@types/react-dom": "^18.0.4", + "axios": "^1.4.0", "cors": "^2.8.5", "express": "^4.18.1", "libphonenumber-js": "^1.10.4", diff --git a/examples/with-supabase/config/backendConfig.ts b/examples/with-supabase/config/backendConfig.ts index 6afdd2218..76dadb82b 100644 --- a/examples/with-supabase/config/backendConfig.ts +++ b/examples/with-supabase/config/backendConfig.ts @@ -22,22 +22,43 @@ export let backendConfig = (): TypeInput => { providers: [ // We have provided you with development keys which you can use for testing. // IMPORTANT: Please replace them with your own OAuth keys for production use. - ThirdPartyEmailPasswordNode.Google({ - clientId: process.env.GOOGLE_CLIENT_ID, - clientSecret: process.env.GOOGLE_CLIENT_SECRET, - }), - ThirdPartyEmailPasswordNode.Github({ - clientId: process.env.GITHUB_CLIENT_ID, - clientSecret: process.env.GITHUB_CLIENT_SECRET, - }), - ThirdPartyEmailPasswordNode.Apple({ - clientId: process.env.APPLE_CLIENT_ID, - clientSecret: { - keyId: process.env.APPLE_KEY_ID, - privateKey: process.env.APPLE_PRIVATE_KEY.replace(/\\n/g, "\n"), - teamId: process.env.APPLE_TEAM_ID, + { + config: { + thirdPartyId: "google", + clients: [ + { + clientId: process.env.GOOGLE_CLIENT_ID, + clientSecret: process.env.GOOGLE_CLIENT_SECRET, + }, + ], }, - }), + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientId: process.env.GITHUB_CLIENT_ID, + clientSecret: process.env.GITHUB_CLIENT_SECRET, + }, + ], + }, + }, + { + config: { + thirdPartyId: "apple", + clients: [ + { + clientId: process.env.APPLE_CLIENT_ID, + additionalConfig: { + keyId: process.env.APPLE_KEY_ID, + privateKey: process.env.APPLE_PRIVATE_KEY.replace(/\\n/g, "\n"), + teamId: process.env.APPLE_TEAM_ID, + }, + }, + ], + }, + }, ], override: { apis: (originalImplementation) => { diff --git a/examples/with-svelte-react-thirdpartyemailpassword/server.js b/examples/with-svelte-react-thirdpartyemailpassword/server.js index 441386a35..0b6e2964b 100644 --- a/examples/with-svelte-react-thirdpartyemailpassword/server.js +++ b/examples/with-svelte-react-thirdpartyemailpassword/server.js @@ -7,8 +7,6 @@ const { middleware, errorHandler } = require("supertokens-node/framework/express const cors = require("cors"); const Dashboard = require("supertokens-node/recipe/dashboard"); -let { Google, Github } = ThirdPartyEmailPassword; - const apiPort = process.env.API_PORT || 4000; const apiDomain = process.env.API_URL || `http://localhost:${apiPort}`; const websitePort = process.env.WEBSITE_PORT || 8080; @@ -32,14 +30,28 @@ supertokens.init({ providers: [ // We have provided you with development keys which you can use for testsing. // IMPORTANT: Please replace them with your own OAuth keys for production use. - Google({ - clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", - clientSecret: "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", - }), - Github({ - clientId: "467101b197249757c71f", - clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", - }), + { + config: { + thirdPartyId: "google", + clients: [ + { + clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], + }, + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientId: "467101b197249757c71f", + clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", + }, + ], + }, + }, ], }), Session.init(), // initializes session features diff --git a/examples/with-thirdparty-google-onetap/backend/config.ts b/examples/with-thirdparty-google-onetap/backend/config.ts index ff8a65466..73ae79b09 100644 --- a/examples/with-thirdparty-google-onetap/backend/config.ts +++ b/examples/with-thirdparty-google-onetap/backend/config.ts @@ -1,8 +1,7 @@ -import ThirdParty, { TypeProvider } from "supertokens-node/recipe/thirdparty"; +import ThirdParty from "supertokens-node/recipe/thirdparty"; import Session from "supertokens-node/recipe/session"; import { TypeInput } from "supertokens-node/types"; import Dashboard from "supertokens-node/recipe/dashboard"; -import { TypeProviderGetResponse } from "supertokens-node/lib/build/recipe/thirdparty/types"; import axios from "axios"; export function getApiDomain() { @@ -17,32 +16,6 @@ export function getWebsiteDomain() { return websiteUrl; } -export function GoogleOneTap(config: any): TypeProvider { - const googleProvider = ThirdParty.Google(config); - return { - ...googleProvider, - get: ( - redirectURI: string | undefined, - authCodeFromRequest: string | undefined, - userContext: any - ): TypeProviderGetResponse => { - const originalGet = googleProvider.get(redirectURI, authCodeFromRequest, userContext); - return { - ...originalGet, - getProfileInfo: async (authCodeResponse: any, userContext: any) => { - return { - id: authCodeResponse.sub, - email: { - id: authCodeResponse.email, - isVerified: authCodeResponse.email_verified.toLowerCase() === "true", - }, - }; - }, - }; - }, - }; -} - export const SuperTokensConfig: TypeInput = { supertokens: { // this is the location of the SuperTokens core. @@ -61,52 +34,46 @@ export const SuperTokensConfig: TypeInput = { providers: [ // We have provided you with development keys which you can use for testing. // IMPORTANT: Please replace them with your own OAuth keys for production use. - GoogleOneTap({ - clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", - clientSecret: "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", - }), - ThirdParty.Github({ - clientId: "467101b197249757c71f", - clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", - }), - ThirdParty.Apple({ - clientId: "4398792-io.supertokens.example.service", - clientSecret: { - keyId: "7M48Y4RYDL", - privateKey: - "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", - teamId: "YWQCXGJRJL", + { + config: { + thirdPartyId: "google", + clients: [ + { + clientId: + "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], }, - }), - ], - }, - override: { - apis: (oI) => { - return { - ...oI, - signInUpPOST: async (input) => { - if (oI.signInUpPOST !== undefined) { - if (input.provider.id === "google") { - const authCodeResponse = ( - await axios.get("https://oauth2.googleapis.com/tokeninfo", { - params: { - id_token: input.code, - }, - }) - ).data; - return await oI.signInUpPOST({ - ...input, - code: "", - authCodeResponse, - }); - } else { - return await oI.signInUpPOST(input); - } - } - throw "API not enabled"; + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientId: "467101b197249757c71f", + clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", + }, + ], + }, + }, + { + config: { + thirdPartyId: "apple", + clients: [ + { + clientId: "4398792-io.supertokens.example.service", + additionalConfig: { + keyId: "7M48Y4RYDL", + privateKey: + "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", + teamId: "YWQCXGJRJL", + }, + }, + ], }, - }; - }, + }, + ], }, }), Session.init(), diff --git a/examples/with-thirdparty-google-onetap/backend/package.json b/examples/with-thirdparty-google-onetap/backend/package.json index 2b975a46e..d6c19dc8c 100644 --- a/examples/with-thirdparty-google-onetap/backend/package.json +++ b/examples/with-thirdparty-google-onetap/backend/package.json @@ -8,6 +8,7 @@ "start": "npx ts-node-dev --project ./tsconfig.json ./index.ts" }, "dependencies": { + "@types/express": "^4.17.17", "cors": "^2.8.5", "express": "^4.18.1", "helmet": "^5.1.0", diff --git a/examples/with-thirdparty-google-onetap/frontend/src/App.tsx b/examples/with-thirdparty-google-onetap/frontend/src/App.tsx index 9e79d59a9..f45b860e0 100644 --- a/examples/with-thirdparty-google-onetap/frontend/src/App.tsx +++ b/examples/with-thirdparty-google-onetap/frontend/src/App.tsx @@ -18,14 +18,14 @@ function App() { if (data.credential) { // we do this call so that the state is created and saved in storage. await ThirdParty.getAuthorisationURLWithQueryParamsAndSetState({ - providerId: "google", - authorisationURL: window.location.toString(), + thirdPartyId: "google", + frontendRedirectURI: window.location.toString(), }); const stateInfo = await ThirdParty.getStateAndOtherInfoFromStorage(); if (data.credential && stateInfo !== undefined) { await ThirdParty.signInAndUp({ userContext: { - authCode: data.credential, + id_token: data.credential, state: stateInfo.stateForAuthProvider, }, }); diff --git a/examples/with-thirdparty-google-onetap/frontend/src/config.tsx b/examples/with-thirdparty-google-onetap/frontend/src/config.tsx index fd16f555d..80a3ea2a6 100644 --- a/examples/with-thirdparty-google-onetap/frontend/src/config.tsx +++ b/examples/with-thirdparty-google-onetap/frontend/src/config.tsx @@ -37,12 +37,6 @@ export const SuperTokensConfig = { functions: (oI) => { return { ...oI, - getAuthCodeFromURL: (input) => { - if (input.userContext.authCode) { - return input.userContext.authCode; - } - return oI.getAuthCodeFromURL(input); - }, getAuthStateFromURL: (input) => { if (input.userContext.state) { return input.userContext.state; @@ -52,6 +46,20 @@ export const SuperTokensConfig = { }; }, }, + preAPIHook: async (context) => { + if (context.action === "THIRD_PARTY_SIGN_IN_UP") { + if (typeof context.requestInit.body !== "string") { + throw new Error("should not happen"); + } + let body = JSON.parse(context.requestInit.body); + + body!.redirectURIInfo = undefined; + body!.oAuthTokens = { id_token: context.userContext.id_token }; + + context.requestInit.body = JSON.stringify(body); + } + return context; + }, }), Session.init(), ], diff --git a/examples/with-thirdparty-popup/README.md b/examples/with-thirdparty-popup/README.md index 3d8ca16a2..5a22723c3 100644 --- a/examples/with-thirdparty-popup/README.md +++ b/examples/with-thirdparty-popup/README.md @@ -7,7 +7,6 @@ This demo app demonstrates the following use cases: - Thirdparty Login / Sign-up using a popup window - Sign up - Logout -- Forgot password flow - Session management & Calling APIs ## Project setup diff --git a/examples/with-thirdparty-popup/backend/config.ts b/examples/with-thirdparty-popup/backend/config.ts index 5ae0a61f7..483230979 100644 --- a/examples/with-thirdparty-popup/backend/config.ts +++ b/examples/with-thirdparty-popup/backend/config.ts @@ -33,23 +33,46 @@ export const SuperTokensConfig: TypeInput = { providers: [ // We have provided you with development keys which you can use for testing. // IMPORTANT: Please replace them with your own OAuth keys for production use. - ThirdParty.Google({ - clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", - clientSecret: "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", - }), - ThirdParty.Github({ - clientId: "467101b197249757c71f", - clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", - }), - ThirdParty.Apple({ - clientId: "4398792-io.supertokens.example.service", - clientSecret: { - keyId: "7M48Y4RYDL", - privateKey: - "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", - teamId: "YWQCXGJRJL", + + { + config: { + thirdPartyId: "google", + clients: [ + { + clientId: + "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], + }, + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientId: "467101b197249757c71f", + clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", + }, + ], + }, + }, + { + config: { + thirdPartyId: "apple", + clients: [ + { + clientId: "4398792-io.supertokens.example.service", + additionalConfig: { + keyId: "7M48Y4RYDL", + privateKey: + "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", + teamId: "YWQCXGJRJL", + }, + }, + ], }, - }), + }, ], }, }), diff --git a/examples/with-thirdparty-popup/backend/package.json b/examples/with-thirdparty-popup/backend/package.json index 2b975a46e..5385d87d2 100644 --- a/examples/with-thirdparty-popup/backend/package.json +++ b/examples/with-thirdparty-popup/backend/package.json @@ -1,5 +1,5 @@ { - "name": "supertokens-node", + "name": "supertokens-with-thirdparty-popup", "version": "0.0.1", "private": true, "description": "", @@ -8,10 +8,9 @@ "start": "npx ts-node-dev --project ./tsconfig.json ./index.ts" }, "dependencies": { + "@types/express": "^4.17.17", "cors": "^2.8.5", "express": "^4.18.1", - "helmet": "^5.1.0", - "morgan": "^1.10.0", "npm-run-all": "^4.1.5", "supertokens-node": "latest", "ts-node-dev": "^2.0.0", diff --git a/examples/with-thirdparty-popup/frontend/package.json b/examples/with-thirdparty-popup/frontend/package.json index 685355167..3ba87f060 100644 --- a/examples/with-thirdparty-popup/frontend/package.json +++ b/examples/with-thirdparty-popup/frontend/package.json @@ -1,5 +1,5 @@ { - "name": "supertokens-react", + "name": "withthirdpartypopup", "version": "0.1.0", "private": true, "dependencies": { diff --git a/examples/with-thirdparty-popup/frontend/src/App.tsx b/examples/with-thirdparty-popup/frontend/src/App.tsx index 04b007cf9..e245d9d97 100644 --- a/examples/with-thirdparty-popup/frontend/src/App.tsx +++ b/examples/with-thirdparty-popup/frontend/src/App.tsx @@ -17,9 +17,8 @@ function App() { - // will render the original component - // wrapped in a div with an octocat picture above it. + // In this case, the + // will provider buttons that will open a popup when clicked. ThirdPartySignInAndUpProvidersForm_Override: ({ DefaultComponent, providers, ...props }) => { return (
@@ -32,8 +31,8 @@ function App() { const authUrl = await thirdParty.getAuthorisationURLWithQueryParamsAndSetState( { - providerId: provider.id, - authorisationURL: `${getWebsiteDomain()}/auth/callback/${ + thirdPartyId: provider.id, + frontendRedirectURI: `${getWebsiteDomain()}/auth/callback/${ provider.id }`, } diff --git a/examples/with-thirdparty-popup/frontend/src/Home/index.tsx b/examples/with-thirdparty-popup/frontend/src/Home/index.tsx index 3e6283de4..0c3f288e8 100644 --- a/examples/with-thirdparty-popup/frontend/src/Home/index.tsx +++ b/examples/with-thirdparty-popup/frontend/src/Home/index.tsx @@ -2,7 +2,6 @@ import SuccessView from "./SuccessView"; import { useSessionContext } from "supertokens-auth-react/recipe/session"; import "./Home.css"; -// TODO: This screen needs to be more professional export default function Home() { const sessionContext = useSessionContext(); diff --git a/examples/with-thirdpartyemailpassword-2fa-passwordless/api-server/index.ts b/examples/with-thirdpartyemailpassword-2fa-passwordless/api-server/index.ts index ebcefeec9..bb8146fd5 100644 --- a/examples/with-thirdpartyemailpassword-2fa-passwordless/api-server/index.ts +++ b/examples/with-thirdpartyemailpassword-2fa-passwordless/api-server/index.ts @@ -1,4 +1,4 @@ -import express, { response } from "express"; +import express from "express"; import cors from "cors"; import supertokens from "supertokens-node"; import Session from "supertokens-node/recipe/session"; @@ -38,23 +38,44 @@ supertokens.init({ providers: [ // We have provided you with development keys which you can use for testing. // IMPORTANT: Please replace them with your own OAuth keys for production use. - ThirdPartyEmailPassword.Google({ - clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", - clientSecret: "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", - }), - ThirdPartyEmailPassword.Github({ - clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", - clientId: "467101b197249757c71f", - }), - ThirdPartyEmailPassword.Apple({ - clientId: "4398792-io.supertokens.example.service", - clientSecret: { - keyId: "7M48Y4RYDL", - privateKey: - "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", - teamId: "YWQCXGJRJL", + { + config: { + thirdPartyId: "google", + clients: [ + { + clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], }, - }), + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientId: "467101b197249757c71f", + clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", + }, + ], + }, + }, + { + config: { + thirdPartyId: "apple", + clients: [ + { + clientId: "4398792-io.supertokens.example.service", + additionalConfig: { + keyId: "7M48Y4RYDL", + privateKey: + "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", + teamId: "YWQCXGJRJL", + }, + }, + ], + }, + }, ], }), UserMetadata.init(), @@ -174,7 +195,7 @@ supertokens.init({ ...input, accessTokenPayload: { ...input.accessTokenPayload, - ...(await SecondFactorClaim.build(input.userId, input.userContext)), + ...(await SecondFactorClaim.build(input.userId, input.tenantId, input.userContext)), phoneNumber, }, }); diff --git a/examples/with-thirdpartyemailpassword-passwordless/api-server/index.ts b/examples/with-thirdpartyemailpassword-passwordless/api-server/index.ts index 028335e73..51dde4da4 100644 --- a/examples/with-thirdpartyemailpassword-passwordless/api-server/index.ts +++ b/examples/with-thirdpartyemailpassword-passwordless/api-server/index.ts @@ -36,28 +36,50 @@ supertokens.init({ providers: [ // We have provided you with development keys which you can use for testing. // IMPORTANT: Please replace them with your own OAuth keys for production use. - ThirdPartyEmailPassword.Google({ - clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", - clientSecret: "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", - }), - ThirdPartyEmailPassword.Github({ - clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", - clientId: "467101b197249757c71f", - }), - ThirdPartyEmailPassword.Apple({ - clientId: "4398792-io.supertokens.example.service", - clientSecret: { - keyId: "7M48Y4RYDL", - privateKey: - "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", - teamId: "YWQCXGJRJL", + { + config: { + thirdPartyId: "google", + clients: [ + { + clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], }, - }), + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientId: "467101b197249757c71f", + clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", + }, + ], + }, + }, + { + config: { + thirdPartyId: "apple", + clients: [ + { + clientId: "4398792-io.supertokens.example.service", + additionalConfig: { + keyId: "7M48Y4RYDL", + privateKey: + "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", + teamId: "YWQCXGJRJL", + }, + }, + ], + }, + }, ], }), Passwordless.init({ contactMethod: "EMAIL_OR_PHONE", flowType: "USER_INPUT_CODE_AND_MAGIC_LINK", + smsDelivery: { override: (oI) => { return { diff --git a/examples/with-thirdpartypasswordless-electron/api-server/index.js b/examples/with-thirdpartypasswordless-electron/api-server/index.js index d671f9cf3..f9411d7e4 100644 --- a/examples/with-thirdpartypasswordless-electron/api-server/index.js +++ b/examples/with-thirdpartypasswordless-electron/api-server/index.js @@ -37,137 +37,145 @@ supertokens.init({ providers: [ // We have provided you with development keys which you can use for testing. // IMPORTANT: Please replace them with your own OAuth keys for production use. - ThirdPartyPasswordless.Google({ - clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", - clientSecret: "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", - /** - * We want the social provider to redirect to a specifc API route. - */ - authorisationRedirect: { - params: { - redirect_uri: `${apiDomain}/auth/callback/google`, - }, + { + config: { + thirdPartyId: "google", + clients: [ + { + clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], }, - }), - ThirdPartyPasswordless.Github({ - clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", - clientId: "467101b197249757c71f", - /** - * We want the social provider to redirect to a specifc API route. - */ - authorisationRedirect: { - params: { - redirect_uri: `${apiDomain}/auth/callback/github`, - }, + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientId: "467101b197249757c71f", + clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", + }, + ], }, - }), - ThirdPartyPasswordless.Apple({ - clientId: "4398792-io.supertokens.example.service", - clientSecret: { - keyId: "7M48Y4RYDL", - privateKey: - "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", - teamId: "YWQCXGJRJL", + }, + { + config: { + thirdPartyId: "apple", + clients: [ + { + clientId: "4398792-io.supertokens.example.service", + additionalConfig: { + keyId: "7M48Y4RYDL", + privateKey: + "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", + teamId: "YWQCXGJRJL", + }, + }, + ], }, - /** - * We want the social provider to redirect to a specifc API route. - */ - authorisationRedirect: { - params: { - redirect_uri: `${apiDomain}/auth/callback/apple`, - }, - }, - }), + }, ], contactMethod: "EMAIL_OR_PHONE", flowType: "USER_INPUT_CODE_AND_MAGIC_LINK", - createAndSendCustomEmail: async function (input) { - let finalUrlWithLinkCode; - - if (input.urlWithLinkCode !== undefined) { - /** - * Electron uses file protocol for production builds. SuperTokens does not currently support - * file protocol URLs, as a workaround we add a `/auth/verify` route that redirects to the - * eletron app using deeplinking. - * - * Here we modify the magic link to use the apiDomain instead of the websiteDomain - */ - let currentUrlWithLinkCode = new URL(input.urlWithLinkCode); - finalUrlWithLinkCode = input.urlWithLinkCode.replace(currentUrlWithLinkCode.origin, apiDomain); - } - - let htmlBody = getEmailBody( - APP_NAME, - Math.ceil(input.codeLifetime / 1000), - finalUrlWithLinkCode, - input.userInputCode, - input.email - ); - - /** - * This will not work if you have not set up your email credentials in the .env file. Refer to .env.example - * in this example app to know which environment variables you need to set. - */ - await mailTransporter.sendMail({ - html: htmlBody, - to: input.email, - from: `Team Supertokens <${process.env.NODEMAILER_USER}>`, - sender: process.env.NODEMAILER_USER, - subject: `Login to ${APP_NAME}`, - }); + emailDelivery: { + service: { + sendEmail: async function (input) { + let finalUrlWithLinkCode; + + if (input.urlWithLinkCode !== undefined) { + /** + * Electron uses file protocol for production builds. SuperTokens does not currently support + * file protocol URLs, as a workaround we add a `/auth/verify` route that redirects to the + * eletron app using deeplinking. + * + * Here we modify the magic link to use the apiDomain instead of the websiteDomain + */ + let currentUrlWithLinkCode = new URL(input.urlWithLinkCode); + finalUrlWithLinkCode = input.urlWithLinkCode.replace( + currentUrlWithLinkCode.origin, + apiDomain + ); + } + + let htmlBody = getEmailBody( + APP_NAME, + Math.ceil(input.codeLifetime / 1000), + finalUrlWithLinkCode, + input.userInputCode, + input.email + ); + + /** + * This will not work if you have not set up your email credentials in the .env file. Refer to .env.example + * in this example app to know which environment variables you need to set. + */ + await mailTransporter.sendMail({ + html: htmlBody, + to: input.email, + from: `Team Supertokens <${process.env.NODEMAILER_USER}>`, + sender: process.env.NODEMAILER_USER, + subject: `Login to ${APP_NAME}`, + }); + }, + }, }, - createAndSendCustomTextMessage: async function (input) { - /* - * Following is an example of how SMS sending setup can - * be done using Twilio. The actual API that is being called - * in this function is doing exactly the same thing. - */ - - /* - const accountSid = process.env.TWILIO_ACCOUNT_SID; - const authToken = process.env.TWILIO_AUTH_TOKEN; - const twilioPhoneNumber = process.env.TWILIO_PHONE_NUMBER; - let twilio = Twilio(accountSid, authToken); - let message = ""; - if (input.urlWithLinkCode !== undefined && input.userInputCode !== undefined) { - message = `Enter OTP: ${input.userInputCode} OR click this link: ${input.urlWithLinkCode} to login`; - } else if (input.urlWithLinkCode !== undefined) { - message = `Click this link: ${input.urlWithLinkCode} to login`; - } else { - message = `Enter OTP: ${input.userInputCode} to login`; - } - message += ` It will expire in ${input.codeLifetime} seconds.`; - console.log(input.urlWithLinkCode) - await twilio.messages.create({ - body: message, - to: input.phoneNumber, - from: twilioPhoneNumber - }); - */ - try { - await axios({ - method: "post", - baseURL: "https://api.supertokens.com", - url: "/0/st/twilio/message", - headers: { - "api-version": "0", - }, - data: { + smsDelivery: { + service: { + sendSms: async function (input) { + /* + * Following is an example of how SMS sending setup can + * be done using Twilio. The actual API that is being called + * in this function is doing exactly the same thing. + */ + + /* + const accountSid = process.env.TWILIO_ACCOUNT_SID; + const authToken = process.env.TWILIO_AUTH_TOKEN; + const twilioPhoneNumber = process.env.TWILIO_PHONE_NUMBER; + let twilio = Twilio(accountSid, authToken); + let message = ""; + if (input.urlWithLinkCode !== undefined && input.userInputCode !== undefined) { + message = `Enter OTP: ${input.userInputCode} OR click this link: ${input.urlWithLinkCode} to login`; + } else if (input.urlWithLinkCode !== undefined) { + message = `Click this link: ${input.urlWithLinkCode} to login`; + } else { + message = `Enter OTP: ${input.userInputCode} to login`; + } + message += ` It will expire in ${input.codeLifetime} seconds.`; + console.log(input.urlWithLinkCode) + await twilio.messages.create({ + body: message, to: input.phoneNumber, - appName: APP_NAME, - codeLifetime: Math.ceil(input.codeLifetime / 1000), - urlWithLinkCode: input.urlWithLinkCode, - userInputCode: input.userInputCode, - }, - }); - } catch (err) { - if (err.response.status !== 429) { - throw err; - } - throw Error( - "Too many requests made for passwordless sign-in/up with phone number. The number of requests are restricted for this demo app. Please try again after 24 hours." - ); - } + from: twilioPhoneNumber + }); + */ + try { + await axios({ + method: "post", + baseURL: "https://api.supertokens.com", + url: "/0/st/twilio/message", + headers: { + "api-version": "0", + }, + data: { + to: input.phoneNumber, + appName: APP_NAME, + codeLifetime: Math.ceil(input.codeLifetime / 1000), + urlWithLinkCode: input.urlWithLinkCode, + userInputCode: input.userInputCode, + }, + }); + } catch (err) { + if (err.response.status !== 429) { + throw err; + } + throw Error( + "Too many requests made for passwordless sign-in/up with phone number. The number of requests are restricted for this demo app. Please try again after 24 hours." + ); + } + }, + }, }, }), /** diff --git a/examples/with-thirdpartypasswordless-electron/src/renderer.tsx b/examples/with-thirdpartypasswordless-electron/src/renderer.tsx index 66c117f8f..0b6945880 100644 --- a/examples/with-thirdpartypasswordless-electron/src/renderer.tsx +++ b/examples/with-thirdpartypasswordless-electron/src/renderer.tsx @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ /** * This file will automatically be loaded by webpack and run in the "renderer" context. * To learn more about the differences between the "main" and the "renderer" context in @@ -86,7 +87,7 @@ SuperTokens.init({ }); function App() { - let [showSessionExpiredPopup, updateShowSessionExpiredPopup] = useState(false); + const [showSessionExpiredPopup, updateShowSessionExpiredPopup] = useState(false); return ( diff --git a/examples/with-update-email-post-verification/backend/index.ts b/examples/with-update-email-post-verification/backend/index.ts index d28155072..7631fb734 100644 --- a/examples/with-update-email-post-verification/backend/index.ts +++ b/examples/with-update-email-post-verification/backend/index.ts @@ -58,7 +58,7 @@ app.post("/change-email", verifySession(), async (req: SessionRequest, res) => { // First we check if the new email is already associated with another user. // If it is, then we throw an error. If it's already associated with this user, // then we return a success response with an appropriate message. - let existingUser = await EmailPassword.getUserByEmail(email); + let existingUser = await EmailPassword.getUserByEmail(session.getTenantId(), email); if (existingUser !== undefined) { if (existingUser.id === session.getUserId()) { return res.status(200).send("Email already belongs to this account"); @@ -74,7 +74,11 @@ app.post("/change-email", verifySession(), async (req: SessionRequest, res) => { if (!isVerified) { // Now we create and send the email verification link to the user for the new email. - let tokenInfo = await EmailVerification.createEmailVerificationToken(session.getUserId(), email); + let tokenInfo = await EmailVerification.createEmailVerificationToken( + session.getTenantId(), + session.getUserId(), + email + ); if (tokenInfo.status === "OK") { let link = "http://localhost:3000/auth/verify-email?token=" + tokenInfo.token; @@ -82,6 +86,7 @@ app.post("/change-email", verifySession(), async (req: SessionRequest, res) => { await EmailVerification.sendEmail({ emailVerifyLink: link, type: "EMAIL_VERIFICATION", + tenantId: session.getTenantId(), user: { id: session.getUserId(), email: email, diff --git a/frontendDriverInterfaceSupported.json b/frontendDriverInterfaceSupported.json index fab789818..9e871c070 100644 --- a/frontendDriverInterfaceSupported.json +++ b/frontendDriverInterfaceSupported.json @@ -1,4 +1,4 @@ { "_comment": "contains a list of frontend-backend interface versions that this package supports", - "versions": ["1.16"] + "versions": ["1.17"] } diff --git a/lib/build/SuperTokensBranding.js b/lib/build/SuperTokensBranding.js index 20051ac4d..5cb2cc8bd 100644 --- a/lib/build/SuperTokensBranding.js +++ b/lib/build/SuperTokensBranding.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var React = require("react"); var userContextWrapper = require("./userContextWrapper.js"); @@ -16,9 +16,9 @@ var translationContext = require("./translationContext.js"); var AuthWidgetWrapper = function (props) { return jsxRuntime.jsx( session.SessionAuth, - utils.__assign( + superTokens.__assign( { requireAuth: false, doRedirection: false }, - { children: jsxRuntime.jsx(Redirector, utils.__assign({}, props)) } + { children: jsxRuntime.jsx(Redirector, superTokens.__assign({}, props)) } ) ); }; @@ -47,7 +47,7 @@ var Redirector = function (props) { successRedirectContext: { action: "SUCCESS", isNewUser: false, - redirectToPath: utils.getRedirectToPathFromURL(), + redirectToPath: superTokens.getRedirectToPathFromURL(), }, }, userContext, @@ -74,7 +74,7 @@ function SuperTokensBranding() { var t = translationContext.useTranslation(); return jsxRuntime.jsxs( "a", - utils.__assign( + superTokens.__assign( { "data-supertokens": "superTokensBranding", href: "https://supertokens.com?utm_campaign=poweredby", diff --git a/lib/build/arrowLeftIcon.js b/lib/build/arrowLeftIcon.js index 3fafa7e17..96e4ef41b 100644 --- a/lib/build/arrowLeftIcon.js +++ b/lib/build/arrowLeftIcon.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); /* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. @@ -27,7 +27,7 @@ function ArrowLeftIcon(_a) { var color = _a.color; return jsxRuntime.jsx( "svg", - utils.__assign( + superTokens.__assign( { xmlns: "http://www.w3.org/2000/svg", width: "11.272", diff --git a/lib/build/authRecipe-shared.js b/lib/build/authRecipe-shared.js index 040164f16..0558402a4 100644 --- a/lib/build/authRecipe-shared.js +++ b/lib/build/authRecipe-shared.js @@ -1,8 +1,8 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var postSuperTokensInitCallbacks = require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); -var utils$1 = require("./recipeModule-shared.js"); +var index = require("./recipeModule-shared.js"); var recipe = require("./session-shared2.js"); /* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. @@ -20,12 +20,12 @@ var recipe = require("./session-shared2.js"); * under the License. */ var AuthRecipe = /** @class */ (function (_super) { - utils.__extends(AuthRecipe, _super); + superTokens.__extends(AuthRecipe, _super); function AuthRecipe(config) { var _this = _super.call(this, config) || this; _this.getAuthRecipeDefaultRedirectionURL = function (context) { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { if (context.action === "SUCCESS") { return [2 /*return*/, context.redirectToPath === undefined ? "/" : context.redirectToPath]; } else { @@ -35,14 +35,14 @@ var AuthRecipe = /** @class */ (function (_super) { }); }; _this.signOut = function (input) { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [ 4 /*yield*/, recipe.Session.getInstanceOrThrow().signOut({ - userContext: utils.getNormalisedUserContext( + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }), @@ -54,14 +54,14 @@ var AuthRecipe = /** @class */ (function (_super) { }); }; _this.doesSessionExist = function (input) { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [ 4 /*yield*/, recipe.Session.getInstanceOrThrow().doesSessionExist({ - userContext: utils.getNormalisedUserContext( + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }), @@ -81,7 +81,7 @@ var AuthRecipe = /** @class */ (function (_super) { return _this; } return AuthRecipe; -})(utils$1.RecipeModule); +})(index.RecipeModule); /* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. * @@ -98,7 +98,7 @@ var AuthRecipe = /** @class */ (function (_super) { * under the License. */ function normaliseAuthRecipe(config) { - return utils$1.normaliseRecipeModuleConfig(config); + return superTokens.normaliseRecipeModuleConfig(config); } exports.AuthRecipe = AuthRecipe; diff --git a/lib/build/checkedRoundIcon.js b/lib/build/checkedRoundIcon.js index a2b857b7a..7230163b3 100644 --- a/lib/build/checkedRoundIcon.js +++ b/lib/build/checkedRoundIcon.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); /* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. @@ -26,12 +26,12 @@ var jsxRuntime = require("react/jsx-runtime"); function EmailLargeIcon() { return jsxRuntime.jsx( "svg", - utils.__assign( + superTokens.__assign( { xmlns: "http://www.w3.org/2000/svg", width: "59.867", height: "40.34", viewBox: "0 0 59.867 40.34" }, { children: jsxRuntime.jsxs( "g", - utils.__assign( + superTokens.__assign( { id: "email", transform: "translate(0 -83.5)" }, { children: [ @@ -117,7 +117,7 @@ function EmailLargeIcon() { function CheckedRoundIcon() { return jsxRuntime.jsx( "svg", - utils.__assign( + superTokens.__assign( { xmlns: "http://www.w3.org/2000/svg", width: "33", @@ -128,7 +128,7 @@ function CheckedRoundIcon() { { children: jsxRuntime.jsxs( "g", - utils.__assign( + superTokens.__assign( { fill: "rgb(var(--palette-success))", stroke: "rgb(var(--palette-success))" }, { children: [ diff --git a/lib/build/components/featureWrapper.d.ts b/lib/build/components/featureWrapper.d.ts index 57da91f39..167a84859 100644 --- a/lib/build/components/featureWrapper.d.ts +++ b/lib/build/components/featureWrapper.d.ts @@ -8,5 +8,5 @@ export default function FeatureWrapper({ children, useShadowDom, defaultStore, -}: PropsWithChildren): JSX.Element; +}: PropsWithChildren): JSX.Element | null; export {}; diff --git a/lib/build/emailpassword-shared.js b/lib/build/emailpassword-shared.js index 1f002f34d..068964c55 100644 --- a/lib/build/emailpassword-shared.js +++ b/lib/build/emailpassword-shared.js @@ -1,13 +1,13 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var translationContext = require("./translationContext.js"); function GeneralError(_a) { var error = _a.error; var t = translationContext.useTranslation(); - return jsxRuntime.jsx("div", utils.__assign({ "data-supertokens": "generalError" }, { children: t(error) })); + return jsxRuntime.jsx("div", superTokens.__assign({ "data-supertokens": "generalError" }, { children: t(error) })); } exports.GeneralError = GeneralError; diff --git a/lib/build/emailpassword-shared2.js b/lib/build/emailpassword-shared2.js index 235cb9eec..7de944cf9 100644 --- a/lib/build/emailpassword-shared2.js +++ b/lib/build/emailpassword-shared2.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); require("./index.js"); var translationContext = require("./translationContext.js"); @@ -20,7 +20,7 @@ function Button(_a) { } return jsxRuntime.jsxs( "button", - utils.__assign( + superTokens.__assign( { type: type, disabled: disabled, onClick: onClick, "data-supertokens": "button" }, { children: [t(label), isLoading && "..."] } ) diff --git a/lib/build/emailpassword-shared4.js b/lib/build/emailpassword-shared4.js index de7619537..de7674621 100644 --- a/lib/build/emailpassword-shared4.js +++ b/lib/build/emailpassword-shared4.js @@ -1,9 +1,9 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var EmailPasswordWebJS = require("supertokens-web-js/recipe/emailpassword"); var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); -var utils$1 = require("./authRecipe-shared.js"); +var utils = require("./authRecipe-shared.js"); var validators = require("./emailpassword-shared5.js"); function _interopDefault(e) { @@ -15,17 +15,19 @@ var NormalisedURLPath__default = /*#__PURE__*/ _interopDefault(NormalisedURLPath var getFunctionOverrides = function (onHandleEvent) { return function (originalImp) { - return utils.__assign(utils.__assign({}, originalImp), { + return superTokens.__assign(superTokens.__assign({}, originalImp), { submitNewPassword: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [ 4 /*yield*/, originalImp.submitNewPassword( - utils.__assign(utils.__assign({}, input), { formFields: [input.formFields[0]] }) + superTokens.__assign(superTokens.__assign({}, input), { + formFields: [input.formFields[0]], + }) ), ]; case 1: @@ -42,9 +44,9 @@ var getFunctionOverrides = function (onHandleEvent) { }); }, sendPasswordResetEmail: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.sendPasswordResetEmail(input)]; @@ -62,9 +64,9 @@ var getFunctionOverrides = function (onHandleEvent) { }); }, signUp: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.signUp(input)]; @@ -84,9 +86,9 @@ var getFunctionOverrides = function (onHandleEvent) { }); }, signIn: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.signIn(input)]; @@ -139,7 +141,7 @@ function normaliseEmailPasswordConfig(config) { signUpEmailField, config.resetPasswordUsingTokenFeature ); - var override = utils.__assign( + var override = superTokens.__assign( { functions: function (originalImplementation) { return originalImplementation; @@ -147,7 +149,7 @@ function normaliseEmailPasswordConfig(config) { }, config.override ); - return utils.__assign(utils.__assign({}, utils$1.normaliseAuthRecipe(config)), { + return superTokens.__assign(superTokens.__assign({}, utils.normaliseAuthRecipe(config)), { signInAndUpFeature: signInAndUpFeature, resetPasswordUsingTokenFeature: resetPasswordUsingTokenFeature, override: override, @@ -168,13 +170,17 @@ function normaliseSignInAndUpFeature(config) { */ var defaultSignInFields = signUpForm.formFields.reduce(function (signInFieldsAccumulator, field) { if (field.id === "email") { - return utils.__spreadArray(utils.__spreadArray([], signInFieldsAccumulator, true), [field], false); + return superTokens.__spreadArray( + superTokens.__spreadArray([], signInFieldsAccumulator, true), + [field], + false + ); } if (field.id === "password") { - return utils.__spreadArray( - utils.__spreadArray([], signInFieldsAccumulator, true), + return superTokens.__spreadArray( + superTokens.__spreadArray([], signInFieldsAccumulator, true), [ - utils.__assign(utils.__assign({}, field), { + superTokens.__assign(superTokens.__assign({}, field), { autoComplete: "current-password", validate: validators.defaultLoginPasswordValidator, }), @@ -225,7 +231,7 @@ function normaliseSignInFormFeatureConfig(defaultFormFields, config) { }) // Sign In fields are never optional. .map(function (field) { - return utils.__assign(utils.__assign({}, field), { optional: false }); + return superTokens.__assign(superTokens.__assign({}, field), { optional: false }); }); } var formFields = mergeFormFields(defaultFormFields, userFormFields); @@ -295,7 +301,7 @@ function normaliseResetPasswordUsingTokenFeature(signUpPasswordFieldValidate, si var enterEmailForm = { style: enterEmailFormStyle, formFields: [ - utils.__assign(utils.__assign({}, getDefaultEmailFormField()), { + superTokens.__assign(superTokens.__assign({}, getDefaultEmailFormField()), { validate: signUpEmailField.validate, placeholder: "", autofocus: true, @@ -334,8 +340,8 @@ function mergeFormFields(defaultFormFields, userFormFields) { optional = false; } // Merge. - mergedFormFields[j] = utils.__assign( - utils.__assign(utils.__assign({}, mergedFormFields[j]), userField), + mergedFormFields[j] = superTokens.__assign( + superTokens.__assign(superTokens.__assign({}, mergedFormFields[j]), userField), { optional: optional } ); isNewField = false; @@ -345,7 +351,7 @@ function mergeFormFields(defaultFormFields, userFormFields) { // If new field, push to mergeFormFields. if (isNewField) { mergedFormFields.push( - utils.__assign( + superTokens.__assign( { optional: false, placeholder: userField.label, validate: validators.defaultValidate }, userField ) @@ -358,10 +364,10 @@ function mergeFormFields(defaultFormFields, userFormFields) { } function getFormattedFormField(field) { var _this = this; - return utils.__assign(utils.__assign({}, field), { + return superTokens.__assign(superTokens.__assign({}, field), { validate: function (value) { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: // Absent or not optional empty field @@ -396,17 +402,18 @@ function getFormattedFormField(field) { * Class. */ var EmailPassword = /** @class */ (function (_super) { - utils.__extends(EmailPassword, _super); + superTokens.__extends(EmailPassword, _super); function EmailPassword(config, webJSRecipe) { if (webJSRecipe === void 0) { webJSRecipe = EmailPasswordWebJS__default.default; } var _this = _super.call(this, config) || this; _this.webJSRecipe = webJSRecipe; + _this.recipeID = EmailPassword.RECIPE_ID; _this.getDefaultRedirectionURL = function (context) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var resetPasswordPath; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { if (context.action === "RESET_PASSWORD") { resetPasswordPath = new NormalisedURLPath__default.default( validators.DEFAULT_RESET_PASSWORD_PATH @@ -432,9 +439,10 @@ var EmailPassword = /** @class */ (function (_super) { EmailPassword.init = function (config) { var normalisedConfig = normaliseEmailPasswordConfig(config); return { + recipeID: EmailPassword.RECIPE_ID, authReact: function (appInfo) { EmailPassword.instance = new EmailPassword( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { appInfo: appInfo, recipeId: EmailPassword.RECIPE_ID, }) @@ -442,7 +450,7 @@ var EmailPassword = /** @class */ (function (_super) { return EmailPassword.instance; }, webJS: EmailPasswordWebJS__default.default.init( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { override: { functions: function (originalImpl, builder) { var functions = getFunctionOverrides(normalisedConfig.onHandleEvent); @@ -462,7 +470,7 @@ var EmailPassword = /** @class */ (function (_super) { "See https://supertokens.io/docs/emailpassword/quick-setup/frontend"; // eslint-disable-next-line supertokens-auth-react/no-direct-window-object if (typeof window === "undefined") { - error = error + utils.SSR_ERROR; + error = error + superTokens.SSR_ERROR; } throw Error(error); } @@ -472,7 +480,7 @@ var EmailPassword = /** @class */ (function (_super) { * Tests methods. */ EmailPassword.reset = function () { - if (!utils.isTest()) { + if (!superTokens.isTest()) { return; } EmailPassword.instance = undefined; @@ -480,7 +488,7 @@ var EmailPassword = /** @class */ (function (_super) { }; EmailPassword.RECIPE_ID = "emailpassword"; return EmailPassword; -})(utils$1.AuthRecipe); +})(utils.AuthRecipe); exports.EmailPassword = EmailPassword; exports.normaliseEmailPasswordConfig = normaliseEmailPasswordConfig; diff --git a/lib/build/emailpassword-shared5.js b/lib/build/emailpassword-shared5.js index 3f67d3165..d9fbeb62a 100644 --- a/lib/build/emailpassword-shared5.js +++ b/lib/build/emailpassword-shared5.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); /* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. * @@ -37,9 +37,9 @@ var DEFAULT_RESET_PASSWORD_PATH = "/reset-password"; * defaultEmailValidator. */ function defaultEmailValidator(value) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var defaultEmailValidatorRegexp; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { if (typeof value !== "string") { return [2 /*return*/, "ERROR_EMAIL_NON_STRING"]; } @@ -63,8 +63,8 @@ function defaultEmailValidator(value) { * Contains lowercase, uppercase, and numbers. */ function defaultPasswordValidator(value) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { if (typeof value !== "string") { return [2 /*return*/, "ERROR_PASSWORD_NON_STRING"]; } @@ -92,8 +92,8 @@ function defaultPasswordValidator(value) { * type string */ function defaultLoginPasswordValidator(value) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { if (typeof value !== "string") { return [2 /*return*/, "ERROR_PASSWORD_NON_STRING"]; } @@ -106,8 +106,8 @@ function defaultLoginPasswordValidator(value) { */ // eslint-disable-next-line @typescript-eslint/no-unused-vars function defaultValidate(_) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [2 /*return*/, undefined]; }); }); diff --git a/lib/build/emailpassword-shared6.js b/lib/build/emailpassword-shared6.js index 2185dcd1c..771966c58 100644 --- a/lib/build/emailpassword-shared6.js +++ b/lib/build/emailpassword-shared6.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); var userContextWrapper = require("./userContextWrapper.js"); @@ -9,7 +9,6 @@ var uiEntry = require("./index2.js"); var componentOverrideContext = require("./emailpassword-shared3.js"); var React = require("react"); var translations = require("./translations.js"); -var utils$1 = require("./recipeModule-shared.js"); var translations$1 = require("./emailverification-shared2.js"); var translationContext = require("./translationContext.js"); require("./index.js"); @@ -80,7 +79,7 @@ function HeavyArrowLeftIcon(_a) { var color = _a.color; return jsxRuntime.jsx( "svg", - utils.__assign( + superTokens.__assign( { xmlns: "http://www.w3.org/2000/svg", width: "16", @@ -106,7 +105,7 @@ function BackButton(_a) { var onClick = _a.onClick; return jsxRuntime.jsx( "button", - utils.__assign( + superTokens.__assign( { onClick: onClick, "data-supertokens": "backButton backButtonCommon" }, { children: jsxRuntime.jsx(HeavyArrowLeftIcon, { color: "rgb(var(--palette-textTitle))" }) } ) @@ -121,7 +120,7 @@ function BackToSignInButton(_a) { var t = translationContext.useTranslation(); return jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "secondaryText secondaryLinkWithLeftArrow", onClick: onClick }, { children: [ @@ -158,25 +157,25 @@ var EmailPasswordResetPasswordEmail = function (props) { if (status === "SENT") { return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: [ jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "primaryText enterEmailSuccessMessage" }, { children: [ emailSuccessText, jsxRuntime.jsx( "span", - utils.__assign( + superTokens.__assign( { "data-supertokens": "link resendEmailLink", onClick: resend, @@ -200,18 +199,18 @@ var EmailPasswordResetPasswordEmail = function (props) { // Otherwise, return Form. return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: [ jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle resetPasswordHeaderTitle" }, { children: [ @@ -226,12 +225,12 @@ var EmailPasswordResetPasswordEmail = function (props) { ), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerSubtitle" }, { children: jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "secondaryText" }, { children: t("EMAIL_PASSWORD_RESET_HEADER_SUBTITLE") } ) @@ -248,14 +247,14 @@ var EmailPasswordResetPasswordEmail = function (props) { buttonLabel: "EMAIL_PASSWORD_RESET_SEND_BTN", onSuccess: onSuccess, callAPI: function (formFields) { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var validationErrors, emailField; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [ 4 /*yield*/, - utils.validateForm( + superTokens.validateForm( formFields, props.config.resetPasswordUsingTokenFeature .enterEmailForm.formFields @@ -318,18 +317,18 @@ var EmailPasswordSubmitNewPassword = function (props) { if (status === "SUCCESS") { return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: [ jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle" }, { children: t("EMAIL_PASSWORD_RESET_SUBMIT_PW_SUCCESS_HEADER_TITLE") } ) @@ -341,7 +340,7 @@ var EmailPasswordSubmitNewPassword = function (props) { children: [ jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "primaryText submitNewPasswordSuccessMessage", @@ -375,30 +374,30 @@ var EmailPasswordSubmitNewPassword = function (props) { } return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: [ jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle" }, { children: t("EMAIL_PASSWORD_RESET_SUBMIT_PW_HEADER_TITLE") } ) ), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerSubtitle" }, { children: jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "secondaryText" }, { children: t("EMAIL_PASSWORD_RESET_SUBMIT_PW_HEADER_SUBTITLE") } ) @@ -416,14 +415,14 @@ var EmailPasswordSubmitNewPassword = function (props) { onSuccess: onSuccess, validateOnBlur: true, callAPI: function (fields) { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var validationErrors, response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [ 4 /*yield*/, - utils.validateForm( + superTokens.validateForm( fields, props.config.resetPasswordUsingTokenFeature .submitNewPasswordForm.formFields @@ -502,10 +501,10 @@ function ResetPasswordUsingTokenTheme(props) { */ // If no token, return SubmitNewPassword. if (props.submitNewPasswordForm !== undefined) { - return jsxRuntime.jsx(SubmitNewPassword, utils.__assign({}, props.submitNewPasswordForm)); + return jsxRuntime.jsx(SubmitNewPassword, superTokens.__assign({}, props.submitNewPasswordForm)); } // Otherwise, return EnterEmail. - return jsxRuntime.jsx(ResetPasswordEmail, utils.__assign({}, props.enterEmailForm)); + return jsxRuntime.jsx(ResetPasswordEmail, superTokens.__assign({}, props.enterEmailForm)); } function ResetPasswordUsingTokenThemeWrapper(props) { var hasFont = translations.hasFontDefined(props.config.rootStyle); @@ -514,14 +513,14 @@ function ResetPasswordUsingTokenThemeWrapper(props) { : props.config.resetPasswordUsingTokenFeature.enterEmailForm.style; return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( translations$1.ThemeBase, - utils.__assign( + superTokens.__assign( { loadDefaultFont: !hasFont, userStyles: [props.config.rootStyle, userStyles] }, - { children: jsxRuntime.jsx(ResetPasswordUsingTokenTheme, utils.__assign({}, props)) } + { children: jsxRuntime.jsx(ResetPasswordUsingTokenTheme, superTokens.__assign({}, props)) } ) ), } @@ -530,9 +529,9 @@ function ResetPasswordUsingTokenThemeWrapper(props) { } var defaultTranslationsEmailPassword = { - en: utils.__assign( - utils.__assign( - utils.__assign({}, translations.defaultTranslationsCommon.en), + en: superTokens.__assign( + superTokens.__assign( + superTokens.__assign({}, translations.defaultTranslationsCommon.en), translations$1.defaultTranslationsEmailVerification.en ), { @@ -603,7 +602,7 @@ var defaultTranslationsEmailPassword = { }; var ResetPasswordUsingToken$1 = function (props) { - var token = utils.getQueryParams("token"); + var token = superTokens.getQueryParams("token"); var _a = React__namespace.useState(), error = _a[0], setError = _a[1]; @@ -625,7 +624,7 @@ var ResetPasswordUsingToken$1 = function (props) { recipeImplementation: props.recipe.webJSRecipe, config: props.recipe.config, onSignInClicked: function () { - void utils$1.SuperTokens.getInstanceOrThrow().redirectToAuth({ + void superTokens.SuperTokens.getInstanceOrThrow().redirectToAuth({ show: "signin", history: props.history, redirectBack: false, @@ -635,7 +634,7 @@ var ResetPasswordUsingToken$1 = function (props) { }; var enterEmailForm = { onBackButtonClicked: function () { - return utils$1.SuperTokens.getInstanceOrThrow().redirectToAuth({ + return superTokens.SuperTokens.getInstanceOrThrow().redirectToAuth({ show: "signin", history: props.history, redirectBack: false, @@ -661,12 +660,12 @@ var ResetPasswordUsingToken$1 = function (props) { var recipeComponentOverrides = props.useComponentOverrides(); return jsxRuntime.jsx( translations.ComponentOverrideContext.Provider, - utils.__assign( + superTokens.__assign( { value: recipeComponentOverrides }, { children: jsxRuntime.jsx( translations.FeatureWrapper, - utils.__assign( + superTokens.__assign( { useShadowDom: props.recipe.config.useShadowDom, defaultStore: defaultTranslationsEmailPassword, @@ -677,7 +676,7 @@ var ResetPasswordUsingToken$1 = function (props) { props.children === undefined && jsxRuntime.jsx( ResetPasswordUsingTokenThemeWrapper, - utils.__assign({}, childProps) + superTokens.__assign({}, childProps) ), props.children && React__namespace.Children.map(props.children, function (child) { @@ -701,7 +700,7 @@ var SignInFooter = translations.withOverride("EmailPasswordSignInFooter", functi var t = translationContext.useTranslation(); return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "link secondaryText forgotPasswordLink", onClick: onClick }, { children: t("EMAIL_PASSWORD_SIGN_IN_FOOTER_FORGOT_PW_LINK") } ) @@ -718,14 +717,17 @@ var SignInForm = translations.withOverride("EmailPasswordSignInForm", function E buttonLabel: "EMAIL_PASSWORD_SIGN_IN_SUBMIT_BTN", onSuccess: props.onSuccess, callAPI: function (formFields) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var validationErrors, response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [ 4 /*yield*/, - utils.validateForm(formFields, props.config.signInAndUpFeature.signInForm.formFields), + superTokens.validateForm( + formFields, + props.config.signInAndUpFeature.signInForm.formFields + ), ]; case 1: validationErrors = _a.sent(); @@ -771,26 +773,26 @@ var SignInHeader = translations.withOverride("EmailPasswordSignInHeader", functi children: [ jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle" }, { children: t("EMAIL_PASSWORD_SIGN_IN_HEADER_TITLE") } ) ), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerSubtitle" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "secondaryText" }, { children: [ t("EMAIL_PASSWORD_SIGN_IN_HEADER_SUBTITLE_START"), jsxRuntime.jsx( "span", - utils.__assign( + superTokens.__assign( { "data-supertokens": "link", onClick: onClick }, { children: t("EMAIL_PASSWORD_SIGN_IN_HEADER_SUBTITLE_SIGN_UP_LINK") } ) @@ -811,13 +813,13 @@ var SignInHeader = translations.withOverride("EmailPasswordSignInHeader", functi var SignIn = translations.withOverride("EmailPasswordSignIn", function EmailPasswordSignIn(props) { return jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: [ jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: [ @@ -826,7 +828,7 @@ var SignIn = translations.withOverride("EmailPasswordSignIn", function EmailPass jsxRuntime.jsx(generalError.GeneralError, { error: props.error }), jsxRuntime.jsx( SignInForm, - utils.__assign({}, props, { + superTokens.__assign({}, props, { footer: jsxRuntime.jsx(SignInFooter, { onClick: props.forgotPasswordClick, }), @@ -852,7 +854,7 @@ var SignUpFooter = translations.withOverride("EmailPasswordSignUpFooter", functi } return jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "secondaryText privacyPolicyAndTermsAndConditions" }, { children: [ @@ -860,7 +862,7 @@ var SignUpFooter = translations.withOverride("EmailPasswordSignUpFooter", functi termsOfServiceLink !== undefined && jsxRuntime.jsx( "a", - utils.__assign( + superTokens.__assign( { "data-supertokens": "link", href: termsOfServiceLink, @@ -876,7 +878,7 @@ var SignUpFooter = translations.withOverride("EmailPasswordSignUpFooter", functi privacyPolicyLink !== undefined && jsxRuntime.jsx( "a", - utils.__assign( + superTokens.__assign( { "data-supertokens": "link", href: privacyPolicyLink, @@ -906,14 +908,17 @@ var SignUpForm = translations.withOverride("EmailPasswordSignUpForm", function E buttonLabel: "EMAIL_PASSWORD_SIGN_UP_SUBMIT_BTN", onSuccess: props.onSuccess, callAPI: function (formFields) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var validationErrors; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [ 4 /*yield*/, - utils.validateForm(formFields, props.config.signInAndUpFeature.signUpForm.formFields), + superTokens.validateForm( + formFields, + props.config.signInAndUpFeature.signUpForm.formFields + ), ]; case 1: validationErrors = _a.sent(); @@ -950,26 +955,26 @@ var SignUpHeader = translations.withOverride("EmailPasswordSignUpHeader", functi children: [ jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle" }, { children: t("EMAIL_PASSWORD_SIGN_UP_HEADER_TITLE") } ) ), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerSubtitle" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "secondaryText" }, { children: [ t("EMAIL_PASSWORD_SIGN_UP_HEADER_SUBTITLE_START"), jsxRuntime.jsx( "span", - utils.__assign( + superTokens.__assign( { "data-supertokens": "link", onClick: onClick }, { children: t("EMAIL_PASSWORD_SIGN_UP_HEADER_SUBTITLE_SIGN_IN_LINK") } ) @@ -990,13 +995,13 @@ var SignUpHeader = translations.withOverride("EmailPasswordSignUpHeader", functi var SignUp = translations.withOverride("EmailPasswordSignUp", function EmailPasswordSignUp(props) { return jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: [ jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: [ @@ -1005,7 +1010,7 @@ var SignUp = translations.withOverride("EmailPasswordSignUp", function EmailPass jsxRuntime.jsx(generalError.GeneralError, { error: props.error }), jsxRuntime.jsx( SignUpForm, - utils.__assign({}, props, { + superTokens.__assign({}, props, { footer: jsxRuntime.jsx(SignUpFooter, { privacyPolicyLink: props.config.signInAndUpFeature.signUpForm.privacyPolicyLink, @@ -1030,7 +1035,7 @@ var SignInAndUpTheme = function (props) { if (props.featureState.isSignUp) { return jsxRuntime.jsx( SignUp, - utils.__assign({}, props.signUpForm, { + superTokens.__assign({}, props.signUpForm, { signInClicked: function () { props.dispatch({ type: "setSignIn" }); }, @@ -1040,7 +1045,7 @@ var SignInAndUpTheme = function (props) { // Otherwise, return SignIn. return jsxRuntime.jsx( SignIn, - utils.__assign({}, props.signInForm, { + superTokens.__assign({}, props.signInForm, { signUpClicked: function () { props.dispatch({ type: "setSignUp" }); }, @@ -1054,14 +1059,14 @@ function SignInAndUpThemeWrapper(props) { : props.config.signInAndUpFeature.signInForm.style; return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( translations$1.ThemeBase, - utils.__assign( + superTokens.__assign( { loadDefaultFont: !hasFont, userStyles: [props.config.rootStyle, activeStyle] }, - { children: jsxRuntime.jsx(SignInAndUpTheme, utils.__assign({}, props)) } + { children: jsxRuntime.jsx(SignInAndUpTheme, superTokens.__assign({}, props)) } ) ), } @@ -1074,11 +1079,17 @@ var useFeatureReducer = function (recipe) { function (oldState, action) { switch (action.type) { case "setSignIn": - return utils.__assign(utils.__assign({}, oldState), { error: undefined, isSignUp: false }); + return superTokens.__assign(superTokens.__assign({}, oldState), { + error: undefined, + isSignUp: false, + }); case "setSignUp": - return utils.__assign(utils.__assign({}, oldState), { error: undefined, isSignUp: true }); + return superTokens.__assign(superTokens.__assign({}, oldState), { + error: undefined, + isSignUp: true, + }); case "setError": - return utils.__assign(utils.__assign({}, oldState), { error: action.error }); + return superTokens.__assign(superTokens.__assign({}, oldState), { error: action.error }); default: return oldState; } @@ -1089,7 +1100,7 @@ var useFeatureReducer = function (recipe) { error: undefined, }, function (initArg) { - var show = utils.getQueryParams("show"); + var show = superTokens.getQueryParams("show"); var isSignUp = initArg.isSignUp; if (show !== null) { isSignUp = show === "signup"; @@ -1113,8 +1124,8 @@ function useChildProps(recipe$1, state, dispatch, history) { var userContext = userContextWrapper.useUserContext(); var onSignInSuccess = React.useCallback( function () { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Session.getInstanceOrThrow().validateGlobalClaimsAndHandleSuccessRedirection( @@ -1123,7 +1134,7 @@ function useChildProps(recipe$1, state, dispatch, history) { successRedirectContext: { action: "SUCCESS", isNewUser: false, - redirectToPath: utils.getRedirectToPathFromURL(), + redirectToPath: superTokens.getRedirectToPathFromURL(), }, }, userContext, @@ -1137,8 +1148,8 @@ function useChildProps(recipe$1, state, dispatch, history) { ); var onSignUpSuccess = React.useCallback( function () { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Session.getInstanceOrThrow().validateGlobalClaimsAndHandleSuccessRedirection( @@ -1147,7 +1158,7 @@ function useChildProps(recipe$1, state, dispatch, history) { successRedirectContext: { action: "SUCCESS", isNewUser: true, - redirectToPath: utils.getRedirectToPathFromURL(), + redirectToPath: superTokens.getRedirectToPathFromURL(), }, }, userContext, @@ -1215,12 +1226,12 @@ var SignInAndUpFeature = function (props) { var recipeComponentOverrides = props.useComponentOverrides(); return jsxRuntime.jsx( translations.ComponentOverrideContext.Provider, - utils.__assign( + superTokens.__assign( { value: recipeComponentOverrides }, { children: jsxRuntime.jsx( translations.FeatureWrapper, - utils.__assign( + superTokens.__assign( { useShadowDom: props.recipe.config.useShadowDom, defaultStore: defaultTranslationsEmailPassword, @@ -1231,14 +1242,17 @@ var SignInAndUpFeature = function (props) { props.children === undefined && jsxRuntime.jsx( SignInAndUpThemeWrapper, - utils.__assign({}, childProps, { featureState: state, dispatch: dispatch }) + superTokens.__assign({}, childProps, { + featureState: state, + dispatch: dispatch, + }) ), props.children && React__namespace.Children.map(props.children, function (child) { if (React__namespace.isValidElement(child)) { return React__namespace.cloneElement( child, - utils.__assign(utils.__assign({}, childProps), { + superTokens.__assign(superTokens.__assign({}, childProps), { featureState: state, dispatch: dispatch, }) @@ -1256,13 +1270,13 @@ var SignInAndUpFeature = function (props) { ); }; var getModifiedRecipeImplementation = function (origImpl) { - return utils.__assign({}, origImpl); + return superTokens.__assign({}, origImpl); }; function getThemeSignUpFeatureFormFields(formFields, recipe, userContext) { var _this = this; var emailPasswordOnly = formFields.length === 2; return formFields.map(function (field) { - return utils.__assign(utils.__assign({}, field), { + return superTokens.__assign(superTokens.__assign({}, field), { showIsRequired: (function () { // If email and password only, do not show required indicator (*). if (emailPasswordOnly) { @@ -1278,9 +1292,9 @@ function getThemeSignUpFeatureFormFields(formFields, recipe, userContext) { } // Otherwise, if email, use syntax validate method and check if email exists. return function (value) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var error, emailExists, err_1; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, field.validate(value)]; @@ -1326,7 +1340,7 @@ function getThemeSignUpFeatureFormFields(formFields, recipe, userContext) { } var EmailPasswordPreBuiltUI = /** @class */ (function (_super) { - utils.__extends(EmailPasswordPreBuiltUI, _super); + superTokens.__extends(EmailPasswordPreBuiltUI, _super); function EmailPasswordPreBuiltUI(recipeInstance) { var _this = _super.call(this) || this; _this.recipeInstance = recipeInstance; @@ -1341,10 +1355,11 @@ var EmailPasswordPreBuiltUI = /** @class */ (function (_super) { new NormalisedURLPath__default.default("/") ); features[normalisedFullPath.getAsStringDangerous()] = { - matches: utils.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), + matches: superTokens.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), component: function (props) { return _this.getFeatureComponent("signinup", props, useComponentOverrides); }, + recipeID: recipe$1.EmailPassword.RECIPE_ID, }; } if (_this.recipeInstance.config.resetPasswordUsingTokenFeature.disableDefaultUI !== true) { @@ -1352,10 +1367,11 @@ var EmailPasswordPreBuiltUI = /** @class */ (function (_super) { new NormalisedURLPath__default.default(validators.DEFAULT_RESET_PASSWORD_PATH) ); features[normalisedFullPath.getAsStringDangerous()] = { - matches: utils.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), + matches: superTokens.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), component: function (props) { return _this.getFeatureComponent("resetpassword", props, useComponentOverrides); }, + recipeID: recipe$1.EmailPassword.RECIPE_ID, }; } return features; @@ -1368,17 +1384,17 @@ var EmailPasswordPreBuiltUI = /** @class */ (function (_super) { if (props.redirectOnSessionExists !== false) { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( SuperTokensBranding.AuthWidgetWrapper, - utils.__assign( + superTokens.__assign( { authRecipe: _this.recipeInstance, history: props.history }, { children: jsxRuntime.jsx( SignInAndUpFeature, - utils.__assign({ recipe: _this.recipeInstance }, props, { + superTokens.__assign({ recipe: _this.recipeInstance }, props, { useComponentOverrides: useComponentOverrides, }) ), @@ -1391,12 +1407,12 @@ var EmailPasswordPreBuiltUI = /** @class */ (function (_super) { } else { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( SignInAndUpFeature, - utils.__assign({ recipe: _this.recipeInstance }, props, { + superTokens.__assign({ recipe: _this.recipeInstance }, props, { useComponentOverrides: useComponentOverrides, }) ), @@ -1407,12 +1423,12 @@ var EmailPasswordPreBuiltUI = /** @class */ (function (_super) { } else if (componentName === "resetpassword") { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( ResetPasswordUsingToken$1, - utils.__assign({ recipe: _this.recipeInstance }, props, { + superTokens.__assign({ recipe: _this.recipeInstance }, props, { useComponentOverrides: useComponentOverrides, }) ), @@ -1451,7 +1467,7 @@ var EmailPasswordPreBuiltUI = /** @class */ (function (_super) { }; // For tests EmailPasswordPreBuiltUI.reset = function () { - if (!utils.isTest()) { + if (!superTokens.isTest()) { return; } EmailPasswordPreBuiltUI.instance = undefined; diff --git a/lib/build/emailpassword-shared7.js b/lib/build/emailpassword-shared7.js index f4dd8a135..9b52e158c 100644 --- a/lib/build/emailpassword-shared7.js +++ b/lib/build/emailpassword-shared7.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var React = require("react"); var STGeneralError = require("supertokens-web-js/utils/error"); @@ -23,7 +23,7 @@ function FormRow(_a) { hasError = _a.hasError; return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": ["formRow", hasError ? "hasError" : ""].join(" ") }, { children: children } ) @@ -53,7 +53,7 @@ function FormRow(_a) { function CheckedIcon() { return jsxRuntime.jsx( "svg", - utils.__assign( + superTokens.__assign( { xmlns: "http://www.w3.org/2000/svg", width: "14.862", @@ -95,7 +95,7 @@ function CheckedIcon() { function ErrorIcon() { return jsxRuntime.jsx( "svg", - utils.__assign( + superTokens.__assign( { xmlns: "http://www.w3.org/2000/svg", width: "17", @@ -108,7 +108,7 @@ function ErrorIcon() { children: [ jsxRuntime.jsx( "g", - utils.__assign( + superTokens.__assign( { className: "Asdf", fill: "rgb(var(--palette-error))" }, { children: jsxRuntime.jsx("path", { @@ -120,7 +120,7 @@ function ErrorIcon() { ), jsxRuntime.jsx( "text", - utils.__assign( + superTokens.__assign( { fill: "#fff", fontSize: "10px", @@ -130,7 +130,7 @@ function ErrorIcon() { { children: jsxRuntime.jsx( "tspan", - utils.__assign({ x: "0", y: "0" }, { children: "!" }) + superTokens.__assign({ x: "0", y: "0" }, { children: "!" }) ), } ) @@ -168,7 +168,7 @@ function ShowPasswordIcon(_a) { return jsxRuntime.jsx("div", { children: jsxRuntime.jsx( "svg", - utils.__assign( + superTokens.__assign( { xmlns: "http://www.w3.org/2000/svg", width: "18.391", @@ -193,7 +193,7 @@ function ShowPasswordIcon(_a) { }), jsxRuntime.jsxs( "g", - utils.__assign( + superTokens.__assign( { fill: "rgb(var(--palette-textPrimary))", stroke: "rgb(var(--palette-inputBackground))", @@ -242,7 +242,7 @@ function ShowPasswordIcon(_a) { return jsxRuntime.jsx("div", { children: jsxRuntime.jsx( "svg", - utils.__assign( + superTokens.__assign( { xmlns: "http://www.w3.org/2000/svg", width: "18.281", @@ -267,7 +267,7 @@ function ShowPasswordIcon(_a) { }), jsxRuntime.jsxs( "g", - utils.__assign( + superTokens.__assign( { fill: "rgb(var(--palette-textPrimary))", stroke: "rgb(var(--palette-inputBackground))", @@ -351,12 +351,12 @@ var Input = function (_a) { } return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "inputContainer" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": ["inputWrapper", hasError ? "inputError" : ""].join(" ") }, { children: [ @@ -376,7 +376,7 @@ var Input = function (_a) { hasError === true && jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "inputAdornment inputAdornmentError" }, { children: jsxRuntime.jsx(ErrorIcon, {}) } ) @@ -385,7 +385,7 @@ var Input = function (_a) { hasError === false && jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "inputAdornment inputAdornmentSuccess" }, { children: jsxRuntime.jsx(CheckedIcon, {}) } ) @@ -394,7 +394,7 @@ var Input = function (_a) { value.length > 0 && jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { onClick: function () { return setShowPassword(showPassword === false); @@ -420,7 +420,10 @@ var Input = function (_a) { function InputError(_a) { var error = _a.error; var t = translationContext.useTranslation(); - return jsxRuntime.jsx("div", utils.__assign({ "data-supertokens": "inputErrorMessage" }, { children: t(error) })); + return jsxRuntime.jsx( + "div", + superTokens.__assign({ "data-supertokens": "inputErrorMessage" }, { children: t(error) }) + ); } function Label(_a) { @@ -429,7 +432,7 @@ function Label(_a) { var t = translationContext.useTranslation(); return jsxRuntime.jsxs( "div", - utils.__assign({ "data-supertokens": "label" }, { children: [t(value), showIsRequired && " *"] }) + superTokens.__assign({ "data-supertokens": "label" }, { children: [t(value), showIsRequired && " *"] }) ); } @@ -467,8 +470,8 @@ var FormBase = function (props) { return f.id === id; }); if (field === undefined) { - return utils.__spreadArray( - utils.__spreadArray([], os, true), + return superTokens.__spreadArray( + superTokens.__spreadArray([], os, true), [update({ id: id, value: "" })], false ); @@ -485,16 +488,16 @@ var FormBase = function (props) { var onInputFocus = React.useCallback( function (field) { updateFieldState(field.id, function (os) { - return utils.__assign(utils.__assign({}, os), { validated: false }); + return superTokens.__assign(superTokens.__assign({}, os), { validated: false }); }); }, [updateFieldState] ); var onInputBlur = React.useCallback( function (field) { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var fieldConfig, error, _a; - return utils.__generator(this, function (_b) { + return superTokens.__generator(this, function (_b) { switch (_b.label) { case 0: if (!validateOnBlur) { @@ -514,7 +517,7 @@ var FormBase = function (props) { case 3: error = _a; updateFieldState(field.id, function (os) { - return utils.__assign(utils.__assign({}, os), { + return superTokens.__assign(superTokens.__assign({}, os), { error: error, validated: error === undefined && field.value.length !== 0, }); @@ -529,7 +532,7 @@ var FormBase = function (props) { var onInputChange = React.useCallback( function (field) { updateFieldState(field.id, function (os) { - return utils.__assign(utils.__assign({}, os), { value: field.value, error: undefined }); + return superTokens.__assign(superTokens.__assign({}, os), { value: field.value, error: undefined }); }); props.clearError(); }, @@ -537,9 +540,9 @@ var FormBase = function (props) { ); var onFormSubmit = React.useCallback( function (e) { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var apiFields, fieldUpdates, result, generalError, e_1, _loop_1, _i, formFields_1, field, errorFields_1; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: // Prevent default event propagation. @@ -548,7 +551,7 @@ var FormBase = function (props) { setIsLoading(true); setFieldStates(function (os) { return os.map(function (fs) { - return utils.__assign(utils.__assign({}, fs), { error: undefined }); + return superTokens.__assign(superTokens.__assign({}, fs), { error: undefined }); }); }); apiFields = formFields.map(function (field) { @@ -597,7 +600,7 @@ var FormBase = function (props) { if (update || field.clearOnSubmit === true) { // We can do these one by one, it's almost never more than one field updateFieldState(field.id, function (os) { - return utils.__assign(utils.__assign({}, os), { + return superTokens.__assign(superTokens.__assign({}, os), { value: update ? update.value : "", }); }); @@ -627,7 +630,7 @@ var FormBase = function (props) { setFieldStates(function (os) { return os.map(function (fs) { var _a; - return utils.__assign(utils.__assign({}, fs), { + return superTokens.__assign(superTokens.__assign({}, fs), { error: (_a = errorFields_1.find(function (ef) { return ef.id === fs.id; @@ -657,7 +660,7 @@ var FormBase = function (props) { ); return jsxRuntime.jsxs( "form", - utils.__assign( + superTokens.__assign( { autoComplete: "on", noValidate: true, onSubmit: onFormSubmit }, { children: [ @@ -680,7 +683,7 @@ var FormBase = function (props) { }; return jsxRuntime.jsx( FormRow, - utils.__assign( + superTokens.__assign( { hasError: fstate.error !== undefined }, { children: jsxRuntime.jsxs(React.Fragment, { diff --git a/lib/build/emailpassword.js b/lib/build/emailpassword.js index 28c1ecb56..16c2533b8 100644 --- a/lib/build/emailpassword.js +++ b/lib/build/emailpassword.js @@ -2,21 +2,22 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var componentOverrideContext = require("./emailpassword-shared3.js"); var recipe = require("./emailpassword-shared4.js"); -require("react"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); +require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("react"); require("supertokens-web-js/utils/normalisedURLDomain"); require("supertokens-web-js/utils/normalisedURLPath"); -require("supertokens-web-js/utils/windowHandler"); require("./genericComponentOverrideContext.js"); require("react/jsx-runtime"); require("supertokens-web-js/recipe/emailpassword"); require("./authRecipe-shared.js"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("./recipeModule-shared.js"); -require("supertokens-web-js"); require("./session-shared2.js"); require("supertokens-web-js/recipe/session"); require("supertokens-web-js/utils"); @@ -42,12 +43,12 @@ var Wrapper = /** @class */ (function () { return recipe.EmailPassword.init(config); }; Wrapper.signOut = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.EmailPassword.getInstanceOrThrow().signOut({ - userContext: utils.getNormalisedUserContext( + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }), @@ -56,13 +57,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.submitNewPassword = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.EmailPassword.getInstanceOrThrow().webJSRecipe.submitNewPassword( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -70,13 +71,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.sendPasswordResetEmail = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.EmailPassword.getInstanceOrThrow().webJSRecipe.sendPasswordResetEmail( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -84,13 +85,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.signUp = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.EmailPassword.getInstanceOrThrow().webJSRecipe.signUp( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -98,13 +99,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.signIn = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.EmailPassword.getInstanceOrThrow().webJSRecipe.signIn( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -112,13 +113,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.doesEmailExist = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.EmailPassword.getInstanceOrThrow().webJSRecipe.doesEmailExist( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -127,8 +128,8 @@ var Wrapper = /** @class */ (function () { }; Wrapper.getResetPasswordTokenFromURL = function (input) { return recipe.EmailPassword.getInstanceOrThrow().webJSRecipe.getResetPasswordTokenFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) diff --git a/lib/build/emailpasswordprebuiltui.js b/lib/build/emailpasswordprebuiltui.js index 4150453a9..cbe8b98b0 100644 --- a/lib/build/emailpasswordprebuiltui.js +++ b/lib/build/emailpasswordprebuiltui.js @@ -1,6 +1,6 @@ "use strict"; -require("./utils.js"); +require("./superTokens.js"); require("react/jsx-runtime"); require("supertokens-web-js/utils/normalisedURLPath"); require("./userContextWrapper.js"); @@ -10,18 +10,19 @@ require("./emailpassword-shared3.js"); var emailpasswordprebuiltui = require("./emailpassword-shared6.js"); require("./emailpassword-shared5.js"); require("./emailpassword-shared4.js"); -require("react"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); -require("supertokens-web-js/utils/normalisedURLDomain"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("react"); +require("supertokens-web-js/utils/normalisedURLDomain"); require("./session-shared3.js"); require("supertokens-web-js/recipe/session"); require("./session-shared4.js"); require("./genericComponentOverrideContext.js"); require("./session-shared2.js"); require("./recipeModule-shared.js"); -require("supertokens-web-js"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils"); require("./session-shared.js"); require("./translationContext.js"); diff --git a/lib/build/emailverification-shared.js b/lib/build/emailverification-shared.js index 97d9fee4d..c0cafcdf7 100644 --- a/lib/build/emailverification-shared.js +++ b/lib/build/emailverification-shared.js @@ -1,12 +1,12 @@ "use strict"; var genericComponentOverrideContext = require("./genericComponentOverrideContext.js"); -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var EmailVerificationWebJS = require("supertokens-web-js/recipe/emailverification"); var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); var postSuperTokensInitCallbacks = require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); var sessionClaimValidatorStore = require("supertokens-web-js/utils/sessionClaimValidatorStore"); -var utils$1 = require("./recipeModule-shared.js"); +var index = require("./recipeModule-shared.js"); function _interopDefault(e) { return e && e.__esModule ? e : { default: e }; @@ -20,10 +20,10 @@ var _a = genericComponentOverrideContext.createGenericComponentsOverrideContext( Provider = _a[1]; var EmailVerificationClaimClass = /** @class */ (function (_super) { - utils.__extends(EmailVerificationClaimClass, _super); + superTokens.__extends(EmailVerificationClaimClass, _super); function EmailVerificationClaimClass(getRecipeImpl, onFailureRedirection) { var _this = _super.call(this, getRecipeImpl) || this; - var validatorsWithCallbacks = utils.__assign({}, _this.validators); + var validatorsWithCallbacks = superTokens.__assign({}, _this.validators); var _loop_1 = function (key) { var validator = validatorsWithCallbacks[key]; validatorsWithCallbacks[key] = function () { @@ -31,7 +31,7 @@ var EmailVerificationClaimClass = /** @class */ (function (_super) { for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } - return utils.__assign(utils.__assign({}, validator.apply(void 0, args)), { + return superTokens.__assign(superTokens.__assign({}, validator.apply(void 0, args)), { onFailureRedirection: function (args) { if (onFailureRedirection !== undefined) { return onFailureRedirection(args); @@ -73,11 +73,11 @@ var DEFAULT_VERIFY_EMAIL_PATH = "/verify-email"; var getFunctionOverrides = function (onHandleEvent) { return function (originalImp) { - return utils.__assign(utils.__assign({}, originalImp), { + return superTokens.__assign(superTokens.__assign({}, originalImp), { verifyEmail: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.verifyEmail(input)]; @@ -95,9 +95,9 @@ var getFunctionOverrides = function (onHandleEvent) { }); }, sendVerificationEmail: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.sendVerificationEmail(input)]; @@ -152,7 +152,7 @@ function normaliseEmailVerificationFeature(config) { var verifyEmailLinkClickedScreen = { style: verifyEmailLinkClickedScreenStyle, }; - var override = utils.__assign( + var override = superTokens.__assign( { functions: function (originalImplementation) { return originalImplementation; @@ -160,7 +160,7 @@ function normaliseEmailVerificationFeature(config) { }, config.override ); - return utils.__assign(utils.__assign({}, utils$1.normaliseRecipeModuleConfig(config)), { + return superTokens.__assign(superTokens.__assign({}, superTokens.normaliseRecipeModuleConfig(config)), { disableDefaultUI: disableDefaultUI, mode: mode, sendVerifyEmailScreen: sendVerifyEmailScreen, @@ -184,17 +184,18 @@ function normaliseEmailVerificationFeature(config) { * under the License. */ var EmailVerification = /** @class */ (function (_super) { - utils.__extends(EmailVerification, _super); + superTokens.__extends(EmailVerification, _super); function EmailVerification(config, webJSRecipe) { if (webJSRecipe === void 0) { webJSRecipe = EmailVerificationWebJS__default.default; } var _this = _super.call(this, config) || this; _this.webJSRecipe = webJSRecipe; + _this.recipeID = EmailVerification.RECIPE_ID; _this.getDefaultRedirectionURL = function (context) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var verifyEmailPath; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { if (context.action === "VERIFY_EMAIL") { verifyEmailPath = new NormalisedURLPath__default.default(DEFAULT_VERIFY_EMAIL_PATH); return [ @@ -223,9 +224,10 @@ var EmailVerification = /** @class */ (function (_super) { EmailVerification.init = function (config) { var normalisedConfig = normaliseEmailVerificationFeature(config); return { + recipeID: EmailVerification.RECIPE_ID, authReact: function (appInfo) { EmailVerification.instance = new EmailVerification( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { appInfo: appInfo, recipeId: EmailVerification.RECIPE_ID, }) @@ -233,7 +235,7 @@ var EmailVerification = /** @class */ (function (_super) { return EmailVerification.instance; }, webJS: EmailVerificationWebJS__default.default.init( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { override: { functions: function (originalImpl, builder) { var functions = getFunctionOverrides(normalisedConfig.onHandleEvent); @@ -251,15 +253,15 @@ var EmailVerification = /** @class */ (function (_super) { var error = "No instance of EmailVerification found. Make sure to call the EmailVerification.init method."; // eslint-disable-next-line supertokens-auth-react/no-direct-window-object if (typeof window === "undefined") { - error = error + utils.SSR_ERROR; + error = error + superTokens.SSR_ERROR; } throw Error(error); } return EmailVerification.instance; }; EmailVerification.prototype.isEmailVerified = function (userContext) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [ @@ -279,7 +281,7 @@ var EmailVerification = /** @class */ (function (_super) { return EmailVerification.getInstanceOrThrow().webJSRecipe; }); return EmailVerification; -})(utils$1.RecipeModule); +})(index.RecipeModule); exports.DEFAULT_VERIFY_EMAIL_PATH = DEFAULT_VERIFY_EMAIL_PATH; exports.EmailVerification = EmailVerification; diff --git a/lib/build/emailverification-shared2.js b/lib/build/emailverification-shared2.js index 225daef64..170b04dc9 100644 --- a/lib/build/emailverification-shared2.js +++ b/lib/build/emailverification-shared2.js @@ -2,7 +2,7 @@ var jsxRuntime = require("react/jsx-runtime"); var React = require("react"); -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var translations = require("./translations.js"); var styles = @@ -27,7 +27,7 @@ var ThemeBase = function (_a) { }; var defaultTranslationsEmailVerification = { - en: utils.__assign(utils.__assign({}, translations.defaultTranslationsCommon.en), { + en: superTokens.__assign(superTokens.__assign({}, translations.defaultTranslationsCommon.en), { EMAIL_VERIFICATION_RESEND_SUCCESS: "Email resent", EMAIL_VERIFICATION_SEND_TITLE: "Verify your email address", EMAIL_VERIFICATION_SEND_DESC_START: "", diff --git a/lib/build/emailverification.js b/lib/build/emailverification.js index bb102d127..d94488961 100644 --- a/lib/build/emailverification.js +++ b/lib/build/emailverification.js @@ -2,20 +2,21 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var recipe = require("./emailverification-shared.js"); -require("react"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); +require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("react"); require("supertokens-web-js/utils/normalisedURLDomain"); require("supertokens-web-js/utils/normalisedURLPath"); -require("supertokens-web-js/utils/windowHandler"); require("./genericComponentOverrideContext.js"); require("react/jsx-runtime"); require("supertokens-web-js/recipe/emailverification"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils/sessionClaimValidatorStore"); require("./recipeModule-shared.js"); -require("supertokens-web-js"); /* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. * @@ -37,13 +38,13 @@ var Wrapper = /** @class */ (function () { return recipe.EmailVerification.init(config); }; Wrapper.isEmailVerified = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.EmailVerification.getInstanceOrThrow().webJSRecipe.isEmailVerified( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) @@ -53,13 +54,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.verifyEmail = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.EmailVerification.getInstanceOrThrow().webJSRecipe.verifyEmail( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) @@ -69,13 +70,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.sendVerificationEmail = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.EmailVerification.getInstanceOrThrow().webJSRecipe.sendVerificationEmail( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) @@ -86,8 +87,8 @@ var Wrapper = /** @class */ (function () { }; Wrapper.getEmailVerificationTokenFromURL = function (input) { return recipe.EmailVerification.getInstanceOrThrow().webJSRecipe.getEmailVerificationTokenFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) diff --git a/lib/build/emailverificationprebuiltui.js b/lib/build/emailverificationprebuiltui.js index 72ce62489..5f1a518d7 100644 --- a/lib/build/emailverificationprebuiltui.js +++ b/lib/build/emailverificationprebuiltui.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); var userContextWrapper = require("./userContextWrapper.js"); @@ -19,17 +19,18 @@ var generalError = require("./emailpassword-shared.js"); var spinnerIcon = require("./spinnerIcon.js"); var button = require("./emailpassword-shared2.js"); var sessionAuth = require("./session-shared.js"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); -require("supertokens-web-js/utils/normalisedURLDomain"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("supertokens-web-js/utils/normalisedURLDomain"); require("supertokens-web-js/recipe/session"); require("./session-shared4.js"); require("./genericComponentOverrideContext.js"); require("supertokens-web-js/recipe/emailverification"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils/sessionClaimValidatorStore"); require("./recipeModule-shared.js"); -require("supertokens-web-js"); require("supertokens-web-js/utils"); require("react-dom"); @@ -91,7 +92,7 @@ function ArrowRightIcon(_a) { var color = _a.color; return jsxRuntime.jsx( "svg", - utils.__assign( + superTokens.__assign( { xmlns: "http://www.w3.org/2000/svg", width: "11.272", @@ -122,9 +123,9 @@ var EmailVerificationSendVerifyEmail = function (props) { errorMessage = _b[0], setErrorMessage = _b[1]; var resendEmail = function () { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var response, e_1; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 5, , 6]); @@ -162,9 +163,9 @@ var EmailVerificationSendVerifyEmail = function (props) { }); }; var logout = function () { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var e_2; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); @@ -195,8 +196,8 @@ var EmailVerificationSendVerifyEmail = function (props) { ); var checkSendResponse = React.useCallback( function (response) { - return utils.__awaiter(void 0, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: if (!(response.status === "EMAIL_ALREADY_VERIFIED_ERROR")) return [3 /*break*/, 2]; @@ -213,8 +214,8 @@ var EmailVerificationSendVerifyEmail = function (props) { [props.config, props.recipeImplementation, props.onEmailAlreadyVerified] ); var handleSendError = React.useCallback(function () { - return utils.__awaiter(void 0, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [ @@ -233,15 +234,15 @@ var EmailVerificationSendVerifyEmail = function (props) { }); }); }, []); - utils.useOnMountAPICall(sendVerificationEmail, checkSendResponse, handleSendError); + superTokens.useOnMountAPICall(sendVerificationEmail, checkSendResponse, handleSendError); return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: [ @@ -252,28 +253,28 @@ var EmailVerificationSendVerifyEmail = function (props) { status === "EMAIL_RESENT" && jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "generalSuccess" }, { children: t("EMAIL_VERIFICATION_RESEND_SUCCESS") } ) ), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "sendVerifyEmailIcon" }, { children: jsxRuntime.jsx(checkedRoundIcon.EmailLargeIcon, {}) } ) ), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle headerTinyTitle" }, { children: t("EMAIL_VERIFICATION_SEND_TITLE") } ) ), jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "primaryText sendVerifyEmailText" }, { children: [ @@ -289,14 +290,14 @@ var EmailVerificationSendVerifyEmail = function (props) { status !== "EMAIL_RESENT" && jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "link sendVerifyEmailResend", onClick: resendEmail }, { children: t("EMAIL_VERIFICATION_RESEND_BTN") } ) ), jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "secondaryText secondaryLinkWithArrow", onClick: logout }, { children: [ @@ -341,7 +342,7 @@ var SendVerifyEmail = translations.withOverride("EmailVerificationSendVerifyEmai function ErrorLargeIcon() { return jsxRuntime.jsx( "svg", - utils.__assign( + superTokens.__assign( { xmlns: "http://www.w3.org/2000/svg", width: "33", @@ -354,7 +355,7 @@ function ErrorLargeIcon() { children: [ jsxRuntime.jsx( "g", - utils.__assign( + superTokens.__assign( { fill: "rgb(var(--palette-error))" }, { children: jsxRuntime.jsx("path", { @@ -366,7 +367,7 @@ function ErrorLargeIcon() { ), jsxRuntime.jsx( "text", - utils.__assign( + superTokens.__assign( { fill: "#fff", "font-family": "Rubik-Bold, Rubik", @@ -377,7 +378,7 @@ function ErrorLargeIcon() { { children: jsxRuntime.jsx( "tspan", - utils.__assign({ x: "0", y: "0" }, { children: "!" }) + superTokens.__assign({ x: "0", y: "0" }, { children: "!" }) ), } ) @@ -404,8 +405,8 @@ var EmailVerificationVerifyEmailLinkClicked = function (props) { setVerifyLoading = _c[1]; var verifyEmailOnMount = React.useCallback( function () { - return utils.__awaiter(void 0, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { if (sessionContext.loading === true) { // This callback should only be called if the session is already loaded throw new Error("Should never come here"); @@ -429,8 +430,8 @@ var EmailVerificationVerifyEmailLinkClicked = function (props) { ); var handleVerifyResp = React.useCallback( function (response) { - return utils.__awaiter(void 0, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { if (response === "INTERACTION_REQUIRED") { setStatus("INTERACTION_REQUIRED"); } else if (response.status === "EMAIL_VERIFICATION_INVALID_TOKEN_ERROR") { @@ -453,23 +454,23 @@ var EmailVerificationVerifyEmailLinkClicked = function (props) { }, [setStatus, setErrorMessage] ); - utils.useOnMountAPICall(verifyEmailOnMount, handleVerifyResp, handleError, sessionContext.loading === false); + superTokens.useOnMountAPICall(verifyEmailOnMount, handleVerifyResp, handleError, sessionContext.loading === false); var onTokenInvalidRedirect = props.onTokenInvalidRedirect, onSuccess = props.onSuccess; if (status === "LOADING") { return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "spinner" }, { children: jsxRuntime.jsx(spinnerIcon.SpinnerIcon, {}) } ) @@ -484,25 +485,25 @@ var EmailVerificationVerifyEmailLinkClicked = function (props) { if (status === "INTERACTION_REQUIRED") { return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row noFormRow" }, { children: [ jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle" }, { children: t("EMAIL_VERIFICATION_LINK_CLICKED_HEADER") } ) ), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerSubtitle secondaryText" }, { children: t("EMAIL_VERIFICATION_LINK_CLICKED_DESC") } ) @@ -510,9 +511,9 @@ var EmailVerificationVerifyEmailLinkClicked = function (props) { jsxRuntime.jsx(button.Button, { isLoading: verifyLoading, onClick: function () { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var resp, err_1; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: setVerifyLoading(true); @@ -555,26 +556,26 @@ var EmailVerificationVerifyEmailLinkClicked = function (props) { if (status === "SUCCESSFUL") { return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row noFormRow" }, { children: [ jsxRuntime.jsx(checkedRoundIcon.CheckedRoundIcon, {}), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle headerTinyTitle" }, { children: t("EMAIL_VERIFICATION_SUCCESS") } ) ), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "emailVerificationButtonWrapper" }, { children: jsxRuntime.jsx(button.Button, { @@ -597,25 +598,25 @@ var EmailVerificationVerifyEmailLinkClicked = function (props) { if (status === "INVALID") { return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row noFormRow" }, { children: [ jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle headerTinyTitle" }, { children: t("EMAIL_VERIFICATION_EXPIRED") } ) ), jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { onClick: onTokenInvalidRedirect, "data-supertokens": "secondaryText secondaryLinkWithArrow", @@ -640,18 +641,18 @@ var EmailVerificationVerifyEmailLinkClicked = function (props) { } return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row noFormRow" }, { children: [ jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle error" }, { children: [ @@ -663,7 +664,7 @@ var EmailVerificationVerifyEmailLinkClicked = function (props) { ), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "primaryText" }, { children: t( @@ -691,11 +692,11 @@ function EmailVerificationTheme(props) { var sessionContext = session.useSessionContext$1(); // If we have a token, return VerifyEmailLinkClicked. if (props.verifyEmailLinkClickedScreen !== undefined) { - return jsxRuntime.jsx(VerifyEmailLinkClicked, utils.__assign({}, props.verifyEmailLinkClickedScreen)); + return jsxRuntime.jsx(VerifyEmailLinkClicked, superTokens.__assign({}, props.verifyEmailLinkClickedScreen)); } // If we have an active session, we want to send the verification email if (sessionContext.loading === false && sessionContext.doesSessionExist === true) { - return jsxRuntime.jsx(SendVerifyEmail, utils.__assign({}, props.sendVerifyEmailScreen)); + return jsxRuntime.jsx(SendVerifyEmail, superTokens.__assign({}, props.sendVerifyEmailScreen)); } // Otherwise, return an empty screen, waiting for the feature component to redirection to complete. return jsxRuntime.jsx(jsxRuntime.Fragment, {}); @@ -704,12 +705,12 @@ function EmailVerificationThemeWrapper(props) { var hasFont = translations.hasFontDefined(props.config.rootStyle); return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( translations$1.ThemeBase, - utils.__assign( + superTokens.__assign( { loadDefaultFont: !hasFont, userStyles: [ @@ -719,7 +720,7 @@ function EmailVerificationThemeWrapper(props) { : props.config.verifyEmailLinkClickedScreen.style, ], }, - { children: jsxRuntime.jsx(EmailVerificationTheme, utils.__assign({}, props)) } + { children: jsxRuntime.jsx(EmailVerificationTheme, superTokens.__assign({}, props)) } ) ), } @@ -737,8 +738,8 @@ var EmailVerification$1 = function (props) { var recipeComponentOverrides = props.useComponentOverrides(); var redirectToAuthWithHistory = React.useCallback( function () { - return utils.__awaiter(void 0, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, index.redirectToAuth({ redirectBack: false, history: props.history })]; @@ -753,17 +754,17 @@ var EmailVerification$1 = function (props) { ); var modifiedRecipeImplementation = React.useMemo( function () { - return utils.__assign(utils.__assign({}, props.recipe.webJSRecipe), { + return superTokens.__assign(superTokens.__assign({}, props.recipe.webJSRecipe), { sendVerificationEmail: function (input) { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, props.recipe.webJSRecipe.sendVerificationEmail(input)]; case 1: response = _a.sent(); - utils.clearQueryParams(["token"]); + superTokens.clearQueryParams(["token"]); return [2 /*return*/, response]; } }); @@ -775,8 +776,8 @@ var EmailVerification$1 = function (props) { ); var onSuccess = React.useCallback( function () { - return utils.__awaiter(void 0, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Session.getInstanceOrThrow().validateGlobalClaimsAndHandleSuccessRedirection( @@ -792,17 +793,18 @@ var EmailVerification$1 = function (props) { ); var fetchIsEmailVerified = React.useCallback( function () { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var token; var _a; - return utils.__generator(this, function (_b) { + return superTokens.__generator(this, function (_b) { switch (_b.label) { case 0: if (sessionContext.loading === true) { // This callback should only be called if the session is already loaded throw new Error("Should never come here"); } - token = (_a = utils.getQueryParams("token")) !== null && _a !== void 0 ? _a : undefined; + token = + (_a = superTokens.getQueryParams("token")) !== null && _a !== void 0 ? _a : undefined; if (!(token === undefined)) return [3 /*break*/, 4]; if (!!sessionContext.doesSessionExist) return [3 /*break*/, 2]; return [4 /*yield*/, redirectToAuthWithHistory()]; @@ -827,8 +829,8 @@ var EmailVerification$1 = function (props) { ); var checkIsEmailVerified = React.useCallback( function (isVerified) { - return utils.__awaiter(void 0, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { if (isVerified) { return [2 /*return*/, onSuccess()]; } @@ -841,8 +843,8 @@ var EmailVerification$1 = function (props) { ); var handleError = React.useCallback( function (err) { - return utils.__awaiter(void 0, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [ @@ -865,12 +867,17 @@ var EmailVerification$1 = function (props) { }, [redirectToAuthWithHistory] ); - utils.useOnMountAPICall(fetchIsEmailVerified, checkIsEmailVerified, handleError, sessionContext.loading === false); + superTokens.useOnMountAPICall( + fetchIsEmailVerified, + checkIsEmailVerified, + handleError, + sessionContext.loading === false + ); var signOut = React.useCallback( function () { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var session; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: session = recipe.Session.getInstanceOrThrow(); @@ -897,7 +904,7 @@ var EmailVerification$1 = function (props) { redirectToAuth: redirectToAuthWithHistory, }; var verifyEmailLinkClickedScreenFeature = props.recipe.config.verifyEmailLinkClickedScreen; - var token = (_a = utils.getQueryParams("token")) !== null && _a !== void 0 ? _a : undefined; + var token = (_a = superTokens.getQueryParams("token")) !== null && _a !== void 0 ? _a : undefined; var verifyEmailLinkClickedScreen = token === undefined ? undefined @@ -917,12 +924,12 @@ var EmailVerification$1 = function (props) { }; return jsxRuntime.jsx( translations.ComponentOverrideContext.Provider, - utils.__assign( + superTokens.__assign( { value: recipeComponentOverrides }, { children: jsxRuntime.jsx( translations.FeatureWrapper, - utils.__assign( + superTokens.__assign( { useShadowDom: props.recipe.config.useShadowDom, defaultStore: translations$1.defaultTranslationsEmailVerification, @@ -931,7 +938,10 @@ var EmailVerification$1 = function (props) { children: jsxRuntime.jsxs(React.Fragment, { children: [ props.children === undefined && - jsxRuntime.jsx(EmailVerificationThemeWrapper, utils.__assign({}, childProps)), + jsxRuntime.jsx( + EmailVerificationThemeWrapper, + superTokens.__assign({}, childProps) + ), props.children && React__namespace.Children.map(props.children, function (child) { if (React__namespace.isValidElement(child)) { @@ -950,7 +960,7 @@ var EmailVerification$1 = function (props) { }; var EmailVerificationPreBuiltUI = /** @class */ (function (_super) { - utils.__extends(EmailVerificationPreBuiltUI, _super); + superTokens.__extends(EmailVerificationPreBuiltUI, _super); function EmailVerificationPreBuiltUI(recipeInstance) { var _this = _super.call(this) || this; _this.recipeInstance = recipeInstance; @@ -965,10 +975,11 @@ var EmailVerificationPreBuiltUI = /** @class */ (function (_super) { new NormalisedURLPath__default.default(recipe$1.DEFAULT_VERIFY_EMAIL_PATH) ); features[normalisedFullPath.getAsStringDangerous()] = { - matches: utils.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), + matches: superTokens.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), component: function (props) { return _this.getFeatureComponent("emailverification", props, useComponentOverrides); }, + recipeID: recipe$1.EmailVerification.RECIPE_ID, }; } return features; @@ -984,12 +995,12 @@ var EmailVerificationPreBuiltUI = /** @class */ (function (_super) { } return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( session.SessionAuth, - utils.__assign( + superTokens.__assign( { requireAuth: false, overrideGlobalClaimValidators: function () { @@ -1001,12 +1012,12 @@ var EmailVerificationPreBuiltUI = /** @class */ (function (_super) { children: function (value) { return jsxRuntime.jsx( EmailVerification$1, - utils.__assign( + superTokens.__assign( { recipe: _this.recipeInstance, useComponentOverrides: useComponentOverrides, }, - utils.__assign(utils.__assign({}, props), { + superTokens.__assign(superTokens.__assign({}, props), { // We do this to make sure it does not add another provider userContext: value, }) @@ -1049,7 +1060,7 @@ var EmailVerificationPreBuiltUI = /** @class */ (function (_super) { }; // For tests EmailVerificationPreBuiltUI.reset = function () { - if (!utils.isTest()) { + if (!superTokens.isTest()) { return; } EmailVerificationPreBuiltUI.instance = undefined; diff --git a/lib/build/genericComponentOverrideContext.js b/lib/build/genericComponentOverrideContext.js index 3a1b5eba7..4d5d3f5d7 100644 --- a/lib/build/genericComponentOverrideContext.js +++ b/lib/build/genericComponentOverrideContext.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var React = require("react"); @@ -21,7 +21,10 @@ var createGenericComponentsOverrideContext = function (v) { var Provider = function (_a) { var children = _a.children, components = _a.components; - return jsxRuntime.jsx(genericContext.Provider, utils.__assign({ value: components }, { children: children })); + return jsxRuntime.jsx( + genericContext.Provider, + superTokens.__assign({ value: components }, { children: children }) + ); }; return [useComponentsOverrideContext, Provider, genericContext.Consumer]; }; diff --git a/lib/build/index.js b/lib/build/index.js index ed8dac298..70b808f98 100644 --- a/lib/build/index.js +++ b/lib/build/index.js @@ -2,28 +2,29 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var sessionAuth = require("./session-shared.js"); -var utils$1 = require("./recipeModule-shared.js"); var translationContext = require("./translationContext.js"); var userContextWrapper = require("./userContextWrapper.js"); -require("react"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); +require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("react"); require("supertokens-web-js/utils/normalisedURLDomain"); require("supertokens-web-js/utils/normalisedURLPath"); -require("supertokens-web-js/utils/windowHandler"); require("./index2.js"); require("./session-shared2.js"); require("supertokens-web-js/recipe/session"); +require("./recipeModule-shared.js"); require("supertokens-web-js/utils"); -require("supertokens-web-js"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); var SuperTokensWrapper = function (props) { return jsxRuntime.jsx( sessionAuth.SessionAuthWrapper, - utils.__assign({}, props, { requireAuth: false, doRedirection: false }) + superTokens.__assign({}, props, { requireAuth: false, doRedirection: false }) ); }; @@ -47,25 +48,25 @@ var SuperTokensWrapper = function (props) { var SuperTokensAPIWrapper = /** @class */ (function () { function SuperTokensAPIWrapper() {} SuperTokensAPIWrapper.init = function (config) { - utils$1.SuperTokens.init(config); + superTokens.SuperTokens.init(config); }; SuperTokensAPIWrapper.changeLanguage = function (language) { - return utils$1.SuperTokens.getInstanceOrThrow().changeLanguage(language); + return superTokens.SuperTokens.getInstanceOrThrow().changeLanguage(language); }; SuperTokensAPIWrapper.loadTranslation = function (store) { - return utils$1.SuperTokens.getInstanceOrThrow().loadTranslation(store); + return superTokens.SuperTokens.getInstanceOrThrow().loadTranslation(store); }; var _a; _a = SuperTokensAPIWrapper; SuperTokensAPIWrapper.SuperTokensWrapper = SuperTokensWrapper; SuperTokensAPIWrapper.redirectToAuth = function (options) { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var _b; - return utils.__generator(_a, function (_c) { + return superTokens.__generator(_a, function (_c) { return [ 2 /*return*/, - utils$1.SuperTokens.getInstanceOrThrow().redirectToAuth( - utils.__assign(utils.__assign({}, options), { + superTokens.SuperTokens.getInstanceOrThrow().redirectToAuth( + superTokens.__assign(superTokens.__assign({}, options), { redirectBack: (_b = options === null || options === void 0 ? void 0 : options.redirectBack) !== null && _b !== void 0 diff --git a/lib/build/index2.js b/lib/build/index2.js index af7da26cb..b7e736a20 100644 --- a/lib/build/index2.js +++ b/lib/build/index2.js @@ -3,7 +3,7 @@ var jsxRuntime = require("react/jsx-runtime"); var React = require("react"); var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); function _interopDefault(e) { return e && e.__esModule ? e : { default: e }; @@ -35,33 +35,142 @@ var RecipeRouter = /** @class */ (function () { return _this.pathsToFeatureComponentWithRecipeIdMap; }; } - RecipeRouter.getMatchingComponentForRouteAndRecipeIdFromPreBuiltUIList = function (normalisedUrl, preBuiltUIList) { + RecipeRouter.getMatchingComponentForRouteAndRecipeIdFromPreBuiltUIList = function ( + normalisedUrl, + preBuiltUIList, + defaultToStaticList + ) { + var _a; var path = normalisedUrl.getAsStringDangerous(); var routeComponents = preBuiltUIList.reduce(function (components, c) { - var _a; - var routes = - (_a = c.getPathsToFeatureComponentWithRecipeIdMap) === null || _a === void 0 - ? void 0 - : _a.call(c)[path]; - return routes !== undefined ? components.concat(routes) : components; + var routes = c.getPathsToFeatureComponentWithRecipeIdMap(); + for (var _i = 0, _a = Object.entries(routes); _i < _a.length; _i++) { + var _b = _a[_i], + routePath = _b[0], + routeComps = _b[1]; + if ( + routePath === path || + new RegExp("^" + routePath.replace(/:\w+/g, "[^/]+").replace(/\/\*/g, "/[^/]+") + "$").test(path) + ) { + components = components.concat(routeComps); + } + } + return components; }, []); - if (routeComponents.length === 0) { - return undefined; - } - var component = routeComponents.find(function (c) { + var dynamicLoginMethods = superTokens.Multitenancy.getInstanceOrThrow().getLoadedDynamicLoginMethods(); + var componentMatchingRid = routeComponents.find(function (c) { return c.matches(); }); - if (component !== undefined) { - return component; + if ( + superTokens.SuperTokens.usesDynamicLoginMethods === false || + (dynamicLoginMethods === undefined && defaultToStaticList) + ) { + if (routeComponents.length === 0) { + return undefined; + } else if (componentMatchingRid !== undefined) { + return componentMatchingRid; + } else { + return routeComponents[0]; + } + } + if (dynamicLoginMethods === undefined) { + throw new Error( + "Should never come here: dynamic login methods info has not been loaded but recipeRouter rendered" + ); + } + // The related ADR: https://supertokens.com/docs/contribute/decisions/multitenancy/0006 + var priorityOrder = [ + { rid: "thirdpartyemailpassword", includes: ["thirdparty", "emailpassword"] }, + { rid: "thirdpartypasswordless", includes: ["thirdparty", "passwordless"] }, + { rid: "emailpassword", includes: ["emailpassword"] }, + { rid: "passwordless", includes: ["passwordless"] }, + { rid: "thirdparty", includes: ["thirdparty"] }, + ]; + if ( + componentMatchingRid && // if we find a component matching by rid + (!priorityOrder + .map(function (a) { + return a.rid; + }) + .includes(componentMatchingRid.recipeID) || // from a non-auth recipe + ((_a = dynamicLoginMethods[componentMatchingRid.recipeID]) === null || _a === void 0 + ? void 0 + : _a.enabled) === true) // or an enabled auth recipe + ) { + return componentMatchingRid; + } + var matchingNonAuthComponent = routeComponents.find(function (comp) { + return !priorityOrder + .map(function (a) { + return a.rid; + }) + .includes(comp.recipeID); + }); + if (matchingNonAuthComponent) { + return matchingNonAuthComponent; } - // Otherwise, If no recipe Id provided, or if no recipe id matches, return the first matching component. - return routeComponents[0]; + var enabledRecipeCount = Object.keys(dynamicLoginMethods).filter(function (key) { + return dynamicLoginMethods[key].enabled; + }).length; + var _loop_1 = function (rid, includes) { + if ( + enabledRecipeCount === includes.length && + includes.every(function (subRId) { + return dynamicLoginMethods[subRId].enabled; + }) + ) { + var matchingComp = routeComponents.find(function (comp) { + return comp.recipeID === rid; + }); + if (matchingComp) { + return { value: matchingComp }; + } + } + }; + // We first try to find an exact match + for (var _i = 0, priorityOrder_1 = priorityOrder; _i < priorityOrder_1.length; _i++) { + var _b = priorityOrder_1[_i], + rid = _b.rid, + includes = _b.includes; + var state_1 = _loop_1(rid, includes); + if (typeof state_1 === "object") return state_1.value; + } + var _loop_2 = function (rid, includes) { + if ( + includes.some(function (subRId) { + return dynamicLoginMethods[subRId].enabled; + }) + ) { + var matchingComp = routeComponents.find(function (comp) { + return comp.recipeID === rid; + }); + if (matchingComp) { + return { value: matchingComp }; + } + } + }; + // We try to find a partial match + for (var _c = 0, priorityOrder_2 = priorityOrder; _c < priorityOrder_2.length; _c++) { + var _d = priorityOrder_2[_c], + rid = _d.rid, + includes = _d.includes; + var state_2 = _loop_2(rid, includes); + if (typeof state_2 === "object") return state_2.value; + } + // Otherwise, we throw since no there are is no overlap between recipes enabled on the FE and BE + throw new Error("We found no enabled recipes handling the current route"); }; return RecipeRouter; })(); function RoutingComponent(props) { var _a, _b; + var _c = React.useState( + superTokens.SuperTokens.usesDynamicLoginMethods === false || + superTokens.Multitenancy.getInstanceOrThrow().getLoadedDynamicLoginMethods() !== undefined + ), + loadedDynamicLoginMethods = _c[0], + setLoadedDynamicLoginMethods = _c[1]; var path = props.path; var location = (_a = props.getReactRouterDomWithCustomHistory()) === null || _a === void 0 ? void 0 : _a.useLocation(); @@ -71,16 +180,28 @@ function RoutingComponent(props) { // During development, this runs twice so as to warn devs of if there // are any side effects that happen here. So in tests, it will result in // the console log twice - return RecipeRouter.getMatchingComponentForRouteAndRecipeIdFromPreBuiltUIList( - normalizedPath, - props.preBuiltUIList - ); + if (loadedDynamicLoginMethods) { + return RecipeRouter.getMatchingComponentForRouteAndRecipeIdFromPreBuiltUIList( + normalizedPath, + props.preBuiltUIList, + false + ); + } + return undefined; + // location dependency needs to be kept in order to get new component on url change + // eslint-disable-next-line react-hooks/exhaustive-deps }, - [path, location] - ); // location dependency needs to be kept in order to get new component on url change + [path, location, loadedDynamicLoginMethods, props.preBuiltUIList] + ); + React.useEffect(function () { + var handler = function () { + setLoadedDynamicLoginMethods(true); + }; + superTokens.SuperTokens.uiController.on("LoginMethodsLoaded", handler); + }, []); var history = (_b = props.getReactRouterDomWithCustomHistory()) === null || _b === void 0 ? void 0 : _b.useHistoryCustom(); - if (componentToRender === undefined) { + if (componentToRender === undefined || loadedDynamicLoginMethods === false) { return null; } return jsxRuntime.jsx(componentToRender.component, { history: history }); @@ -105,7 +226,7 @@ function getSuperTokensRoutesForReactRouterDom$1(_a) { if (!(path in routes)) { routes[path] = jsxRuntime.jsx( Route, - utils.__assign( + superTokens.__assign( { exact: true, path: path }, { children: jsxRuntime.jsx(RoutingComponent, { @@ -231,8 +352,9 @@ var UI = /** @class */ (function () { }); return ( RecipeRouter.getMatchingComponentForRouteAndRecipeIdFromPreBuiltUIList( - utils.getCurrentNormalisedUrlPath(), - recipeList + superTokens.getCurrentNormalisedUrlPath(), + recipeList, + true ) !== undefined ); }; @@ -242,7 +364,7 @@ var UI = /** @class */ (function () { }); return jsxRuntime.jsx(RoutingComponent, { getReactRouterDomWithCustomHistory: UI.getReactRouterDomWithCustomHistory, - path: utils.getCurrentNormalisedUrlPath().getAsStringDangerous(), + path: superTokens.getCurrentNormalisedUrlPath().getAsStringDangerous(), preBuiltUIList: recipeList, }); }; diff --git a/lib/build/multitenancy.js b/lib/build/multitenancy.js new file mode 100644 index 000000000..731698885 --- /dev/null +++ b/lib/build/multitenancy.js @@ -0,0 +1,46 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + +var MultitenancyWebJS = require("supertokens-web-js/recipe/multitenancy"); +var superTokens = require("./superTokens.js"); +require("supertokens-web-js"); +require("supertokens-web-js/utils/cookieHandler"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); +require("supertokens-web-js/utils/windowHandler"); +require("react"); +require("supertokens-web-js/utils/normalisedURLDomain"); +require("supertokens-web-js/utils/normalisedURLPath"); + +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +var Wrapper = /** @class */ (function () { + function Wrapper() {} + Wrapper.init = function (config) { + return superTokens.Multitenancy.init(config); + }; + Wrapper.AllowedDomainsClaim = MultitenancyWebJS.AllowedDomainsClaim; + return Wrapper; +})(); +var init = Wrapper.init; + +Object.defineProperty(exports, "AllowedDomainsClaim", { + enumerable: true, + get: function () { + return MultitenancyWebJS.AllowedDomainsClaim; + }, +}); +exports.default = Wrapper; +exports.init = init; diff --git a/lib/build/passwordless-shared2.js b/lib/build/passwordless-shared2.js index fec14be5c..df7e60a02 100644 --- a/lib/build/passwordless-shared2.js +++ b/lib/build/passwordless-shared2.js @@ -1,9 +1,8 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var PasswordlessWebJS = require("supertokens-web-js/recipe/passwordless"); -var utils$1 = require("./authRecipe-shared.js"); -var WebJSUtils = require("supertokens-web-js/recipe/passwordless/utils"); +var utils = require("./authRecipe-shared.js"); var windowHandler = require("supertokens-web-js/utils/windowHandler"); function _interopDefault(e) { @@ -11,15 +10,14 @@ function _interopDefault(e) { } var PasswordlessWebJS__default = /*#__PURE__*/ _interopDefault(PasswordlessWebJS); -var WebJSUtils__default = /*#__PURE__*/ _interopDefault(WebJSUtils); var getFunctionOverrides = function (onHandleEvent) { return function (originalImp) { - return utils.__assign(utils.__assign({}, originalImp), { + return superTokens.__assign(superTokens.__assign({}, originalImp), { createCode: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.createCode(input)]; @@ -37,9 +35,9 @@ var getFunctionOverrides = function (onHandleEvent) { }); }, resendCode: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.resendCode(input)]; @@ -61,9 +59,9 @@ var getFunctionOverrides = function (onHandleEvent) { }); }, consumeCode: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.consumeCode(input)]; @@ -86,14 +84,14 @@ var getFunctionOverrides = function (onHandleEvent) { }); }, setLoginAttemptInfo: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, originalImp.setLoginAttemptInfo( - utils.__assign(utils.__assign({}, input), { - attemptInfo: utils.__assign( - utils.__assign({}, input.attemptInfo), + superTokens.__assign(superTokens.__assign({}, input), { + attemptInfo: superTokens.__assign( + superTokens.__assign({}, input.attemptInfo), input.userContext.additionalAttemptInfo ), }) @@ -108,9 +106,9 @@ var getFunctionOverrides = function (onHandleEvent) { var phoneNumberUtilsImport; function getPhoneNumberUtils() { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var global; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, preloadPhoneNumberUtils()]; @@ -127,7 +125,7 @@ function preloadPhoneNumberUtils() { /* eslint-disable @typescript-eslint/ban-ts-comment */ // @ts-ignore: We need to disable no implicit any here, otherwise we'd need to add types for this module phoneNumberUtilsImport = Promise.resolve().then(function () { - return require("./utils2.js"); + return require("./utils.js"); }); /* eslint-enable @typescript-eslint/ban-ts-comment */ } @@ -165,9 +163,9 @@ function defaultEmailValidator(value) { return undefined; } function defaultPhoneNumberValidator(value) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var intlTelInputUtils; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: if (typeof value !== "string") { @@ -202,9 +200,9 @@ function defaultEmailValidatorForCombinedInput(value) { return undefined; } function defaultPhoneNumberValidatorForCombinedInput(value) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var intlTelInputUtils; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: if (typeof value !== "string") { @@ -223,8 +221,8 @@ function defaultPhoneNumberValidatorForCombinedInput(value) { }); } function userInputCodeValidate(value) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { if (typeof value !== "string") { return [2 /*return*/, "GENERAL_ERROR_OTP_NON_STRING"]; } @@ -240,14 +238,14 @@ function userInputCodeValidate(value) { */ // eslint-disable-next-line @typescript-eslint/no-unused-vars function defaultValidate(_) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [2 /*return*/, undefined]; }); }); } function defaultGuessInternationPhoneNumberFromInputPhoneNumber(value, defaultCountryFromConfig) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var intlTelInputUtils, libGuess, phoneNumberCharCount, @@ -258,7 +256,7 @@ function defaultGuessInternationPhoneNumberFromInputPhoneNumber(value, defaultCo matchingCountryCodes_1, code, defaultCountry; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: if (value === undefined || value.length === 0) { @@ -356,7 +354,7 @@ function normalisePasswordlessConfig(config) { throw new Error("Please pass one of 'PHONE', 'EMAIL' or 'EMAIL_OR_PHONE' as the contactMethod"); } var signInUpFeature = normalizeSignInUpFeatureConfig(config.signInUpFeature, config); - var override = utils.__assign( + var override = superTokens.__assign( { functions: function (originalImplementation) { return originalImplementation; @@ -382,7 +380,7 @@ function normalisePasswordlessConfig(config) { } else if (config.contactMethod === "EMAIL_OR_PHONE") { validatePhoneNumber = defaultPhoneNumberValidatorForCombinedInput; } - return utils.__assign(utils.__assign({}, utils$1.normaliseAuthRecipe(config)), { + return superTokens.__assign(superTokens.__assign({}, utils.normaliseAuthRecipe(config)), { validateEmailAddress: validateEmailAddress, validatePhoneNumber: validatePhoneNumber, signInUpFeature: signInUpFeature, @@ -399,7 +397,7 @@ function normalizeSignInUpFeatureConfig(signInUpInput, config) { ) { throw new Error("Please pass a positive number as resendEmailOrSMSGapInSeconds"); } - var signInUpFeature = utils.__assign(utils.__assign({}, signInUpInput), { + var signInUpFeature = superTokens.__assign(superTokens.__assign({}, signInUpInput), { resendEmailOrSMSGapInSeconds: (signInUpInput === null || signInUpInput === void 0 ? void 0 @@ -444,67 +442,7 @@ function normalizeSignInUpFeatureConfig(signInUpInput, config) { } function normalisePasswordlessBaseConfig(config) { var style = config && config.style !== undefined ? config.style : ""; - return utils.__assign(utils.__assign({}, config), { style: style }); -} -function getLoginAttemptInfo(input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4 /*yield*/, - input.recipeImplementation.getLoginAttemptInfo({ - userContext: input.userContext, - }), - ]; - case 1: - return [2 /*return*/, _a.sent()]; - } - }); - }); -} -function setLoginAttemptInfo(input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4 /*yield*/, - input.recipeImplementation.setLoginAttemptInfo({ - userContext: input.userContext, - attemptInfo: input.attemptInfo, - }), - ]; - case 1: - return [2 /*return*/, _a.sent()]; - } - }); - }); -} -/** - * These functions are helper functions so that the logic can be exposed from both - * passwordless and thirdpartypasswordless recipes without having to duplicate code - */ -function createCode(input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [2 /*return*/, WebJSUtils__default.default.createCode(input)]; - }); - }); -} -function resendCode(input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [2 /*return*/, WebJSUtils__default.default.resendCode(input)]; - }); - }); -} -function consumeCode(input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [2 /*return*/, WebJSUtils__default.default.consumeCode(input)]; - }); - }); + return superTokens.__assign(superTokens.__assign({}, config), { style: style }); } /* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. @@ -525,16 +463,17 @@ function consumeCode(input) { * Class. */ var Passwordless = /** @class */ (function (_super) { - utils.__extends(Passwordless, _super); + superTokens.__extends(Passwordless, _super); function Passwordless(config, webJSRecipe) { if (webJSRecipe === void 0) { webJSRecipe = PasswordlessWebJS__default.default; } var _this = _super.call(this, config) || this; _this.webJSRecipe = webJSRecipe; + _this.recipeID = Passwordless.RECIPE_ID; _this.getDefaultRedirectionURL = function (context) { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [2 /*return*/, this.getAuthRecipeDefaultRedirectionURL(context)]; }); }); @@ -544,9 +483,10 @@ var Passwordless = /** @class */ (function (_super) { Passwordless.init = function (config) { var normalisedConfig = normalisePasswordlessConfig(config); return { + recipeID: Passwordless.RECIPE_ID, authReact: function (appInfo) { Passwordless.instance = new Passwordless( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { appInfo: appInfo, recipeId: Passwordless.RECIPE_ID, }) @@ -554,7 +494,7 @@ var Passwordless = /** @class */ (function (_super) { return Passwordless.instance; }, webJS: PasswordlessWebJS__default.default.init( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { override: { functions: function (originalImpl, builder) { var functions = getFunctionOverrides(normalisedConfig.onHandleEvent); @@ -574,7 +514,7 @@ var Passwordless = /** @class */ (function (_super) { "See https://supertokens.io/docs/passwordless/quick-setup/frontend"; // eslint-disable-next-line supertokens-auth-react/no-direct-window-object if (typeof window === "undefined") { - error = error + utils.SSR_ERROR; + error = error + superTokens.SSR_ERROR; } throw Error(error); } @@ -584,7 +524,7 @@ var Passwordless = /** @class */ (function (_super) { * Tests methods. */ Passwordless.reset = function () { - if (!utils.isTest()) { + if (!superTokens.isTest()) { return; } Passwordless.instance = undefined; @@ -592,17 +532,12 @@ var Passwordless = /** @class */ (function (_super) { }; Passwordless.RECIPE_ID = "passwordless"; return Passwordless; -})(utils$1.AuthRecipe); +})(utils.AuthRecipe); exports.Passwordless = Passwordless; -exports.consumeCode = consumeCode; -exports.createCode = createCode; exports.defaultEmailValidator = defaultEmailValidator; exports.defaultValidate = defaultValidate; -exports.getLoginAttemptInfo = getLoginAttemptInfo; exports.getPhoneNumberUtils = getPhoneNumberUtils; exports.normalisePasswordlessConfig = normalisePasswordlessConfig; exports.preloadPhoneNumberUtils = preloadPhoneNumberUtils; -exports.resendCode = resendCode; -exports.setLoginAttemptInfo = setLoginAttemptInfo; exports.userInputCodeValidate = userInputCodeValidate; diff --git a/lib/build/passwordless-shared3.js b/lib/build/passwordless-shared3.js index 6f4289075..b5906321e 100644 --- a/lib/build/passwordless-shared3.js +++ b/lib/build/passwordless-shared3.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); var userContextWrapper = require("./userContextWrapper.js"); @@ -10,14 +10,13 @@ var componentOverrideContext = require("./passwordless-shared.js"); var React = require("react"); var STGeneralError = require("supertokens-web-js/utils/error"); var translations = require("./translations.js"); -var utils$1 = require("./recipeModule-shared.js"); var recipe = require("./session-shared2.js"); -var recipe$1 = require("./passwordless-shared2.js"); var spinnerIcon = require("./spinnerIcon.js"); var translationContext = require("./translationContext.js"); var button = require("./emailpassword-shared2.js"); require("./index.js"); var session = require("./session-shared3.js"); +var recipe$1 = require("./passwordless-shared2.js"); var generalError = require("./emailpassword-shared.js"); var checkedRoundIcon = require("./checkedRoundIcon.js"); var formBase = require("./emailpassword-shared7.js"); @@ -86,12 +85,12 @@ var PasswordlessLinkClickedScreen = function (props) { setLoading = _a[1]; return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: @@ -100,21 +99,21 @@ var PasswordlessLinkClickedScreen = function (props) { children: [ jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle" }, { children: t("PWLESS_LINK_CLICKED_CONTINUE_HEADER") } ) ), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerSubtitle secondaryText" }, { children: t("PWLESS_LINK_CLICKED_CONTINUE_DESC") } ) ), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "continueButtonWrapper" }, { children: jsxRuntime.jsx(button.Button, { @@ -133,7 +132,7 @@ var PasswordlessLinkClickedScreen = function (props) { }) : jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "spinner" }, { children: jsxRuntime.jsx(spinnerIcon.SpinnerIcon, {}) } ) @@ -153,18 +152,18 @@ var LinkClickedScreen$1 = function (props) { var hasFont = translations.hasFontDefined(props.config.rootStyle); return jsxRuntime.jsx( ThemeBase, - utils.__assign( + superTokens.__assign( { loadDefaultFont: !hasFont, userStyles: [props.config.rootStyle, props.config.linkClickedScreenFeature.style], }, - { children: jsxRuntime.jsx(LinkClickedScreenWithOverride, utils.__assign({}, props)) } + { children: jsxRuntime.jsx(LinkClickedScreenWithOverride, superTokens.__assign({}, props)) } ) ); }; var defaultTranslationsPasswordless = { - en: utils.__assign(utils.__assign({}, translations.defaultTranslationsCommon.en), { + en: superTokens.__assign(superTokens.__assign({}, translations.defaultTranslationsCommon.en), { GENERAL_ERROR_EMAIL_UNDEFINED: "Please set your email", GENERAL_ERROR_EMAIL_NON_STRING: "Email must be of type string", GENERAL_ERROR_EMAIL_INVALID: "Email is invalid", @@ -235,18 +234,18 @@ var LinkClickedScreen = function (props) { setRequireUserInteraction = _a[1]; var consumeCodeAtMount = React.useCallback( function () { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var preAuthSessionId, linkCode, loginAttemptInfo; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: - preAuthSessionId = utils.getQueryParams("preAuthSessionId"); - linkCode = utils.getURLHash(); + preAuthSessionId = superTokens.getQueryParams("preAuthSessionId"); + linkCode = superTokens.getURLHash(); if (!(preAuthSessionId === null || preAuthSessionId.length === 0 || linkCode.length === 0)) return [3 /*break*/, 2]; return [ 4 /*yield*/, - utils$1.SuperTokens.getInstanceOrThrow().redirectToAuth({ + superTokens.SuperTokens.getInstanceOrThrow().redirectToAuth({ history: props.history, queryParams: { error: "signin", @@ -285,9 +284,9 @@ var LinkClickedScreen = function (props) { ); var handleConsumeResp = React.useCallback( function (response) { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var loginAttemptInfo; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: if (response === "REQUIRES_INTERACTION") { @@ -301,7 +300,7 @@ var LinkClickedScreen = function (props) { if (response.status === "RESTART_FLOW_ERROR") { return [ 2 /*return*/, - utils$1.SuperTokens.getInstanceOrThrow().redirectToAuth({ + superTokens.SuperTokens.getInstanceOrThrow().redirectToAuth({ history: props.history, queryParams: { error: "restart_link", @@ -313,8 +312,7 @@ var LinkClickedScreen = function (props) { if (!(response.status === "OK")) return [3 /*break*/, 3]; return [ 4 /*yield*/, - recipe$1.getLoginAttemptInfo({ - recipeImplementation: props.recipe.webJSRecipe, + props.recipe.webJSRecipe.getLoginAttemptInfo({ userContext: userContext, }), ]; @@ -357,7 +355,7 @@ var LinkClickedScreen = function (props) { var handleConsumeError = React.useCallback( function (err) { if (STGeneralError__default.default.isThisError(err)) { - return utils$1.SuperTokens.getInstanceOrThrow().redirectToAuth({ + return superTokens.SuperTokens.getInstanceOrThrow().redirectToAuth({ history: props.history, queryParams: { error: "custom", @@ -366,7 +364,7 @@ var LinkClickedScreen = function (props) { redirectBack: false, }); } else { - return utils$1.SuperTokens.getInstanceOrThrow().redirectToAuth({ + return superTokens.SuperTokens.getInstanceOrThrow().redirectToAuth({ history: props.history, queryParams: { error: "signin", @@ -377,16 +375,16 @@ var LinkClickedScreen = function (props) { }, [props.recipe, props.history] ); - utils.useOnMountAPICall(consumeCodeAtMount, handleConsumeResp, handleConsumeError); + superTokens.useOnMountAPICall(consumeCodeAtMount, handleConsumeResp, handleConsumeError); var recipeComponentOverrides = props.useComponentOverrides(); var childProps = { recipeImplementation: props.recipe.webJSRecipe, config: props.recipe.config, requireUserInteraction: requireUserInteraction, consumeCode: function () { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var consumeResp, err_1; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); @@ -415,12 +413,12 @@ var LinkClickedScreen = function (props) { }; return jsxRuntime.jsx( translations.ComponentOverrideContext.Provider, - utils.__assign( + superTokens.__assign( { value: recipeComponentOverrides }, { children: jsxRuntime.jsx( translations.FeatureWrapper, - utils.__assign( + superTokens.__assign( { useShadowDom: props.recipe.config.useShadowDom, defaultStore: defaultTranslationsPasswordless, @@ -429,7 +427,7 @@ var LinkClickedScreen = function (props) { children: jsxRuntime.jsxs(React.Fragment, { children: [ props.children === undefined && - jsxRuntime.jsx(LinkClickedScreen$1, utils.__assign({}, childProps)), + jsxRuntime.jsx(LinkClickedScreen$1, superTokens.__assign({}, childProps)), props.children && React__namespace.default.Children.map(props.children, function (child) { if (React__namespace.default.isValidElement(child)) { @@ -451,19 +449,19 @@ var PasswordlessCloseTabScreen = function () { var t = translationContext.useTranslation(); return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row noFormRow" }, { children: [ jsxRuntime.jsx(checkedRoundIcon.CheckedRoundIcon, {}), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle" }, { children: t("PWLESS_CLOSE_TAB_TITLE") } ) @@ -471,7 +469,7 @@ var PasswordlessCloseTabScreen = function () { jsxRuntime.jsx("div", { "data-supertokens": "divider" }), jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerSubtitle secondaryText" }, { children: [ @@ -501,7 +499,7 @@ var SignInUpFooter = translations.withOverride("PasswordlessSignInUpFooter", fun } return jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "secondaryText privacyPolicyAndTermsAndConditions" }, { children: [ @@ -509,7 +507,7 @@ var SignInUpFooter = translations.withOverride("PasswordlessSignInUpFooter", fun termsOfServiceLink !== undefined && jsxRuntime.jsx( "a", - utils.__assign( + superTokens.__assign( { "data-supertokens": "link", href: termsOfServiceLink, @@ -525,7 +523,7 @@ var SignInUpFooter = translations.withOverride("PasswordlessSignInUpFooter", fun privacyPolicyLink !== undefined && jsxRuntime.jsx( "a", - utils.__assign( + superTokens.__assign( { "data-supertokens": "link", href: privacyPolicyLink, @@ -562,10 +560,10 @@ var EmailForm = translations.withOverride("PasswordlessEmailForm", function Pass buttonLabel: "PWLESS_SIGN_IN_UP_CONTINUE_BUTTON", onSuccess: props.onSuccess, callAPI: function (formFields) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var email, validationRes, response; var _a; - return utils.__generator(this, function (_b) { + return superTokens.__generator(this, function (_b) { switch (_b.label) { case 0: email = @@ -2619,7 +2617,7 @@ function PhoneNumberInput(_a) { // if it detects a mobile environment, but this doesn't work with our styling if we use shadow dom var anyIti = iti; if (anyIti.isMobile) { - var root = document.getElementById(utils.ST_ROOT_ID); + var root = document.getElementById(superTokens.ST_ROOT_ID); // We only have to do this if we are using shadowDom and we need access to the dom element anyway // so passing the shadowroot element here would be both impractical and not too useful if (root === null || root === void 0 ? void 0 : root.shadowRoot) { @@ -2642,13 +2640,13 @@ function PhoneNumberInput(_a) { */ return jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "inputContainer" }, { children: [ jsxRuntime.jsxs( "style", - utils.__assign( + superTokens.__assign( { type: "text/css" }, { children: [ @@ -2660,7 +2658,7 @@ function PhoneNumberInput(_a) { ), jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "phoneInputWrapper inputWrapper ".concat( hasError ? "inputError" : "" @@ -2692,7 +2690,7 @@ function PhoneNumberInput(_a) { hasError === true && jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "inputAdornment inputAdornmentError" }, { children: jsxRuntime.jsx(formBase.ErrorIcon, {}) } ) @@ -2710,7 +2708,7 @@ function PhoneNumberInput(_a) { // TODO: type props var phoneNumberInputWithInjectedProps = function (injectedProps) { return function (props) { - return jsxRuntime.jsx(PhoneNumberInput, utils.__assign({}, injectedProps, props)); + return jsxRuntime.jsx(PhoneNumberInput, superTokens.__assign({}, injectedProps, props)); }; }; @@ -2753,7 +2751,7 @@ var EmailOrPhoneForm = translations.withOverride( buttonLabel: "PWLESS_SIGN_IN_UP_CONTINUE_BUTTON", onSuccess: props.onSuccess, callAPI: function (formFields, setValue) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var emailOrPhone, emailValidationRes, response, @@ -2763,7 +2761,7 @@ var EmailOrPhoneForm = translations.withOverride( phoneValidationResAfterGuess, ex_1; var _a; - return utils.__generator(this, function (_b) { + return superTokens.__generator(this, function (_b) { switch (_b.label) { case 0: emailOrPhone = @@ -2897,29 +2895,29 @@ var EmailOrPhoneForm = translations.withOverride( function SMSLargeIcon() { return jsxRuntime.jsx( "svg", - utils.__assign( + superTokens.__assign( { xmlns: "http://www.w3.org/2000/svg", width: "52.013", height: "41.889", viewBox: "0 0 52.013 41.889" }, { children: jsxRuntime.jsx( "g", - utils.__assign( + superTokens.__assign( { id: "Group_10400", "data-name": "Group 10400", transform: "translate(-724.625 -241.125)" }, { children: jsxRuntime.jsxs( "g", - utils.__assign( + superTokens.__assign( { id: "Group_10399", "data-name": "Group 10399" }, { children: [ jsxRuntime.jsxs( "g", - utils.__assign( + superTokens.__assign( { id: "Group_10398", "data-name": "Group 10398" }, { children: [ jsxRuntime.jsxs( "g", - utils.__assign( + superTokens.__assign( { id: "_2639922_sms_icon", "data-name": "2639922_sms_icon", @@ -2969,7 +2967,7 @@ function SMSLargeIcon() { ), jsxRuntime.jsxs( "g", - utils.__assign( + superTokens.__assign( { id: "_2639922_sms_icon-2", "data-name": "2639922_sms_icon", @@ -3001,7 +2999,7 @@ function SMSLargeIcon() { ), jsxRuntime.jsxs( "g", - utils.__assign( + superTokens.__assign( { id: "Group_10397", "data-name": "Group 10397" }, { children: [ @@ -3031,7 +3029,7 @@ function SMSLargeIcon() { ), jsxRuntime.jsxs( "g", - utils.__assign( + superTokens.__assign( { id: "Group_10396", "data-name": "Group 10396" }, { children: [ @@ -3068,7 +3066,7 @@ function SMSLargeIcon() { }), jsxRuntime.jsxs( "g", - utils.__assign( + superTokens.__assign( { id: "Group_10395", "data-name": "Group 10395" }, { children: [ @@ -3142,7 +3140,7 @@ var ResendButton = translations.withOverride("PasswordlessResendButton", functio ); return jsxRuntime.jsx( "button", - utils.__assign( + superTokens.__assign( { type: "button", disabled: secsUntilResend !== undefined, @@ -3193,9 +3191,9 @@ var PasswordlessLinkSent = function (props) { }, []); var resendEmail = React.useCallback( function () { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var response, generalError, e_1; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 5, , 6]); @@ -3208,8 +3206,6 @@ var PasswordlessLinkSent = function (props) { return [ 4 /*yield*/, props.recipeImplementation.resendCode({ - deviceId: props.loginAttemptInfo.deviceId, - preAuthSessionId: props.loginAttemptInfo.preAuthSessionId, userContext: userContext, }), ]; @@ -3255,12 +3251,12 @@ var PasswordlessLinkSent = function (props) { var resendActive = status === "LINK_RESENT"; return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: [ @@ -3271,14 +3267,14 @@ var PasswordlessLinkSent = function (props) { resendActive && jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "generalSuccess" }, { children: t("PWLESS_LINK_SENT_RESEND_SUCCESS") } ) ), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "sendCodeIcon" }, { children: @@ -3290,14 +3286,14 @@ var PasswordlessLinkSent = function (props) { ), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle headerTinyTitle" }, { children: t("PWLESS_LINK_SENT_RESEND_TITLE") } ) ), jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "primaryText sendCodeText" }, { children: [ @@ -3322,7 +3318,7 @@ var PasswordlessLinkSent = function (props) { }), jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "secondaryText secondaryLinkWithLeftArrow", onClick: function () { @@ -3385,10 +3381,10 @@ var PhoneForm = translations.withOverride("PasswordlessPhoneForm", function Pass buttonLabel: "PWLESS_SIGN_IN_UP_CONTINUE_BUTTON", onSuccess: props.onSuccess, callAPI: function (formFields) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var phoneNumber, validationRes, response; var _a; - return utils.__generator(this, function (_b) { + return superTokens.__generator(this, function (_b) { switch (_b.label) { case 0: phoneNumber = @@ -3435,7 +3431,10 @@ var SignInUpHeader = translations.withOverride("PasswordlessSignInUpHeader", fun children: [ jsxRuntime.jsx( "div", - utils.__assign({ "data-supertokens": "headerTitle" }, { children: t("PWLESS_SIGN_IN_UP_HEADER_TITLE") }) + superTokens.__assign( + { "data-supertokens": "headerTitle" }, + { children: t("PWLESS_SIGN_IN_UP_HEADER_TITLE") } + ) ), jsxRuntime.jsx("div", { "data-supertokens": "divider" }), ], @@ -3452,7 +3451,7 @@ var UserInputCodeFormFooter = translations.withOverride( return jsxRuntime.jsx(React.Fragment, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "secondaryText secondaryLinkWithLeftArrow", onClick: function () { @@ -3495,9 +3494,9 @@ var UserInputCodeForm = translations.withOverride( [clearResendNotifTimeout] ); function resend() { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response, generalError, e_1; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 5, , 6]); @@ -3509,8 +3508,6 @@ var UserInputCodeForm = translations.withOverride( return [ 4 /*yield*/, props.recipeImplementation.resendCode({ - deviceId: props.loginAttemptInfo.deviceId, - preAuthSessionId: props.loginAttemptInfo.preAuthSessionId, userContext: userContext, }), ]; @@ -3556,7 +3553,7 @@ var UserInputCodeForm = translations.withOverride( clearResendNotifTimeout !== undefined && jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "generalSuccess" }, { children: @@ -3575,7 +3572,7 @@ var UserInputCodeForm = translations.withOverride( label: "", labelComponent: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "codeInputLabelWrapper" }, { children: [ @@ -3603,10 +3600,10 @@ var UserInputCodeForm = translations.withOverride( onSuccess: props.onSuccess, buttonLabel: "PWLESS_SIGN_IN_UP_CONTINUE_BUTTON", callAPI: function (formFields) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var userInputCode, response; var _a; - return utils.__generator(this, function (_b) { + return superTokens.__generator(this, function (_b) { switch (_b.label) { case 0: userInputCode = @@ -3621,8 +3618,6 @@ var UserInputCodeForm = translations.withOverride( return [ 4 /*yield*/, props.recipeImplementation.consumeCode({ - deviceId: props.loginAttemptInfo.deviceId, - preAuthSessionId: props.loginAttemptInfo.preAuthSessionId, userInputCode: userInputCode, userContext: userContext, }), @@ -3647,7 +3642,7 @@ var UserInputCodeForm = translations.withOverride( showLabels: true, footer: jsxRuntime.jsx( UserInputCodeFormFooter, - utils.__assign({}, props, { loginAttemptInfo: props.loginAttemptInfo }) + superTokens.__assign({}, props, { loginAttemptInfo: props.loginAttemptInfo }) ), }), ], @@ -3664,14 +3659,14 @@ var UserInputCodeFormHeader = translations.withOverride( children: [ jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle" }, { children: t("PWLESS_USER_INPUT_CODE_HEADER_TITLE") } ) ), jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerSubtitle secondaryText" }, { children: [ @@ -3705,7 +3700,7 @@ exports.SignInUpScreens = void 0; var SignInUpTheme = function (_a) { var activeScreen = _a.activeScreen, featureState = _a.featureState, - props = utils.__rest(_a, ["activeScreen", "featureState"]); + props = superTokens.__rest(_a, ["activeScreen", "featureState"]); var commonProps = { recipeImplementation: props.recipeImplementation, config: props.config, @@ -3718,18 +3713,21 @@ var SignInUpTheme = function (_a) { error: featureState.error, }; return activeScreen === exports.SignInUpScreens.CloseTab - ? jsxRuntime.jsx(CloseTabScreen, utils.__assign({}, commonProps)) + ? jsxRuntime.jsx(CloseTabScreen, superTokens.__assign({}, commonProps)) : activeScreen === exports.SignInUpScreens.LinkSent - ? jsxRuntime.jsx(LinkSent, utils.__assign({}, commonProps, { loginAttemptInfo: featureState.loginAttemptInfo })) + ? jsxRuntime.jsx( + LinkSent, + superTokens.__assign({}, commonProps, { loginAttemptInfo: featureState.loginAttemptInfo }) + ) : jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: [ jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: @@ -3739,7 +3737,7 @@ var SignInUpTheme = function (_a) { activeScreen === exports.SignInUpScreens.UserInputCodeForm ? jsxRuntime.jsx( UserInputCodeFormHeader, - utils.__assign({}, commonProps, { + superTokens.__assign({}, commonProps, { loginAttemptInfo: featureState.loginAttemptInfo, }) ) @@ -3749,18 +3747,18 @@ var SignInUpTheme = function (_a) { error: featureState.error, }), activeScreen === exports.SignInUpScreens.EmailForm - ? jsxRuntime.jsx(EmailForm, utils.__assign({}, commonProps)) + ? jsxRuntime.jsx(EmailForm, superTokens.__assign({}, commonProps)) : activeScreen === exports.SignInUpScreens.PhoneForm - ? jsxRuntime.jsx(PhoneForm, utils.__assign({}, commonProps)) + ? jsxRuntime.jsx(PhoneForm, superTokens.__assign({}, commonProps)) : activeScreen === exports.SignInUpScreens.EmailOrPhoneForm ? jsxRuntime.jsx( EmailOrPhoneForm, - utils.__assign({}, commonProps) + superTokens.__assign({}, commonProps) ) : activeScreen === exports.SignInUpScreens.UserInputCodeForm ? jsxRuntime.jsx( UserInputCodeForm, - utils.__assign({}, commonProps, { + superTokens.__assign({}, commonProps, { loginAttemptInfo: featureState.loginAttemptInfo, onSuccess: props.onSuccess, }) @@ -3796,17 +3794,17 @@ function SignInUpThemeWrapper(props) { } return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( ThemeBase, - utils.__assign( + superTokens.__assign( { loadDefaultFont: !hasFont, userStyles: [props.config.rootStyle, activeStyle] }, { children: jsxRuntime.jsx( SignInUpTheme, - utils.__assign({}, props, { activeScreen: activeScreen }) + superTokens.__assign({}, props, { activeScreen: activeScreen }) ), } ) @@ -3839,9 +3837,9 @@ var useSuccessInAnotherTabChecker = function (state, dispatch, userContext) { // We only need to start checking this if we have an active login attempt if (state.loginAttemptInfo && !state.successInAnotherTab) { var checkSessionIntervalHandle_1 = setInterval(function () { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var hasSession; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: if (!(callingConsumeCodeRef.current === false)) return [3 /*break*/, 2]; @@ -3889,26 +3887,27 @@ var useFeatureReducer = function (recipeImpl, userContext) { if (!oldState.loginAttemptInfo) { return oldState; } - return utils.__assign(utils.__assign({}, oldState), { + return superTokens.__assign(superTokens.__assign({}, oldState), { error: undefined, - loginAttemptInfo: utils.__assign(utils.__assign({}, oldState.loginAttemptInfo), { - lastResend: action.timestamp, - }), + loginAttemptInfo: superTokens.__assign( + superTokens.__assign({}, oldState.loginAttemptInfo), + { lastResend: action.timestamp } + ), }); case "restartFlow": - return utils.__assign(utils.__assign({}, oldState), { + return superTokens.__assign(superTokens.__assign({}, oldState), { error: action.error, loginAttemptInfo: undefined, }); case "setError": - return utils.__assign(utils.__assign({}, oldState), { error: action.error }); + return superTokens.__assign(superTokens.__assign({}, oldState), { error: action.error }); case "startLogin": - return utils.__assign(utils.__assign({}, oldState), { + return superTokens.__assign(superTokens.__assign({}, oldState), { loginAttemptInfo: action.loginAttemptInfo, error: undefined, }); case "successInAnotherTab": - return utils.__assign(utils.__assign({}, oldState), { successInAnotherTab: true }); + return superTokens.__assign(superTokens.__assign({}, oldState), { successInAnotherTab: true }); default: return oldState; } @@ -3921,8 +3920,8 @@ var useFeatureReducer = function (recipeImpl, userContext) { }, function (initArg) { var error = undefined; - var errorQueryParam = utils.getQueryParams("error"); - var messageQueryParam = utils.getQueryParams("message"); + var errorQueryParam = superTokens.getQueryParams("error"); + var messageQueryParam = superTokens.getQueryParams("message"); if (errorQueryParam !== null) { if (errorQueryParam === "signin") { error = "SOMETHING_WENT_WRONG_ERROR"; @@ -3932,7 +3931,7 @@ var useFeatureReducer = function (recipeImpl, userContext) { error = messageQueryParam; } } - return utils.__assign(utils.__assign({}, initArg), { error: error }); + return superTokens.__assign(superTokens.__assign({}, initArg), { error: error }); } ), state = _a[0], @@ -3943,14 +3942,14 @@ var useFeatureReducer = function (recipeImpl, userContext) { return; } function load() { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var error, errorQueryParam, messageQueryParam, loginAttemptInfo; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: error = undefined; - errorQueryParam = utils.getQueryParams("error"); - messageQueryParam = utils.getQueryParams("message"); + errorQueryParam = superTokens.getQueryParams("error"); + messageQueryParam = superTokens.getQueryParams("message"); if (errorQueryParam !== null) { if (errorQueryParam === "signin") { error = "SOMETHING_WENT_WRONG_ERROR"; @@ -3962,10 +3961,11 @@ var useFeatureReducer = function (recipeImpl, userContext) { } return [ 4 /*yield*/, - recipe$1.getLoginAttemptInfo({ - recipeImplementation: recipeImpl, - userContext: userContext, - }), + recipeImpl === null || recipeImpl === void 0 + ? void 0 + : recipeImpl.getLoginAttemptInfo({ + userContext: userContext, + }), ]; case 1: loginAttemptInfo = _a.sent(); @@ -4007,7 +4007,7 @@ function useChildProps(recipe$1, dispatch, state, callingConsumeCodeRef, userCon successRedirectContext: { action: "SUCCESS", isNewUser: result.createdNewUser, - redirectToPath: utils.getRedirectToPathFromURL(), + redirectToPath: superTokens.getRedirectToPathFromURL(), }, }, userContext, @@ -4031,12 +4031,12 @@ var SignInUpFeature = function (props) { var childProps = useChildProps(props.recipe, dispatch, state, callingConsumeCodeRef, userContext, props.history); return jsxRuntime.jsx( translations.ComponentOverrideContext.Provider, - utils.__assign( + superTokens.__assign( { value: recipeComponentOverrides }, { children: jsxRuntime.jsx( translations.FeatureWrapper, - utils.__assign( + superTokens.__assign( { useShadowDom: props.recipe.config.useShadowDom, defaultStore: defaultTranslationsPasswordless, @@ -4047,14 +4047,17 @@ var SignInUpFeature = function (props) { props.children === undefined && jsxRuntime.jsx( SignInUpThemeWrapper, - utils.__assign({}, childProps, { featureState: state, dispatch: dispatch }) + superTokens.__assign({}, childProps, { + featureState: state, + dispatch: dispatch, + }) ), props.children && React__namespace.Children.map(props.children, function (child) { if (React__namespace.isValidElement(child)) { return React__namespace.cloneElement( child, - utils.__assign(utils.__assign({}, childProps), { + superTokens.__assign(superTokens.__assign({}, childProps), { featureState: state, dispatch: dispatch, }) @@ -4073,11 +4076,11 @@ var SignInUpFeature = function (props) { }; function getModifiedRecipeImplementation(originalImpl, config, dispatch, callingConsumeCodeRef) { var _this = this; - return utils.__assign(utils.__assign({}, originalImpl), { + return superTokens.__assign(superTokens.__assign({}, originalImpl), { createCode: function (input) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var contactInfo, phoneNumberUtils, contactMethod, additionalAttemptInfo, res, loginAttemptInfo; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, recipe$1.getPhoneNumberUtils()]; @@ -4097,13 +4100,13 @@ function getModifiedRecipeImplementation(originalImpl, config, dispatch, calling lastResend: Date.now(), contactMethod: contactMethod, contactInfo: contactInfo, - redirectToPath: utils.getRedirectToPathFromURL(), + redirectToPath: superTokens.getRedirectToPathFromURL(), }; return [ 4 /*yield*/, originalImpl.createCode( - utils.__assign(utils.__assign({}, input), { - userContext: utils.__assign(utils.__assign({}, input.userContext), { + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.__assign(superTokens.__assign({}, input.userContext), { additionalAttemptInfo: additionalAttemptInfo, }), }) @@ -4114,8 +4117,7 @@ function getModifiedRecipeImplementation(originalImpl, config, dispatch, calling if (!(res.status === "OK")) return [3 /*break*/, 4]; return [ 4 /*yield*/, - recipe$1.getLoginAttemptInfo({ - recipeImplementation: originalImpl, + originalImpl.getLoginAttemptInfo({ userContext: input.userContext, }), ]; @@ -4130,9 +4132,9 @@ function getModifiedRecipeImplementation(originalImpl, config, dispatch, calling }); }, resendCode: function (input) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var res, loginAttemptInfo, timestamp; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImpl.resendCode(input)]; @@ -4141,22 +4143,19 @@ function getModifiedRecipeImplementation(originalImpl, config, dispatch, calling if (!(res.status === "OK")) return [3 /*break*/, 5]; return [ 4 /*yield*/, - recipe$1.getLoginAttemptInfo({ - recipeImplementation: originalImpl, + originalImpl.getLoginAttemptInfo({ userContext: input.userContext, }), ]; case 2: loginAttemptInfo = _a.sent(); - if (!(loginAttemptInfo !== undefined && loginAttemptInfo.deviceId === input.deviceId)) - return [3 /*break*/, 4]; + if (!(loginAttemptInfo !== undefined)) return [3 /*break*/, 4]; timestamp = Date.now(); return [ 4 /*yield*/, - recipe$1.setLoginAttemptInfo({ - recipeImplementation: originalImpl, + originalImpl.setLoginAttemptInfo({ userContext: input.userContext, - attemptInfo: utils.__assign(utils.__assign({}, loginAttemptInfo), { + attemptInfo: superTokens.__assign(superTokens.__assign({}, loginAttemptInfo), { lastResend: timestamp, }), }), @@ -4186,9 +4185,9 @@ function getModifiedRecipeImplementation(originalImpl, config, dispatch, calling }); }, consumeCode: function (input) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var res; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: // We need to call consume code while callingConsume, so we don't detect @@ -4227,8 +4226,8 @@ function getModifiedRecipeImplementation(originalImpl, config, dispatch, calling }); }, clearLoginAttemptInfo: function (input) { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [ @@ -4239,7 +4238,7 @@ function getModifiedRecipeImplementation(originalImpl, config, dispatch, calling ]; case 1: _a.sent(); - utils.clearErrorQueryParam(); + superTokens.clearErrorQueryParam(); dispatch({ type: "restartFlow", error: undefined }); return [2 /*return*/]; } @@ -4250,7 +4249,7 @@ function getModifiedRecipeImplementation(originalImpl, config, dispatch, calling } var PasswordlessPreBuiltUI = /** @class */ (function (_super) { - utils.__extends(PasswordlessPreBuiltUI, _super); + superTokens.__extends(PasswordlessPreBuiltUI, _super); function PasswordlessPreBuiltUI(recipeInstance) { var _this = _super.call(this) || this; _this.recipeInstance = recipeInstance; @@ -4265,10 +4264,11 @@ var PasswordlessPreBuiltUI = /** @class */ (function (_super) { new NormalisedURLPath__default.default("/") ); features[normalisedFullPath.getAsStringDangerous()] = { - matches: utils.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), + matches: superTokens.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), component: function (props) { return _this.getFeatureComponent("signInUp", props, useComponentOverrides); }, + recipeID: recipe$1.Passwordless.RECIPE_ID, }; } if (_this.recipeInstance.config.linkClickedScreenFeature.disableDefaultUI !== true) { @@ -4276,10 +4276,11 @@ var PasswordlessPreBuiltUI = /** @class */ (function (_super) { new NormalisedURLPath__default.default("/verify") ); features[normalisedFullPath.getAsStringDangerous()] = { - matches: utils.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), + matches: superTokens.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), component: function (props) { return _this.getFeatureComponent("linkClickedScreen", props, useComponentOverrides); }, + recipeID: recipe$1.Passwordless.RECIPE_ID, }; } return features; @@ -4292,17 +4293,17 @@ var PasswordlessPreBuiltUI = /** @class */ (function (_super) { if (props.redirectOnSessionExists !== false) { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( SuperTokensBranding.AuthWidgetWrapper, - utils.__assign( + superTokens.__assign( { authRecipe: _this.recipeInstance, history: props.history }, { children: jsxRuntime.jsx( SignInUpFeature, - utils.__assign( + superTokens.__assign( { recipe: _this.recipeInstance, useComponentOverrides: useComponentOverrides, @@ -4319,12 +4320,12 @@ var PasswordlessPreBuiltUI = /** @class */ (function (_super) { } else { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( SignInUpFeature, - utils.__assign( + superTokens.__assign( { recipe: _this.recipeInstance, useComponentOverrides: useComponentOverrides }, props ) @@ -4337,12 +4338,12 @@ var PasswordlessPreBuiltUI = /** @class */ (function (_super) { if (componentName === "linkClickedScreen") { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( LinkClickedScreen, - utils.__assign({ recipe: _this.recipeInstance }, props, { + superTokens.__assign({ recipe: _this.recipeInstance }, props, { useComponentOverrides: useComponentOverrides, }) ), @@ -4381,7 +4382,7 @@ var PasswordlessPreBuiltUI = /** @class */ (function (_super) { }; // For tests PasswordlessPreBuiltUI.reset = function () { - if (!utils.isTest()) { + if (!superTokens.isTest()) { return; } PasswordlessPreBuiltUI.instance = undefined; diff --git a/lib/build/passwordless.js b/lib/build/passwordless.js index 83ef44813..49f17d0d0 100644 --- a/lib/build/passwordless.js +++ b/lib/build/passwordless.js @@ -2,25 +2,25 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var componentOverrideContext = require("./passwordless-shared.js"); var recipe = require("./passwordless-shared2.js"); -require("react"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); +require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("react"); require("supertokens-web-js/utils/normalisedURLDomain"); require("supertokens-web-js/utils/normalisedURLPath"); -require("supertokens-web-js/utils/windowHandler"); require("./genericComponentOverrideContext.js"); require("react/jsx-runtime"); require("supertokens-web-js/recipe/passwordless"); require("./authRecipe-shared.js"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("./recipeModule-shared.js"); -require("supertokens-web-js"); require("./session-shared2.js"); require("supertokens-web-js/recipe/session"); require("supertokens-web-js/utils"); -require("supertokens-web-js/recipe/passwordless/utils"); /* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. * @@ -42,12 +42,12 @@ var Wrapper = /** @class */ (function () { return recipe.Passwordless.init(config); }; Wrapper.signOut = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Passwordless.getInstanceOrThrow().signOut({ - userContext: utils.getNormalisedUserContext( + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }), @@ -56,13 +56,15 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.createCode = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.createCode( - utils.__assign(utils.__assign({}, input), { - recipeImplementation: recipe.Passwordless.getInstanceOrThrow().webJSRecipe, + recipe.Passwordless.getInstanceOrThrow().webJSRecipe.createCode( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( + input === null || input === void 0 ? void 0 : input.userContext + ), }) ), ]; @@ -70,13 +72,15 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.resendCode = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.resendCode( - utils.__assign(utils.__assign({}, input), { - recipeImplementation: recipe.Passwordless.getInstanceOrThrow().webJSRecipe, + recipe.Passwordless.getInstanceOrThrow().webJSRecipe.resendCode( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( + input === null || input === void 0 ? void 0 : input.userContext + ), }) ), ]; @@ -84,13 +88,15 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.consumeCode = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.consumeCode( - utils.__assign(utils.__assign({}, input), { - recipeImplementation: recipe.Passwordless.getInstanceOrThrow().webJSRecipe, + recipe.Passwordless.getInstanceOrThrow().webJSRecipe.consumeCode( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( + input === null || input === void 0 ? void 0 : input.userContext + ), }) ), ]; @@ -99,8 +105,8 @@ var Wrapper = /** @class */ (function () { }; Wrapper.getLinkCodeFromURL = function (input) { return recipe.Passwordless.getInstanceOrThrow().webJSRecipe.getLinkCodeFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) @@ -108,21 +114,21 @@ var Wrapper = /** @class */ (function () { }; Wrapper.getPreAuthSessionIdFromURL = function (input) { return recipe.Passwordless.getInstanceOrThrow().webJSRecipe.getPreAuthSessionIdFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) ); }; Wrapper.doesEmailExist = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Passwordless.getInstanceOrThrow().webJSRecipe.doesEmailExist( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -130,13 +136,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.doesPhoneNumberExist = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Passwordless.getInstanceOrThrow().webJSRecipe.doesPhoneNumberExist( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -144,13 +150,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.getLoginAttemptInfo = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Passwordless.getInstanceOrThrow().webJSRecipe.getLoginAttemptInfo( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) @@ -160,13 +166,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.setLoginAttemptInfo = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Passwordless.getInstanceOrThrow().webJSRecipe.setLoginAttemptInfo( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -174,13 +180,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.clearLoginAttemptInfo = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Passwordless.getInstanceOrThrow().webJSRecipe.clearLoginAttemptInfo( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) diff --git a/lib/build/passwordlessprebuiltui.js b/lib/build/passwordlessprebuiltui.js index 64bcf33f3..fc0b93f3d 100644 --- a/lib/build/passwordlessprebuiltui.js +++ b/lib/build/passwordlessprebuiltui.js @@ -1,6 +1,6 @@ "use strict"; -require("./utils.js"); +require("./superTokens.js"); require("react/jsx-runtime"); require("supertokens-web-js/utils/normalisedURLPath"); require("./userContextWrapper.js"); @@ -9,18 +9,19 @@ require("./index2.js"); require("./passwordless-shared.js"); var passwordlessprebuiltui = require("./passwordless-shared3.js"); require("./passwordless-shared2.js"); -require("react"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); -require("supertokens-web-js/utils/normalisedURLDomain"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("react"); +require("supertokens-web-js/utils/normalisedURLDomain"); require("./session-shared3.js"); require("supertokens-web-js/recipe/session"); require("./session-shared4.js"); require("./genericComponentOverrideContext.js"); require("./session-shared2.js"); require("./recipeModule-shared.js"); -require("supertokens-web-js"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils"); require("./session-shared.js"); require("./translationContext.js"); @@ -37,7 +38,6 @@ require("./emailpassword-shared5.js"); require("./arrowLeftIcon.js"); require("supertokens-web-js/recipe/passwordless"); require("./authRecipe-shared.js"); -require("supertokens-web-js/recipe/passwordless/utils"); exports.LinkClicked = passwordlessprebuiltui.LinkClicked; exports.PasswordlessPreBuiltUI = passwordlessprebuiltui.PasswordlessPreBuiltUI; diff --git a/lib/build/recipe/emailpassword/prebuiltui.d.ts b/lib/build/recipe/emailpassword/prebuiltui.d.ts index e5e6a4203..581b9bc24 100644 --- a/lib/build/recipe/emailpassword/prebuiltui.d.ts +++ b/lib/build/recipe/emailpassword/prebuiltui.d.ts @@ -6,7 +6,7 @@ import type { GenericComponentOverrideMap } from "../../components/componentOver import type { RecipeFeatureComponentMap, FeatureBaseProps } from "../../types"; import type { PropsWithChildren } from "react"; export declare class EmailPasswordPreBuiltUI extends RecipeRouter { - private readonly recipeInstance; + readonly recipeInstance: EmailPassword; static instance?: EmailPasswordPreBuiltUI; constructor(recipeInstance: EmailPassword); static getInstanceOrInitAndGetInstance(): EmailPasswordPreBuiltUI; diff --git a/lib/build/recipe/emailpassword/recipe.d.ts b/lib/build/recipe/emailpassword/recipe.d.ts index de4d07b77..dc0d10667 100644 --- a/lib/build/recipe/emailpassword/recipe.d.ts +++ b/lib/build/recipe/emailpassword/recipe.d.ts @@ -17,6 +17,7 @@ export default class EmailPassword extends AuthRecipe< readonly webJSRecipe: WebJSRecipeInterface; static instance?: EmailPassword; static RECIPE_ID: string; + recipeID: string; constructor( config: NormalisedConfigWithAppInfoAndRecipeID, webJSRecipe?: WebJSRecipeInterface diff --git a/lib/build/recipe/emailverification/prebuiltui.d.ts b/lib/build/recipe/emailverification/prebuiltui.d.ts index 151ada8a6..39cfe5b7a 100644 --- a/lib/build/recipe/emailverification/prebuiltui.d.ts +++ b/lib/build/recipe/emailverification/prebuiltui.d.ts @@ -5,7 +5,7 @@ import EmailVerificationRecipe from "./recipe"; import type { GenericComponentOverrideMap } from "../../components/componentOverride/componentOverrideContext"; import type { RecipeFeatureComponentMap } from "../../types"; export declare class EmailVerificationPreBuiltUI extends RecipeRouter { - private readonly recipeInstance; + readonly recipeInstance: EmailVerificationRecipe; static instance?: EmailVerificationPreBuiltUI; constructor(recipeInstance: EmailVerificationRecipe); static getInstanceOrInitAndGetInstance(): EmailVerificationPreBuiltUI; diff --git a/lib/build/recipe/emailverification/recipe.d.ts b/lib/build/recipe/emailverification/recipe.d.ts index 2db0d66f7..bac2db2ea 100644 --- a/lib/build/recipe/emailverification/recipe.d.ts +++ b/lib/build/recipe/emailverification/recipe.d.ts @@ -19,6 +19,7 @@ export default class EmailVerification extends RecipeModule< static instance?: EmailVerification; static RECIPE_ID: string; static EmailVerificationClaim: EmailVerificationClaimClass; + recipeID: string; constructor( config: NormalisedConfigWithAppInfoAndRecipeID, webJSRecipe?: WebJSRecipeInterface diff --git a/lib/build/recipe/multitenancy/index.d.ts b/lib/build/recipe/multitenancy/index.d.ts new file mode 100644 index 000000000..72c6262a3 --- /dev/null +++ b/lib/build/recipe/multitenancy/index.d.ts @@ -0,0 +1,9 @@ +import { AllowedDomainsClaim } from "supertokens-web-js/recipe/multitenancy"; +import { UserInput } from "./types"; +import type { RecipeInterface } from "supertokens-web-js/recipe/multitenancy"; +export default class Wrapper { + static init(config?: UserInput): import("../../types").RecipeInitResult; + static AllowedDomainsClaim: import("supertokens-web-js/lib/build/recipe/multitenancy/allowedDomainsClaim").AllowedDomainsClaimClass; +} +declare const init: typeof Wrapper.init; +export { init, UserInput, RecipeInterface, AllowedDomainsClaim }; diff --git a/lib/build/recipe/multitenancy/recipe.d.ts b/lib/build/recipe/multitenancy/recipe.d.ts new file mode 100644 index 000000000..530f58847 --- /dev/null +++ b/lib/build/recipe/multitenancy/recipe.d.ts @@ -0,0 +1,24 @@ +import MultitenancyWebJS from "supertokens-web-js/recipe/multitenancy"; +import { BaseRecipeModule } from "../recipeModule/baseRecipeModule"; +import type { NormalisedConfig, UserInput, GetLoginMethodsResponseNormalized } from "./types"; +import type { RecipeInitResult, NormalisedConfigWithAppInfoAndRecipeID, WebJSRecipeInterface } from "../../types"; +export default class Multitenancy extends BaseRecipeModule { + readonly webJSRecipe: WebJSRecipeInterface; + static instance?: Multitenancy; + static readonly RECIPE_ID = "multitenancy"; + private dynamicLoginMethods?; + private hasIntersection?; + readonly recipeID = "multitenancy"; + constructor( + config: NormalisedConfigWithAppInfoAndRecipeID, + webJSRecipe?: WebJSRecipeInterface + ); + initMultitenancyWithDynamicLoginMethods(): Promise; + getLoadedDynamicLoginMethods(): GetLoginMethodsResponseNormalized | undefined; + static getDynamicLoginMethods( + ...options: Parameters + ): Promise; + static init(config?: UserInput): RecipeInitResult; + static getInstanceOrThrow(): Multitenancy; + static reset(): void; +} diff --git a/lib/build/recipe/multitenancy/types.d.ts b/lib/build/recipe/multitenancy/types.d.ts new file mode 100644 index 000000000..f2f8129cd --- /dev/null +++ b/lib/build/recipe/multitenancy/types.d.ts @@ -0,0 +1,35 @@ +import type { UserInput as RecipeModuleUserInput } from "../recipeModule/types"; +import type OverrideableBuilder from "supertokens-js-override"; +import type { RecipeInterface } from "supertokens-web-js/recipe/multitenancy/types"; +export declare type PreAndPostAPIHookAction = "GET_LOGIN_METHODS"; +export declare type UserInput = { + override?: { + functions?: ( + originalImplementation: RecipeInterface, + builder: OverrideableBuilder + ) => RecipeInterface; + }; +} & RecipeModuleUserInput; +export declare type NormalisedConfig = UserInput & { + override: { + functions?: ( + originalImplementation: RecipeInterface, + builder: OverrideableBuilder + ) => RecipeInterface; + }; +}; +export declare type GetLoginMethodsResponseNormalized = { + passwordless: { + enabled: boolean; + }; + emailpassword: { + enabled: boolean; + }; + thirdparty: { + enabled: boolean; + providers: { + id: string; + name: string; + }[]; + }; +}; diff --git a/lib/build/recipe/multitenancy/utils.d.ts b/lib/build/recipe/multitenancy/utils.d.ts new file mode 100644 index 000000000..4787e793f --- /dev/null +++ b/lib/build/recipe/multitenancy/utils.d.ts @@ -0,0 +1,7 @@ +import type { UserInput, NormalisedConfig, GetLoginMethodsResponseNormalized } from "./types"; +import type { BaseRecipeModule } from "../recipeModule/baseRecipeModule"; +export declare function normaliseMultitenancyConfig(config?: UserInput): NormalisedConfig; +export declare function hasIntersectingRecipes( + tenantMethods: GetLoginMethodsResponseNormalized, + recipeList: BaseRecipeModule[] +): boolean; diff --git a/lib/build/recipe/passwordless/prebuiltui.d.ts b/lib/build/recipe/passwordless/prebuiltui.d.ts index 710f7d585..68c945509 100644 --- a/lib/build/recipe/passwordless/prebuiltui.d.ts +++ b/lib/build/recipe/passwordless/prebuiltui.d.ts @@ -5,7 +5,7 @@ import type { GenericComponentOverrideMap } from "../../components/componentOver import type { RecipeFeatureComponentMap, FeatureBaseProps } from "../../types"; import type { PropsWithChildren } from "react"; export declare class PasswordlessPreBuiltUI extends RecipeRouter { - private readonly recipeInstance; + readonly recipeInstance: Passwordless; static instance?: PasswordlessPreBuiltUI; constructor(recipeInstance: Passwordless); static getInstanceOrInitAndGetInstance(): PasswordlessPreBuiltUI; diff --git a/lib/build/recipe/passwordless/recipe.d.ts b/lib/build/recipe/passwordless/recipe.d.ts index ddd7206a0..b3f88bc60 100644 --- a/lib/build/recipe/passwordless/recipe.d.ts +++ b/lib/build/recipe/passwordless/recipe.d.ts @@ -17,6 +17,7 @@ export default class Passwordless extends AuthRecipe< readonly webJSRecipe: WebJSRecipeInterface; static instance?: Passwordless; static RECIPE_ID: string; + recipeID: string; constructor( config: NormalisedConfigWithAppInfoAndRecipeID, webJSRecipe?: WebJSRecipeInterface diff --git a/lib/build/recipe/passwordless/types.d.ts b/lib/build/recipe/passwordless/types.d.ts index 420bbef99..12caca75c 100644 --- a/lib/build/recipe/passwordless/types.d.ts +++ b/lib/build/recipe/passwordless/types.d.ts @@ -10,7 +10,7 @@ import type { UserInputCodeForm } from "./components/themes/signInUp/userInputCo import type { UserInputCodeFormFooter } from "./components/themes/signInUp/userInputCodeFormFooter"; import type { UserInputCodeFormHeader } from "./components/themes/signInUp/userInputCodeFormHeader"; import type { ComponentOverride } from "../../components/componentOverride/componentOverride"; -import type { FeatureBaseConfig, NormalisedBaseConfig } from "../../types"; +import type { FeatureBaseConfig, NormalisedBaseConfig, WebJSRecipeInterface } from "../../types"; import type { GetRedirectionURLContext as AuthRecipeModuleGetRedirectionURLContext, OnHandleEventContext as AuthRecipeModuleOnHandleEventContext, @@ -19,6 +19,7 @@ import type { UserInput as AuthRecipeModuleUserInput, } from "../authRecipe/types"; import type { Dispatch } from "react"; +import type WebJSRecipe from "supertokens-web-js/recipe/passwordless"; import type { RecipeInterface, PasswordlessUser } from "supertokens-web-js/recipe/passwordless"; export declare type PreAndPostAPIHookAction = | "PASSWORDLESS_CREATE_CODE" @@ -120,7 +121,7 @@ export declare type UserInput = ( linkClickedScreenFeature?: PasswordlessFeatureBaseConfig; } & AuthRecipeModuleUserInput; export declare type SignInUpProps = { - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; onSuccess?: (result: { createdNewUser: boolean; user: PasswordlessUser }) => void; dispatch: Dispatch; @@ -154,11 +155,12 @@ export declare type AdditionalLoginAttemptInfoProperties = { lastResend: number; redirectToPath?: string; }; +export declare type RecipeImplementation = WebJSRecipeInterface; export declare type SignInUpEmailFormProps = { clearError: () => void; onError: (error: string) => void; error: string | undefined; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; onSuccess?: () => void; }; @@ -166,7 +168,7 @@ export declare type SignInUpPhoneFormProps = { clearError: () => void; onError: (error: string) => void; error: string | undefined; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; onSuccess?: () => void; }; @@ -174,7 +176,7 @@ export declare type SignInUpEmailOrPhoneFormProps = { clearError: () => void; onError: (error: string) => void; error: string | undefined; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; onSuccess?: () => void; }; @@ -182,20 +184,20 @@ export declare type SignInUpUserInputCodeFormProps = { clearError: () => void; onError: (error: string) => void; error: string | undefined; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; loginAttemptInfo: LoginAttemptInfo; onSuccess?: (result: { createdNewUser: boolean; user: PasswordlessUser }) => void; }; export declare type LinkClickedScreenProps = { - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; requireUserInteraction: boolean; consumeCode: () => void; onSuccess?: () => void; }; export declare type CloseTabScreenProps = { - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; }; export declare type PasswordlessSignInUpAction = @@ -235,17 +237,17 @@ export declare type LinkSentThemeProps = { onError: (error: string) => void; error: string | undefined; loginAttemptInfo: LoginAttemptInfo; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; }; export declare type UserInputCodeFormFooterProps = { loginAttemptInfo: LoginAttemptInfo; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; }; export declare type UserInputCodeFormHeaderProps = { loginAttemptInfo: LoginAttemptInfo; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; }; export declare type ComponentOverrideMap = { diff --git a/lib/build/recipe/passwordless/utils.d.ts b/lib/build/recipe/passwordless/utils.d.ts index 268614b06..a5b28e889 100644 --- a/lib/build/recipe/passwordless/utils.d.ts +++ b/lib/build/recipe/passwordless/utils.d.ts @@ -1,77 +1,2 @@ -import type { Config, LoginAttemptInfo, NormalisedConfig } from "./types"; -import type { RecipeFunctionOptions, RecipeInterface } from "supertokens-web-js/recipe/passwordless"; -import type { PasswordlessFlowType, PasswordlessUser } from "supertokens-web-js/recipe/passwordless/types"; +import type { Config, NormalisedConfig } from "./types"; export declare function normalisePasswordlessConfig(config: Config): NormalisedConfig; -export declare function getLoginAttemptInfo(input: { - recipeImplementation: RecipeInterface; - userContext: any; -}): Promise; -export declare function setLoginAttemptInfo(input: { - recipeImplementation: RecipeInterface; - userContext: any; - attemptInfo: LoginAttemptInfo; -}): Promise; -/** - * These functions are helper functions so that the logic can be exposed from both - * passwordless and thirdpartypasswordless recipes without having to duplicate code - */ -export declare function createCode( - input: - | { - email: string; - userContext?: any; - options?: RecipeFunctionOptions; - recipeImplementation: RecipeInterface; - } - | { - phoneNumber: string; - userContext?: any; - options?: RecipeFunctionOptions; - recipeImplementation: RecipeInterface; - } -): Promise<{ - status: "OK"; - deviceId: string; - preAuthSessionId: string; - flowType: PasswordlessFlowType; - fetchResponse: Response; -}>; -export declare function resendCode(input: { - userContext?: any; - options?: RecipeFunctionOptions; - recipeImplementation: RecipeInterface; -}): Promise<{ - status: "OK" | "RESTART_FLOW_ERROR"; - fetchResponse: Response; -}>; -export declare function consumeCode( - input: - | { - userInputCode: string; - userContext?: any; - options?: RecipeFunctionOptions; - recipeImplementation: RecipeInterface; - } - | { - userContext?: any; - options?: RecipeFunctionOptions; - recipeImplementation: RecipeInterface; - } -): Promise< - | { - status: "OK"; - createdNewUser: boolean; - user: PasswordlessUser; - fetchResponse: Response; - } - | { - status: "INCORRECT_USER_INPUT_CODE_ERROR" | "EXPIRED_USER_INPUT_CODE_ERROR"; - failedCodeInputAttemptCount: number; - maximumCodeInputAttempts: number; - fetchResponse: Response; - } - | { - status: "RESTART_FLOW_ERROR"; - fetchResponse: Response; - } ->; diff --git a/lib/build/recipe/recipeModule/baseRecipeModule.d.ts b/lib/build/recipe/recipeModule/baseRecipeModule.d.ts new file mode 100644 index 000000000..1404ff646 --- /dev/null +++ b/lib/build/recipe/recipeModule/baseRecipeModule.d.ts @@ -0,0 +1,12 @@ +import type { NormalisedConfig } from "./types"; +import type { NormalisedConfigWithAppInfoAndRecipeID } from "../../types"; +export declare abstract class BaseRecipeModule< + GetRedirectionURLContextType, + Action, + OnHandleEventContextType, + N extends NormalisedConfig +> { + config: NormalisedConfigWithAppInfoAndRecipeID; + abstract recipeID: string; + constructor(config: NormalisedConfigWithAppInfoAndRecipeID); +} diff --git a/lib/build/recipe/recipeModule/index.d.ts b/lib/build/recipe/recipeModule/index.d.ts index 84f3dc287..83002fb43 100644 --- a/lib/build/recipe/recipeModule/index.d.ts +++ b/lib/build/recipe/recipeModule/index.d.ts @@ -1,13 +1,11 @@ +import { BaseRecipeModule } from "./baseRecipeModule"; import type { NormalisedConfig } from "./types"; -import type { NormalisedConfigWithAppInfoAndRecipeID } from "../../types"; export default abstract class RecipeModule< GetRedirectionURLContextType, Action, OnHandleEventContextType, N extends NormalisedConfig -> { - config: NormalisedConfigWithAppInfoAndRecipeID; - constructor(config: NormalisedConfigWithAppInfoAndRecipeID); +> extends BaseRecipeModule { redirect: ( context: GetRedirectionURLContextType, history?: any, diff --git a/lib/build/recipe/recipeRouter/index.d.ts b/lib/build/recipe/recipeRouter/index.d.ts index 3a3de8ef7..94bd7d53b 100644 --- a/lib/build/recipe/recipeRouter/index.d.ts +++ b/lib/build/recipe/recipeRouter/index.d.ts @@ -1,11 +1,14 @@ import type { RecipeFeatureComponentMap } from "../../types"; import type { BaseFeatureComponentMap, ComponentWithRecipeAndMatchingMethod } from "../../types"; +import type RecipeModule from "../recipeModule"; import type NormalisedURLPath from "supertokens-web-js/lib/build/normalisedURLPath"; export declare abstract class RecipeRouter { private pathsToFeatureComponentWithRecipeIdMap?; + abstract recipeInstance: RecipeModule; static getMatchingComponentForRouteAndRecipeIdFromPreBuiltUIList( normalisedUrl: NormalisedURLPath, - preBuiltUIList: RecipeRouter[] + preBuiltUIList: RecipeRouter[], + defaultToStaticList: boolean ): ComponentWithRecipeAndMatchingMethod | undefined; getPathsToFeatureComponentWithRecipeIdMap: () => BaseFeatureComponentMap; abstract getFeatures(): RecipeFeatureComponentMap; diff --git a/lib/build/recipe/session/index.d.ts b/lib/build/recipe/session/index.d.ts index 76fb92400..b5961a595 100644 --- a/lib/build/recipe/session/index.d.ts +++ b/lib/build/recipe/session/index.d.ts @@ -50,7 +50,7 @@ export default class SessionAPIWrapper { | Response; userContext: any; }): Promise; - static getClaimValue(input: { claim: SessionClaim; userContext?: any }): Promise; + static getClaimValue(input: { claim: SessionClaim; userContext?: any }): Promise; static ComponentsOverrideProvider: import("react").FC< import("react").PropsWithChildren<{ components: import("./types").ComponentOverrideMap; diff --git a/lib/build/recipe/session/prebuiltui.d.ts b/lib/build/recipe/session/prebuiltui.d.ts index 2ef8dc4f4..01aacb148 100644 --- a/lib/build/recipe/session/prebuiltui.d.ts +++ b/lib/build/recipe/session/prebuiltui.d.ts @@ -5,7 +5,7 @@ import type { GenericComponentOverrideMap } from "../../components/componentOver import type { RecipeFeatureComponentMap, FeatureBaseProps } from "../../types"; import type { PropsWithChildren, ReactElement } from "react"; export declare class SessionPreBuiltUI extends RecipeRouter { - private readonly recipeInstance; + readonly recipeInstance: Session; static instance?: SessionPreBuiltUI; constructor(recipeInstance: Session); static getInstanceOrInitAndGetInstance(): SessionPreBuiltUI; diff --git a/lib/build/recipe/session/recipe.d.ts b/lib/build/recipe/session/recipe.d.ts index a98cd506c..7bdf0b150 100644 --- a/lib/build/recipe/session/recipe.d.ts +++ b/lib/build/recipe/session/recipe.d.ts @@ -1,3 +1,4 @@ +import SessionWebJS from "supertokens-web-js/recipe/session"; import WebJSSessionRecipe from "supertokens-web-js/recipe/session"; import RecipeModule from "../recipeModule"; import type { NormalisedSessionConfig } from "./types"; @@ -9,6 +10,7 @@ export default class Session extends RecipeModule; static instance?: Session; static RECIPE_ID: string; + recipeID: string; private eventListeners; private redirectionHandlersFromAuthRecipes; constructor( @@ -17,7 +19,10 @@ export default class Session extends RecipeModule Promise; getAccessToken: (input: { userContext: any }) => Promise; - getClaimValue: (input: { claim: SessionClaim; userContext: any }) => Promise; + getClaimValue: (input: { + claim: SessionWebJS.SessionClaim; + userContext: any; + }) => Promise; getAccessTokenPayloadSecurely: (input: { userContext: any }) => Promise; doesSessionExist: (input: { userContext: any }) => Promise; signOut: (input: { userContext: any }) => Promise; diff --git a/lib/build/recipe/thirdparty/components/features/signInAndUp/index.d.ts b/lib/build/recipe/thirdparty/components/features/signInAndUp/index.d.ts index bcbe8d768..91fbba36d 100644 --- a/lib/build/recipe/thirdparty/components/features/signInAndUp/index.d.ts +++ b/lib/build/recipe/thirdparty/components/features/signInAndUp/index.d.ts @@ -15,4 +15,5 @@ declare type PropType = FeatureBaseProps & { useComponentOverrides: () => ComponentOverrideMap; }; export declare const SignInAndUpFeature: React.FC; -export default SignInAndUpFeature; +declare const SignInAndUpFeatureWrapper: React.FC; +export default SignInAndUpFeatureWrapper; diff --git a/lib/build/recipe/thirdparty/components/themes/signInAndUp/index.d.ts b/lib/build/recipe/thirdparty/components/themes/signInAndUp/index.d.ts index 396579373..70f6dd409 100644 --- a/lib/build/recipe/thirdparty/components/themes/signInAndUp/index.d.ts +++ b/lib/build/recipe/thirdparty/components/themes/signInAndUp/index.d.ts @@ -1,4 +1,8 @@ /// import type { SignInAndUpThemeProps } from "../../../types"; -declare const SignInAndUpThemeWrapper: React.FC; +declare const SignInAndUpThemeWrapper: React.FC< + SignInAndUpThemeProps & { + userContext?: any; + } +>; export default SignInAndUpThemeWrapper; diff --git a/lib/build/recipe/thirdparty/index.d.ts b/lib/build/recipe/thirdparty/index.d.ts index c4ea07e76..5dd35a8f3 100644 --- a/lib/build/recipe/thirdparty/index.d.ts +++ b/lib/build/recipe/thirdparty/index.d.ts @@ -1,12 +1,18 @@ /// import { RecipeInterface, ThirdPartyUserType as User } from "supertokens-web-js/recipe/thirdparty"; +import ActiveDirectory from "./providers/activeDirectory"; import Apple from "./providers/apple"; import Bitbucket from "./providers/bitbucket"; +import BoxySAML from "./providers/boxySaml"; import Discord from "./providers/discord"; import Facebook from "./providers/facebook"; import Github from "./providers/github"; import Gitlab from "./providers/gitlab"; import Google from "./providers/google"; +import GoogleWorkspaces from "./providers/googleWorkspaces"; +import LinkedIn from "./providers/linkedIn"; +import Okta from "./providers/okta"; +import Twitter from "./providers/twitter"; import { UserInput, GetRedirectionURLContext, PreAPIHookContext, OnHandleEventContext } from "./types"; import type { StateObject } from "supertokens-web-js/recipe/thirdparty"; import type { RecipeFunctionOptions } from "supertokens-web-js/recipe/thirdpartyemailpassword"; @@ -26,26 +32,13 @@ export default class Wrapper { static getStateAndOtherInfoFromStorage(input?: { userContext?: any; }): (StateObject & CustomStateProperties) | undefined; - static setStateAndOtherInfoToStorage(input: { - state: StateObject & CustomStateProperties; - userContext?: any; - }): Promise; static getAuthorisationURLWithQueryParamsAndSetState(input: { - providerId: string; - authorisationURL: string; - providerClientId?: string; + thirdPartyId: string; + frontendRedirectURI: string; + redirectURIOnProviderDashboard?: string; userContext?: any; options?: RecipeFunctionOptions; }): Promise; - static getAuthorisationURLFromBackend(input: { - providerId: string; - userContext?: any; - options?: RecipeFunctionOptions; - }): Promise<{ - status: "OK"; - url: string; - fetchResponse: Response; - }>; static signInAndUp(input?: { userContext?: any; options?: RecipeFunctionOptions }): Promise< | { status: "OK"; @@ -58,22 +51,18 @@ export default class Wrapper { fetchResponse: Response; } >; - static generateStateToSendToOAuthProvider(input?: { userContext?: any }): string; - static verifyAndGetStateOrThrowError(input: { - stateFromAuthProvider: string | undefined; - stateObjectFromStorage: (StateObject & CustomStateProperties) | undefined; - userContext?: any; - }): Promise; - static getAuthCodeFromURL(input?: { userContext?: any }): string; - static getAuthErrorFromURL(input?: { userContext?: any }): string | undefined; - static getAuthStateFromURL(input?: { userContext?: any }): string; static Apple: typeof Apple; static Bitbucket: typeof Bitbucket; static Discord: typeof Discord; static Github: typeof Github; static Gitlab: typeof Gitlab; static Google: typeof Google; + static GoogleWorkspaces: typeof GoogleWorkspaces; static Facebook: typeof Facebook; + static LinkedIn: typeof LinkedIn; + static ActiveDirectory: typeof ActiveDirectory; + static BoxySAML: typeof BoxySAML; + static Okta: typeof Okta; static ComponentsOverrideProvider: import("react").FC< import("react").PropsWithChildren<{ components: import("./types").ComponentOverrideMap; @@ -84,14 +73,7 @@ declare const init: typeof Wrapper.init; declare const signOut: typeof Wrapper.signOut; declare const redirectToThirdPartyLogin: typeof Wrapper.redirectToThirdPartyLogin; declare const getStateAndOtherInfoFromStorage: typeof Wrapper.getStateAndOtherInfoFromStorage; -declare const setStateAndOtherInfoToStorage: typeof Wrapper.setStateAndOtherInfoToStorage; declare const getAuthorisationURLWithQueryParamsAndSetState: typeof Wrapper.getAuthorisationURLWithQueryParamsAndSetState; -declare const getAuthorisationURLFromBackend: typeof Wrapper.getAuthorisationURLFromBackend; -declare const generateStateToSendToOAuthProvider: typeof Wrapper.generateStateToSendToOAuthProvider; -declare const verifyAndGetStateOrThrowError: typeof Wrapper.verifyAndGetStateOrThrowError; -declare const getAuthCodeFromURL: typeof Wrapper.getAuthCodeFromURL; -declare const getAuthErrorFromURL: typeof Wrapper.getAuthErrorFromURL; -declare const getAuthStateFromURL: typeof Wrapper.getAuthStateFromURL; declare const signInAndUp: typeof Wrapper.signInAndUp; declare const ThirdpartyComponentsOverrideProvider: import("react").FC< import("react").PropsWithChildren<{ @@ -106,16 +88,15 @@ export { Github, Gitlab, Google, + GoogleWorkspaces, Facebook, + LinkedIn, + ActiveDirectory, + BoxySAML, + Okta, + Twitter, getStateAndOtherInfoFromStorage, - setStateAndOtherInfoToStorage, getAuthorisationURLWithQueryParamsAndSetState, - getAuthorisationURLFromBackend, - generateStateToSendToOAuthProvider, - verifyAndGetStateOrThrowError, - getAuthCodeFromURL, - getAuthErrorFromURL, - getAuthStateFromURL, signInAndUp, redirectToThirdPartyLogin, ThirdpartyComponentsOverrideProvider, diff --git a/lib/build/recipe/thirdparty/prebuiltui.d.ts b/lib/build/recipe/thirdparty/prebuiltui.d.ts index 96f6064a3..335f3fc65 100644 --- a/lib/build/recipe/thirdparty/prebuiltui.d.ts +++ b/lib/build/recipe/thirdparty/prebuiltui.d.ts @@ -7,7 +7,7 @@ import type { GenericComponentOverrideMap } from "../../components/componentOver import type { RecipeFeatureComponentMap, FeatureBaseProps } from "../../types"; import type { PropsWithChildren } from "react"; export declare class ThirdPartyPreBuiltUI extends RecipeRouter { - private readonly recipeInstance; + readonly recipeInstance: ThirdParty; static instance?: ThirdPartyPreBuiltUI; constructor(recipeInstance: ThirdParty); static getInstanceOrInitAndGetInstance(): ThirdPartyPreBuiltUI; @@ -37,7 +37,11 @@ export declare class ThirdPartyPreBuiltUI extends RecipeRouter { }> ) => JSX.Element; static SignInAndUpCallback: (prop?: any) => JSX.Element; - static SignInAndUpTheme: import("react").FC; + static SignInAndUpTheme: import("react").FC< + import("./types").SignInAndUpThemeProps & { + userContext?: any; + } + >; static SignInAndUpCallbackTheme: (props: { config: NormalisedConfig }) => JSX.Element; } declare const SignInAndUp: ( diff --git a/lib/build/recipe/thirdparty/providers/activeDirectory.d.ts b/lib/build/recipe/thirdparty/providers/activeDirectory.d.ts new file mode 100644 index 000000000..ac2e041be --- /dev/null +++ b/lib/build/recipe/thirdparty/providers/activeDirectory.d.ts @@ -0,0 +1,10 @@ +/// +import type { BuiltInProviderConfig } from "./types"; +import Provider from "."; +export default class ActiveDirectory extends Provider { + private static instance?; + constructor(config?: BuiltInProviderConfig); + getLogo: () => JSX.Element; + static init(config?: BuiltInProviderConfig): Provider; + static reset(): void; +} diff --git a/lib/build/recipe/thirdparty/providers/apple.d.ts b/lib/build/recipe/thirdparty/providers/apple.d.ts index df2f5721e..b4c0d4451 100644 --- a/lib/build/recipe/thirdparty/providers/apple.d.ts +++ b/lib/build/recipe/thirdparty/providers/apple.d.ts @@ -3,10 +3,9 @@ import type { BuiltInProviderConfig } from "./types"; import Provider from "."; export default class Apple extends Provider { private static instance?; - buttonComponent?: JSX.Element; constructor(config?: BuiltInProviderConfig); - getButton: () => JSX.Element; getLogo: () => JSX.Element; + getRedirectURIOnProviderDashboard(): string | undefined; static init(config?: BuiltInProviderConfig): Provider; static reset(): void; } diff --git a/lib/build/recipe/thirdparty/providers/bitbucket.d.ts b/lib/build/recipe/thirdparty/providers/bitbucket.d.ts index 428c996cc..82cdd0c6e 100644 --- a/lib/build/recipe/thirdparty/providers/bitbucket.d.ts +++ b/lib/build/recipe/thirdparty/providers/bitbucket.d.ts @@ -3,9 +3,7 @@ import type { BuiltInProviderConfig } from "./types"; import Provider from "."; export default class Bitbucket extends Provider { private static instance?; - buttonComponent?: JSX.Element; constructor(config?: BuiltInProviderConfig); - getButton: () => JSX.Element; getLogo: () => JSX.Element; static init(config?: BuiltInProviderConfig): Provider; static reset(): void; diff --git a/lib/build/recipe/thirdparty/providers/boxySaml.d.ts b/lib/build/recipe/thirdparty/providers/boxySaml.d.ts new file mode 100644 index 000000000..170cebb39 --- /dev/null +++ b/lib/build/recipe/thirdparty/providers/boxySaml.d.ts @@ -0,0 +1,10 @@ +/// +import type { BuiltInProviderConfig } from "./types"; +import Provider from "."; +export default class BoxySAML extends Provider { + private static instance?; + constructor(config?: BuiltInProviderConfig); + getLogo: () => JSX.Element; + static init(config?: BuiltInProviderConfig): Provider; + static reset(): void; +} diff --git a/lib/build/recipe/thirdparty/providers/custom.d.ts b/lib/build/recipe/thirdparty/providers/custom.d.ts index 7e5e85d2b..b0d6b91c3 100644 --- a/lib/build/recipe/thirdparty/providers/custom.d.ts +++ b/lib/build/recipe/thirdparty/providers/custom.d.ts @@ -1,10 +1,7 @@ -/// import type { CustomProviderConfig } from "./types"; import Provider from "."; export default class Custom extends Provider { - buttonComponent?: JSX.Element | (() => JSX.Element); constructor(config: CustomProviderConfig); - getButton: () => JSX.Element; getLogo: () => undefined; static init(config: CustomProviderConfig): Provider; } diff --git a/lib/build/recipe/thirdparty/providers/discord.d.ts b/lib/build/recipe/thirdparty/providers/discord.d.ts index 468424b65..aec58bdaf 100644 --- a/lib/build/recipe/thirdparty/providers/discord.d.ts +++ b/lib/build/recipe/thirdparty/providers/discord.d.ts @@ -3,9 +3,7 @@ import type { BuiltInProviderConfig } from "./types"; import Provider from "."; export default class Discord extends Provider { private static instance?; - buttonComponent?: JSX.Element; constructor(config?: BuiltInProviderConfig); - getButton: () => JSX.Element; getLogo: () => JSX.Element; static init(config?: BuiltInProviderConfig): Provider; static reset(): void; diff --git a/lib/build/recipe/thirdparty/providers/facebook.d.ts b/lib/build/recipe/thirdparty/providers/facebook.d.ts index 6faea8fb3..44196506a 100644 --- a/lib/build/recipe/thirdparty/providers/facebook.d.ts +++ b/lib/build/recipe/thirdparty/providers/facebook.d.ts @@ -3,9 +3,7 @@ import type { BuiltInProviderConfig } from "./types"; import Provider from "."; export default class Facebook extends Provider { private static instance?; - buttonComponent?: JSX.Element; constructor(config?: BuiltInProviderConfig); - getButton: () => JSX.Element; getLogo: () => JSX.Element; static init(config?: BuiltInProviderConfig): Provider; static reset(): void; diff --git a/lib/build/recipe/thirdparty/providers/github.d.ts b/lib/build/recipe/thirdparty/providers/github.d.ts index 5ba920c5b..a7d5536c3 100644 --- a/lib/build/recipe/thirdparty/providers/github.d.ts +++ b/lib/build/recipe/thirdparty/providers/github.d.ts @@ -3,9 +3,7 @@ import type { BuiltInProviderConfig } from "./types"; import Provider from "."; export default class Github extends Provider { private static instance?; - buttonComponent?: JSX.Element; constructor(config?: BuiltInProviderConfig); - getButton: () => JSX.Element; getLogo: () => JSX.Element; static init(config?: BuiltInProviderConfig): Provider; static reset(): void; diff --git a/lib/build/recipe/thirdparty/providers/gitlab.d.ts b/lib/build/recipe/thirdparty/providers/gitlab.d.ts index d65d03860..54bc22216 100644 --- a/lib/build/recipe/thirdparty/providers/gitlab.d.ts +++ b/lib/build/recipe/thirdparty/providers/gitlab.d.ts @@ -3,9 +3,7 @@ import type { BuiltInProviderConfig } from "./types"; import Provider from "."; export default class Gitlab extends Provider { private static instance?; - buttonComponent?: JSX.Element; constructor(config?: BuiltInProviderConfig); - getButton: () => JSX.Element; getLogo: () => JSX.Element; static init(config?: BuiltInProviderConfig): Provider; static reset(): void; diff --git a/lib/build/recipe/thirdparty/providers/google.d.ts b/lib/build/recipe/thirdparty/providers/google.d.ts index 06d939761..55acab1c3 100644 --- a/lib/build/recipe/thirdparty/providers/google.d.ts +++ b/lib/build/recipe/thirdparty/providers/google.d.ts @@ -3,9 +3,7 @@ import type { BuiltInProviderConfig } from "./types"; import Provider from "."; export default class Google extends Provider { private static instance?; - buttonComponent?: JSX.Element; constructor(config?: BuiltInProviderConfig); - getButton: () => JSX.Element; getLogo: () => JSX.Element; static init(config?: BuiltInProviderConfig): Provider; static reset(): void; diff --git a/lib/build/recipe/thirdparty/providers/googleWorkspaces.d.ts b/lib/build/recipe/thirdparty/providers/googleWorkspaces.d.ts new file mode 100644 index 000000000..56e07935d --- /dev/null +++ b/lib/build/recipe/thirdparty/providers/googleWorkspaces.d.ts @@ -0,0 +1,10 @@ +/// +import type { BuiltInProviderConfig } from "./types"; +import Provider from "."; +export default class GoogleWorkspaces extends Provider { + private static instance?; + constructor(config?: BuiltInProviderConfig); + getLogo: () => JSX.Element; + static init(config?: BuiltInProviderConfig): Provider; + static reset(): void; +} diff --git a/lib/build/recipe/thirdparty/providers/index.d.ts b/lib/build/recipe/thirdparty/providers/index.d.ts index 4dc9bd441..e38b4fc84 100644 --- a/lib/build/recipe/thirdparty/providers/index.d.ts +++ b/lib/build/recipe/thirdparty/providers/index.d.ts @@ -1,14 +1,12 @@ /// import type { ProviderConfig } from "./types"; export default abstract class Provider { - id: string; - name: string; - getRedirectURL: () => string; - clientId?: string; + readonly config: ProviderConfig; + get id(): string; + get name(): string; constructor(config: ProviderConfig); - getDefaultButton(name?: string): JSX.Element; - defaultGetRedirectURL(): string; - abstract getButton(): JSX.Element; + getRedirectURL(): string; + getRedirectURIOnProviderDashboard(): string | undefined; + getButton: (name?: string) => JSX.Element; abstract getLogo(): JSX.Element | undefined; - generateState: () => string; } diff --git a/lib/build/recipe/thirdparty/providers/linkedIn.d.ts b/lib/build/recipe/thirdparty/providers/linkedIn.d.ts new file mode 100644 index 000000000..3bbac19c0 --- /dev/null +++ b/lib/build/recipe/thirdparty/providers/linkedIn.d.ts @@ -0,0 +1,10 @@ +/// +import type { BuiltInProviderConfig } from "./types"; +import Provider from "."; +export default class LinkedIn extends Provider { + private static instance?; + constructor(config?: BuiltInProviderConfig); + getLogo: () => JSX.Element; + static init(config?: BuiltInProviderConfig): Provider; + static reset(): void; +} diff --git a/lib/build/recipe/thirdparty/providers/okta.d.ts b/lib/build/recipe/thirdparty/providers/okta.d.ts new file mode 100644 index 000000000..4d8025217 --- /dev/null +++ b/lib/build/recipe/thirdparty/providers/okta.d.ts @@ -0,0 +1,10 @@ +/// +import type { BuiltInProviderConfig } from "./types"; +import Provider from "."; +export default class Okta extends Provider { + private static instance?; + constructor(config?: BuiltInProviderConfig); + getLogo: () => JSX.Element; + static init(config?: BuiltInProviderConfig): Provider; + static reset(): void; +} diff --git a/lib/build/recipe/thirdparty/providers/twitter.d.ts b/lib/build/recipe/thirdparty/providers/twitter.d.ts index 7ce810f53..62286315c 100644 --- a/lib/build/recipe/thirdparty/providers/twitter.d.ts +++ b/lib/build/recipe/thirdparty/providers/twitter.d.ts @@ -3,9 +3,7 @@ import type { BuiltInProviderConfig } from "./types"; import Provider from "."; export default class Twitter extends Provider { private static instance?; - buttonComponent?: JSX.Element; constructor(config?: BuiltInProviderConfig); - getButton: () => JSX.Element; getLogo: () => JSX.Element; static init(config?: BuiltInProviderConfig): Provider; static reset(): void; diff --git a/lib/build/recipe/thirdparty/providers/types.d.ts b/lib/build/recipe/thirdparty/providers/types.d.ts index 47a2e3f7d..da89e94e5 100644 --- a/lib/build/recipe/thirdparty/providers/types.d.ts +++ b/lib/build/recipe/thirdparty/providers/types.d.ts @@ -1,19 +1,33 @@ -/// +import type { FC } from "react"; export declare type ProviderConfig = { id: string; name: string; - clientId?: string; - getRedirectURL?: () => string; + getRedirectURL?: (id: string) => string; + buttonComponent?: BuiltInProviderConfig["buttonComponent"]; }; export declare type BuiltInProviderConfig = { - buttonComponent?: JSX.Element; - clientId?: string; - getRedirectURL?: () => string; + id?: string; + name?: string; + buttonComponent?: + | FC<{ + name: string; + }> + | { + new (props: { name: string }): React.Component; + } + | JSX.Element; + getRedirectURL?: (id: string) => string; }; export declare type CustomProviderConfig = { id: string; name: string; - clientId?: string; - buttonComponent?: JSX.Element; - getRedirectURL?: () => string; + buttonComponent?: + | FC<{ + name: string; + }> + | { + new (props: { name: string }): React.Component; + } + | JSX.Element; + getRedirectURL?: (id: string) => string; }; diff --git a/lib/build/recipe/thirdparty/recipe.d.ts b/lib/build/recipe/thirdparty/recipe.d.ts index c69068870..77a687225 100644 --- a/lib/build/recipe/thirdparty/recipe.d.ts +++ b/lib/build/recipe/thirdparty/recipe.d.ts @@ -17,6 +17,7 @@ export default class ThirdParty extends AuthRecipe< readonly webJSRecipe: WebJSRecipeInterface; static instance?: ThirdParty; static RECIPE_ID: string; + recipeID: string; constructor( config: NormalisedConfigWithAppInfoAndRecipeID, webJSRecipe?: WebJSRecipeInterface diff --git a/lib/build/recipe/thirdparty/types.d.ts b/lib/build/recipe/thirdparty/types.d.ts index b762367e4..b923ceb60 100644 --- a/lib/build/recipe/thirdparty/types.d.ts +++ b/lib/build/recipe/thirdparty/types.d.ts @@ -1,4 +1,3 @@ -/// import type { ProvidersForm } from "./components/themes/signInAndUp/providersForm"; import type { SignInAndUpHeader } from "./components/themes/signInAndUp/signInAndUpHeader"; import type { SignUpFooter } from "./components/themes/signInAndUp/signUpFooter"; @@ -6,7 +5,7 @@ import type { SignInAndUpCallbackTheme } from "./components/themes/signInAndUpCa import type Provider from "./providers"; import type { CustomProviderConfig } from "./providers/types"; import type { ComponentOverride } from "../../components/componentOverride/componentOverride"; -import type { FeatureBaseConfig, NormalisedBaseConfig } from "../../types"; +import type { FeatureBaseConfig, NormalisedBaseConfig, WebJSRecipeInterface } from "../../types"; import type { GetRedirectionURLContext as AuthRecipeModuleGetRedirectionURLContext, OnHandleEventContext as AuthRecipeModuleOnHandleEventContext, @@ -15,6 +14,7 @@ import type { UserInput as AuthRecipeModuleUserInput, } from "../authRecipe/types"; import type { OverrideableBuilder } from "supertokens-js-override"; +import type ThirdPartyWebJS from "supertokens-web-js/recipe/thirdparty"; import type { StateObject as WebJsStateObject, RecipeInterface } from "supertokens-web-js/recipe/thirdparty"; export declare type ComponentOverrideMap = { ThirdPartySignUpFooter_Override?: ComponentOverride; @@ -80,11 +80,8 @@ export declare type SignInAndUpThemeProps = { error: string | undefined; }; dispatch: (action: ThirdPartySignInUpActions) => void; - providers: { - id: string; - buttonComponent: JSX.Element; - }[]; - recipeImplementation: RecipeInterface; + providers: Pick[]; + recipeImplementation: WebJSRecipeInterface; config: NormalisedConfig; }; export declare type ThirdPartySignInUpChildProps = Omit; diff --git a/lib/build/recipe/thirdparty/utils.d.ts b/lib/build/recipe/thirdparty/utils.d.ts index bcd74bcf7..f0d715a25 100644 --- a/lib/build/recipe/thirdparty/utils.d.ts +++ b/lib/build/recipe/thirdparty/utils.d.ts @@ -1,3 +1,4 @@ +import Provider from "./providers"; import type Recipe from "./recipe"; import type { NormalisedSignInAndUpFeatureConfig, @@ -5,7 +6,8 @@ import type { SignInAndUpFeatureUserInput, Config, } from "./types"; -import type { RecipeInterface } from "supertokens-web-js/recipe/thirdparty"; +import type { WebJSRecipeInterface } from "../../types"; +import type ThirdPartyWebJS from "supertokens-web-js/recipe/thirdparty"; export declare function normaliseThirdPartyConfig(config: Config): NormalisedConfig; export declare function normaliseSignInAndUpFeature( config: SignInAndUpFeatureUserInput | undefined @@ -15,7 +17,19 @@ export declare function redirectToThirdPartyLogin(input: { thirdPartyId: string; config: NormalisedConfig; userContext: any; - recipeImplementation: RecipeInterface; + recipeImplementation: WebJSRecipeInterface; }): Promise<{ status: "OK" | "ERROR"; }>; +export declare const mergeProviders: ({ + tenantProviders, + clientProviders, +}: { + tenantProviders?: + | { + id: string; + name: string; + }[] + | undefined; + clientProviders: Provider[]; +}) => Pick[]; diff --git a/lib/build/recipe/thirdpartyemailpassword/components/features/signInAndUp/index.d.ts b/lib/build/recipe/thirdpartyemailpassword/components/features/signInAndUp/index.d.ts index 22c198ccd..6d8ab6675 100644 --- a/lib/build/recipe/thirdpartyemailpassword/components/features/signInAndUp/index.d.ts +++ b/lib/build/recipe/thirdpartyemailpassword/components/features/signInAndUp/index.d.ts @@ -6,5 +6,5 @@ declare type PropType = FeatureBaseProps & { recipe: Recipe; useComponentOverrides: () => ComponentOverrideMap; }; -declare const SignInAndUp: React.FC; -export default SignInAndUp; +declare const SignInAndUpFeatureWrapper: React.FC; +export default SignInAndUpFeatureWrapper; diff --git a/lib/build/recipe/thirdpartyemailpassword/index.d.ts b/lib/build/recipe/thirdpartyemailpassword/index.d.ts index 6b3750cdf..979ba55ec 100644 --- a/lib/build/recipe/thirdpartyemailpassword/index.d.ts +++ b/lib/build/recipe/thirdpartyemailpassword/index.d.ts @@ -4,7 +4,20 @@ import { EmailPasswordUserType as UserType, ThirdPartyUserType, } from "supertokens-web-js/recipe/thirdpartyemailpassword"; -import { Apple, Google, Facebook, Github, Gitlab, Bitbucket, Discord } from "../thirdparty/"; +import { + Apple, + Google, + GoogleWorkspaces, + Facebook, + Github, + Gitlab, + Bitbucket, + Discord, + LinkedIn, + ActiveDirectory, + BoxySAML, + Okta, +} from "../thirdparty/"; import { UserInput, GetRedirectionURLContext, PreAPIHookContext, OnHandleEventContext } from "./types"; import type { StateObject } from "supertokens-web-js/recipe/thirdparty"; import type { RecipeFunctionOptions } from "supertokens-web-js/recipe/thirdpartyemailpassword"; @@ -117,15 +130,6 @@ export default class Wrapper { static redirectToThirdPartyLogin(input: { thirdPartyId: string; userContext?: any }): Promise<{ status: "OK" | "ERROR"; }>; - static getAuthorisationURLFromBackend(input: { - providerId: string; - userContext?: any; - options?: RecipeFunctionOptions; - }): Promise<{ - status: "OK"; - url: string; - fetchResponse: Response; - }>; static thirdPartySignInAndUp(input?: { userContext?: any; options?: RecipeFunctionOptions }): Promise< | { status: "OK"; @@ -141,33 +145,25 @@ export default class Wrapper { static getStateAndOtherInfoFromStorage(input?: { userContext?: any; }): (StateObject & CustomStateProperties) | undefined; - static setStateAndOtherInfoToStorage(input: { - state: StateObject & CustomStateProperties; - userContext?: any; - }): Promise; static getAuthorisationURLWithQueryParamsAndSetState(input: { - providerId: string; - authorisationURL: string; - providerClientId?: string; + thirdPartyId: string; + frontendRedirectURI: string; + redirectURIOnProviderDashboard?: string; userContext?: any; options?: RecipeFunctionOptions; }): Promise; - static generateStateToSendToOAuthProvider(input?: { userContext?: any }): string; - static verifyAndGetStateOrThrowError(input: { - stateFromAuthProvider: string | undefined; - stateObjectFromStorage: (StateObject & CustomStateProperties) | undefined; - userContext?: any; - }): Promise; - static getAuthCodeFromURL(input?: { userContext?: any }): string; - static getAuthErrorFromURL(input?: { userContext?: any }): string | undefined; - static getAuthStateFromURL(input?: { userContext?: any }): string; + static Google: typeof Google; + static GoogleWorkspaces: typeof GoogleWorkspaces; static Apple: typeof Apple; static Bitbucket: typeof Bitbucket; static Discord: typeof Discord; static Github: typeof Github; static Gitlab: typeof Gitlab; - static Google: typeof Google; static Facebook: typeof Facebook; + static LinkedIn: typeof LinkedIn; + static ActiveDirectory: typeof ActiveDirectory; + static BoxySAML: typeof BoxySAML; + static Okta: typeof Okta; static ComponentsOverrideProvider: import("react").FC< import("react").PropsWithChildren<{ components: import("./types").ComponentOverrideMap; @@ -188,16 +184,9 @@ declare const emailPasswordSignUp: typeof Wrapper.emailPasswordSignUp; declare const doesEmailExist: typeof Wrapper.doesEmailExist; declare const getResetPasswordTokenFromURL: typeof Wrapper.getResetPasswordTokenFromURL; declare const redirectToThirdPartyLogin: typeof Wrapper.redirectToThirdPartyLogin; -declare const getAuthorisationURLFromBackend: typeof Wrapper.getAuthorisationURLFromBackend; declare const thirdPartySignInAndUp: typeof Wrapper.thirdPartySignInAndUp; declare const getStateAndOtherInfoFromStorage: typeof Wrapper.getStateAndOtherInfoFromStorage; -declare const setStateAndOtherInfoToStorage: typeof Wrapper.setStateAndOtherInfoToStorage; declare const getAuthorisationURLWithQueryParamsAndSetState: typeof Wrapper.getAuthorisationURLWithQueryParamsAndSetState; -declare const generateStateToSendToOAuthProvider: typeof Wrapper.generateStateToSendToOAuthProvider; -declare const verifyAndGetStateOrThrowError: typeof Wrapper.verifyAndGetStateOrThrowError; -declare const getAuthCodeFromURL: typeof Wrapper.getAuthCodeFromURL; -declare const getAuthErrorFromURL: typeof Wrapper.getAuthErrorFromURL; -declare const getAuthStateFromURL: typeof Wrapper.getAuthStateFromURL; export { init, Apple, @@ -206,7 +195,12 @@ export { Github, Gitlab, Google, + GoogleWorkspaces, Facebook, + LinkedIn, + ActiveDirectory, + BoxySAML, + Okta, ThirdpartyEmailPasswordComponentsOverrideProvider, signOut, submitNewPassword, @@ -216,16 +210,9 @@ export { doesEmailExist, getResetPasswordTokenFromURL, redirectToThirdPartyLogin, - getAuthorisationURLFromBackend, thirdPartySignInAndUp, getStateAndOtherInfoFromStorage, - setStateAndOtherInfoToStorage, getAuthorisationURLWithQueryParamsAndSetState, - generateStateToSendToOAuthProvider, - verifyAndGetStateOrThrowError, - getAuthCodeFromURL, - getAuthErrorFromURL, - getAuthStateFromURL, GetRedirectionURLContext, PreAPIHookContext, OnHandleEventContext, diff --git a/lib/build/recipe/thirdpartyemailpassword/prebuiltui.d.ts b/lib/build/recipe/thirdpartyemailpassword/prebuiltui.d.ts index ada720c28..476e06772 100644 --- a/lib/build/recipe/thirdpartyemailpassword/prebuiltui.d.ts +++ b/lib/build/recipe/thirdpartyemailpassword/prebuiltui.d.ts @@ -7,7 +7,7 @@ import type { GenericComponentOverrideMap } from "../../components/componentOver import type { RecipeFeatureComponentMap, FeatureBaseProps } from "../../types"; import type { PropsWithChildren } from "react"; export declare class ThirdPartyEmailPasswordPreBuiltUI extends RecipeRouter { - private readonly recipeInstance; + readonly recipeInstance: ThirdPartyEmailPassword; static instance?: ThirdPartyEmailPasswordPreBuiltUI; private thirdPartyPreBuiltUI; private emailPasswordPreBuiltUI; diff --git a/lib/build/recipe/thirdpartyemailpassword/recipe.d.ts b/lib/build/recipe/thirdpartyemailpassword/recipe.d.ts index 31349672a..874ebd4a6 100644 --- a/lib/build/recipe/thirdpartyemailpassword/recipe.d.ts +++ b/lib/build/recipe/thirdpartyemailpassword/recipe.d.ts @@ -19,6 +19,7 @@ export default class ThirdPartyEmailPassword extends AuthRecipe< readonly webJSRecipe: WebJSRecipeInterface; static instance?: ThirdPartyEmailPassword; static RECIPE_ID: string; + recipeID: string; emailPasswordRecipe: EmailPassword | undefined; thirdPartyRecipe: ThirdParty | undefined; constructor( diff --git a/lib/build/recipe/thirdpartyemailpassword/types.d.ts b/lib/build/recipe/thirdpartyemailpassword/types.d.ts index 117b49a66..62acbcb08 100644 --- a/lib/build/recipe/thirdpartyemailpassword/types.d.ts +++ b/lib/build/recipe/thirdpartyemailpassword/types.d.ts @@ -67,7 +67,7 @@ export declare type NormalisedConfig = { signInAndUpFeature: NormalisedSignInAndUpFeatureConfig; disableEmailPassword: boolean; emailPasswordConfig: NormalisedEmailPasswordConfig; - thirdPartyConfig?: NormalisedThirdPartyConfig; + thirdPartyConfig: NormalisedThirdPartyConfig; override: { functions: ( originalImplementation: RecipeInterface, diff --git a/lib/build/recipe/thirdpartypasswordless/components/features/signInAndUp/index.d.ts b/lib/build/recipe/thirdpartypasswordless/components/features/signInAndUp/index.d.ts index 22c198ccd..6d8ab6675 100644 --- a/lib/build/recipe/thirdpartypasswordless/components/features/signInAndUp/index.d.ts +++ b/lib/build/recipe/thirdpartypasswordless/components/features/signInAndUp/index.d.ts @@ -6,5 +6,5 @@ declare type PropType = FeatureBaseProps & { recipe: Recipe; useComponentOverrides: () => ComponentOverrideMap; }; -declare const SignInAndUp: React.FC; -export default SignInAndUp; +declare const SignInAndUpFeatureWrapper: React.FC; +export default SignInAndUpFeatureWrapper; diff --git a/lib/build/recipe/thirdpartypasswordless/index.d.ts b/lib/build/recipe/thirdpartypasswordless/index.d.ts index 57a66a080..4508e4735 100644 --- a/lib/build/recipe/thirdpartypasswordless/index.d.ts +++ b/lib/build/recipe/thirdpartypasswordless/index.d.ts @@ -1,6 +1,19 @@ /// import { RecipeInterface } from "supertokens-web-js/recipe/thirdpartypasswordless"; -import { Apple, Google, Facebook, Github, Gitlab, Bitbucket, Discord } from "../thirdparty/"; +import { + Apple, + Google, + GoogleWorkspaces, + Facebook, + Github, + Gitlab, + Bitbucket, + Discord, + LinkedIn, + ActiveDirectory, + BoxySAML, + Okta, +} from "../thirdparty/"; import { UserInput, GetRedirectionURLContext, PreAPIHookContext, OnHandleEventContext } from "./types"; import type { StateObject, ThirdPartyUserType as UserType } from "supertokens-web-js/recipe/thirdparty"; import type { @@ -21,15 +34,6 @@ export default class Wrapper { static redirectToThirdPartyLogin(input: { thirdPartyId: string; userContext?: any }): Promise<{ status: "OK" | "ERROR"; }>; - static getAuthorisationURLFromBackend(input: { - providerId: string; - userContext?: any; - options?: RecipeFunctionOptions; - }): Promise<{ - status: "OK"; - url: string; - fetchResponse: Response; - }>; static thirdPartySignInAndUp(input?: { userContext?: any; options?: RecipeFunctionOptions }): Promise< | { status: "OK"; @@ -45,26 +49,13 @@ export default class Wrapper { static getThirdPartyStateAndOtherInfoFromStorage(input?: { userContext?: any; }): (StateObject & CustomStateProperties) | undefined; - static setThirdPartyStateAndOtherInfoToStorage(input: { - state: StateObject & CustomStateProperties; - userContext?: any; - }): Promise; static getThirdPartyAuthorisationURLWithQueryParamsAndSetState(input: { - providerId: string; - authorisationURL: string; + thirdPartyId: string; + frontendRedirectURI: string; + redirectURIOnProviderDashboard?: string; userContext?: any; - providerClientId?: string; options?: RecipeFunctionOptions; }): Promise; - static generateThirdPartyStateToSendToOAuthProvider(input?: { userContext?: any }): string; - static verifyAndGetThirdPartyStateOrThrowError(input: { - stateFromAuthProvider: string | undefined; - stateObjectFromStorage: (StateObject & CustomStateProperties) | undefined; - userContext?: any; - }): Promise; - static getThirdPartyAuthCodeFromURL(input?: { userContext?: any }): string; - static getThirdPartyAuthErrorFromURL(input?: { userContext?: any }): string | undefined; - static getThirdPartyAuthStateFromURL(input?: { userContext?: any }): string; static createPasswordlessCode( input: | { @@ -160,7 +151,12 @@ export default class Wrapper { static Github: typeof Github; static Gitlab: typeof Gitlab; static Google: typeof Google; + static GoogleWorkspaces: typeof GoogleWorkspaces; static Facebook: typeof Facebook; + static LinkedIn: typeof LinkedIn; + static ActiveDirectory: typeof ActiveDirectory; + static BoxySAML: typeof BoxySAML; + static Okta: typeof Okta; static ComponentsOverrideProvider: import("react").FC< import("react").PropsWithChildren<{ components: import("./types").ComponentOverrideMap; @@ -170,16 +166,9 @@ export default class Wrapper { declare const init: typeof Wrapper.init; declare const signOut: typeof Wrapper.signOut; declare const redirectToThirdPartyLogin: typeof Wrapper.redirectToThirdPartyLogin; -declare const getAuthorisationURLFromBackend: typeof Wrapper.getAuthorisationURLFromBackend; declare const thirdPartySignInAndUp: typeof Wrapper.thirdPartySignInAndUp; declare const getThirdPartyStateAndOtherInfoFromStorage: typeof Wrapper.getThirdPartyStateAndOtherInfoFromStorage; -declare const setThirdPartyStateAndOtherInfoToStorage: typeof Wrapper.setThirdPartyStateAndOtherInfoToStorage; declare const getThirdPartyAuthorisationURLWithQueryParamsAndSetState: typeof Wrapper.getThirdPartyAuthorisationURLWithQueryParamsAndSetState; -declare const generateThirdPartyStateToSendToOAuthProvider: typeof Wrapper.generateThirdPartyStateToSendToOAuthProvider; -declare const verifyAndGetThirdPartyStateOrThrowError: typeof Wrapper.verifyAndGetThirdPartyStateOrThrowError; -declare const getThirdPartyAuthCodeFromURL: typeof Wrapper.getThirdPartyAuthCodeFromURL; -declare const getThirdPartyAuthErrorFromURL: typeof Wrapper.getThirdPartyAuthErrorFromURL; -declare const getThirdPartyAuthStateFromURL: typeof Wrapper.getThirdPartyAuthStateFromURL; declare const createPasswordlessCode: typeof Wrapper.createPasswordlessCode; declare const resendPasswordlessCode: typeof Wrapper.resendPasswordlessCode; declare const consumePasswordlessCode: typeof Wrapper.consumePasswordlessCode; @@ -203,18 +192,16 @@ export { Github, Gitlab, Google, + GoogleWorkspaces, Facebook, + LinkedIn, + ActiveDirectory, + BoxySAML, + Okta, redirectToThirdPartyLogin, - getAuthorisationURLFromBackend, thirdPartySignInAndUp, getThirdPartyStateAndOtherInfoFromStorage, - setThirdPartyStateAndOtherInfoToStorage, getThirdPartyAuthorisationURLWithQueryParamsAndSetState, - generateThirdPartyStateToSendToOAuthProvider, - verifyAndGetThirdPartyStateOrThrowError, - getThirdPartyAuthCodeFromURL, - getThirdPartyAuthErrorFromURL, - getThirdPartyAuthStateFromURL, createPasswordlessCode, resendPasswordlessCode, consumePasswordlessCode, diff --git a/lib/build/recipe/thirdpartypasswordless/prebuiltui.d.ts b/lib/build/recipe/thirdpartypasswordless/prebuiltui.d.ts index 4b64e6c1f..773b9b4cd 100644 --- a/lib/build/recipe/thirdpartypasswordless/prebuiltui.d.ts +++ b/lib/build/recipe/thirdpartypasswordless/prebuiltui.d.ts @@ -5,7 +5,7 @@ import type { GenericComponentOverrideMap } from "../../components/componentOver import type { RecipeFeatureComponentMap, FeatureBaseProps } from "../../types"; import type { PropsWithChildren } from "react"; export declare class ThirdPartyPasswordlessPreBuiltUI extends RecipeRouter { - private readonly recipeInstance; + readonly recipeInstance: ThirdPartyPasswordless; static instance?: ThirdPartyPasswordlessPreBuiltUI; private thirdPartyPreBuiltUI; private passwordlessPreBuiltUI; diff --git a/lib/build/recipe/thirdpartypasswordless/recipe.d.ts b/lib/build/recipe/thirdpartypasswordless/recipe.d.ts index a2f502d8e..d433d53bc 100644 --- a/lib/build/recipe/thirdpartypasswordless/recipe.d.ts +++ b/lib/build/recipe/thirdpartypasswordless/recipe.d.ts @@ -19,6 +19,7 @@ export default class ThirdPartyPasswordless extends AuthRecipe< readonly webJSRecipe: WebJSRecipeInterface; static instance?: ThirdPartyPasswordless; static RECIPE_ID: string; + recipeID: string; passwordlessRecipe: Passwordless | undefined; thirdPartyRecipe: ThirdParty | undefined; constructor( diff --git a/lib/build/recipe/thirdpartypasswordless/types.d.ts b/lib/build/recipe/thirdpartypasswordless/types.d.ts index a7ff18706..b328d24f2 100644 --- a/lib/build/recipe/thirdpartypasswordless/types.d.ts +++ b/lib/build/recipe/thirdpartypasswordless/types.d.ts @@ -95,9 +95,10 @@ export declare type UserInput = ( export declare type Config = UserInput & AuthRecipeModuleConfig; export declare type NormalisedConfig = { - passwordlessConfig: NormalisedPasswordlessConfig | undefined; - thirdpartyConfig: NormalisedThirdPartyConfig | undefined; + passwordlessConfig: NormalisedPasswordlessConfig; + thirdpartyConfig: NormalisedThirdPartyConfig; thirdPartyProviderAndEmailOrPhoneFormStyle: string | undefined; + disablePasswordless: boolean; override: { functions: ( originalImplementation: RecipeInterface, diff --git a/lib/build/recipeModule-shared.js b/lib/build/recipeModule-shared.js index 0f2bb7265..97db61859 100644 --- a/lib/build/recipeModule-shared.js +++ b/lib/build/recipeModule-shared.js @@ -1,287 +1,6 @@ "use strict"; -var utils = require("./utils.js"); -var SuperTokensWebJS = require("supertokens-web-js"); -var cookieHandler = require("supertokens-web-js/utils/cookieHandler"); -var postSuperTokensInitCallbacks = require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); -var windowHandler = require("supertokens-web-js/utils/windowHandler"); - -function _interopDefault(e) { - return e && e.__esModule ? e : { default: e }; -} - -var SuperTokensWebJS__default = /*#__PURE__*/ _interopDefault(SuperTokensWebJS); - -var TranslationController = /** @class */ (function () { - function TranslationController() { - this.handlers = new Map(); - } - TranslationController.prototype.emit = function (event, detail) { - var handlerList = this.handlers.get(event) || []; - for (var _i = 0, handlerList_1 = handlerList; _i < handlerList_1.length; _i++) { - var h = handlerList_1[_i]; - h(event, detail); - } - }; - TranslationController.prototype.on = function (event, handler) { - var handlerList = this.handlers.get(event) || []; - this.handlers.set(event, handlerList.concat(handler)); - }; - TranslationController.prototype.off = function (event, handler) { - var handlerList = this.handlers.get(event) || []; - this.handlers.set( - event, - handlerList.filter(function (h) { - return h !== handler; - }) - ); - }; - return TranslationController; -})(); -var CURRENT_LANGUAGE_COOKIE_NAME = "sCurrLanguage"; -function saveCurrentLanguage(language, cookieDomain) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _b.trys.push([0, 2, , 3]); - return [4 /*yield*/, utils.setFrontendCookie(CURRENT_LANGUAGE_COOKIE_NAME, language, cookieDomain)]; - case 1: - _b.sent(); - return [3 /*break*/, 3]; - case 2: - _b.sent(); - return [3 /*break*/, 3]; - case 3: - return [2 /*return*/]; - } - }); - }); -} -function getCurrentLanguageFromCookie() { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_b) { - switch (_b.label) { - case 0: - _b.trys.push([0, 2, , 3]); - return [4 /*yield*/, utils.getCookieValue(CURRENT_LANGUAGE_COOKIE_NAME)]; - case 1: - return [2 /*return*/, _b.sent()]; - case 2: - _b.sent(); - // This can throw if we are not in a browser - // Since this is just loading a preference we can safely ignore the exception - return [2 /*return*/, null]; - case 3: - return [2 /*return*/]; - } - }); - }); -} - -/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. - * - * This software is licensed under the Apache License, Version 2.0 (the - * "License") as published by the Apache Software Foundation. - * - * You may not use this file except in compliance with the License. You may - * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - */ -/* - * Class. - */ -var SuperTokens = /** @class */ (function () { - /* - * Constructor. - */ - function SuperTokens(config) { - var _this = this; - this.recipeList = []; - this.changeLanguage = function (lang) { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4 /*yield*/, - saveCurrentLanguage(lang, this.languageTranslations.currentLanguageCookieScope), - ]; - case 1: - _a.sent(); - this.languageTranslations.translationEventSource.emit("LanguageChange", lang); - return [2 /*return*/]; - } - }); - }); - }; - this.redirectToAuth = function (options) { - return utils.__awaiter(_this, void 0, void 0, function () { - var queryParams, redirectUrl; - return utils.__generator(this, function (_a) { - switch (_a.label) { - case 0: - queryParams = options.queryParams === undefined ? {} : options.queryParams; - if (options.show !== undefined) { - queryParams.show = options.show; - } - if (options.redirectBack === true) { - queryParams.redirectToPath = utils.getCurrentNormalisedUrlPath().getAsStringDangerous(); - } - return [ - 4 /*yield*/, - this.getRedirectUrl({ - action: "TO_AUTH", - showSignIn: options.show === "signin", - }), - ]; - case 1: - redirectUrl = _a.sent(); - redirectUrl = utils.appendQueryParamsToURL(redirectUrl, queryParams); - return [2 /*return*/, this.redirectToUrl(redirectUrl, options.history)]; - } - }); - }); - }; - this.redirectToUrl = function (redirectUrl, history) { - return utils.__awaiter(_this, void 0, void 0, function () { - var origin_1; - return utils.__generator(this, function (_a) { - try { - new URL(redirectUrl); // If full URL, no error thrown, skip in app redirection. - } catch (e) { - origin_1 = utils.getOriginOfPage().getAsStringDangerous(); - if (origin_1 !== this.appInfo.websiteDomain.getAsStringDangerous()) { - redirectUrl = "" - .concat(this.appInfo.websiteDomain.getAsStringDangerous()) - .concat(redirectUrl); - utils.redirectWithFullPageReload(redirectUrl); - return [2 /*return*/]; - } - // If history was provided, use to redirect without reloading. - if (history !== undefined) { - utils.redirectWithHistory(redirectUrl, history); - return [2 /*return*/]; - } - } - // Otherwise, redirect in app. - utils.redirectWithFullPageReload(redirectUrl); - return [2 /*return*/]; - }); - }); - }; - this.appInfo = utils.normaliseInputAppInfoOrThrowError(config.appInfo); - if (config.recipeList === undefined || config.recipeList.length === 0) { - throw new Error( - "Please provide at least one recipe to the supertokens.init function call. See https://supertokens.io/docs/emailpassword/quick-setup/frontend" - ); - } - var translationConfig = config.languageTranslations === undefined ? {} : config.languageTranslations; - this.languageTranslations = { - defaultLanguage: translationConfig.defaultLanguage === undefined ? "en" : translationConfig.defaultLanguage, - currentLanguageCookieScope: - translationConfig.currentLanguageCookieScope !== undefined - ? utils.normaliseCookieScopeOrThrowError(translationConfig.currentLanguageCookieScope) - : utils.getDefaultCookieScope(), - userTranslationStore: translationConfig.translations !== undefined ? translationConfig.translations : {}, - translationEventSource: new TranslationController(), - userTranslationFunc: translationConfig.translationFunc, - }; - var enableDebugLogs = false; - if (config.enableDebugLogs !== undefined) { - enableDebugLogs = config.enableDebugLogs; - } - this.userGetRedirectionURL = config.getRedirectionURL; - this.recipeList = config.recipeList.map(function (_a) { - var authReact = _a.authReact; - return authReact(_this.appInfo, enableDebugLogs); - }); - } - /* - * Static Methods. - */ - SuperTokens.init = function (config) { - cookieHandler.CookieHandlerReference.init(config.cookieHandler); - windowHandler.WindowHandlerReference.init(config.windowHandler); - if (SuperTokens.instance !== undefined) { - console.warn("SuperTokens was already initialized"); - return; - } - SuperTokensWebJS__default.default.init( - utils.__assign(utils.__assign({}, config), { - recipeList: config.recipeList.map(function (_a) { - var webJS = _a.webJS; - return webJS; - }), - }) - ); - SuperTokens.instance = new SuperTokens(config); - postSuperTokensInitCallbacks.PostSuperTokensInitCallbacks.runPostInitCallbacks(); - }; - SuperTokens.getInstanceOrThrow = function () { - if (SuperTokens.instance === undefined) { - var error = "SuperTokens must be initialized before calling this method."; - // eslint-disable-next-line supertokens-auth-react/no-direct-window-object - if (typeof window === "undefined") { - error = error + utils.SSR_ERROR; - } - throw new Error(error); - } - return SuperTokens.instance; - }; - SuperTokens.prototype.getRecipeOrThrow = function (recipeId) { - var recipe = this.recipeList.find(function (recipe) { - return recipe.config.recipeId === recipeId; - }); - if (recipe === undefined) { - throw new Error("Missing recipe: ".concat(recipeId)); - } - return recipe; - }; - SuperTokens.prototype.loadTranslation = function (store) { - this.languageTranslations.translationEventSource.emit("TranslationLoaded", store); - }; - SuperTokens.prototype.getRedirectUrl = function (context) { - return utils.__awaiter(this, void 0, void 0, function () { - var userRes, redirectUrl; - return utils.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!this.userGetRedirectionURL) return [3 /*break*/, 2]; - return [4 /*yield*/, this.userGetRedirectionURL(context)]; - case 1: - userRes = _a.sent(); - if (userRes !== undefined) { - return [2 /*return*/, userRes]; - } - _a.label = 2; - case 2: - if (context.action === "TO_AUTH") { - redirectUrl = this.appInfo.websiteBasePath.getAsStringDangerous(); - return [2 /*return*/, utils.appendTrailingSlashToURL(redirectUrl)]; - } - throw new Error("Should never come here: unexpected redirection context"); - } - }); - }); - }; - /* - * Tests methods. - */ - SuperTokens.reset = function () { - if (!utils.isTest()) { - return; - } - SuperTokens.instance = undefined; - return; - }; - return SuperTokens; -})(); +var superTokens = require("./superTokens.js"); /* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. * @@ -297,35 +16,33 @@ var SuperTokens = /** @class */ (function () { * License for the specific language governing permissions and limitations * under the License. */ -/* - * Class. - */ -var RecipeModule = /** @class */ (function () { - /* - * Constructor. - */ - function RecipeModule(config) { - var _this = this; - this.redirect = function (context, history, queryParams) { - return utils.__awaiter(_this, void 0, void 0, function () { +var RecipeModule = /** @class */ (function (_super) { + superTokens.__extends(RecipeModule, _super); + function RecipeModule() { + var _this = (_super !== null && _super.apply(this, arguments)) || this; + _this.redirect = function (context, history, queryParams) { + return superTokens.__awaiter(_this, void 0, void 0, function () { var redirectUrl; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.getRedirectUrl(context)]; case 1: redirectUrl = _a.sent(); - redirectUrl = utils.appendQueryParamsToURL(redirectUrl, queryParams); - return [2 /*return*/, SuperTokens.getInstanceOrThrow().redirectToUrl(redirectUrl, history)]; + redirectUrl = superTokens.appendQueryParamsToURL(redirectUrl, queryParams); + return [ + 2 /*return*/, + superTokens.SuperTokens.getInstanceOrThrow().redirectToUrl(redirectUrl, history), + ]; } }); }); }; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types - this.getRedirectUrl = function (context) { - return utils.__awaiter(_this, void 0, void 0, function () { + _this.getRedirectUrl = function (context) { + return superTokens.__awaiter(_this, void 0, void 0, function () { var redirectUrl; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.config.getRedirectionURL(context)]; @@ -342,79 +59,17 @@ var RecipeModule = /** @class */ (function () { }); }); }; - this.config = config; + return _this; } // eslint-disable-next-line @typescript-eslint/no-unused-vars RecipeModule.prototype.getDefaultRedirectionURL = function (_) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { throw new Error("getDefaultRedirectionURL is not implemented."); }); }); }; return RecipeModule; -})(); - -function normaliseRecipeModuleConfig(config) { - var _this = this; - if (config === undefined) { - config = {}; - } - var onHandleEvent = config.onHandleEvent, - getRedirectionURL = config.getRedirectionURL, - preAPIHook = config.preAPIHook, - postAPIHook = config.postAPIHook; - if (onHandleEvent === undefined) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function - onHandleEvent = function (_) {}; - } - if (getRedirectionURL === undefined) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - getRedirectionURL = function (_) { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [2 /*return*/, undefined]; - }); - }); - }; - } - if (preAPIHook === undefined) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - preAPIHook = function (context) { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [2 /*return*/, context]; - }); - }); - }; - } - if (postAPIHook === undefined) { - // eslint-disable-next-line @typescript-eslint/no-empty-function - postAPIHook = function () { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [2 /*return*/]; - }); - }); - }; - } - var useShadowDom = config.useShadowDom === undefined ? true : config.useShadowDom; - useShadowDom = getShouldUseShadowDomBasedOnBrowser(useShadowDom); - var rootStyle = config.style === undefined ? "" : config.style; - return utils.__assign(utils.__assign({}, config), { - getRedirectionURL: getRedirectionURL, - onHandleEvent: onHandleEvent, - preAPIHook: preAPIHook, - postAPIHook: postAPIHook, - useShadowDom: useShadowDom, - rootStyle: rootStyle, - }); -} -function getShouldUseShadowDomBasedOnBrowser(useShadowDom) { - return useShadowDom !== undefined ? useShadowDom : true; -} +})(superTokens.BaseRecipeModule); exports.RecipeModule = RecipeModule; -exports.SuperTokens = SuperTokens; -exports.getCurrentLanguageFromCookie = getCurrentLanguageFromCookie; -exports.normaliseRecipeModuleConfig = normaliseRecipeModuleConfig; diff --git a/lib/build/session-shared.js b/lib/build/session-shared.js index 5d893f15e..455c9767d 100644 --- a/lib/build/session-shared.js +++ b/lib/build/session-shared.js @@ -1,9 +1,8 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var React = require("react"); -var utils$1 = require("./recipeModule-shared.js"); var uiEntry = require("./index2.js"); var userContextWrapper = require("./userContextWrapper.js"); var recipe = require("./session-shared2.js"); @@ -22,7 +21,7 @@ var SessionContext = React__default.default.createContext({ var SessionAuth = function (_a) { var _b; var children = _a.children, - props = utils.__rest(_a, ["children"]); + props = superTokens.__rest(_a, ["children"]); var requireAuth = React.useRef(props.requireAuth); if (props.requireAuth !== requireAuth.current) { throw new Error( @@ -51,13 +50,13 @@ var SessionAuth = function (_a) { } var userContext = userContextWrapper.useUserContext(); var redirectToLogin = React.useCallback(function () { - void utils$1.SuperTokens.getInstanceOrThrow().redirectToAuth({ history: history, redirectBack: true }); + void superTokens.SuperTokens.getInstanceOrThrow().redirectToAuth({ history: history, redirectBack: true }); }, []); var buildContext = React.useCallback(function () { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var sessionExists, invalidClaims, err_1, err_2; var _a; - return utils.__generator(this, function (_b) { + return superTokens.__generator(this, function (_b) { switch (_b.label) { case 0: if (session.current === undefined) { @@ -177,9 +176,9 @@ var SessionAuth = function (_a) { }, []); var setInitialContextAndMaybeRedirect = React.useCallback( function (toSetContext) { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var failureRedirectInfo; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: if (context.loading === false) { @@ -205,7 +204,7 @@ var SessionAuth = function (_a) { setContext(toSetContext); return [ 4 /*yield*/, - utils$1.SuperTokens.getInstanceOrThrow().redirectToUrl( + superTokens.SuperTokens.getInstanceOrThrow().redirectToUrl( failureRedirectInfo.redirectPath, history ), @@ -224,7 +223,7 @@ var SessionAuth = function (_a) { return [ 2 /*return*/, setContext( - utils.__assign(utils.__assign({}, toSetContext), { + superTokens.__assign(superTokens.__assign({}, toSetContext), { accessDeniedValidatorError: failureRedirectInfo.failedClaim, }) ), @@ -249,14 +248,14 @@ var SessionAuth = function (_a) { history, ] ); - utils.useOnMountAPICall(buildContext, setInitialContextAndMaybeRedirect); + superTokens.useOnMountAPICall(buildContext, setInitialContextAndMaybeRedirect); // subscribe to events on mount React.useEffect( function () { function onHandleEvent(event) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var _a, invalidClaims, failureRedirectInfo; - return utils.__generator(this, function (_b) { + return superTokens.__generator(this, function (_b) { switch (_b.label) { case 0: _a = event.action; @@ -298,14 +297,14 @@ var SessionAuth = function (_a) { failureRedirectInfo = _b.sent(); if (!failureRedirectInfo.redirectPath) return [3 /*break*/, 5]; setContext( - utils.__assign(utils.__assign({}, event.sessionContext), { + superTokens.__assign(superTokens.__assign({}, event.sessionContext), { loading: false, invalidClaims: invalidClaims, }) ); return [ 4 /*yield*/, - utils$1.SuperTokens.getInstanceOrThrow().redirectToUrl( + superTokens.SuperTokens.getInstanceOrThrow().redirectToUrl( failureRedirectInfo.redirectPath, history ), @@ -324,7 +323,7 @@ var SessionAuth = function (_a) { return [ 2 /*return*/, setContext( - utils.__assign(utils.__assign({}, event.sessionContext), { + superTokens.__assign(superTokens.__assign({}, event.sessionContext), { loading: false, invalidClaims: invalidClaims, accessDeniedValidatorError: failureRedirectInfo.failedClaim, @@ -335,7 +334,7 @@ var SessionAuth = function (_a) { _b.label = 6; case 6: setContext( - utils.__assign(utils.__assign({}, event.sessionContext), { + superTokens.__assign(superTokens.__assign({}, event.sessionContext), { loading: false, invalidClaims: invalidClaims, }) @@ -343,7 +342,7 @@ var SessionAuth = function (_a) { return [2 /*return*/]; case 7: setContext( - utils.__assign(utils.__assign({}, event.sessionContext), { + superTokens.__assign(superTokens.__assign({}, event.sessionContext), { loading: false, invalidClaims: [], }) @@ -351,7 +350,7 @@ var SessionAuth = function (_a) { return [2 /*return*/]; case 8: setContext( - utils.__assign(utils.__assign({}, event.sessionContext), { + superTokens.__assign(superTokens.__assign({}, event.sessionContext), { loading: false, invalidClaims: [], }) @@ -391,14 +390,14 @@ var SessionAuth = function (_a) { validationError: context.accessDeniedValidatorError, }); } - return jsxRuntime.jsx(SessionContext.Provider, utils.__assign({ value: context }, { children: children })); + return jsxRuntime.jsx(SessionContext.Provider, superTokens.__assign({ value: context }, { children: children })); }; var SessionAuthWrapper = function (props) { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, - { children: jsxRuntime.jsx(SessionAuth, utils.__assign({}, props)) } + { children: jsxRuntime.jsx(SessionAuth, superTokens.__assign({}, props)) } ) ); }; diff --git a/lib/build/session-shared2.js b/lib/build/session-shared2.js index 0702eaff3..0288c18d2 100644 --- a/lib/build/session-shared2.js +++ b/lib/build/session-shared2.js @@ -1,9 +1,9 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var WebJSSessionRecipe = require("supertokens-web-js/recipe/session"); -var utils$1 = require("./recipeModule-shared.js"); -var utils$2 = require("supertokens-web-js/utils"); +var index = require("./recipeModule-shared.js"); +var utils = require("supertokens-web-js/utils"); function _interopDefault(e) { return e && e.__esModule ? e : { default: e }; @@ -37,7 +37,7 @@ function normaliseSessionConfig(config) { var accessDeniedScreen = { style: accessDeniedScreenStyle, }; - var override = utils.__assign( + var override = superTokens.__assign( { functions: function (originalImplementation) { return originalImplementation; @@ -45,7 +45,7 @@ function normaliseSessionConfig(config) { }, config.override ); - return utils.__assign(utils.__assign({}, utils$1.normaliseRecipeModuleConfig(config)), { + return superTokens.__assign(superTokens.__assign({}, superTokens.normaliseRecipeModuleConfig(config)), { accessDeniedScreen: accessDeniedScreen, override: override, }); @@ -54,19 +54,19 @@ var getFailureRedirectionInfo = function (_a) { var invalidClaims = _a.invalidClaims, overrideGlobalClaimValidators = _a.overrideGlobalClaimValidators, userContext = _a.userContext; - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var globalValidators, failedClaim, _loop_1, _i, globalValidators_1, validator, state_1; - return utils.__generator(this, function (_b) { + return superTokens.__generator(this, function (_b) { switch (_b.label) { case 0: - globalValidators = utils$2.getGlobalClaimValidators({ + globalValidators = utils.getGlobalClaimValidators({ overrideGlobalClaimValidators: overrideGlobalClaimValidators, userContext: userContext, }); failedClaim = undefined; _loop_1 = function (validator) { var claim, failureCallback, redirectPath; - return utils.__generator(this, function (_c) { + return superTokens.__generator(this, function (_c) { switch (_c.label) { case 0: claim = invalidClaims.find(function (c) { @@ -142,13 +142,14 @@ var getFailureRedirectionInfo = function (_a) { * under the License. */ var Session = /** @class */ (function (_super) { - utils.__extends(Session, _super); + superTokens.__extends(Session, _super); function Session(config, webJSRecipe) { if (webJSRecipe === void 0) { webJSRecipe = WebJSSessionRecipe__default.default; } var _this = _super.call(this, config) || this; _this.webJSRecipe = webJSRecipe; + _this.recipeID = Session.RECIPE_ID; _this.eventListeners = new Set(); _this.redirectionHandlersFromAuthRecipes = new Map(); _this.getUserId = function (input) { @@ -161,8 +162,8 @@ var Session = /** @class */ (function (_super) { return _this.webJSRecipe.getClaimValue(input); }; _this.getAccessTokenPayloadSecurely = function (input) { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [2 /*return*/, this.webJSRecipe.getAccessTokenPayloadSecurely(input)]; }); }); @@ -174,8 +175,8 @@ var Session = /** @class */ (function (_super) { return _this.webJSRecipe.signOut(input); }; _this.attemptRefreshingSession = function () { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [2 /*return*/, this.webJSRecipe.attemptRefreshingSession()]; }); }); @@ -199,9 +200,9 @@ var Session = /** @class */ (function (_super) { _this.redirectionHandlersFromAuthRecipes.set(rid, redirect); }; _this.validateGlobalClaimsAndHandleSuccessRedirection = function (redirectInfo, userContext, history) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var invalidClaims, jsonContext, failureRedirectInfo, successContextStr, authRecipeRedirectHandler; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.doesSessionExist({ userContext: userContext })]; @@ -212,7 +213,7 @@ var Session = /** @class */ (function (_super) { // This can happen e.g.: if the user clicked on the email verification link in a browser without an active session return [ 2 /*return*/, - utils$1.SuperTokens.getInstanceOrThrow().redirectToAuth({ + superTokens.SuperTokens.getInstanceOrThrow().redirectToAuth({ history: history, redirectBack: false, }), @@ -226,7 +227,7 @@ var Session = /** @class */ (function (_super) { jsonContext = JSON.stringify(redirectInfo); return [ 4 /*yield*/, - utils.setLocalStorage("supertokens-success-redirection-context", jsonContext), + superTokens.setLocalStorage("supertokens-success-redirection-context", jsonContext), ]; case 3: _a.sent(); @@ -245,7 +246,7 @@ var Session = /** @class */ (function (_super) { if (failureRedirectInfo.redirectPath !== undefined) { return [ 2 /*return*/, - utils$1.SuperTokens.getInstanceOrThrow().redirectToUrl( + superTokens.SuperTokens.getInstanceOrThrow().redirectToUrl( failureRedirectInfo.redirectPath, history ), @@ -254,7 +255,10 @@ var Session = /** @class */ (function (_super) { _a.label = 6; case 6: if (!(redirectInfo === undefined)) return [3 /*break*/, 13]; - return [4 /*yield*/, utils.getLocalStorage("supertokens-success-redirection-context")]; + return [ + 4 /*yield*/, + superTokens.getLocalStorage("supertokens-success-redirection-context"), + ]; case 7: successContextStr = _a.sent(); if (!(successContextStr !== null)) return [3 /*break*/, 12]; @@ -266,7 +270,7 @@ var Session = /** @class */ (function (_super) { case 9: return [ 4 /*yield*/, - utils.removeFromLocalStorage("supertokens-success-redirection-context"), + superTokens.removeFromLocalStorage("supertokens-success-redirection-context"), ]; case 10: _a.sent(); @@ -307,16 +311,16 @@ var Session = /** @class */ (function (_super) { * @returns "/" */ _this.getDefaultRedirectionURL = function () { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [2 /*return*/, "/"]; }); }); }; _this.notifyListeners = function (event) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var sessionContext; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.getSessionContext(event)]; @@ -325,7 +329,7 @@ var Session = /** @class */ (function (_super) { // We copy this.eventListeners into a new array to "freeze" it for the loop // We do this to avoid an infinite loop in case one of the listeners causes a new listener to be added (e.g.: through re-rendering) Array.from(this.eventListeners).forEach(function (listener) { - return listener(utils.__assign({ sessionContext: sessionContext }, event)); + return listener(superTokens.__assign({ sessionContext: sessionContext }, event)); }); return [2 /*return*/]; } @@ -337,9 +341,9 @@ var Session = /** @class */ (function (_super) { Session.prototype.getSessionContext = function (_a) { var action = _a.action, userContext = _a.userContext; - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var _b, userId, accessTokenPayload; - return utils.__generator(this, function (_c) { + return superTokens.__generator(this, function (_c) { switch (_c.label) { case 0: if ( @@ -396,9 +400,10 @@ var Session = /** @class */ (function (_super) { var _this = this; var normalisedConfig = normaliseSessionConfig(config); return { + recipeID: Session.RECIPE_ID, authReact: function (appInfo) { Session.instance = new Session( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { appInfo: appInfo, recipeId: Session.RECIPE_ID, }) @@ -406,7 +411,7 @@ var Session = /** @class */ (function (_super) { return Session.instance; }, webJS: WebJSSessionRecipe__default.default.init( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { onHandleEvent: function (event) { if (normalisedConfig.onHandleEvent !== undefined) { normalisedConfig.onHandleEvent(event); @@ -414,14 +419,15 @@ var Session = /** @class */ (function (_super) { void Session.getInstanceOrThrow().notifyListeners(event); }, preAPIHook: function (context) { - return utils.__awaiter(_this, void 0, void 0, function () { + return superTokens.__awaiter(_this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { - response = utils.__assign(utils.__assign({}, context), { - requestInit: utils.__assign(utils.__assign({}, context.requestInit), { - headers: utils.__assign(utils.__assign({}, context.requestInit.headers), { - rid: Session.RECIPE_ID, - }), + return superTokens.__generator(this, function (_a) { + response = superTokens.__assign(superTokens.__assign({}, context), { + requestInit: superTokens.__assign(superTokens.__assign({}, context.requestInit), { + headers: superTokens.__assign( + superTokens.__assign({}, context.requestInit.headers), + { rid: Session.RECIPE_ID } + ), }), }); if (normalisedConfig.preAPIHook === undefined) { @@ -448,7 +454,7 @@ var Session = /** @class */ (function (_super) { return Session.instance; }; Session.reset = function () { - if (!utils.isTest()) { + if (!superTokens.isTest()) { return; } Session.instance = undefined; @@ -456,7 +462,7 @@ var Session = /** @class */ (function (_super) { }; Session.RECIPE_ID = "session"; return Session; -})(utils$1.RecipeModule); +})(index.RecipeModule); exports.Session = Session; exports.getFailureRedirectionInfo = getFailureRedirectionInfo; diff --git a/lib/build/session-shared3.js b/lib/build/session-shared3.js index 72f3c9eb1..8f089910d 100644 --- a/lib/build/session-shared3.js +++ b/lib/build/session-shared3.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var WebJSSessionRecipe = require("supertokens-web-js/recipe/session"); var componentOverrideContext = require("./session-shared4.js"); var recipe = require("./session-shared2.js"); @@ -14,10 +14,10 @@ function _interopDefault(e) { var React__default = /*#__PURE__*/ _interopDefault(React); var BooleanClaim = /** @class */ (function (_super) { - utils.__extends(BooleanClaim, _super); + superTokens.__extends(BooleanClaim, _super); function BooleanClaim(config) { var _this = _super.call(this, config) || this; - var validatorsWithCallbacks = utils.__assign({}, _this.validators); + var validatorsWithCallbacks = superTokens.__assign({}, _this.validators); var _loop_1 = function (key) { var validator = validatorsWithCallbacks[key]; validatorsWithCallbacks[key] = function () { @@ -25,7 +25,7 @@ var BooleanClaim = /** @class */ (function (_super) { for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } - return utils.__assign(utils.__assign({}, validator.apply(void 0, args)), { + return superTokens.__assign(superTokens.__assign({}, validator.apply(void 0, args)), { onFailureRedirection: config.onFailureRedirection, showAccessDeniedOnFailure: config.showAccessDeniedOnFailure, }); @@ -41,10 +41,10 @@ var BooleanClaim = /** @class */ (function (_super) { })(WebJSSessionRecipe.BooleanClaim); var PrimitiveArrayClaim = /** @class */ (function (_super) { - utils.__extends(PrimitiveArrayClaim, _super); + superTokens.__extends(PrimitiveArrayClaim, _super); function PrimitiveArrayClaim(config) { var _this = _super.call(this, config) || this; - var validatorsWithCallbacks = utils.__assign({}, _this.validators); + var validatorsWithCallbacks = superTokens.__assign({}, _this.validators); var _loop_1 = function (key) { var validator = validatorsWithCallbacks[key]; validatorsWithCallbacks[key] = function () { @@ -52,7 +52,7 @@ var PrimitiveArrayClaim = /** @class */ (function (_super) { for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } - return utils.__assign(utils.__assign({}, validator.apply(void 0, args)), { + return superTokens.__assign(superTokens.__assign({}, validator.apply(void 0, args)), { onFailureRedirection: config.onFailureRedirection, showAccessDeniedOnFailure: config.showAccessDeniedOnFailure, }); @@ -68,10 +68,10 @@ var PrimitiveArrayClaim = /** @class */ (function (_super) { })(WebJSSessionRecipe.PrimitiveArrayClaim); var PrimitiveClaim = /** @class */ (function (_super) { - utils.__extends(PrimitiveClaim, _super); + superTokens.__extends(PrimitiveClaim, _super); function PrimitiveClaim(config) { var _this = _super.call(this, config) || this; - var validatorsWithCallbacks = utils.__assign({}, _this.validators); + var validatorsWithCallbacks = superTokens.__assign({}, _this.validators); var _loop_1 = function (key) { var validator = validatorsWithCallbacks[key]; validatorsWithCallbacks[key] = function () { @@ -79,7 +79,7 @@ var PrimitiveClaim = /** @class */ (function (_super) { for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } - return utils.__assign(utils.__assign({}, validator.apply(void 0, args)), { + return superTokens.__assign(superTokens.__assign({}, validator.apply(void 0, args)), { onFailureRedirection: config.onFailureRedirection, showAccessDeniedOnFailure: config.showAccessDeniedOnFailure, }); @@ -143,12 +143,12 @@ var SessionAPIWrapper = /** @class */ (function () { return recipe.Session.init(config); }; SessionAPIWrapper.getUserId = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Session.getInstanceOrThrow().getUserId({ - userContext: utils.getNormalisedUserContext( + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }), @@ -157,12 +157,12 @@ var SessionAPIWrapper = /** @class */ (function () { }); }; SessionAPIWrapper.getAccessToken = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Session.getInstanceOrThrow().getAccessToken({ - userContext: utils.getNormalisedUserContext( + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }), @@ -171,12 +171,12 @@ var SessionAPIWrapper = /** @class */ (function () { }); }; SessionAPIWrapper.getAccessTokenPayloadSecurely = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Session.getInstanceOrThrow().getAccessTokenPayloadSecurely({ - userContext: utils.getNormalisedUserContext( + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }), @@ -185,19 +185,19 @@ var SessionAPIWrapper = /** @class */ (function () { }); }; SessionAPIWrapper.attemptRefreshingSession = function () { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [2 /*return*/, recipe.Session.getInstanceOrThrow().attemptRefreshingSession()]; }); }); }; SessionAPIWrapper.doesSessionExist = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Session.getInstanceOrThrow().doesSessionExist({ - userContext: utils.getNormalisedUserContext( + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }), @@ -209,15 +209,15 @@ var SessionAPIWrapper = /** @class */ (function () { * @deprecated */ SessionAPIWrapper.addAxiosInterceptors = function (axiosInstance, userContext) { - return recipe.Session.addAxiosInterceptors(axiosInstance, utils.getNormalisedUserContext(userContext)); + return recipe.Session.addAxiosInterceptors(axiosInstance, superTokens.getNormalisedUserContext(userContext)); }; SessionAPIWrapper.signOut = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.Session.getInstanceOrThrow().signOut({ - userContext: utils.getNormalisedUserContext( + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }), @@ -229,7 +229,7 @@ var SessionAPIWrapper = /** @class */ (function () { return recipe.Session.getInstanceOrThrow().validateClaims({ overrideGlobalClaimValidators: input === null || input === void 0 ? void 0 : input.overrideGlobalClaimValidators, - userContext: utils.getNormalisedUserContext( + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }); @@ -240,7 +240,7 @@ var SessionAPIWrapper = /** @class */ (function () { SessionAPIWrapper.getClaimValue = function (input) { return recipe.Session.getInstanceOrThrow().getClaimValue({ claim: input.claim, - userContext: utils.getNormalisedUserContext( + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }); diff --git a/lib/build/session.js b/lib/build/session.js index a7364cf25..a7cc2af50 100644 --- a/lib/build/session.js +++ b/lib/build/session.js @@ -2,22 +2,23 @@ Object.defineProperty(exports, "__esModule", { value: true }); -require("./utils.js"); +require("./superTokens.js"); var session = require("./session-shared3.js"); require("./session-shared4.js"); require("./session-shared2.js"); var sessionAuth = require("./session-shared.js"); -require("react"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); +require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("react"); require("supertokens-web-js/utils/normalisedURLDomain"); require("supertokens-web-js/utils/normalisedURLPath"); -require("supertokens-web-js/utils/windowHandler"); require("supertokens-web-js/recipe/session"); require("./genericComponentOverrideContext.js"); require("react/jsx-runtime"); require("./recipeModule-shared.js"); -require("supertokens-web-js"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils"); require("./index2.js"); require("./userContextWrapper.js"); diff --git a/lib/build/sessionprebuiltui.js b/lib/build/sessionprebuiltui.js index 00de6d8a0..ffa0bdaea 100644 --- a/lib/build/sessionprebuiltui.js +++ b/lib/build/sessionprebuiltui.js @@ -1,31 +1,32 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var userContextWrapper = require("./userContextWrapper.js"); var uiEntry = require("./index2.js"); var componentOverrideContext = require("./session-shared4.js"); var translations = require("./translations.js"); var windowHandler = require("supertokens-web-js/utils/windowHandler"); -var utils$1 = require("./recipeModule-shared.js"); var translationContext = require("./translationContext.js"); var arrowLeftIcon = require("./arrowLeftIcon.js"); var React = require("react"); var recipe = require("./session-shared2.js"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); +require("supertokens-web-js/recipe/multitenancy"); require("supertokens-web-js/utils/normalisedURLDomain"); require("supertokens-web-js/utils/normalisedURLPath"); require("./genericComponentOverrideContext.js"); require("react-dom"); -require("supertokens-web-js"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/recipe/session"); +require("./recipeModule-shared.js"); require("supertokens-web-js/utils"); function ErrorRoundIcon() { return jsxRuntime.jsxs( "svg", - utils.__assign( + superTokens.__assign( { width: "32", height: "32", viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [ @@ -51,7 +52,10 @@ function BackButton(_a) { var t = translationContext.useTranslation(); return jsxRuntime.jsx( "button", - utils.__assign({ onClick: onClick, "data-supertokens": "buttonBase backButton" }, { children: t("GO_BACK") }) + superTokens.__assign( + { onClick: onClick, "data-supertokens": "buttonBase backButton" }, + { children: t("GO_BACK") } + ) ); } @@ -63,7 +67,7 @@ function LogoutButton(_a) { var t = translationContext.useTranslation(); return jsxRuntime.jsxs( "button", - utils.__assign( + superTokens.__assign( { onClick: onClick, "data-supertokens": "buttonBase logoutButton" }, { children: [ @@ -100,8 +104,8 @@ var AccessDeniedScreen$2 = function (props) { var userContext = userContextWrapper.useUserContext(); var t = translationContext.useTranslation(); var onLogout = function () { - return utils.__awaiter(void 0, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, props.recipe.signOut({ userContext: userContext })]; @@ -109,7 +113,7 @@ var AccessDeniedScreen$2 = function (props) { _a.sent(); return [ 4 /*yield*/, - utils$1.SuperTokens.getInstanceOrThrow().redirectToAuth({ + superTokens.SuperTokens.getInstanceOrThrow().redirectToAuth({ show: "signin", redirectBack: false, }), @@ -137,24 +141,24 @@ var AccessDeniedScreen$2 = function (props) { }; return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "center" }, { children: jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: [ jsxRuntime.jsx(ErrorRoundIcon, {}), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle" }, { children: t("ACCESS_DENIED") } ) @@ -162,7 +166,7 @@ var AccessDeniedScreen$2 = function (props) { jsxRuntime.jsx("div", { "data-supertokens": "divider" }), jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "buttonsGroup" }, { children: [ @@ -190,15 +194,15 @@ var AccessDeniedScreenTheme = function (props) { var hasFont = translations.hasFontDefined(props.config.rootStyle); return jsxRuntime.jsx( ThemeBase, - utils.__assign( + superTokens.__assign( { loadDefaultFont: !hasFont, userStyles: [props.config.rootStyle, props.config.accessDeniedScreen.style] }, - { children: jsxRuntime.jsx(AccessDeniedThemeWithOverride, utils.__assign({}, props)) } + { children: jsxRuntime.jsx(AccessDeniedThemeWithOverride, superTokens.__assign({}, props)) } ) ); }; var defaultTranslationsSession = { - en: utils.__assign(utils.__assign({}, translations.defaultTranslationsCommon.en), { + en: superTokens.__assign(superTokens.__assign({}, translations.defaultTranslationsCommon.en), { ACCESS_DENIED: "Access denied", GO_BACK: "Go back", LOGOUT: "Log out", @@ -214,12 +218,12 @@ var AccessDeniedScreen$1 = function (props) { : _a.useHistoryCustom(); return jsxRuntime.jsx( translations.ComponentOverrideContext.Provider, - utils.__assign( + superTokens.__assign( { value: recipeComponentOverrides }, { children: jsxRuntime.jsx( translations.FeatureWrapper, - utils.__assign( + superTokens.__assign( { defaultStore: defaultTranslationsSession }, { children: jsxRuntime.jsx(AccessDeniedScreenTheme, { @@ -236,7 +240,7 @@ var AccessDeniedScreen$1 = function (props) { }; var SessionPreBuiltUI = /** @class */ (function (_super) { - utils.__extends(SessionPreBuiltUI, _super); + superTokens.__extends(SessionPreBuiltUI, _super); function SessionPreBuiltUI(recipeInstance) { var _this = _super.call(this) || this; _this.recipeInstance = recipeInstance; @@ -254,7 +258,7 @@ var SessionPreBuiltUI = /** @class */ (function (_super) { if (componentName === "accessDenied") { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx(AccessDeniedScreen$1, { @@ -295,7 +299,7 @@ var SessionPreBuiltUI = /** @class */ (function (_super) { }; // For tests SessionPreBuiltUI.reset = function () { - if (!utils.isTest()) { + if (!superTokens.isTest()) { return; } SessionPreBuiltUI.instance = undefined; diff --git a/lib/build/spinnerIcon.js b/lib/build/spinnerIcon.js index 2ed6fe2c0..d9dc23827 100644 --- a/lib/build/spinnerIcon.js +++ b/lib/build/spinnerIcon.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); /* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. @@ -26,12 +26,12 @@ var jsxRuntime = require("react/jsx-runtime"); function SpinnerIcon() { return jsxRuntime.jsx( "svg", - utils.__assign( + superTokens.__assign( { version: "1.1", viewBox: "25 25 50 50", "data-supertokens": "spinnerIcon" }, { children: jsxRuntime.jsxs( "circle", - utils.__assign( + superTokens.__assign( { cx: "50", cy: "50", diff --git a/lib/build/superTokens.d.ts b/lib/build/superTokens.d.ts index 440cb93b9..7f8072681 100644 --- a/lib/build/superTokens.d.ts +++ b/lib/build/superTokens.d.ts @@ -1,10 +1,14 @@ import { TranslationController } from "./translation/translationHelpers"; +import { UIController } from "./ui/uiController"; import type RecipeModule from "./recipe/recipeModule"; +import type { BaseRecipeModule } from "./recipe/recipeModule/baseRecipeModule"; import type { NormalisedConfig as NormalisedRecipeModuleConfig } from "./recipe/recipeModule/types"; import type { TranslationFunc, TranslationStore } from "./translation/translationHelpers"; import type { GetRedirectionURLContext, NormalisedAppInfo, SuperTokensConfig } from "./types"; export default class SuperTokens { private static instance?; + static usesDynamicLoginMethods: boolean; + static uiController: UIController; appInfo: NormalisedAppInfo; languageTranslations: { defaultLanguage: string; @@ -13,7 +17,7 @@ export default class SuperTokens { translationEventSource: TranslationController; userTranslationFunc?: TranslationFunc; }; - recipeList: RecipeModule[]; + recipeList: BaseRecipeModule[]; private userGetRedirectionURL; constructor(config: SuperTokensConfig); static init(config: SuperTokensConfig): void; @@ -33,3 +37,4 @@ export default class SuperTokens { redirectToUrl: (redirectUrl: string, history?: any) => Promise; static reset(): void; } +export declare function doRedirection(appInfo: NormalisedAppInfo, redirectUrl: string, history?: any): void; diff --git a/lib/build/superTokens.js b/lib/build/superTokens.js new file mode 100644 index 000000000..c76701036 --- /dev/null +++ b/lib/build/superTokens.js @@ -0,0 +1,1345 @@ +"use strict"; + +var SuperTokensWebJS = require("supertokens-web-js"); +var cookieHandler = require("supertokens-web-js/utils/cookieHandler"); +var postSuperTokensInitCallbacks = require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); +var windowHandler = require("supertokens-web-js/utils/windowHandler"); +var MultitenancyWebJS = require("supertokens-web-js/recipe/multitenancy"); +var React = require("react"); +var NormalisedURLDomain = require("supertokens-web-js/utils/normalisedURLDomain"); +var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); + +function _interopDefault(e) { + return e && e.__esModule ? e : { default: e }; +} + +var SuperTokensWebJS__default = /*#__PURE__*/ _interopDefault(SuperTokensWebJS); +var MultitenancyWebJS__default = /*#__PURE__*/ _interopDefault(MultitenancyWebJS); +var NormalisedURLDomain__default = /*#__PURE__*/ _interopDefault(NormalisedURLDomain); +var NormalisedURLPath__default = /*#__PURE__*/ _interopDefault(NormalisedURLPath); + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise */ + +var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b; + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; + }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()); +} + +exports.__assign = function () { + exports.__assign = + Object.assign || + function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return exports.__assign.apply(this, arguments); +}; + +function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; + } + return t; +} + +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +function __generator(thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1]; + return t[1]; + }, + trys: [], + ops: [], + }, + f, + y, + t, + g; + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === "function" && + (g[Symbol.iterator] = function () { + return this; + }), + g + ); + function verb(n) { + return function (v) { + return step([n, v]); + }; + } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while ((g && ((g = 0), op[0] && (_ = 0)), _)) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y["return"] + : op[0] + ? y["throw"] || ((t = y["return"]) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t; + if (((y = 0), t)) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } +} + +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} + +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +/* + * Consts. + */ +var RECIPE_ID_QUERY_PARAM = "rid"; +var DEFAULT_API_BASE_PATH = "/auth"; +var DEFAULT_WEBSITE_BASE_PATH = "/auth"; +var ST_ROOT_ID = "supertokens-root"; +var SSR_ERROR = + "\nIf you are trying to use this method doing server-side-rendering, please make sure you move this method inside a componentDidMount method or useEffect hook."; + +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +/* + * getRecipeIdFromPath + * Input: + * Output: The "rid" query param if present, null otherwise. + */ +function getRecipeIdFromSearch(search) { + var urlParams = new URLSearchParams(search); + return urlParams.get(RECIPE_ID_QUERY_PARAM); +} +function clearQueryParams(paramNames) { + var newURL = new URL(windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getHref()); + for (var _i = 0, paramNames_1 = paramNames; _i < paramNames_1.length; _i++) { + var param = paramNames_1[_i]; + newURL.searchParams.delete(param); + } + windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.history.replaceState( + windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.history.getState(), + "", + windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getHref() + ); +} +function clearErrorQueryParam() { + clearQueryParams(["error", "message"]); +} +function getQueryParams(param) { + var urlParams = new URLSearchParams( + windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getSearch() + ); + return urlParams.get(param); +} +function getURLHash() { + // By default it is returined with the "#" at the beginning, we cut that off here. + return windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getHash().substr(1); +} +function getRedirectToPathFromURL() { + var param = getQueryParams("redirectToPath"); + if (param === null) { + return undefined; + } else { + // Prevent Open redirects by normalising path. + try { + var normalisedURLPath = new NormalisedURLPath__default.default(param).getAsStringDangerous(); + var pathQueryParams = param.split("?")[1] !== undefined ? "?".concat(param.split("?")[1]) : ""; + return normalisedURLPath + pathQueryParams; + } catch (_a) { + return undefined; + } + } +} +/* + * isTest + */ +function isTest() { + try { + return process.env.TEST_MODE === "testing"; + } catch (err) { + // can get Uncaught ReferenceError: process is not defined error + return false; + } +} +function normaliseInputAppInfoOrThrowError(appInfo) { + if (appInfo === undefined) { + throw new Error("Please provide the appInfo object when calling supertokens.init"); + } + if (appInfo.apiDomain === undefined) { + throw new Error("Please provide your apiDomain inside the appInfo object when calling supertokens.init"); + } + if (appInfo.appName === undefined) { + throw new Error("Please provide your appName inside the appInfo object when calling supertokens.init"); + } + if (appInfo.websiteDomain === undefined) { + throw new Error("Please provide your websiteDomain inside the appInfo object when calling supertokens.init"); + } + var apiGatewayPath = new NormalisedURLPath__default.default(""); + if (appInfo.apiGatewayPath !== undefined) { + apiGatewayPath = new NormalisedURLPath__default.default(appInfo.apiGatewayPath); + } + return { + appName: appInfo.appName, + apiDomain: new NormalisedURLDomain__default.default(appInfo.apiDomain), + websiteDomain: new NormalisedURLDomain__default.default(appInfo.websiteDomain), + apiBasePath: apiGatewayPath.appendPath( + getNormalisedURLPathOrDefault(DEFAULT_API_BASE_PATH, appInfo.apiBasePath) + ), + websiteBasePath: getNormalisedURLPathOrDefault(DEFAULT_WEBSITE_BASE_PATH, appInfo.websiteBasePath), + }; +} +function getNormalisedURLPathOrDefault(defaultPath, path) { + if (path !== undefined) { + return new NormalisedURLPath__default.default(path); + } else { + return new NormalisedURLPath__default.default(defaultPath); + } +} +/* + * validateForm + */ +// We check that the number of fields in input and config form field is the same. +// We check that each item in the config form field is also present in the input form field +function validateForm(inputs, configFormFields) { + return __awaiter(this, void 0, void 0, function () { + var validationErrors, _loop_1, i; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + validationErrors = []; + if (configFormFields.length !== inputs.length) { + throw Error("Are you sending too many / too few formFields?"); + } + _loop_1 = function (i) { + var field, input, value, error; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + field = configFormFields[i]; + input = inputs.find(function (i) { + return i.id === field.id; + }); + value = input.value; + if (input.id === "email") { + value = value.trim(); + } + return [4 /*yield*/, field.validate(value)]; + case 1: + error = _b.sent(); + // If error, add it. + if (error !== undefined) { + validationErrors.push({ + error: error, + id: field.id, + }); + } + return [2 /*return*/]; + } + }); + }; + i = 0; + _a.label = 1; + case 1: + if (!(i < configFormFields.length)) return [3 /*break*/, 4]; + return [5 /*yield**/, _loop_1(i)]; + case 2: + _a.sent(); + _a.label = 3; + case 3: + i++; + return [3 /*break*/, 1]; + case 4: + return [2 /*return*/, validationErrors]; + } + }); + }); +} +/* + * getCurrentNormalisedUrlPath + */ +function getCurrentNormalisedUrlPath() { + return new NormalisedURLPath__default.default( + windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getPathName() + ); +} +function appendQueryParamsToURL(stringUrl, queryParams) { + if (queryParams === undefined) { + return stringUrl; + } + try { + var url_1 = new URL(stringUrl); + Object.entries(queryParams).forEach(function (_a) { + var key = _a[0], + value = _a[1]; + url_1.searchParams.set(key, value); + }); + return url_1.href; + } catch (e) { + var fakeDomain = stringUrl.startsWith("/") ? "http:localhost" : "http://localhost/"; + var url_2 = new URL("".concat(fakeDomain).concat(stringUrl)); + Object.entries(queryParams).forEach(function (_a) { + var key = _a[0], + value = _a[1]; + url_2.searchParams.set(key, value); + }); + return "".concat(url_2.pathname).concat(url_2.search); + } +} +function appendTrailingSlashToURL(stringUrl) { + return stringUrl.endsWith("/") ? stringUrl : stringUrl + "/"; +} +/* + * Default method for matching recipe route based on query params. + */ +function matchRecipeIdUsingQueryParams(recipeId) { + return function () { + var recipeIdFromSearch = getRecipeIdFromSearch( + windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getSearch() + ); + return recipeIdFromSearch === recipeId; + }; +} +function redirectWithFullPageReload(to) { + if (to.trim() === "") { + to = "/"; + } + windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.setHref(to); +} +function redirectWithHistory(to, history) { + if (to.trim() === "") { + to = "/"; + } + if (history.push !== undefined) { + // we are using react-router-dom that is before v6 + history.push(to); + } else { + // in react-router-dom v6, it is just navigate(to), and we are renaming + // naviagte to history, so it becomes history(to). + history(to); + } +} +function getOriginOfPage() { + return new NormalisedURLDomain__default.default( + windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getOrigin() + ); +} +function getLocalStorage(key) { + return __awaiter(this, void 0, void 0, function () { + var res; + return __generator(this, function (_a) { + res = windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.localStorage.getItem(key); + if (res === null || res === undefined) { + return [2 /*return*/, null]; + } + return [2 /*return*/, res]; + }); + }); +} +function setLocalStorage(key, value) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4 /*yield*/, + windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.localStorage.setItem( + key, + value + ), + ]; + case 1: + _a.sent(); + return [2 /*return*/]; + } + }); + }); +} +function removeFromLocalStorage(key) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4 /*yield*/, + windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.localStorage.removeItem( + key + ), + ]; + case 1: + _a.sent(); + return [2 /*return*/]; + } + }); + }); +} +function mergeObjects(obj1, obj2) { + var res = exports.__assign({}, obj1); + for (var key in obj2) { + if (typeof res[key] === "object" && typeof obj2[key] === "object") { + res[key] = mergeObjects(res[key], obj2[key]); + } else { + res[key] = obj2[key]; + } + } + return res; +} +function normaliseCookieScopeOrThrowError(cookieScope) { + function helper(cookieScope) { + cookieScope = cookieScope.trim().toLowerCase(); + // first we convert it to a URL so that we can use the URL class + if (cookieScope.startsWith(".")) { + cookieScope = cookieScope.substr(1); + } + if (!cookieScope.startsWith("http://") && !cookieScope.startsWith("https://")) { + cookieScope = "http://" + cookieScope; + } + try { + var urlObj = new URL(cookieScope); + cookieScope = urlObj.hostname; + // remove leading dot + if (cookieScope.startsWith(".")) { + cookieScope = cookieScope.substr(1); + } + return cookieScope; + } catch (err) { + throw new Error("Please provide a valid cookie scope"); + } + } + function isAnIpAddress(ipaddress) { + return /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test( + ipaddress + ); + } + var noDotNormalised = helper(cookieScope); + if (noDotNormalised === "localhost" || isAnIpAddress(noDotNormalised)) { + return noDotNormalised; + } + if (cookieScope.startsWith(".")) { + return "." + noDotNormalised; + } + return noDotNormalised; +} +function getDefaultCookieScope() { + try { + return normaliseCookieScopeOrThrowError( + windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getHostName() + ); + } catch (_a) { + return undefined; + } +} +function getCookieValue(name) { + return __awaiter(this, void 0, void 0, function () { + var value, _a, parts, last, temp; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _a = "; "; + return [ + 4 /*yield*/, + cookieHandler.CookieHandlerReference.getReferenceOrThrow().cookieHandler.getCookie(), + ]; + case 1: + value = _a + _b.sent(); + parts = value.split("; " + name + "="); + if (parts.length >= 2) { + last = parts.pop(); + if (last !== undefined) { + temp = last.split(";").shift(); + if (temp === undefined) { + return [2 /*return*/, null]; + } + return [2 /*return*/, temp]; + } + } + return [2 /*return*/, null]; + } + }); + }); +} +// undefined value will remove the cookie +function setFrontendCookie(name, value, scope) { + return __awaiter(this, void 0, void 0, function () { + var expires, cookieVal; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + expires = "Thu, 01 Jan 1970 00:00:01 GMT"; + cookieVal = ""; + if (value !== undefined) { + cookieVal = value; + expires = undefined; // set cookie without expiry + } + if ( + !( + scope === "localhost" || + scope === + windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getHostName() || + scope === undefined + ) + ) + return [3 /*break*/, 5]; + if (!(expires !== undefined)) return [3 /*break*/, 2]; + return [ + 4 /*yield*/, + cookieHandler.CookieHandlerReference.getReferenceOrThrow().cookieHandler.setCookie( + "".concat(name, "=").concat(cookieVal, ";expires=").concat(expires, ";path=/;samesite=lax") + ), + ]; + case 1: + _a.sent(); + return [3 /*break*/, 4]; + case 2: + return [ + 4 /*yield*/, + cookieHandler.CookieHandlerReference.getReferenceOrThrow().cookieHandler.setCookie( + "" + .concat(name, "=") + .concat(cookieVal, ";expires=Fri, 31 Dec 9999 23:59:59 GMT;path=/;samesite=lax") + ), + ]; + case 3: + _a.sent(); + _a.label = 4; + case 4: + return [3 /*break*/, 9]; + case 5: + if (!(expires !== undefined)) return [3 /*break*/, 7]; + return [ + 4 /*yield*/, + cookieHandler.CookieHandlerReference.getReferenceOrThrow().cookieHandler.setCookie( + "" + .concat(name, "=") + .concat(cookieVal, ";expires=") + .concat(expires, ";domain=") + .concat(scope, ";path=/;samesite=lax") + ), + ]; + case 6: + _a.sent(); + return [3 /*break*/, 9]; + case 7: + return [ + 4 /*yield*/, + cookieHandler.CookieHandlerReference.getReferenceOrThrow().cookieHandler.setCookie( + "" + .concat(name, "=") + .concat(cookieVal, ";domain=") + .concat(scope, ";expires=Fri, 31 Dec 9999 23:59:59 GMT;path=/;samesite=lax") + ), + ]; + case 8: + _a.sent(); + _a.label = 9; + case 9: + return [2 /*return*/]; + } + }); + }); +} +function getNormalisedUserContext(userContext) { + return userContext === undefined ? {} : userContext; +} +/** + * This function handles calling APIs that should only be called once during mount (mostly on mount of a route/feature component). + * It's split into multiple callbacks (fetch + handleResponse/handleError) because we expect fetch to take longer and + * and the component may be unmounted during the first fetch, in which case we want to avoid updating state/redirecting. + * This is especially relevant for development in strict mode with React 18 (and in the future for concurrent rendering). + * + * @param fetch This is a callback that is only called once on mount. Mostly it's for consuming tokens/doing one time only API calls + * @param handleResponse This is called with the result of the first (fetch) call if it succeeds. + * @param handleError This is called with the error of the first (fetch) call if it rejects. + * @param startLoading Will start the whole process if this is set to true (or omitted). Mostly used to wait for session loading. + */ +var useOnMountAPICall = function (fetch, handleResponse, handleError, startLoading) { + if (startLoading === void 0) { + startLoading = true; + } + var consumeReq = React.useRef(); + var _a = React.useState(undefined), + error = _a[0], + setError = _a[1]; + React.useEffect( + function () { + var effect = function (signal) { + return __awaiter(void 0, void 0, void 0, function () { + var resp, err_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + if (consumeReq.current === undefined) { + consumeReq.current = fetch(); + } + return [4 /*yield*/, consumeReq.current]; + case 1: + resp = _a.sent(); + if (!signal.aborted) { + void handleResponse(resp); + } + return [3 /*break*/, 3]; + case 2: + err_1 = _a.sent(); + if (!signal.aborted) { + if (handleError !== undefined) { + handleError(err_1, resp); + } else { + setError(err_1); + } + } + return [3 /*break*/, 3]; + case 3: + return [2 /*return*/]; + } + }); + }); + }; + if (startLoading) { + var ctrl_1 = new AbortController(); + void effect(ctrl_1.signal); + return function () { + ctrl_1.abort(); + }; + } + return; + }, + [setError, consumeReq, fetch, handleResponse, handleError, startLoading] + ); + if (error) { + throw error; + } +}; + +var BaseRecipeModule = /** @class */ (function () { + /* + * Constructor. + */ + function BaseRecipeModule(config) { + this.config = config; + } + return BaseRecipeModule; +})(); + +function normaliseRecipeModuleConfig(config) { + var _this = this; + if (config === undefined) { + config = {}; + } + var onHandleEvent = config.onHandleEvent, + getRedirectionURL = config.getRedirectionURL, + preAPIHook = config.preAPIHook, + postAPIHook = config.postAPIHook; + if (onHandleEvent === undefined) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function + onHandleEvent = function (_) {}; + } + if (getRedirectionURL === undefined) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + getRedirectionURL = function (_) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, undefined]; + }); + }); + }; + } + if (preAPIHook === undefined) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + preAPIHook = function (context) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, context]; + }); + }); + }; + } + if (postAPIHook === undefined) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + postAPIHook = function () { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/]; + }); + }); + }; + } + var useShadowDom = config.useShadowDom === undefined ? true : config.useShadowDom; + useShadowDom = getShouldUseShadowDomBasedOnBrowser(useShadowDom); + var rootStyle = config.style === undefined ? "" : config.style; + return exports.__assign(exports.__assign({}, config), { + getRedirectionURL: getRedirectionURL, + onHandleEvent: onHandleEvent, + preAPIHook: preAPIHook, + postAPIHook: postAPIHook, + useShadowDom: useShadowDom, + rootStyle: rootStyle, + }); +} +function getShouldUseShadowDomBasedOnBrowser(useShadowDom) { + return useShadowDom !== undefined ? useShadowDom : true; +} + +function normaliseMultitenancyConfig(config) { + return exports.__assign(exports.__assign({}, normaliseRecipeModuleConfig(config)), { + override: exports.__assign( + { + functions: function (originalImplementation) { + return originalImplementation; + }, + }, + config === null || config === void 0 ? void 0 : config.override + ), + }); +} +function hasIntersectingRecipes(tenantMethods, recipeList) { + var _loop_1 = function (key) { + var hasIntersection = recipeList.some(function (recipe) { + if (tenantMethods[key].enabled) { + return recipe.recipeID === key || recipe.recipeID.includes(key); + } + return false; + }); + if (hasIntersection === true) { + return { value: true }; + } + }; + for (var key in tenantMethods) { + var state_1 = _loop_1(key); + if (typeof state_1 === "object") return state_1.value; + } + return false; +} + +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +/* + * Class. + */ +var Multitenancy = /** @class */ (function (_super) { + __extends(Multitenancy, _super); + function Multitenancy(config, webJSRecipe) { + if (webJSRecipe === void 0) { + webJSRecipe = MultitenancyWebJS__default.default; + } + var _this = _super.call(this, config) || this; + _this.webJSRecipe = webJSRecipe; + _this.recipeID = Multitenancy.RECIPE_ID; + postSuperTokensInitCallbacks.PostSuperTokensInitCallbacks.addPostInitCallback(function () { + if (SuperTokens.usesDynamicLoginMethods === true) { + void Multitenancy.getInstanceOrThrow().initMultitenancyWithDynamicLoginMethods().catch(); + } + }); + return _this; + } + Multitenancy.prototype.initMultitenancyWithDynamicLoginMethods = function () { + return __awaiter(this, void 0, void 0, function () { + var tenantId, tenantMethods; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4 /*yield*/, Multitenancy.getInstanceOrThrow().webJSRecipe.getTenantId()]; + case 1: + tenantId = _a.sent(); + return [4 /*yield*/, Multitenancy.getDynamicLoginMethods({ tenantId: tenantId })]; + case 2: + tenantMethods = _a.sent(); + this.hasIntersection = hasIntersectingRecipes( + tenantMethods, + SuperTokens.getInstanceOrThrow().recipeList + ); + SuperTokens.uiController.emit("LoginMethodsLoaded"); + return [2 /*return*/]; + } + }); + }); + }; + Multitenancy.prototype.getLoadedDynamicLoginMethods = function () { + if (this.hasIntersection === false) { + throw new Error("Initialized recipes have no overlap with core recipes or could not load login methods"); + } + return this.dynamicLoginMethods; + }; + Multitenancy.getDynamicLoginMethods = function () { + var options = []; + for (var _i = 0; _i < arguments.length; _i++) { + options[_i] = arguments[_i]; + } + return __awaiter(this, void 0, void 0, function () { + var instance, _a, emailPassword, passwordless, thirdParty; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + instance = Multitenancy.getInstanceOrThrow(); + if (instance.dynamicLoginMethods !== undefined) { + return [2 /*return*/, instance.dynamicLoginMethods]; + } + return [ + 4 /*yield*/, + MultitenancyWebJS__default.default.getLoginMethods.apply( + MultitenancyWebJS__default.default, + options + ), + ]; + case 1: + (_a = _b.sent()), + (emailPassword = _a.emailPassword), + (passwordless = _a.passwordless), + (thirdParty = _a.thirdParty); + instance.dynamicLoginMethods = { + passwordless: passwordless, + emailpassword: emailPassword, + thirdparty: thirdParty, + }; + return [2 /*return*/, instance.dynamicLoginMethods]; + } + }); + }); + }; + Multitenancy.init = function (config) { + var normalisedConfig = normaliseMultitenancyConfig(config); + return { + recipeID: Multitenancy.RECIPE_ID, + authReact: function (appInfo) { + Multitenancy.instance = new Multitenancy( + exports.__assign(exports.__assign({}, normalisedConfig), { + appInfo: appInfo, + recipeId: Multitenancy.RECIPE_ID, + }) + ); + return Multitenancy.instance; + }, + webJS: MultitenancyWebJS__default.default.init(exports.__assign({}, normalisedConfig)), + }; + }; + Multitenancy.getInstanceOrThrow = function () { + if (Multitenancy.instance === undefined) { + var error = + "No instance of Multitenancy found. Make sure to call the Multitenancy.init method." + + "See https://supertokens.io/docs/multitenancy/quick-setup/frontend"; + // eslint-disable-next-line supertokens-auth-react/no-direct-window-object + if (typeof window === "undefined") { + error = error + SSR_ERROR; + } + throw Error(error); + } + return Multitenancy.instance; + }; + /* + * Tests methods. + */ + Multitenancy.reset = function () { + if (!isTest()) { + return; + } + Multitenancy.instance = undefined; + return; + }; + Multitenancy.RECIPE_ID = "multitenancy"; + return Multitenancy; +})(BaseRecipeModule); + +var TranslationController = /** @class */ (function () { + function TranslationController() { + this.handlers = new Map(); + } + TranslationController.prototype.emit = function (event, detail) { + var handlerList = this.handlers.get(event) || []; + for (var _i = 0, handlerList_1 = handlerList; _i < handlerList_1.length; _i++) { + var h = handlerList_1[_i]; + h(event, detail); + } + }; + TranslationController.prototype.on = function (event, handler) { + var handlerList = this.handlers.get(event) || []; + this.handlers.set(event, handlerList.concat(handler)); + }; + TranslationController.prototype.off = function (event, handler) { + var handlerList = this.handlers.get(event) || []; + this.handlers.set( + event, + handlerList.filter(function (h) { + return h !== handler; + }) + ); + }; + return TranslationController; +})(); +var CURRENT_LANGUAGE_COOKIE_NAME = "sCurrLanguage"; +function saveCurrentLanguage(language, cookieDomain) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _b.trys.push([0, 2, , 3]); + return [4 /*yield*/, setFrontendCookie(CURRENT_LANGUAGE_COOKIE_NAME, language, cookieDomain)]; + case 1: + _b.sent(); + return [3 /*break*/, 3]; + case 2: + _b.sent(); + return [3 /*break*/, 3]; + case 3: + return [2 /*return*/]; + } + }); + }); +} +function getCurrentLanguageFromCookie() { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _b.trys.push([0, 2, , 3]); + return [4 /*yield*/, getCookieValue(CURRENT_LANGUAGE_COOKIE_NAME)]; + case 1: + return [2 /*return*/, _b.sent()]; + case 2: + _b.sent(); + // This can throw if we are not in a browser + // Since this is just loading a preference we can safely ignore the exception + return [2 /*return*/, null]; + case 3: + return [2 /*return*/]; + } + }); + }); +} + +var UIController = /** @class */ (function () { + function UIController() { + this.handlers = new Map(); + } + UIController.prototype.emit = function (event, detail) { + var handlerList = this.handlers.get(event) || []; + for (var _i = 0, handlerList_1 = handlerList; _i < handlerList_1.length; _i++) { + var h = handlerList_1[_i]; + h(event, detail); + } + }; + UIController.prototype.on = function (event, handler) { + var handlerList = this.handlers.get(event) || []; + this.handlers.set(event, handlerList.concat(handler)); + }; + UIController.prototype.off = function (event, handler) { + var handlerList = this.handlers.get(event) || []; + this.handlers.set( + event, + handlerList.filter(function (h) { + return h !== handler; + }) + ); + }; + return UIController; +})(); + +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +/* + * Class. + */ +var SuperTokens = /** @class */ (function () { + /* + * Constructor. + */ + function SuperTokens(config) { + var _this = this; + this.recipeList = []; + this.changeLanguage = function (lang) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4 /*yield*/, + saveCurrentLanguage(lang, this.languageTranslations.currentLanguageCookieScope), + ]; + case 1: + _a.sent(); + this.languageTranslations.translationEventSource.emit("LanguageChange", lang); + return [2 /*return*/]; + } + }); + }); + }; + this.redirectToAuth = function (options) { + return __awaiter(_this, void 0, void 0, function () { + var queryParams, redirectUrl; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + queryParams = options.queryParams === undefined ? {} : options.queryParams; + if (options.show !== undefined) { + queryParams.show = options.show; + } + if (options.redirectBack === true) { + queryParams.redirectToPath = getCurrentNormalisedUrlPath().getAsStringDangerous(); + } + return [ + 4 /*yield*/, + this.getRedirectUrl({ + action: "TO_AUTH", + showSignIn: options.show === "signin", + }), + ]; + case 1: + redirectUrl = _a.sent(); + redirectUrl = appendQueryParamsToURL(redirectUrl, queryParams); + return [2 /*return*/, this.redirectToUrl(redirectUrl, options.history)]; + } + }); + }); + }; + this.redirectToUrl = function (redirectUrl, history) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + doRedirection(this.appInfo, redirectUrl, history); + return [2 /*return*/]; + }); + }); + }; + this.appInfo = normaliseInputAppInfoOrThrowError(config.appInfo); + if (config.recipeList === undefined || config.recipeList.length === 0) { + throw new Error( + "Please provide at least one recipe to the supertokens.init function call. See https://supertokens.io/docs/emailpassword/quick-setup/frontend" + ); + } + var translationConfig = config.languageTranslations === undefined ? {} : config.languageTranslations; + this.languageTranslations = { + defaultLanguage: translationConfig.defaultLanguage === undefined ? "en" : translationConfig.defaultLanguage, + currentLanguageCookieScope: + translationConfig.currentLanguageCookieScope !== undefined + ? normaliseCookieScopeOrThrowError(translationConfig.currentLanguageCookieScope) + : getDefaultCookieScope(), + userTranslationStore: translationConfig.translations !== undefined ? translationConfig.translations : {}, + translationEventSource: new TranslationController(), + userTranslationFunc: translationConfig.translationFunc, + }; + var enableDebugLogs = false; + if (config.enableDebugLogs !== undefined) { + enableDebugLogs = config.enableDebugLogs; + } + this.userGetRedirectionURL = config.getRedirectionURL; + this.recipeList = config.recipeList.map(function (_a) { + var authReact = _a.authReact; + return authReact(_this.appInfo, enableDebugLogs); + }); + } + /* + * Static Methods. + */ + SuperTokens.init = function (config) { + var _a; + cookieHandler.CookieHandlerReference.init(config.cookieHandler); + windowHandler.WindowHandlerReference.init(config.windowHandler); + if (SuperTokens.instance !== undefined) { + console.warn("SuperTokens was already initialized"); + return; + } + SuperTokens.usesDynamicLoginMethods = + (_a = config.usesDynamicLoginMethods) !== null && _a !== void 0 ? _a : false; + var recipes = + config.recipeList.find(function (recipe) { + return recipe.recipeID === Multitenancy.RECIPE_ID; + }) !== undefined + ? config.recipeList + : config.recipeList.concat(Multitenancy.init({})); + SuperTokensWebJS__default.default.init( + exports.__assign(exports.__assign({}, config), { + recipeList: recipes.map(function (_a) { + var webJS = _a.webJS; + return webJS; + }), + }) + ); + SuperTokens.instance = new SuperTokens(exports.__assign(exports.__assign({}, config), { recipeList: recipes })); + postSuperTokensInitCallbacks.PostSuperTokensInitCallbacks.runPostInitCallbacks(); + }; + SuperTokens.getInstanceOrThrow = function () { + if (SuperTokens.instance === undefined) { + var error = "SuperTokens must be initialized before calling this method."; + // eslint-disable-next-line supertokens-auth-react/no-direct-window-object + if (typeof window === "undefined") { + error = error + SSR_ERROR; + } + throw new Error(error); + } + return SuperTokens.instance; + }; + SuperTokens.prototype.getRecipeOrThrow = function (recipeId) { + var recipe = this.recipeList.find(function (recipe) { + return recipe.config.recipeId === recipeId; + }); + if (recipe === undefined) { + throw new Error("Missing recipe: ".concat(recipeId)); + } + return recipe; + }; + SuperTokens.prototype.loadTranslation = function (store) { + this.languageTranslations.translationEventSource.emit("TranslationLoaded", store); + }; + SuperTokens.prototype.getRedirectUrl = function (context) { + return __awaiter(this, void 0, void 0, function () { + var userRes, redirectUrl; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!this.userGetRedirectionURL) return [3 /*break*/, 2]; + return [4 /*yield*/, this.userGetRedirectionURL(context)]; + case 1: + userRes = _a.sent(); + if (userRes !== undefined) { + return [2 /*return*/, userRes]; + } + _a.label = 2; + case 2: + if (context.action === "TO_AUTH") { + redirectUrl = this.appInfo.websiteBasePath.getAsStringDangerous(); + return [2 /*return*/, appendTrailingSlashToURL(redirectUrl)]; + } + throw new Error("Should never come here: unexpected redirection context"); + } + }); + }); + }; + /* + * Tests methods. + */ + SuperTokens.reset = function () { + if (!isTest()) { + return; + } + SuperTokens.instance = undefined; + return; + }; + SuperTokens.usesDynamicLoginMethods = false; + SuperTokens.uiController = new UIController(); + return SuperTokens; +})(); +function doRedirection(appInfo, redirectUrl, history) { + try { + new URL(redirectUrl); // If full URL, no error thrown, skip in app redirection. + } catch (e) { + // For multi tenancy, If mismatch between websiteDomain and current location, prepend URL relative path with websiteDomain. + var origin_1 = getOriginOfPage().getAsStringDangerous(); + if (origin_1 !== appInfo.websiteDomain.getAsStringDangerous()) { + redirectUrl = "".concat(appInfo.websiteDomain.getAsStringDangerous()).concat(redirectUrl); + redirectWithFullPageReload(redirectUrl); + return; + } + // If history was provided, use to redirect without reloading. + if (history !== undefined) { + redirectWithHistory(redirectUrl, history); + return; + } + } + // Otherwise, redirect in app. + redirectWithFullPageReload(redirectUrl); +} + +exports.BaseRecipeModule = BaseRecipeModule; +exports.Multitenancy = Multitenancy; +exports.SSR_ERROR = SSR_ERROR; +exports.ST_ROOT_ID = ST_ROOT_ID; +exports.SuperTokens = SuperTokens; +exports.__awaiter = __awaiter; +exports.__extends = __extends; +exports.__generator = __generator; +exports.__rest = __rest; +exports.__spreadArray = __spreadArray; +exports.appendQueryParamsToURL = appendQueryParamsToURL; +exports.clearErrorQueryParam = clearErrorQueryParam; +exports.clearQueryParams = clearQueryParams; +exports.getCurrentLanguageFromCookie = getCurrentLanguageFromCookie; +exports.getCurrentNormalisedUrlPath = getCurrentNormalisedUrlPath; +exports.getLocalStorage = getLocalStorage; +exports.getNormalisedUserContext = getNormalisedUserContext; +exports.getQueryParams = getQueryParams; +exports.getRedirectToPathFromURL = getRedirectToPathFromURL; +exports.getURLHash = getURLHash; +exports.isTest = isTest; +exports.matchRecipeIdUsingQueryParams = matchRecipeIdUsingQueryParams; +exports.mergeObjects = mergeObjects; +exports.normaliseRecipeModuleConfig = normaliseRecipeModuleConfig; +exports.redirectWithFullPageReload = redirectWithFullPageReload; +exports.removeFromLocalStorage = removeFromLocalStorage; +exports.setLocalStorage = setLocalStorage; +exports.useOnMountAPICall = useOnMountAPICall; +exports.validateForm = validateForm; diff --git a/lib/build/thirdparty-shared.js b/lib/build/thirdparty-shared.js index 6d7f2c87e..4cc24fd0d 100644 --- a/lib/build/thirdparty-shared.js +++ b/lib/build/thirdparty-shared.js @@ -1,13 +1,13 @@ "use strict"; var genericComponentOverrideContext = require("./genericComponentOverrideContext.js"); -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var ThirdpartyWebJS = require("supertokens-web-js/recipe/thirdparty"); -var utils$2 = require("./authRecipe-shared.js"); +var utils = require("./authRecipe-shared.js"); var jsxRuntime = require("react/jsx-runtime"); var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); -var utils$1 = require("./recipeModule-shared.js"); var translationContext = require("./translationContext.js"); +var NormalisedURLPath$1 = require("supertokens-web-js/lib/build/normalisedURLPath"); function _interopDefault(e) { return e && e.__esModule ? e : { default: e }; @@ -15,6 +15,7 @@ function _interopDefault(e) { var ThirdpartyWebJS__default = /*#__PURE__*/ _interopDefault(ThirdpartyWebJS); var NormalisedURLPath__default = /*#__PURE__*/ _interopDefault(NormalisedURLPath); +var NormalisedURLPath__default$1 = /*#__PURE__*/ _interopDefault(NormalisedURLPath$1); var _a = genericComponentOverrideContext.createGenericComponentsOverrideContext(), useContext = _a[0], @@ -28,24 +29,24 @@ function ProviderButton(_a) { var providerStyleName = "provider".concat(providerName); return jsxRuntime.jsxs( "button", - utils.__assign( + superTokens.__assign( { "data-supertokens": "button providerButton ".concat(providerStyleName) }, { children: [ logo !== undefined && jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "providerButtonLeft" }, { children: jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "providerButtonLogo" }, { children: jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "providerButtonLogoCenter" }, { children: logo } ) @@ -58,7 +59,7 @@ function ProviderButton(_a) { ), jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "providerButtonText" }, { children: [ @@ -75,69 +76,973 @@ function ProviderButton(_a) { ); } -/* - * Imports. - */ +var Provider = /** @class */ (function () { + function Provider(config) { + var _this = this; + this.config = config; + this.getButton = function (name) { + if (_this.config.buttonComponent !== undefined) { + if (typeof _this.config.buttonComponent === "function") { + return jsxRuntime.jsx(_this.config.buttonComponent, { + name: name !== null && name !== void 0 ? name : _this.name, + }); + } + return _this.config.buttonComponent; + } + var providerName = name !== undefined ? name : _this.name; + return jsxRuntime.jsx(ProviderButton, { + logo: _this.getLogo(), + providerName: providerName, + displayName: providerName, + }); + }; + } + Object.defineProperty(Provider.prototype, "id", { + get: function () { + return this.config.id; + }, + enumerable: false, + configurable: true, + }); + Object.defineProperty(Provider.prototype, "name", { + get: function () { + return this.config.name; + }, + enumerable: false, + configurable: true, + }); + Provider.prototype.getRedirectURL = function () { + if (this.config.getRedirectURL) { + return this.config.getRedirectURL(this.config.id); + } + var domain = superTokens.SuperTokens.getInstanceOrThrow().appInfo.websiteDomain.getAsStringDangerous(); + var callbackPath = new NormalisedURLPath__default.default("/callback/".concat(this.config.id)); + var path = superTokens.SuperTokens.getInstanceOrThrow() + .appInfo.websiteBasePath.appendPath(callbackPath) + .getAsStringDangerous(); + return "".concat(domain).concat(path); + }; + Provider.prototype.getRedirectURIOnProviderDashboard = function () { + return undefined; + }; + return Provider; +})(); + /* * Class. */ -var Provider = /** @class */ (function () { +var ActiveDirectory = /** @class */ (function (_super) { + superTokens.__extends(ActiveDirectory, _super); /* * Constructor. */ - function Provider(config) { - var _this = this; - /* - * State management. - */ - this.generateState = function () { - // Generate state using algorithm described in https://github.com/supertokens/supertokens-auth-react/issues/154#issue-796867579 - return "".concat(1e20).replace(/[018]/g, function (c) { - return ( - parseInt(c) ^ - (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (parseInt(c) / 4))) - ).toString(16); - }); + function ActiveDirectory(config) { + var _this = + _super.call(this, superTokens.__assign({ id: "active-directory", name: "Active Directory" }, config)) || + this; + _this.getLogo = function () { + return jsxRuntime.jsxs( + "svg", + superTokens.__assign( + { + width: "18", + height: "16", + viewBox: "0 0 416 415", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + }, + { + children: [ + jsxRuntime.jsxs( + "g", + superTokens.__assign( + { clipPath: "url(#clip0_402_84)" }, + { + children: [ + jsxRuntime.jsx("path", { + d: "M415.575 316.343V403.598C415.575 413.817 412.431 415.914 402.736 414.341C337.753 404.646 271.984 395.737 206.477 386.566C194.686 384.994 190.494 380.802 190.494 367.963C191.542 321.584 191.018 274.943 190.494 228.04C190.494 217.821 193.638 214.677 203.857 214.677C270.936 215.201 336.967 215.201 402.736 215.201C413.479 215.201 416.099 219.393 416.099 229.088C415.051 258.435 415.575 287.258 415.575 316.343Z", + fill: "#00AAF2", + }), + jsxRuntime.jsx("path", { + d: "M304.214 198.431C271.198 198.431 238.183 197.907 205.167 198.431C194.948 198.431 190.756 196.335 190.756 184.544C191.28 137.117 191.28 90.4763 190.756 43.5734C190.756 34.4025 193.9 31.2582 202.547 29.686C270.15 19.991 337.753 10.558 405.356 0.338969C417.147 -1.23319 415.051 6.62762 415.051 13.1783C415.051 55.1026 415.575 97.813 415.051 139.737C415.051 155.197 414.527 170.657 415.051 186.116C415.575 195.811 411.907 198.431 402.736 198.431C370.244 197.907 337.229 198.431 304.214 198.431Z", + fill: "#00AAF2", + }), + jsxRuntime.jsx("path", { + d: "M85.6828 215.987H159.574C167.435 215.987 170.842 218.608 170.842 226.73V372.417C170.842 380.802 167.173 381.588 159.574 380.802C110.575 373.466 61.5764 366.391 12.8393 359.578C3.14432 358.006 0 354.862 0 344.643C0.524054 305.863 0.524054 267.083 0 227.516C0 217.821 2.62027 215.201 12.3153 215.201C37.2078 215.987 61.0523 215.987 85.6828 215.987Z", + fill: "#00AAF2", + }), + jsxRuntime.jsx("path", { + d: "M85.6827 198.431H12.8392C3.66825 198.431 0.523926 195.287 0.523926 185.592C1.04798 147.336 1.04798 109.08 0.523926 70.5621C0.523926 61.3912 3.1442 58.2469 12.8392 56.6747C61.8383 50.3861 110.837 43.3113 159.574 35.4505C170.842 33.8784 171.89 37.5467 171.89 46.7177V186.116C171.89 196.335 167.697 197.907 158.526 197.907C134.158 197.907 109.527 198.431 85.6827 198.431Z", + fill: "#00AAF2", + }), + ], + } + ) + ), + jsxRuntime.jsx("defs", { + children: jsxRuntime.jsx( + "clipPath", + superTokens.__assign( + { id: "clip0_402_84" }, + { + children: jsxRuntime.jsx("rect", { + width: "416", + height: "415", + fill: "white", + }), + } + ) + ), + }), + ], + } + ) + ); }; - this.id = config.id; - this.name = config.name; - this.clientId = config.clientId; - this.getRedirectURL = - config.getRedirectURL !== undefined - ? config.getRedirectURL - : function () { - return _this.defaultGetRedirectURL(); - }; + return _this; } /* - * Components. + * Static Methods */ - Provider.prototype.getDefaultButton = function (name) { - var providerName = name !== undefined ? name : this.name; - return jsxRuntime.jsx(ProviderButton, { - logo: this.getLogo(), - providerName: providerName, - displayName: this.name, - }); + ActiveDirectory.init = function (config) { + if (ActiveDirectory.instance !== undefined) { + console.warn("ActiveDirectory Provider was already initialized"); + return ActiveDirectory.instance; + } + ActiveDirectory.instance = new ActiveDirectory(config); + return ActiveDirectory.instance; }; - Provider.prototype.defaultGetRedirectURL = function () { - var domain = utils$1.SuperTokens.getInstanceOrThrow().appInfo.websiteDomain.getAsStringDangerous(); - var callbackPath = new NormalisedURLPath__default.default("/callback/".concat(this.id)); - var path = utils$1.SuperTokens.getInstanceOrThrow() - .appInfo.websiteBasePath.appendPath(callbackPath) + /* + * Tests methods. + */ + ActiveDirectory.reset = function () { + if (!superTokens.isTest()) { + return; + } + ActiveDirectory.instance = undefined; + return; + }; + return ActiveDirectory; +})(Provider); + +/* + * Class. + */ +var Apple = /** @class */ (function (_super) { + superTokens.__extends(Apple, _super); + /* + * Constructor. + */ + function Apple(config) { + var _this = _super.call(this, superTokens.__assign({ id: "apple", name: "Apple" }, config)) || this; + _this.getLogo = function () { + return jsxRuntime.jsx( + "svg", + superTokens.__assign( + { + xmlns: "http://www.w3.org/2000/svg", + width: "15.614", + height: "18", + viewBox: "0 0 15.614 18.737", + }, + { + children: jsxRuntime.jsxs( + "g", + superTokens.__assign( + { + id: "iconfinder_logo_brand_brands_logos_apple_ios_2993701", + transform: "translate(-2)", + }, + { + children: [ + jsxRuntime.jsx("path", { + id: "Path_91415", + d: "M14.494 11.075a4.29 4.29 0 0 1 2.372-3.836A4.888 4.888 0 0 0 13.713 6a4.783 4.783 0 0 0-1.83.406 4.357 4.357 0 0 1-1.684.375 4.357 4.357 0 0 1-1.684-.375A4.783 4.783 0 0 0 6.685 6C6.206 6 2 6.153 2 11.465c0 4.344 2.964 8.587 4.685 8.587a5.18 5.18 0 0 0 2.194-.464 3.2 3.2 0 0 1 1.32-.316 3.2 3.2 0 0 1 1.32.317 5.187 5.187 0 0 0 2.194.463c1.206 0 2.922-2.085 3.9-4.826a4.209 4.209 0 0 1-3.119-4.151z", + style: { fill: "#000" }, + transform: "translate(0 -1.316)", + }), + jsxRuntime.jsx("path", { + id: "XMLID_1339_", + d: "M12 4.684A4.734 4.734 0 0 0 15.906 0 4.734 4.734 0 0 0 12 4.684z", + style: { fill: "#000" }, + transform: "translate(-2.193)", + }), + jsxRuntime.jsx("path", { + id: "Path_91416", + d: "M6.685 6.2a4.783 4.783 0 0 1 1.83.406 4.357 4.357 0 0 0 1.684.375 4.357 4.357 0 0 0 1.684-.381 4.783 4.783 0 0 1 1.83-.406 4.953 4.953 0 0 1 3.014 1.126c.047-.026.091-.058.14-.082A4.888 4.888 0 0 0 13.713 6a4.783 4.783 0 0 0-1.83.406 4.357 4.357 0 0 1-1.684.375 4.357 4.357 0 0 1-1.684-.375A4.783 4.783 0 0 0 6.685 6C6.206 6 2 6.153 2 11.465v.107C2.053 6.352 6.208 6.2 6.685 6.2z", + style: { fill: "#000", opacity: 0.1 }, + transform: "translate(0 -1.316)", + }), + jsxRuntime.jsx("path", { + id: "Path_91417", + d: "M13.713 21.368a5.187 5.187 0 0 1-2.194-.463 3.2 3.2 0 0 0-1.32-.317 3.2 3.2 0 0 0-1.32.316 5.18 5.18 0 0 1-2.194.464c-1.707 0-4.633-4.174-4.681-8.48v.088c0 4.344 2.964 8.587 4.685 8.587a5.18 5.18 0 0 0 2.19-.463 3.2 3.2 0 0 1 1.32-.316 3.2 3.2 0 0 1 1.32.317 5.187 5.187 0 0 0 2.194.463c1.206 0 2.922-2.085 3.9-4.826-.023-.006-.043-.017-.066-.023-.991 2.654-2.655 4.653-3.834 4.653z", + style: { fill: "#000", opacity: 0.2 }, + transform: "translate(0 -2.826)", + }), + jsxRuntime.jsx("path", { + id: "Path_91418", + d: "M15.888.4A4.621 4.621 0 0 1 12 4.544v.2A4.745 4.745 0 0 0 15.9.261c0 .039 0 .098-.012.139z", + style: { fill: "#000", opacity: 0.2 }, + transform: "translate(-2.193 -.057)", + }), + jsxRuntime.jsx("path", { + id: "Path_91419", + d: "M12.005 4.477c.009-.051.02-.192.032-.278q.012-.161.035-.317A4.491 4.491 0 0 1 15.9.2V0a4.738 4.738 0 0 0-3.895 4.477z", + style: { fill: "#000", opacity: 0.1 }, + transform: "translate(-2.194)", + }), + jsxRuntime.jsx("path", { + id: "Path_91420", + d: "M14.494 9.759a4.29 4.29 0 0 1 2.372-3.836 4.888 4.888 0 0 0-3.153-1.239 4.783 4.783 0 0 0-1.83.406 4.357 4.357 0 0 1-1.684.375 4.357 4.357 0 0 1-1.684-.375 4.783 4.783 0 0 0-1.83-.406C6.206 4.684 2 4.838 2 10.15c0 4.344 2.964 8.587 4.685 8.587a5.18 5.18 0 0 0 2.194-.464 3.2 3.2 0 0 1 1.32-.316 3.2 3.2 0 0 1 1.32.317 5.187 5.187 0 0 0 2.194.463c1.206 0 2.922-2.085 3.9-4.826a4.209 4.209 0 0 1-3.119-4.152zM13.713 0a4.734 4.734 0 0 0-3.9 4.684A4.734 4.734 0 0 0 13.713 0z", + style: { fill: "#000" }, + }), + ], + } + ) + ), + } + ) + ); + }; + return _this; + } + Apple.prototype.getRedirectURIOnProviderDashboard = function () { + var domain = superTokens.SuperTokens.getInstanceOrThrow().appInfo.apiDomain.getAsStringDangerous(); + var callbackPath = new NormalisedURLPath__default$1.default("/callback/".concat(this.id)); + var path = superTokens.SuperTokens.getInstanceOrThrow() + .appInfo.apiBasePath.appendPath(callbackPath) .getAsStringDangerous(); return "".concat(domain).concat(path); }; - return Provider; -})(); + /* + * Static Methods + */ + Apple.init = function (config) { + if (Apple.instance !== undefined) { + console.warn("Apple Provider was already initialized"); + return Apple.instance; + } + Apple.instance = new Apple(config); + return Apple.instance; + }; + /* + * Tests methods. + */ + Apple.reset = function () { + if (!superTokens.isTest()) { + return; + } + Apple.instance = undefined; + return; + }; + return Apple; +})(Provider); + +/* + * Class. + */ +var Bitbucket = /** @class */ (function (_super) { + superTokens.__extends(Bitbucket, _super); + /* + * Constructor. + */ + function Bitbucket(config) { + var _this = _super.call(this, superTokens.__assign({ id: "bitbucket", name: "Bitbucket" }, config)) || this; + _this.getLogo = function () { + return jsxRuntime.jsxs( + "svg", + superTokens.__assign( + { + width: "19", + height: "17", + viewBox: "0 0 19 17", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + }, + { + children: [ + jsxRuntime.jsx("path", { + d: "M0.59534 0.0522702C0.229457 0.0522702 -0.0841565 0.365883 0.0203815 0.73174L2.58156 16.2556C2.63383 16.6738 2.99971 16.9351 3.3656 16.9351H15.6488C15.9624 16.9351 16.1715 16.726 16.2238 16.4124L18.7849 0.679471C18.8372 0.313614 18.5759 0 18.21 0L0.59534 0.0522702ZM11.3628 11.2901H7.44258L6.3972 5.74956H12.3036L11.3628 11.2901Z", + fill: "#2684FF", + }), + jsxRuntime.jsx("path", { + d: "M17.9502 5.76172H12.3052L11.3643 11.3022H7.44415L2.84448 16.7905C2.84448 16.7905 3.05356 16.9996 3.36717 16.9996H15.6504C15.964 16.9996 16.1731 16.7905 16.2253 16.4769L17.9502 5.76172Z", + fill: "url(#paint0_linear_4108_67124)", + }), + jsxRuntime.jsx("defs", { + children: jsxRuntime.jsxs( + "linearGradient", + superTokens.__assign( + { + id: "paint0_linear_4108_67124", + x1: "19.2748", + y1: "7.29202", + x2: "9.92001", + y2: "14.5943", + gradientUnits: "userSpaceOnUse", + }, + { + children: [ + jsxRuntime.jsx("stop", { offset: "0.176", stopColor: "#0052CC" }), + jsxRuntime.jsx("stop", { offset: "1", stopColor: "#2684FF" }), + ], + } + ) + ), + }), + ], + } + ) + ); + }; + return _this; + } + /* + * Static Methods + */ + Bitbucket.init = function (config) { + if (Bitbucket.instance !== undefined) { + console.warn("Bitbucket Provider was already initialized"); + return Bitbucket.instance; + } + Bitbucket.instance = new Bitbucket(config); + return Bitbucket.instance; + }; + /* + * Tests methods. + */ + Bitbucket.reset = function () { + if (!superTokens.isTest()) { + return; + } + Bitbucket.instance = undefined; + return; + }; + return Bitbucket; +})(Provider); + +/* + * Class. + */ +var BoxySAML = /** @class */ (function (_super) { + superTokens.__extends(BoxySAML, _super); + /* + * Constructor. + */ + function BoxySAML(config) { + var _this = _super.call(this, superTokens.__assign({ id: "boxy-saml", name: "BoxySAML" }, config)) || this; + _this.getLogo = function () { + return jsxRuntime.jsx( + "svg", + superTokens.__assign( + { + width: "18", + height: "18", + viewBox: "0 0 315 315", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + }, + { + children: jsxRuntime.jsx("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M77.105 1.63917C73.508 2.90917 68.328 7.66517 48.6 27.8102C9.78001 67.4512 4.335 73.2352 2.366 76.9282C0.576997 80.2832 0.5 84.9492 0.5 189.428V298.428L2.653 302.428C5.419 307.568 8.402 310.306 14 312.844C18.441 314.857 19.926 314.884 127 314.884C234.09 314.884 235.558 314.858 240 312.843C245.891 310.171 310.072 246.476 313.03 240.366C314.954 236.392 314.999 233.722 314.978 126.862C314.957 22.7132 314.867 17.2322 313.114 13.3722C310.846 8.37917 304.317 2.63917 299.142 1.08917C296.299 0.237168 266.809 -0.0508316 188.384 0.00716838C94.448 0.0761684 80.968 0.274168 77.105 1.63917ZM299.587 16.2342L302 19.0402V126.895V234.75L298.923 237.339L295.847 239.928H188.569H81.292L78.712 237.537C77.293 236.221 75.859 233.634 75.527 231.787C75.195 229.939 75.053 181.338 75.211 123.783C75.496 20.7532 75.531 19.1032 77.5 16.9152C78.6 15.6922 80.4 14.3202 81.5 13.8662C82.6 13.4122 131.577 13.1282 190.337 13.2342L297.173 13.4282L299.587 16.2342ZM189.775 79.4872C188.276 80.3002 186.578 81.8482 186.001 82.9262C184.177 86.3332 173.018 165.844 174 168.429C177.035 176.411 188.093 177.229 192.086 169.767C192.692 168.635 195.809 149.655 199.012 127.59C205.461 83.1672 205.462 82.7702 199.128 79.4942C195.412 77.5722 193.306 77.5712 189.775 79.4872ZM147.151 92.3012C145.86 93.0182 138.78 100.089 131.419 108.016C117.072 123.464 115.535 126.23 118.33 131.557C119.159 133.136 126.097 140.616 133.749 148.178C146.43 160.712 147.978 161.928 151.253 161.928C153.66 161.928 155.863 161.073 157.923 159.339C160.53 157.146 161 156.054 161 152.194C161 147.768 160.716 147.349 151.011 137.487L141.022 127.337L151.011 116.416C160.041 106.543 161 105.125 161 101.646C161 96.5122 159.53 94.0472 155.452 92.3432C151.342 90.6262 150.183 90.6202 147.151 92.3012ZM219.923 94.8512C217.643 97.1312 217 98.6762 217 101.873C217 106.272 218.273 108.028 231.174 121.43L236.951 127.433L227.491 137.575C217.182 148.627 215.888 150.869 217.139 155.509C218.403 160.197 221.481 162.428 226.684 162.428C231.123 162.428 231.269 162.315 245.459 147.864C260.272 132.777 262.086 129.914 260.113 124.725C259.055 121.943 233.866 94.4622 230.937 92.8942C227.407 91.0052 222.983 91.7912 219.923 94.8512Z", + fill: "black", + }), + } + ) + ); + }; + return _this; + } + /* + * Static Methods + */ + BoxySAML.init = function (config) { + if (BoxySAML.instance !== undefined) { + console.warn("BoxySAML Provider was already initialized"); + return BoxySAML.instance; + } + BoxySAML.instance = new BoxySAML(config); + return BoxySAML.instance; + }; + /* + * Tests methods. + */ + BoxySAML.reset = function () { + if (!superTokens.isTest()) { + return; + } + BoxySAML.instance = undefined; + return; + }; + return BoxySAML; +})(Provider); + +/* + * Class. + */ +var Discord = /** @class */ (function (_super) { + superTokens.__extends(Discord, _super); + /* + * Constructor. + */ + function Discord(config) { + var _this = _super.call(this, superTokens.__assign({ id: "discord", name: "Discord" }, config)) || this; + _this.getLogo = function () { + return jsxRuntime.jsxs( + "svg", + superTokens.__assign( + { + width: "18", + height: "14", + viewBox: "0 0 18 14", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + }, + { + children: [ + jsxRuntime.jsx( + "g", + superTokens.__assign( + { clipPath: "url(#clip0_4108_67056)" }, + { + children: jsxRuntime.jsx("path", { + d: "M15.2477 1.17248C14.0651 0.616848 12.8166 0.222666 11.5342 0C11.3587 0.321942 11.1999 0.653178 11.0585 0.99232C9.69245 0.781074 8.30327 0.781074 6.93722 0.99232C6.79573 0.653213 6.63694 0.321981 6.46152 0C5.17826 0.224546 3.92896 0.619664 2.74515 1.17538C0.394984 4.74367 -0.242109 8.22333 0.0764376 11.6536C1.45275 12.6971 2.99324 13.4908 4.63094 14C4.99971 13.491 5.32601 12.9511 5.6064 12.3858C5.07384 12.1817 4.55982 11.9299 4.0703 11.6332C4.19914 11.5374 4.32514 11.4386 4.4469 11.3427C5.87129 12.0301 7.42594 12.3865 8.99999 12.3865C10.574 12.3865 12.1287 12.0301 13.5531 11.3427C13.6762 11.4458 13.8023 11.5446 13.9297 11.6332C13.4392 11.9304 12.9242 12.1827 12.3907 12.3873C12.6708 12.9523 12.9971 13.4918 13.3662 14C15.0053 13.4928 16.547 12.6996 17.9235 11.655C18.2973 7.67704 17.285 4.22935 15.2477 1.17248ZM6.0099 9.544C5.12221 9.544 4.38885 8.71731 4.38885 7.70029C4.38885 6.68327 5.09673 5.84931 6.00707 5.84931C6.9174 5.84931 7.6451 6.68327 7.62953 7.70029C7.61396 8.71731 6.91457 9.544 6.0099 9.544ZM11.9901 9.544C11.101 9.544 10.3704 8.71731 10.3704 7.70029C10.3704 6.68327 11.0783 5.84931 11.9901 5.84931C12.9018 5.84931 13.6239 6.68327 13.6083 7.70029C13.5927 8.71731 12.8947 9.544 11.9901 9.544Z", + fill: "#5865F2", + }), + } + ) + ), + jsxRuntime.jsx("defs", { + children: jsxRuntime.jsx( + "clipPath", + superTokens.__assign( + { id: "clip0_4108_67056" }, + { + children: jsxRuntime.jsx("rect", { + width: "18", + height: "14", + fill: "white", + }), + } + ) + ), + }), + ], + } + ) + ); + }; + return _this; + } + /* + * Static Methods + */ + Discord.init = function (config) { + if (Discord.instance !== undefined) { + console.warn("Discord Provider was already initialized"); + return Discord.instance; + } + Discord.instance = new Discord(config); + return Discord.instance; + }; + /* + * Tests methods. + */ + Discord.reset = function () { + if (!superTokens.isTest()) { + return; + } + Discord.instance = undefined; + return; + }; + return Discord; +})(Provider); + +/* + * Class. + */ +var Facebook = /** @class */ (function (_super) { + superTokens.__extends(Facebook, _super); + /* + * Constructor. + */ + function Facebook(config) { + var _this = _super.call(this, superTokens.__assign({ id: "facebook", name: "Facebook" }, config)) || this; + _this.getLogo = function () { + return jsxRuntime.jsx( + "svg", + superTokens.__assign( + { + fill: "#1777F2", + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 30 30", + width: "24px", + height: "24px", + }, + { + children: jsxRuntime.jsx("path", { + d: "M15,3C8.373,3,3,8.373,3,15c0,6.016,4.432,10.984,10.206,11.852V18.18h-2.969v-3.154h2.969v-2.099c0-3.475,1.693-5,4.581-5 c1.383,0,2.115,0.103,2.461,0.149v2.753h-1.97c-1.226,0-1.654,1.163-1.654,2.473v1.724h3.593L19.73,18.18h-3.106v8.697 C22.481,26.083,27,21.075,27,15C27,8.373,21.627,3,15,3z", + }), + } + ) + ); + }; + return _this; + } + /* + * Static Methods + */ + Facebook.init = function (config) { + if (Facebook.instance !== undefined) { + console.warn("Facebook Provider was already initialized"); + return Facebook.instance; + } + Facebook.instance = new Facebook(config); + return Facebook.instance; + }; + /* + * Tests methods. + */ + Facebook.reset = function () { + if (!superTokens.isTest()) { + return; + } + Facebook.instance = undefined; + return; + }; + return Facebook; +})(Provider); + +/* + * Class. + */ +var Github = /** @class */ (function (_super) { + superTokens.__extends(Github, _super); + /* + * Constructor. + */ + function Github(config) { + var _this = _super.call(this, superTokens.__assign({ id: "github", name: "GitHub" }, config)) || this; + _this.getLogo = function () { + return jsxRuntime.jsx( + "svg", + superTokens.__assign( + { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "17.556", viewBox: "0 0 18 17.556" }, + { + children: jsxRuntime.jsx("path", { + fill: "#000", + fillRule: "evenodd", + d: "M145.319 107.44a9 9 0 0 0-2.844 17.54c.45.082.614-.2.614-.434 0-.214-.008-.78-.012-1.531-2.5.544-3.032-1.206-3.032-1.206a2.384 2.384 0 0 0-1-1.317c-.817-.559.062-.547.062-.547a1.89 1.89 0 0 1 1.378.927 1.916 1.916 0 0 0 2.619.748 1.924 1.924 0 0 1 .571-1.2c-2-.227-4.1-1-4.1-4.448a3.479 3.479 0 0 1 .927-2.415 3.233 3.233 0 0 1 .088-2.382s.755-.242 2.475.923a8.535 8.535 0 0 1 4.506 0c1.718-1.165 2.472-.923 2.472-.923a3.234 3.234 0 0 1 .09 2.382 3.473 3.473 0 0 1 .925 2.415c0 3.458-2.1 4.218-4.11 4.441a2.149 2.149 0 0 1 .611 1.667c0 1.2-.011 2.174-.011 2.469 0 .24.162.52.619.433a9 9 0 0 0-2.851-17.539z", + transform: "translate(-136.32 -107.44)", + }), + } + ) + ); + }; + return _this; + } + /* + * Static Methods + */ + Github.init = function (config) { + if (Github.instance !== undefined) { + console.warn("Github Provider was already initialized"); + return Github.instance; + } + Github.instance = new Github(config); + return Github.instance; + }; + /* + * Tests methods. + */ + Github.reset = function () { + if (!superTokens.isTest()) { + return; + } + Github.instance = undefined; + return; + }; + return Github; +})(Provider); + +/* + * Class. + */ +var Gitlab = /** @class */ (function (_super) { + superTokens.__extends(Gitlab, _super); + /* + * Constructor. + */ + function Gitlab(config) { + var _this = _super.call(this, superTokens.__assign({ id: "gitlab", name: "Gitlab" }, config)) || this; + _this.getLogo = function () { + return jsxRuntime.jsxs( + "svg", + superTokens.__assign( + { + width: "18", + height: "18", + viewBox: "0 0 18 18", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + }, + { + children: [ + jsxRuntime.jsx("path", { + d: "M17.7004 6.86178L17.6751 6.79711L15.2251 0.403269C15.1753 0.277953 15.087 0.171648 14.973 0.0996044C14.8589 0.0287852 14.7259 -0.00532357 14.5918 0.00188338C14.4577 0.00909034 14.3291 0.057266 14.2232 0.139906C14.1186 0.224918 14.0426 0.340113 14.0058 0.469813L12.3516 5.5309H5.65312L3.99889 0.469813C3.96302 0.339406 3.88693 0.223634 3.78145 0.138968C3.67562 0.0563286 3.54698 0.0081529 3.41289 0.000945942C3.27881 -0.00626101 3.14574 0.0278478 3.03166 0.0986669C2.91791 0.171001 2.82972 0.277214 2.77954 0.402332L0.324918 6.79336L0.30055 6.85803C-0.0521303 7.77953 -0.0956629 8.79071 0.176516 9.73911C0.448694 10.6875 1.02183 11.5217 1.8095 12.1159L1.81794 12.1225L1.84043 12.1384L5.57251 14.9333L7.41888 16.3307L8.54356 17.1798C8.67512 17.2797 8.83575 17.3338 9.00093 17.3338C9.16611 17.3338 9.32675 17.2797 9.45831 17.1798L10.583 16.3307L12.4293 14.9333L16.1839 12.1216L16.1933 12.1141C16.9792 11.5197 17.551 10.6864 17.8228 9.73926C18.0945 8.79214 18.0516 7.7824 17.7004 6.86178Z", + fill: "#E24329", + }), + jsxRuntime.jsx("path", { + d: "M17.7004 6.86154L17.6751 6.79688C16.4813 7.04191 15.3564 7.54756 14.3807 8.27771L9 12.3463C10.8323 13.7324 12.4275 14.9368 12.4275 14.9368L16.1821 12.1251L16.1914 12.1176C16.9785 11.5233 17.5511 10.6894 17.8233 9.74145C18.0954 8.79352 18.0523 7.78284 17.7004 6.86154Z", + fill: "#FC6D26", + }), + jsxRuntime.jsx("path", { + d: "M5.57251 14.9362L7.41887 16.3337L8.54356 17.1828C8.67511 17.2827 8.83575 17.3367 9.00093 17.3367C9.16611 17.3367 9.32674 17.2827 9.4583 17.1828L10.583 16.3337L12.4293 14.9362C12.4293 14.9362 10.8323 13.7281 8.99999 12.3457C7.16769 13.7281 5.57251 14.9362 5.57251 14.9362Z", + fill: "#FCA326", + }), + jsxRuntime.jsx("path", { + d: "M3.61837 8.27755C2.64345 7.5459 1.51877 7.03893 0.324918 6.79297L0.30055 6.85764C-0.0521303 7.77914 -0.0956629 8.79031 0.176516 9.73871C0.448694 10.6871 1.02183 11.5213 1.8095 12.1155L1.81794 12.1221L1.84043 12.138L5.57251 14.9329C5.57251 14.9329 7.16582 13.7285 9 12.3424L3.61837 8.27755Z", + fill: "#FC6D26", + }), + ], + } + ) + ); + }; + return _this; + } + /* + * Static Methods + */ + Gitlab.init = function (config) { + if (Gitlab.instance !== undefined) { + console.warn("Gitlab Provider was already initialized"); + return Gitlab.instance; + } + Gitlab.instance = new Gitlab(config); + return Gitlab.instance; + }; + /* + * Tests methods. + */ + Gitlab.reset = function () { + if (!superTokens.isTest()) { + return; + } + Gitlab.instance = undefined; + return; + }; + return Gitlab; +})(Provider); + +/* + * Class. + */ +var Google = /** @class */ (function (_super) { + superTokens.__extends(Google, _super); + /* + * Constructor. + */ + function Google(config) { + var _this = _super.call(this, superTokens.__assign({ id: "google", name: "Google" }, config)) || this; + _this.getLogo = function () { + return jsxRuntime.jsxs( + "svg", + superTokens.__assign( + { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 48 48", width: "18px", height: "18px" }, + { + children: [ + jsxRuntime.jsx("path", { + fill: "#FFC107", + d: "M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12c0-6.627,5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24c0,11.045,8.955,20,20,20c11.045,0,20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z", + }), + jsxRuntime.jsx("path", { + fill: "#FF3D00", + d: "M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z", + }), + jsxRuntime.jsx("path", { + fill: "#4CAF50", + d: "M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36c-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z", + }), + jsxRuntime.jsx("path", { + fill: "#1976D2", + d: "M43.611,20.083H42V20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571c0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z", + }), + ], + } + ) + ); + }; + return _this; + } + /* + * Static Methods + */ + Google.init = function (config) { + if (Google.instance !== undefined) { + console.warn("Google Provider was already initialized"); + return Google.instance; + } + Google.instance = new Google(config); + return Google.instance; + }; + /* + * Tests methods. + */ + Google.reset = function () { + if (!superTokens.isTest()) { + return; + } + Google.instance = undefined; + return; + }; + return Google; +})(Provider); + +var GoogleWorkspaces = /** @class */ (function (_super) { + superTokens.__extends(GoogleWorkspaces, _super); + function GoogleWorkspaces(config) { + var _this = + _super.call(this, superTokens.__assign({ id: "google-workspaces", name: "Google Workspaces" }, config)) || + this; + _this.getLogo = function () { + return jsxRuntime.jsxs( + "svg", + superTokens.__assign( + { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 48 48", width: "18px", height: "18px" }, + { + children: [ + jsxRuntime.jsx("path", { + fill: "#FFC107", + d: "M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12c0-6.627,5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24c0,11.045,8.955,20,20,20c11.045,0,20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z", + }), + jsxRuntime.jsx("path", { + fill: "#FF3D00", + d: "M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z", + }), + jsxRuntime.jsx("path", { + fill: "#4CAF50", + d: "M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36c-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z", + }), + jsxRuntime.jsx("path", { + fill: "#1976D2", + d: "M43.611,20.083H42V20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571c0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z", + }), + ], + } + ) + ); + }; + return _this; + } + /* + * Static Methods + */ + GoogleWorkspaces.init = function (config) { + if (GoogleWorkspaces.instance !== undefined) { + console.warn("GoogleWorkspaces Provider was already initialized"); + return GoogleWorkspaces.instance; + } + GoogleWorkspaces.instance = new GoogleWorkspaces(config); + return GoogleWorkspaces.instance; + }; + /* + * Tests methods. + */ + GoogleWorkspaces.reset = function () { + if (!superTokens.isTest()) { + return; + } + GoogleWorkspaces.instance = undefined; + return; + }; + return GoogleWorkspaces; +})(Provider); + +/* + * Class. + */ +var LinkedIn = /** @class */ (function (_super) { + superTokens.__extends(LinkedIn, _super); + /* + * Constructor. + */ + function LinkedIn(config) { + var _this = _super.call(this, superTokens.__assign({ id: "linkedin", name: "LinkedIn" }, config)) || this; + _this.getLogo = function () { + return jsxRuntime.jsxs( + "svg", + superTokens.__assign( + { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 48 48", width: "20", height: "20" }, + { + children: [ + jsxRuntime.jsx("path", { + fill: "#0288D1", + d: "M42,37c0,2.762-2.238,5-5,5H11c-2.761,0-5-2.238-5-5V11c0-2.762,2.239-5,5-5h26c2.762,0,5,2.238,5,5V37z", + }), + jsxRuntime.jsx("path", { + fill: "#FFF", + d: "M12 19H17V36H12zM14.485 17h-.028C12.965 17 12 15.888 12 14.499 12 13.08 12.995 12 14.514 12c1.521 0 2.458 1.08 2.486 2.499C17 15.887 16.035 17 14.485 17zM36 36h-5v-9.099c0-2.198-1.225-3.698-3.192-3.698-1.501 0-2.313 1.012-2.707 1.99C24.957 25.543 25 26.511 25 27v9h-5V19h5v2.616C25.721 20.5 26.85 19 29.738 19c3.578 0 6.261 2.25 6.261 7.274L36 36 36 36z", + }), + ], + } + ) + ); + }; + return _this; + } + /* + * Static Methods + */ + LinkedIn.init = function (config) { + if (LinkedIn.instance !== undefined) { + console.warn("LinkedIn Provider was already initialized"); + return LinkedIn.instance; + } + LinkedIn.instance = new LinkedIn(config); + return LinkedIn.instance; + }; + /* + * Tests methods. + */ + LinkedIn.reset = function () { + if (!superTokens.isTest()) { + return; + } + LinkedIn.instance = undefined; + return; + }; + return LinkedIn; +})(Provider); + +/* + * Class. + */ +var Okta = /** @class */ (function (_super) { + superTokens.__extends(Okta, _super); + /* + * Constructor. + */ + function Okta(config) { + var _this = _super.call(this, superTokens.__assign({ id: "okta", name: "Okta" }, config)) || this; + _this.getLogo = function () { + return jsxRuntime.jsx( + "svg", + superTokens.__assign( + { + width: "18", + height: "18", + viewBox: "0 0 1593 1594", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + }, + { + children: jsxRuntime.jsx("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M755.371 0.822553C753.587 1.24555 751.498 2.11455 750.729 2.75355C746.718 6.08155 746.699 5.58056 754.545 104.932C758.689 157.411 762.328 202.485 762.632 205.098L763.184 209.848H744.726C726.381 209.848 726.25 209.864 723.226 212.408C721.414 213.933 719.977 216.259 719.674 218.158C719.394 219.913 723.341 265.223 728.444 318.848L737.723 416.348L740.669 416.149C742.289 416.04 749.69 415.253 757.115 414.4C772.989 412.578 813.813 412.311 830.965 413.918C837.208 414.503 842.472 414.824 842.664 414.632C842.856 414.44 850.523 322.801 859.702 210.989L876.391 7.69355L874.409 5.02055C870.729 0.055553 869.505 -0.0424466 812.115 0.00655337C782.69 0.0315534 757.155 0.398553 755.371 0.822553ZM565.615 32.4186C552.965 37.0716 530.015 45.4686 514.615 51.0796C484.148 62.1796 480.115 64.4656 480.115 70.6336C480.115 72.2766 483.995 82.1086 488.736 92.4836C493.478 102.859 512.153 143.662 530.236 183.156C548.32 222.651 563.115 255.305 563.115 255.722C563.115 256.138 560.077 257.532 556.365 258.82C539.094 264.812 529.035 269.124 527.622 271.142C524.052 276.239 524.624 277.664 560.735 353.573C579.777 393.599 598.737 433.548 602.87 442.348C607.003 451.148 610.549 458.536 610.75 458.765C610.951 458.994 618.653 455.547 627.865 451.104C653.08 438.944 674.875 430.862 698.988 424.731C704.143 423.42 708.548 421.865 708.777 421.275C709.006 420.684 698.347 380.634 685.091 332.275C671.834 283.915 655.808 225.448 649.478 202.348C615.597 78.7125 602.973 33.0726 601.964 30.5636C600.329 26.4996 596.44 23.8386 592.23 23.9026C590.242 23.9336 578.265 27.7656 565.615 32.4186ZM1022.17 36.5976C1019.4 39.1596 1017.38 45.9386 992.619 135.803C978 188.853 965.914 232.383 965.761 232.535C965.609 232.688 959.213 230.53 951.549 227.74C931.496 220.44 931.001 220.334 926.683 222.383C924.683 223.332 922.644 224.86 922.152 225.778C921.661 226.696 911.079 266.35 898.637 313.898C886.195 361.445 874.932 404.38 873.608 409.307C872.283 414.235 871.384 418.45 871.608 418.674C871.832 418.899 880.476 421.241 890.815 423.879C916.054 430.32 936.711 437.651 959.49 448.252C964.921 450.78 969.702 452.848 970.113 452.848C970.525 452.848 976.728 440.136 983.898 424.598C991.068 409.06 1019.75 346.848 1047.64 286.348C1075.52 225.848 1107.79 155.873 1119.35 130.848C1130.9 105.823 1140.57 83.7506 1140.84 81.7986C1141.22 78.9866 1140.77 77.5966 1138.68 75.1026C1137.22 73.3706 1135.03 71.6546 1133.82 71.2896C1132.61 70.9236 1120.81 66.6616 1107.61 61.8176C1046.92 39.5476 1030.7 33.8476 1028.02 33.8476C1026.27 33.8476 1023.98 34.9246 1022.17 36.5976ZM329.005 148.532C245.629 218.213 248.776 215.262 250.73 221.938C251.335 224.006 273.753 247.432 321.615 296.014C360.115 335.093 391.75 367.421 391.914 367.854C392.078 368.287 386.17 373.621 378.785 379.708C371.4 385.794 365.078 391.502 364.736 392.393C364.395 393.283 364.115 395.861 364.115 398.121C364.115 402.223 364.199 402.313 416.365 453.74C445.103 482.071 477.192 513.722 487.675 524.077L506.736 542.903L524.175 525.558C542.748 507.086 555.863 495.894 573.615 483.366C579.665 479.097 585.011 475.24 585.494 474.797C585.978 474.353 580.844 466.196 574.085 456.669C544.09 414.391 470.535 310.468 415.313 232.348C382.267 185.598 353.7 145.661 351.831 143.598C348.861 140.319 347.867 139.848 343.915 139.848C339.701 139.848 338.695 140.434 329.005 148.532ZM1266.86 160.603C1265.34 161.563 1248.24 184.66 1228.86 211.931C1209.47 239.202 1183.49 275.757 1171.11 293.165C1158.74 310.572 1148.32 324.71 1147.96 324.581C1147.6 324.453 1142.05 319.848 1135.63 314.348C1120.81 301.641 1118.24 300.194 1113.19 301.708C1109.71 302.75 1107.81 305.149 1089.56 331.595C1041.95 400.595 1030.76 416.804 1013.94 441.099C1004.14 455.261 996.14 467.186 996.17 467.599C996.2 468.011 1000.75 471.244 1006.29 474.783C1026.66 487.806 1045.12 502.629 1064.51 521.544L1077.4 534.123L1112.55 498.735C1131.88 479.272 1170.41 440.398 1198.17 412.348C1225.93 384.298 1274.45 335.297 1305.99 303.457C1338.08 271.062 1363.91 244.196 1364.63 242.456C1366.98 236.843 1365.62 234.388 1355.24 225.499C1332.08 205.669 1278.42 161.08 1276.43 160.016C1273.35 158.37 1270.07 158.572 1266.86 160.603ZM145.518 334.381C142.968 335.672 137.54 344.388 114.831 383.649C99.6567 409.883 86.7447 432.664 86.1367 434.272C84.7277 438.001 85.6147 442.035 88.4167 444.642C90.4437 446.528 119.381 460.718 157.115 478.328C180.061 489.037 240.525 517.654 256.793 525.506L270.97 532.348L262.058 547.348C252.182 563.97 251.204 567.61 255.365 572.24C257.418 574.524 269.859 580.474 324.615 605.355C333.415 609.354 349.165 616.553 359.615 621.353C370.065 626.153 386.49 633.665 396.115 638.048C405.74 642.43 418.937 648.508 425.441 651.556C432.107 654.679 437.635 656.715 438.111 656.222C438.575 655.741 440.65 651.073 442.721 645.848C450.527 626.156 468.233 594.437 482.59 574.427C485.67 570.134 488.286 566.26 488.403 565.819C488.52 565.378 483.89 561.754 478.115 557.765C472.34 553.776 451.64 539.493 432.115 526.025C412.59 512.557 392.34 498.519 387.115 494.829C381.89 491.138 366.59 480.543 353.115 471.283C328.265 454.206 301.206 435.556 277.615 419.246C270.465 414.303 244.815 396.601 220.615 379.909C196.415 363.217 171.6 346.023 165.471 341.7C153.324 333.133 150.227 331.997 145.518 334.381ZM1454.14 360.033C1451.91 360.861 1447.53 363.841 1373.61 414.842C1287.56 474.22 1288.27 473.746 1287.31 472.517C1286.81 471.874 1282.69 464.927 1278.17 457.079C1269.79 442.539 1267.24 439.848 1261.89 439.848C1259.16 439.848 1261.37 438.394 1229.11 461.347C1215.09 471.325 1186.29 491.803 1165.11 506.853C1106.29 548.661 1096.11 555.969 1096.11 556.41C1096.11 556.633 1098.97 560.536 1102.46 565.082C1116.69 583.637 1130.43 606.122 1142.17 630.093L1150.28 646.663L1155.45 644.372C1158.29 643.112 1174.79 635.344 1192.11 627.109C1209.44 618.873 1231.04 608.635 1240.11 604.357C1257.3 596.254 1323.82 564.737 1354.11 550.34C1363.74 545.767 1397.94 529.553 1430.11 514.31C1518.36 472.5 1518.64 472.365 1520.45 469.777C1524.17 464.466 1523.53 463.03 1496.26 415.971C1482.04 391.428 1469.71 369.989 1468.85 368.327C1465.31 361.432 1459.39 358.093 1454.14 360.033ZM31.3707 581.891C26.9977 582.837 25.6537 584.122 23.8157 589.112C21.5067 595.379 3.7927 697.43 4.5147 700.305C4.8527 701.651 6.1477 703.938 7.3937 705.386C9.9457 708.353 9.4697 708.277 47.1147 711.767C58.9397 712.863 95.1647 716.26 127.615 719.314C160.065 722.369 192.015 725.359 198.615 725.96C205.215 726.56 210.808 727.236 211.044 727.462C211.28 727.688 210.257 734.954 208.772 743.61C205.433 763.065 205.403 765.788 208.494 769.122C211.134 771.972 212.318 772.202 232.615 773.807C254.085 775.505 355.259 783.745 375.115 785.413C411.55 788.474 410.718 788.467 411.449 785.736C411.8 784.423 412.098 780.198 412.111 776.348C412.169 758.857 417.544 724.291 424.135 699.017C426.238 690.954 427.793 684.193 427.592 683.992C427.231 683.63 369.058 668.328 324.615 656.903C311.965 653.652 282.49 645.97 259.115 639.834C235.74 633.697 207.39 626.273 196.115 623.335C184.84 620.397 170.44 616.634 164.115 614.973C157.79 613.311 126.515 605.163 94.6147 596.866C62.7147 588.569 36.1647 581.647 35.6147 581.484C35.0647 581.322 33.1547 581.504 31.3707 581.891ZM1546.11 615.815C1538.14 617.903 1517.44 623.289 1500.11 627.783C1482.79 632.277 1446.19 641.82 1418.78 648.988C1391.38 656.157 1368.74 661.812 1368.49 661.555C1368.23 661.298 1366.71 653.613 1365.11 644.477C1363.51 635.34 1361.72 626.985 1361.15 625.908C1359.64 623.097 1356.07 620.848 1353.12 620.848C1350.89 620.848 1319.22 629.338 1256.11 646.849C1218.37 657.324 1164.54 672.094 1162.31 672.591C1160.67 672.954 1160.18 673.576 1160.63 674.726C1160.98 675.618 1163.04 682.415 1165.21 689.831C1171.93 712.75 1176.96 739.931 1179.09 764.738C1179.62 771.002 1180.21 776.278 1180.4 776.463C1180.58 776.647 1184.75 776.373 1189.67 775.854C1194.59 775.334 1206.49 774.203 1216.11 773.34C1225.74 772.477 1237.66 771.337 1242.61 770.807C1247.56 770.277 1259.26 769.175 1268.61 768.359C1277.96 767.542 1297.76 765.739 1312.61 764.352C1327.46 762.965 1351.76 760.703 1366.61 759.324C1381.46 757.946 1398.56 756.353 1404.61 755.783C1410.66 755.214 1424.84 753.889 1436.11 752.838C1480.11 748.74 1523.98 744.648 1554.1 741.832C1587.92 738.671 1589.03 738.398 1591.9 732.558C1593.01 730.282 1592.01 723.182 1584.11 677.148C1579.12 648.108 1574.33 622.397 1573.46 620.013C1571.73 615.25 1567.31 611.801 1563.11 611.936C1561.74 611.981 1554.09 613.726 1546.11 615.815ZM1180.11 811.098C1180.1 829.653 1174.94 865.216 1168.58 890.527C1166.13 900.282 1164.46 908.593 1164.87 908.996C1165.28 909.4 1183.16 914.3 1204.61 919.885C1265.74 935.803 1343.25 956.012 1382.61 966.298C1434.97 979.976 1520.96 1002.4 1540.48 1007.47C1549.76 1009.88 1558.22 1011.85 1559.28 1011.85C1562.6 1011.85 1566.79 1009.06 1567.87 1006.14C1569.38 1002.05 1587.17 899.031 1587.14 894.521C1587.11 889.775 1583.01 885.25 1578.01 884.451C1576.14 884.152 1561.79 882.755 1546.11 881.347C1530.44 879.939 1498.49 876.975 1475.11 874.761C1451.74 872.547 1420.97 869.651 1406.73 868.326C1392.5 867 1380.69 865.761 1380.5 865.572C1380.32 865.382 1381.57 857.364 1383.29 847.752C1386.1 832.106 1386.28 829.975 1385.02 827.402C1381.71 820.637 1382.47 820.776 1324.61 816.341C1313.61 815.498 1288.41 813.469 1268.61 811.832C1248.81 810.194 1226.76 808.379 1219.61 807.797C1212.46 807.215 1201.66 806.315 1195.61 805.797C1178.62 804.342 1180.12 803.83 1180.11 811.098ZM397.115 818.912C392.44 819.344 376.015 820.879 360.615 822.323C345.215 823.767 328.115 825.357 322.615 825.855C276.577 830.032 196.789 837.342 170.544 839.788C140.378 842.599 95.6827 846.715 33.6837 852.39C4.40771 855.07 3.0157 855.448 0.533704 861.387C-0.782296 864.537 -0.220296 868.502 8.7057 919.052C13.9777 948.908 18.9107 974.817 19.6667 976.628C20.5917 978.841 22.2407 980.421 24.6967 981.447C28.2817 982.945 29.1557 982.763 70.9827 971.828C161.789 948.087 220.975 932.848 222.371 932.848C223.461 932.848 224.394 936.188 226.072 946.098C230.012 969.362 230.596 970.862 236.474 972.801C239.529 973.81 242.351 973.262 262.259 967.796C291.917 959.653 347.281 944.37 372.615 937.334C385.633 933.718 407.383 927.797 422.865 923.654C432.227 921.149 432.179 921.238 429.072 912.255C421.718 890.993 414.578 854.193 412.55 827.098L411.857 817.848L408.736 817.987C407.019 818.064 401.79 818.48 397.115 818.912ZM1153.04 939.543C1143.25 965.286 1122.61 1002.6 1106.45 1023.77C1103.72 1027.35 1103.3 1028.45 1104.33 1029.42C1105.04 1030.09 1111.46 1034.64 1118.61 1039.54C1125.76 1044.44 1143.99 1057.02 1159.11 1067.49C1174.24 1077.97 1196.06 1093.04 1207.61 1100.99C1219.16 1108.94 1244.81 1126.63 1264.61 1140.32C1284.41 1154 1316.59 1176.22 1336.11 1189.69C1355.64 1203.16 1376.56 1217.63 1382.61 1221.85C1420.7 1248.42 1436.69 1259.15 1439.29 1259.9C1441.18 1260.44 1443.59 1260.31 1445.92 1259.55C1449.29 1258.44 1450.47 1256.81 1461.18 1238.35C1467.56 1227.35 1480.36 1205.3 1489.63 1189.35C1511.51 1151.7 1511.5 1151.79 1493.61 1143.36C1488.66 1141.03 1472.01 1133.16 1456.61 1125.88C1441.21 1118.6 1420.96 1109.03 1411.61 1104.61C1402.26 1100.2 1381.34 1090.29 1365.11 1082.59C1348.89 1074.9 1332.31 1067.06 1328.28 1065.18C1321.16 1061.87 1320.98 1061.7 1322.37 1059.56C1323.16 1058.34 1327.25 1051.46 1331.46 1044.27C1341.99 1026.29 1341.77 1023.1 1329.61 1017.07C1324.33 1014.45 1310 1007.86 1235.11 973.62C1225.49 969.218 1203.52 959.144 1186.3 951.233C1169.07 943.321 1154.77 936.848 1154.52 936.848C1154.27 936.848 1153.6 938.061 1153.04 939.543ZM391.115 971.447C363.89 984.392 331.715 999.628 319.615 1005.3C307.515 1010.98 287.04 1020.67 274.115 1026.84C261.19 1033.01 233.965 1045.94 213.615 1055.57C193.265 1065.2 164.015 1079.06 148.615 1086.35C133.215 1093.65 110.49 1104.4 98.1147 1110.24C75.6867 1120.82 71.7627 1123.42 70.4827 1128.52C69.6017 1132.03 70.2547 1133.27 100.471 1185.75C127.515 1232.72 129.014 1234.84 135.115 1234.84C136.695 1234.84 145.163 1229.63 158.115 1220.7C169.39 1212.93 186.49 1201.13 196.115 1194.5C205.74 1187.86 220.163 1177.91 228.167 1172.39C236.171 1166.86 252.509 1155.6 264.473 1147.35C276.438 1139.1 290.133 1129.57 294.908 1126.18C299.682 1122.8 303.898 1120.21 304.276 1120.45C304.654 1120.68 308.659 1127.41 313.176 1135.39C317.692 1143.38 322.512 1150.8 323.886 1151.88C325.358 1153.04 327.921 1153.85 330.125 1153.85C333.294 1153.85 336.362 1152.07 350.24 1142.19C359.246 1135.78 379.665 1121.24 395.615 1109.87C411.565 1098.51 440.365 1078.04 459.615 1064.37C478.865 1050.71 494.989 1039.21 495.447 1038.81C495.904 1038.41 492.342 1032.79 487.531 1026.32C473.616 1007.61 462.768 989.878 451.909 968.098C446.356 956.96 441.543 947.863 441.214 947.88C440.884 947.898 418.34 958.503 391.115 971.447ZM1069.61 1066.17C1052.95 1083.09 1034.57 1098.84 1016.98 1111.27L1005.35 1119.49L1015.54 1133.92C1021.14 1141.85 1034.51 1160.72 1045.24 1175.85C1055.97 1190.97 1076.82 1220.45 1091.59 1241.35C1106.35 1262.25 1121.66 1283.85 1125.62 1289.35C1129.57 1294.85 1156.32 1332.65 1185.06 1373.35C1213.8 1414.05 1238.84 1448.81 1240.7 1450.6C1243.35 1453.14 1244.94 1453.85 1248.02 1453.85C1251.64 1453.85 1253.47 1452.58 1270.78 1438.07C1281.14 1429.39 1300.53 1413.14 1313.88 1401.96C1327.23 1390.79 1338.81 1380.69 1339.63 1379.52C1340.45 1378.36 1341.11 1375.66 1341.11 1373.52C1341.11 1369.76 1339.86 1368.37 1297.98 1325.72C1274.26 1301.56 1254.53 1281.6 1254.14 1281.36C1253.75 1281.12 1241.22 1268.37 1226.3 1253.04L1199.17 1225.15L1211.74 1214.78C1218.65 1209.08 1225.17 1203.33 1226.21 1202C1228.36 1199.26 1228.64 1194.38 1226.83 1191.25C1225.67 1189.25 1086.54 1051.57 1085.24 1051.14C1084.9 1051.02 1077.86 1057.79 1069.61 1066.17ZM485.54 1089.1C443.499 1131.55 280.64 1296.23 253.142 1324.09C240.232 1337.17 229.11 1348.88 228.427 1350.11C227.745 1351.34 227.17 1353.67 227.15 1355.29C227.102 1359.31 230.005 1361.98 277.478 1401.6C319.385 1436.57 319.323 1436.53 325.491 1433.72C326.947 1433.06 334.858 1422.9 344.761 1408.97C354.001 1395.98 370.38 1372.97 381.159 1357.85C391.939 1342.72 410.34 1316.85 422.051 1300.35C433.762 1283.85 443.681 1269.98 444.093 1269.53C444.506 1269.09 451.017 1273.92 458.563 1280.29C466.109 1286.65 473.371 1292.12 474.699 1292.46C478.081 1293.31 481.896 1292.16 484.35 1289.56C486.257 1287.54 597.115 1127.06 597.115 1126.32C597.115 1126.14 592.542 1123 586.953 1119.34C566.513 1105.95 545.465 1089.04 527.51 1071.6C520.853 1065.14 515.204 1059.85 514.957 1059.85C514.71 1059.85 501.473 1073.01 485.54 1089.1ZM970.615 1139.54C946.744 1151.7 918.648 1162.43 894.115 1168.75C884.345 1171.26 882.668 1171.98 882.965 1173.53C883.157 1174.53 890.275 1200.77 898.784 1231.85C907.292 1262.92 927.242 1335.82 943.117 1393.85C958.992 1451.87 975.842 1513.45 980.561 1530.69C985.28 1547.92 989.582 1562.85 990.122 1563.86C991.74 1566.88 996.205 1569.85 999.144 1569.85C1000.66 1569.85 1016.24 1564.64 1033.76 1558.28C1051.28 1551.92 1074.84 1543.35 1086.11 1539.25C1108.22 1531.21 1112.11 1528.77 1112.11 1522.97C1112.11 1521.39 1103.37 1500.99 1092.5 1477.23C1081.71 1453.65 1064.23 1415.45 1053.65 1392.35C1029.01 1338.56 1028.73 1337.9 1029.34 1337.28C1029.63 1337 1036.62 1334.35 1044.89 1331.4C1062.38 1325.14 1064.62 1323.87 1066.14 1319.26C1067.47 1315.23 1070.88 1322.91 1026.16 1228.89C1009.28 1193.39 992.347 1157.72 988.539 1149.62C984.731 1141.52 981.165 1134.9 980.615 1134.92C980.065 1134.94 975.565 1137.01 970.615 1139.54ZM616.923 1150.11C614.343 1155.74 605.506 1174.97 597.285 1192.85C589.064 1210.72 574.691 1242 565.345 1262.35C547.547 1301.1 512.746 1376.85 475.088 1458.82C461.702 1487.95 452.637 1508.91 452.361 1511.36C451.982 1514.72 452.374 1516 454.597 1518.64C456.08 1520.41 457.82 1521.85 458.464 1521.85C459.108 1521.85 478.755 1528.86 502.125 1537.42C556.721 1557.44 560.841 1558.85 564.747 1558.85C572.203 1558.85 570.669 1563.28 599.711 1457.85C614.332 1404.77 626.591 1361.06 626.954 1360.71C627.318 1360.36 634.59 1362.7 643.115 1365.91C668.473 1375.44 668.955 1375.2 675.503 1349.85C677.989 1340.22 689.269 1297.05 700.569 1253.91C711.869 1210.77 721.115 1175.12 721.115 1174.68C721.115 1174.24 719.878 1173.62 718.365 1173.3C687.342 1166.68 653.864 1155.31 629.924 1143.25C626.207 1141.38 622.816 1139.85 622.39 1139.86C621.964 1139.86 619.504 1144.47 616.923 1150.11ZM843.115 1178.9C821.669 1182.04 774.426 1182.56 756.715 1179.87C752.921 1179.29 749.712 1178.93 749.584 1179.08C749.457 1179.23 745.664 1224.35 741.156 1279.35C736.648 1334.35 729.22 1424.92 724.65 1480.63C718.962 1549.95 716.603 1583.08 717.175 1585.63C717.634 1587.67 719.184 1590.36 720.618 1591.6L723.227 1593.85H781.248H839.269L842.192 1590.92C844.994 1588.12 845.474 1586.76 845.223 1582.35C845.16 1581.25 841.735 1537.82 837.612 1485.85C833.488 1433.87 830.114 1389.91 830.115 1388.16V1384.97L848.699 1384.66L867.283 1384.35L870.199 1381.08C872.214 1378.82 873.115 1376.76 873.115 1374.4C873.115 1372.52 869.065 1328.15 864.115 1275.79C859.165 1223.44 855.115 1179.98 855.115 1179.23C855.115 1177.69 851.995 1177.6 843.115 1178.9Z", + fill: "black", + }), + } + ) + ); + }; + return _this; + } + /* + * Static Methods + */ + Okta.init = function (config) { + if (Okta.instance !== undefined) { + console.warn("Okta Provider was already initialized"); + return Okta.instance; + } + Okta.instance = new Okta(config); + return Okta.instance; + }; + /* + * Tests methods. + */ + Okta.reset = function () { + if (!superTokens.isTest()) { + return; + } + Okta.instance = undefined; + return; + }; + return Okta; +})(Provider); + +/* + * Class. + */ +var Twitter = /** @class */ (function (_super) { + superTokens.__extends(Twitter, _super); + /* + * Constructor. + */ + function Twitter(config) { + var _this = _super.call(this, superTokens.__assign({ id: "twitter", name: "Twitter" }, config)) || this; + _this.getLogo = function () { + return jsxRuntime.jsx( + "svg", + superTokens.__assign( + { + xmlns: "http://www.w3.org/2000/svg", + width: "20.129", + height: "16.356", + viewBox: "0 0 20.129 16.356", + }, + { + children: jsxRuntime.jsx("g", { + children: jsxRuntime.jsx("g", { + children: jsxRuntime.jsx("path", { + fill: "#04ABEE", + d: "M45.232 35.964a8.242 8.242 0 0 1-2.372.649 4.141 4.141 0 0 0 1.816-2.284 8.268 8.268 0 0 1-2.623 1 4.133 4.133 0 0 0-7.037 3.771 11.724 11.724 0 0 1-8.516-4.317 4.133 4.133 0 0 0 1.282 5.517 4.1 4.1 0 0 1-1.87-.517v.052a4.132 4.132 0 0 0 3.313 4.049 4.147 4.147 0 0 1-1.865.071 4.134 4.134 0 0 0 3.858 2.868 8.338 8.338 0 0 1-6.114 1.71 11.745 11.745 0 0 0 18.08-9.894q0-.268-.012-.534a8.374 8.374 0 0 0 2.061-2.137z", + transform: + "translate(34.799 -7.41) translate(2.201 4.266) translate(-62.103 -30.883)", + }), + }), + }), + } + ) + ); + }; + return _this; + } + /* + * Static Methods + */ + Twitter.init = function (config) { + if (Twitter.instance !== undefined) { + console.warn("Twitter Provider was already initialized"); + return Twitter.instance; + } + Twitter.instance = new Twitter(config); + return Twitter.instance; + }; + /* + * Tests methods. + */ + Twitter.reset = function () { + if (!superTokens.isTest()) { + return; + } + Twitter.instance = undefined; + return; + }; + return Twitter; +})(Provider); var getFunctionOverrides = function (recipeId, onHandleEvent) { return function (originalImp) { - return utils.__assign(utils.__assign({}, originalImp), { + return superTokens.__assign(superTokens.__assign({}, originalImp), { signInAndUp: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.signInAndUp(input)]; @@ -158,9 +1063,9 @@ var getFunctionOverrides = function (recipeId, onHandleEvent) { }, setStateAndOtherInfoToStorage: function (input) { return originalImp.setStateAndOtherInfoToStorage({ - state: utils.__assign(utils.__assign({}, input.state), { + state: superTokens.__assign(superTokens.__assign({}, input.state), { rid: recipeId, - redirectToPath: utils.getRedirectToPathFromURL(), + redirectToPath: superTokens.getRedirectToPathFromURL(), }), userContext: input.userContext, }); @@ -173,25 +1078,15 @@ var getFunctionOverrides = function (recipeId, onHandleEvent) { * Class. */ var Custom = /** @class */ (function (_super) { - utils.__extends(Custom, _super); + superTokens.__extends(Custom, _super); /* * Constructor. */ function Custom(config) { var _this = _super.call(this, config) || this; - _this.getButton = function () { - if (_this.buttonComponent !== undefined) { - if (typeof _this.buttonComponent === "function") { - return _this.buttonComponent(); - } - return _this.buttonComponent; - } - return _this.getDefaultButton("Custom"); - }; _this.getLogo = function () { return undefined; }; - _this.buttonComponent = config.buttonComponent; return _this; } /* @@ -230,7 +1125,7 @@ function normaliseThirdPartyConfig(config) { var signInAndUpFeature = normaliseSignInAndUpFeature(config.signInAndUpFeature); var oAuthCallbackScreen = config.oAuthCallbackScreen === undefined ? {} : { style: config.oAuthCallbackScreen.style }; - var override = utils.__assign( + var override = superTokens.__assign( { functions: function (originalImplementation) { return originalImplementation; @@ -238,7 +1133,7 @@ function normaliseThirdPartyConfig(config) { }, config.override ); - return utils.__assign(utils.__assign({}, utils$2.normaliseAuthRecipe(config)), { + return superTokens.__assign(superTokens.__assign({}, utils.normaliseAuthRecipe(config)), { signInAndUpFeature: signInAndUpFeature, oAuthCallbackScreen: oAuthCallbackScreen, override: override, @@ -251,9 +1146,6 @@ function normaliseSignInAndUpFeature(config) { if (config.providers === undefined) { config.providers = []; } - if (config.providers.length === 0) { - throw new Error("ThirdParty signInAndUpFeature providers array cannot be empty."); - } var disableDefaultUI = config.disableDefaultUI === true; var style = config.style !== undefined ? config.style : ""; var privacyPolicyLink = config.privacyPolicyLink; @@ -304,12 +1196,21 @@ function matchRecipeIdUsingState(recipe, userContext) { return false; } function redirectToThirdPartyLogin(input) { - return utils.__awaiter(this, void 0, void 0, function () { - var provider, response; - return utils.__generator(this, function (_a) { - switch (_a.label) { + var _a; + return superTokens.__awaiter(this, void 0, void 0, function () { + var providers, provider, response; + return superTokens.__generator(this, function (_b) { + switch (_b.label) { case 0: - provider = input.config.signInAndUpFeature.providers.find(function (p) { + providers = mergeProviders({ + tenantProviders: + (_a = superTokens.Multitenancy.getInstanceOrThrow().getLoadedDynamicLoginMethods()) === + null || _a === void 0 + ? void 0 + : _a.thirdparty.providers, + clientProviders: input.config.signInAndUpFeature.providers, + }); + provider = providers.find(function (p) { return p.id === input.thirdPartyId; }); if (provider === undefined) { @@ -318,20 +1219,99 @@ function redirectToThirdPartyLogin(input) { return [ 4 /*yield*/, input.recipeImplementation.getAuthorisationURLWithQueryParamsAndSetState({ - providerId: input.thirdPartyId, - authorisationURL: provider.getRedirectURL(), - providerClientId: provider.clientId, + thirdPartyId: input.thirdPartyId, + frontendRedirectURI: provider.getRedirectURL(), + redirectURIOnProviderDashboard: provider.getRedirectURIOnProviderDashboard(), userContext: input.userContext, }), ]; case 1: - response = _a.sent(); - utils.redirectWithFullPageReload(response); + response = _b.sent(); + superTokens.redirectWithFullPageReload(response); return [2 /*return*/, { status: "OK" }]; } }); }); } +var mergeProviders = function (_a) { + var _b = _a.tenantProviders, + tenantProviders = _b === void 0 ? [] : _b, + _c = _a.clientProviders, + clientProviders = _c === void 0 ? [] : _c; + var builtInProvidersMap = { + apple: Apple, + google: Google, + "google-workspaces": GoogleWorkspaces, + github: Github, + "active-directory": ActiveDirectory, + bitbucket: Bitbucket, + "boxy-saml": BoxySAML, + discord: Discord, + gitlab: Gitlab, + linkedin: LinkedIn, + okta: Okta, + twitter: Twitter, + facebook: Facebook, + }; + var usesDynamicLoginMethods = superTokens.SuperTokens.usesDynamicLoginMethods === true; + if ( + usesDynamicLoginMethods === false && + (clientProviders === null || clientProviders === void 0 ? void 0 : clientProviders.length) === 0 + ) { + throw new Error("ThirdParty signInAndUpFeature providers array cannot be empty."); + } + // If we are not using dynamic login methods or if there is no providers + // from the core we use frontend initialized providers + if (usesDynamicLoginMethods === false || tenantProviders.length === 0) { + return clientProviders; + } + var providers = []; + var _loop_1 = function (tenantProvider) { + // try finding exact match + var provider = clientProviders.find(function (provider) { + var id = tenantProvider.id; + return provider.id === id; + }); + // if none found try finding by tenantProvider id prefix match only + if (provider === undefined) { + provider = clientProviders.find(function (provider) { + var id = tenantProvider.id; + return id.startsWith(provider.id); + }); + } + // means provider is initialized on the frontend and found + if (provider !== undefined) { + providers.push( + Custom.init( + superTokens.__assign(superTokens.__assign({}, provider.config), { + id: tenantProvider.id, + name: tenantProvider.name, + buttonComponent: provider.getButton(tenantProvider.name), + }) + ) + ); + } else { + // try to find and initialize provider from all prebuilt providers list + var providerID = Object.keys(builtInProvidersMap).find(function (id) { + return tenantProvider.id === id || tenantProvider.id.startsWith(id); + }); + if (builtInProvidersMap[providerID]) { + var provider_1 = new builtInProvidersMap[providerID]({ + id: tenantProvider.id, + name: tenantProvider.name, + }); + providers.push(provider_1); + } else { + providers.push(Custom.init(tenantProvider)); + } + } + }; + for (var _i = 0, tenantProviders_1 = tenantProviders; _i < tenantProviders_1.length; _i++) { + var tenantProvider = tenantProviders_1[_i]; + _loop_1(tenantProvider); + } + return providers; +}; /* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. * @@ -351,19 +1331,27 @@ function redirectToThirdPartyLogin(input) { * Class. */ var ThirdParty = /** @class */ (function (_super) { - utils.__extends(ThirdParty, _super); + superTokens.__extends(ThirdParty, _super); function ThirdParty(config, webJSRecipe) { if (webJSRecipe === void 0) { webJSRecipe = ThirdpartyWebJS__default.default; } - var _this = _super.call(this, config) || this; + var _this = this; + if ( + superTokens.SuperTokens.usesDynamicLoginMethods === false && + config.signInAndUpFeature.providers.length === 0 + ) { + throw new Error("ThirdParty signInAndUpFeature providers array cannot be empty."); + } + _this = _super.call(this, config) || this; _this.webJSRecipe = webJSRecipe; + _this.recipeID = ThirdParty.RECIPE_ID; /* * Instance methods. */ _this.getDefaultRedirectionURL = function (context) { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [2 /*return*/, this.getAuthRecipeDefaultRedirectionURL(context)]; }); }); @@ -373,9 +1361,10 @@ var ThirdParty = /** @class */ (function (_super) { ThirdParty.init = function (config) { var normalisedConfig = normaliseThirdPartyConfig(config); return { + recipeID: ThirdParty.RECIPE_ID, authReact: function (appInfo) { ThirdParty.instance = new ThirdParty( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { appInfo: appInfo, recipeId: ThirdParty.RECIPE_ID, }) @@ -383,7 +1372,7 @@ var ThirdParty = /** @class */ (function (_super) { return ThirdParty.instance; }, webJS: ThirdpartyWebJS__default.default.init( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { override: { functions: function (originalImpl, builder) { var functions = getFunctionOverrides(ThirdParty.RECIPE_ID, normalisedConfig.onHandleEvent); @@ -404,7 +1393,7 @@ var ThirdParty = /** @class */ (function (_super) { "See https://supertokens.io/docs/thirdparty/quick-setup/frontend"; // eslint-disable-next-line supertokens-auth-react/no-direct-window-object if (typeof window === "undefined") { - error = error + utils.SSR_ERROR; + error = error + superTokens.SSR_ERROR; } throw Error(error); } @@ -414,7 +1403,7 @@ var ThirdParty = /** @class */ (function (_super) { * Tests methods. */ ThirdParty.reset = function () { - if (!utils.isTest()) { + if (!superTokens.isTest()) { return; } ThirdParty.instance = undefined; @@ -422,12 +1411,25 @@ var ThirdParty = /** @class */ (function (_super) { }; ThirdParty.RECIPE_ID = "thirdparty"; return ThirdParty; -})(utils$2.AuthRecipe); +})(utils.AuthRecipe); -exports.Provider = Provider; -exports.Provider$1 = Provider$1; +exports.ActiveDirectory = ActiveDirectory; +exports.Apple = Apple; +exports.Bitbucket = Bitbucket; +exports.BoxySAML = BoxySAML; +exports.Discord = Discord; +exports.Facebook = Facebook; +exports.Github = Github; +exports.Gitlab = Gitlab; +exports.Google = Google; +exports.GoogleWorkspaces = GoogleWorkspaces; +exports.LinkedIn = LinkedIn; +exports.Okta = Okta; +exports.Provider = Provider$1; exports.ThirdParty = ThirdParty; +exports.Twitter = Twitter; exports.matchRecipeIdUsingState = matchRecipeIdUsingState; +exports.mergeProviders = mergeProviders; exports.normaliseThirdPartyConfig = normaliseThirdPartyConfig; exports.redirectToThirdPartyLogin = redirectToThirdPartyLogin; exports.useContext = useContext; diff --git a/lib/build/thirdparty-shared2.js b/lib/build/thirdparty-shared2.js index b92f8bc5c..7326d8861 100644 --- a/lib/build/thirdparty-shared2.js +++ b/lib/build/thirdparty-shared2.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); var userContextWrapper = require("./userContextWrapper.js"); @@ -12,7 +12,6 @@ var translations = require("./translations.js"); var generalError = require("./emailpassword-shared.js"); var STGeneralError = require("supertokens-web-js/utils/error"); var translationContext = require("./translationContext.js"); -var utils$1 = require("./recipeModule-shared.js"); var recipe$1 = require("./session-shared2.js"); var spinnerIcon = require("./spinnerIcon.js"); @@ -51,7 +50,7 @@ var React__namespace = /*#__PURE__*/ _interopNamespace(React); var STGeneralError__default = /*#__PURE__*/ _interopDefault(STGeneralError); var styles = - '[data-supertokens~="container"] {\n --palette-background: 255, 255, 255;\n --palette-inputBackground: 250, 250, 250;\n --palette-inputBorder: 224, 224, 224;\n --palette-primary: 255, 155, 51;\n --palette-primaryBorder: 238, 141, 35;\n --palette-success: 65, 167, 0;\n --palette-successBackground: 217, 255, 191;\n --palette-error: 255, 23, 23;\n --palette-errorBackground: 255, 241, 235;\n --palette-textTitle: 34, 34, 34;\n --palette-textLabel: 34, 34, 34;\n --palette-textInput: 34, 34, 34;\n --palette-textPrimary: 101, 101, 101;\n --palette-textLink: 0, 118, 255;\n --palette-buttonText: 255, 255, 255;\n --palette-textGray: 128, 128, 128;\n --palette-superTokensBrandingBackground: 242, 245, 246;\n --palette-superTokensBrandingText: 173, 189, 196;\n\n --font-size-0: 12px;\n --font-size-1: 14px;\n --font-size-2: 16px;\n --font-size-3: 19px;\n --font-size-4: 24px;\n}\n/*\n * Default styles.\n */\n@-webkit-keyframes slideTop {\n 0% {\n -webkit-transform: translateY(-5px);\n transform: translateY(-5px);\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n }\n}\n@keyframes slideTop {\n 0% {\n -webkit-transform: translateY(-5px);\n transform: translateY(-5px);\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n }\n}\n@-webkit-keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n}\n@keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n}\n[data-supertokens~="container"] {\n font-family: "Rubik", sans-serif;\n margin: 12px auto;\n margin-top: 26px;\n margin-bottom: 26px;\n width: 420px;\n text-align: center;\n border-radius: 8px;\n box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.16);\n background-color: rgb(var(--palette-background));\n}\n@media (max-width: 440px) {\n [data-supertokens~="container"] {\n width: 95vw;\n }\n}\n[data-supertokens~="row"] {\n margin: 0 auto;\n width: 76%;\n padding-top: 30px;\n padding-bottom: 10px;\n}\n[data-supertokens~="superTokensBranding"] {\n display: block;\n margin: 0 auto;\n background: rgb(var(--palette-superTokensBrandingBackground));\n color: rgb(var(--palette-superTokensBrandingText));\n text-decoration: none;\n width: -webkit-fit-content;\n width: -moz-fit-content;\n width: fit-content;\n border-radius: 6px 6px 0 0;\n padding: 4px 9px;\n font-weight: 300;\n font-size: var(--font-size-0);\n letter-spacing: 0.4px;\n}\n[data-supertokens~="generalError"] {\n background: rgb(var(--palette-errorBackground));\n padding-top: 10px;\n padding-bottom: 10px;\n margin-bottom: 15px;\n padding-left: 18px;\n padding-right: 18px;\n letter-spacing: 0.2px;\n font-size: var(--font-size-1);\n border-radius: 8px;\n color: rgb(var(--palette-error));\n -webkit-animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n word-wrap: break-word;\n}\n[data-supertokens~="headerTitle"] {\n font-size: var(--font-size-4);\n line-height: 40px;\n letter-spacing: 0.58px;\n font-weight: 800;\n margin-bottom: 2px;\n color: rgb(var(--palette-textTitle));\n}\n[data-supertokens~="headerSubtitle"] {\n margin-bottom: 21px;\n}\n[data-supertokens~="privacyPolicyAndTermsAndConditions"] {\n max-width: 300px;\n margin-top: 10px;\n}\n[data-supertokens~="privacyPolicyAndTermsAndConditions"] a {\n line-height: 21px;\n}\n/* TODO: split the link style into separate things*/\n/* We add this before primary and secondary text, because if they are applied to the same element the other ones take priority */\n[data-supertokens~="link"] {\n padding-left: 3px;\n padding-right: 3px;\n color: rgb(var(--palette-textLink));\n font-size: var(--font-size-1);\n cursor: pointer;\n letter-spacing: 0.16px;\n line-height: 26px;\n}\n[data-supertokens~="primaryText"] {\n font-size: var(--font-size-1);\n font-weight: 500;\n letter-spacing: 0.4px;\n line-height: 21px;\n color: rgb(var(--palette-textLabel));\n}\n[data-supertokens~="secondaryText"] {\n font-size: var(--font-size-1);\n font-weight: 300;\n letter-spacing: 0.4px;\n color: rgb(var(--palette-textPrimary));\n}\n[data-supertokens~="divider"] {\n margin-top: 1em;\n margin-bottom: 1em;\n border-bottom: 0.3px solid #dddddd;\n align-items: center;\n padding-bottom: 5px;\n}\n[data-supertokens~="headerTinyTitle"] {\n margin-top: 13px;\n font-size: var(--font-size-3);\n letter-spacing: 1.1px;\n font-weight: 500;\n line-height: 28px;\n}\n[data-supertokens~="secondaryLinkWithArrow"] {\n margin-top: 10px;\n margin-bottom: 30px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithArrow"]:hover {\n position: relative;\n left: 2px;\n word-spacing: 4px;\n}\n[data-supertokens~="generalSuccess"] {\n color: rgb(var(--palette-success));\n font-size: var(--font-size-1);\n background: rgb(var(--palette-successBackground));\n -webkit-animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n padding: 9px 15px 9px 15px;\n border-radius: 6px;\n display: inline-block;\n}\n[data-supertokens~="spinner"] {\n width: 80px;\n height: auto;\n padding-top: 20px;\n padding-bottom: 40px;\n margin: 0 auto;\n}\n[data-supertokens~="error"] {\n color: rgb(var(--palette-error));\n}\n[data-supertokens~="linkButton"] {\n background-color: transparent;\n border: 0;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"] {\n margin-top: 10px;\n margin-bottom: 40px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"] svg {\n margin-right: 0.3em;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"]:hover svg {\n position: relative;\n left: -4px;\n}\n[data-supertokens~="button"] {\n background-color: rgb(var(--palette-primary));\n color: rgb(var(--palette-buttonText));\n width: 100%;\n height: 34px;\n font-weight: 700;\n border-width: 1px;\n border-style: solid;\n border-radius: 6px;\n border-color: rgb(var(--palette-primaryBorder));\n background-position: center;\n transition: all 0.4s;\n background-size: 12000%;\n cursor: pointer;\n}\n[data-supertokens~="button"]:disabled {\n border: none;\n cursor: no-drop;\n}\n[data-supertokens~="button"]:active {\n outline: none;\n transition: all 0s;\n background-size: 100%;\n -webkit-filter: brightness(0.85);\n filter: brightness(0.85);\n}\n[data-supertokens~="button"]:focus {\n outline: none;\n}\n[data-supertokens~="row"] {\n padding-bottom: 30px;\n}\n[data-supertokens~="providerContainer"] {\n padding-top: 9px;\n padding-bottom: 9px;\n}\n[data-supertokens~="providerButton"] {\n border-color: rgb(221, 221, 221) !important;\n}\n[data-supertokens~="providerButton"] {\n min-height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 2px 8px;\n\n background-color: white;\n color: black;\n}\n[data-supertokens~="providerButton"]:hover {\n -webkit-filter: none !important;\n filter: none !important;\n}\n[data-supertokens~="providerButton"]:hover {\n background-color: #fafafa;\n}\n[data-supertokens~="providerButtonLeft"] {\n width: 34px;\n margin-left: 66px;\n}\n[data-supertokens~="providerButtonLogo"] {\n height: 30px;\n display: flex;\n}\n[data-supertokens~="providerButtonLogoCenter"] {\n display: flex;\n margin: auto;\n}\n[data-supertokens~="providerButtonText"] {\n font-weight: 400;\n text-align: center;\n justify-content: center;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n display: inline-block;\n}\n[data-supertokens~="providerButtonText"]:only-child {\n margin: 0 auto;\n}\n'; + '[data-supertokens~="container"] {\n --palette-background: 255, 255, 255;\n --palette-inputBackground: 250, 250, 250;\n --palette-inputBorder: 224, 224, 224;\n --palette-primary: 255, 155, 51;\n --palette-primaryBorder: 238, 141, 35;\n --palette-success: 65, 167, 0;\n --palette-successBackground: 217, 255, 191;\n --palette-error: 255, 23, 23;\n --palette-errorBackground: 255, 241, 235;\n --palette-textTitle: 34, 34, 34;\n --palette-textLabel: 34, 34, 34;\n --palette-textInput: 34, 34, 34;\n --palette-textPrimary: 101, 101, 101;\n --palette-textLink: 0, 118, 255;\n --palette-buttonText: 255, 255, 255;\n --palette-textGray: 128, 128, 128;\n --palette-superTokensBrandingBackground: 242, 245, 246;\n --palette-superTokensBrandingText: 173, 189, 196;\n\n --font-size-0: 12px;\n --font-size-1: 14px;\n --font-size-2: 16px;\n --font-size-3: 19px;\n --font-size-4: 24px;\n}\n/*\n * Default styles.\n */\n@-webkit-keyframes slideTop {\n 0% {\n -webkit-transform: translateY(-5px);\n transform: translateY(-5px);\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n }\n}\n@keyframes slideTop {\n 0% {\n -webkit-transform: translateY(-5px);\n transform: translateY(-5px);\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n }\n}\n@-webkit-keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n}\n@keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n}\n[data-supertokens~="container"] {\n font-family: "Rubik", sans-serif;\n margin: 12px auto;\n margin-top: 26px;\n margin-bottom: 26px;\n width: 420px;\n text-align: center;\n border-radius: 8px;\n box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.16);\n background-color: rgb(var(--palette-background));\n}\n@media (max-width: 440px) {\n [data-supertokens~="container"] {\n width: 95vw;\n }\n}\n[data-supertokens~="row"] {\n margin: 0 auto;\n width: 76%;\n padding-top: 30px;\n padding-bottom: 10px;\n}\n[data-supertokens~="superTokensBranding"] {\n display: block;\n margin: 0 auto;\n background: rgb(var(--palette-superTokensBrandingBackground));\n color: rgb(var(--palette-superTokensBrandingText));\n text-decoration: none;\n width: -webkit-fit-content;\n width: -moz-fit-content;\n width: fit-content;\n border-radius: 6px 6px 0 0;\n padding: 4px 9px;\n font-weight: 300;\n font-size: var(--font-size-0);\n letter-spacing: 0.4px;\n}\n[data-supertokens~="generalError"] {\n background: rgb(var(--palette-errorBackground));\n padding-top: 10px;\n padding-bottom: 10px;\n margin-bottom: 15px;\n padding-left: 18px;\n padding-right: 18px;\n letter-spacing: 0.2px;\n font-size: var(--font-size-1);\n border-radius: 8px;\n color: rgb(var(--palette-error));\n -webkit-animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n word-wrap: break-word;\n}\n[data-supertokens~="headerTitle"] {\n font-size: var(--font-size-4);\n line-height: 40px;\n letter-spacing: 0.58px;\n font-weight: 800;\n margin-bottom: 2px;\n color: rgb(var(--palette-textTitle));\n}\n[data-supertokens~="headerSubtitle"] {\n margin-bottom: 21px;\n}\n[data-supertokens~="privacyPolicyAndTermsAndConditions"] {\n max-width: 300px;\n margin-top: 10px;\n}\n[data-supertokens~="privacyPolicyAndTermsAndConditions"] a {\n line-height: 21px;\n}\n/* TODO: split the link style into separate things*/\n/* We add this before primary and secondary text, because if they are applied to the same element the other ones take priority */\n[data-supertokens~="link"] {\n padding-left: 3px;\n padding-right: 3px;\n color: rgb(var(--palette-textLink));\n font-size: var(--font-size-1);\n cursor: pointer;\n letter-spacing: 0.16px;\n line-height: 26px;\n}\n[data-supertokens~="primaryText"] {\n font-size: var(--font-size-1);\n font-weight: 500;\n letter-spacing: 0.4px;\n line-height: 21px;\n color: rgb(var(--palette-textLabel));\n}\n[data-supertokens~="secondaryText"] {\n font-size: var(--font-size-1);\n font-weight: 300;\n letter-spacing: 0.4px;\n color: rgb(var(--palette-textPrimary));\n}\n[data-supertokens~="divider"] {\n margin-top: 1em;\n margin-bottom: 1em;\n border-bottom: 0.3px solid #dddddd;\n align-items: center;\n padding-bottom: 5px;\n}\n[data-supertokens~="headerTinyTitle"] {\n margin-top: 13px;\n font-size: var(--font-size-3);\n letter-spacing: 1.1px;\n font-weight: 500;\n line-height: 28px;\n}\n[data-supertokens~="secondaryLinkWithArrow"] {\n margin-top: 10px;\n margin-bottom: 30px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithArrow"]:hover {\n position: relative;\n left: 2px;\n word-spacing: 4px;\n}\n[data-supertokens~="generalSuccess"] {\n color: rgb(var(--palette-success));\n font-size: var(--font-size-1);\n background: rgb(var(--palette-successBackground));\n -webkit-animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n padding: 9px 15px 9px 15px;\n border-radius: 6px;\n display: inline-block;\n}\n[data-supertokens~="spinner"] {\n width: 80px;\n height: auto;\n padding-top: 20px;\n padding-bottom: 40px;\n margin: 0 auto;\n}\n[data-supertokens~="error"] {\n color: rgb(var(--palette-error));\n}\n[data-supertokens~="linkButton"] {\n background-color: transparent;\n border: 0;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"] {\n margin-top: 10px;\n margin-bottom: 40px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"] svg {\n margin-right: 0.3em;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"]:hover svg {\n position: relative;\n left: -4px;\n}\n[data-supertokens~="button"] {\n background-color: rgb(var(--palette-primary));\n color: rgb(var(--palette-buttonText));\n width: 100%;\n height: 34px;\n font-weight: 700;\n border-width: 1px;\n border-style: solid;\n border-radius: 6px;\n border-color: rgb(var(--palette-primaryBorder));\n background-position: center;\n transition: all 0.4s;\n background-size: 12000%;\n cursor: pointer;\n}\n[data-supertokens~="button"]:disabled {\n border: none;\n cursor: no-drop;\n}\n[data-supertokens~="button"]:active {\n outline: none;\n transition: all 0s;\n background-size: 100%;\n -webkit-filter: brightness(0.85);\n filter: brightness(0.85);\n}\n[data-supertokens~="button"]:focus {\n outline: none;\n}\n[data-supertokens~="row"] {\n padding-bottom: 30px;\n}\n[data-supertokens~="providerContainer"] {\n padding-top: 9px;\n padding-bottom: 9px;\n}\n[data-supertokens~="providerButton"] {\n border-color: rgb(221, 221, 221) !important;\n}\n[data-supertokens~="providerButton"] {\n min-height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 2px 8px;\n\n background-color: white;\n color: black;\n}\n[data-supertokens~="providerButton"]:hover {\n -webkit-filter: none !important;\n filter: none !important;\n}\n[data-supertokens~="providerButton"]:hover {\n background-color: #fafafa;\n}\n[data-supertokens~="providerButtonLeft"] {\n min-width: 34px;\n margin-left: 66px;\n}\n[data-supertokens~="providerButtonLogo"] {\n height: 30px;\n display: flex;\n}\n[data-supertokens~="providerButtonLogoCenter"] {\n display: flex;\n margin: auto;\n}\n[data-supertokens~="providerButtonText"] {\n font-weight: 400;\n text-align: center;\n justify-content: center;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n display: inline-block;\n}\n[data-supertokens~="providerButtonText"]:only-child {\n margin: 0 auto;\n}\n'; var ThemeBase = function (_a) { var children = _a.children, @@ -74,9 +73,9 @@ var ThemeBase = function (_a) { var ThirdPartySignInAndUpProvidersForm = function (props) { var userContext = userContextWrapper.useUserContext(); var signInClick = function (providerId) { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var response, generalError, e_1; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 5, , 6]); @@ -134,18 +133,18 @@ var ThirdPartySignInAndUpProvidersForm = function (props) { children: props.providers.map(function (provider) { return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "providerContainer" }, { children: jsxRuntime.jsx( "span", - utils.__assign( + superTokens.__assign( { onClick: function () { return signInClick(provider.id); }, }, - { children: provider.buttonComponent } + { children: provider.getButton() } ) ), } @@ -163,7 +162,7 @@ var SignInAndUpHeader = translations.withOverride( var t = translationContext.useTranslation(); return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle" }, { children: t("THIRD_PARTY_SIGN_IN_AND_UP_HEADER_TITLE") } ) @@ -180,7 +179,7 @@ var SignUpFooter = translations.withOverride("ThirdPartySignUpFooter", function } return jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "secondaryText privacyPolicyAndTermsAndConditions" }, { children: [ @@ -188,7 +187,7 @@ var SignUpFooter = translations.withOverride("ThirdPartySignUpFooter", function termsOfServiceLink !== undefined && jsxRuntime.jsx( "a", - utils.__assign( + superTokens.__assign( { "data-supertokens": "link", href: termsOfServiceLink, @@ -204,7 +203,7 @@ var SignUpFooter = translations.withOverride("ThirdPartySignUpFooter", function privacyPolicyLink !== undefined && jsxRuntime.jsx( "a", - utils.__assign( + superTokens.__assign( { "data-supertokens": "link", href: privacyPolicyLink, @@ -224,13 +223,13 @@ var SignUpFooter = translations.withOverride("ThirdPartySignUpFooter", function var SignInAndUpTheme = function (props) { return jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: [ jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: [ @@ -238,7 +237,7 @@ var SignInAndUpTheme = function (props) { jsxRuntime.jsx("div", { "data-supertokens": "divider" }), props.featureState.error && jsxRuntime.jsx(generalError.GeneralError, { error: props.featureState.error }), - jsxRuntime.jsx(ProvidersForm, utils.__assign({}, props)), + jsxRuntime.jsx(ProvidersForm, superTokens.__assign({}, props)), jsxRuntime.jsx(SignUpFooter, { privacyPolicyLink: props.config.signInAndUpFeature.privacyPolicyLink, termsOfServiceLink: props.config.signInAndUpFeature.termsOfServiceLink, @@ -257,17 +256,17 @@ var SignInAndUpThemeWrapper = function (props) { var hasFont = translations.hasFontDefined(props.config.rootStyle); return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( ThemeBase, - utils.__assign( + superTokens.__assign( { loadDefaultFont: !hasFont, userStyles: [props.config.rootStyle, props.config.signInAndUpFeature.style], }, - { children: jsxRuntime.jsx(SignInAndUpTheme, utils.__assign({}, props)) } + { children: jsxRuntime.jsx(SignInAndUpTheme, superTokens.__assign({}, props)) } ) ), } @@ -276,7 +275,7 @@ var SignInAndUpThemeWrapper = function (props) { }; var defaultTranslationsThirdParty = { - en: utils.__assign(utils.__assign({}, translations.defaultTranslationsCommon.en), { + en: superTokens.__assign(superTokens.__assign({}, translations.defaultTranslationsCommon.en), { THIRD_PARTY_SIGN_IN_AND_UP_HEADER_TITLE: "Sign Up / Sign In", THIRD_PARTY_SIGN_IN_UP_FOOTER_START: "By continuing, you agree to our ", THIRD_PARTY_SIGN_IN_UP_FOOTER_TOS: "Terms of Service", @@ -294,7 +293,7 @@ var useFeatureReducer = function () { function (oldState, action) { switch (action.type) { case "setError": - return utils.__assign(utils.__assign({}, oldState), { error: action.error }); + return superTokens.__assign(superTokens.__assign({}, oldState), { error: action.error }); default: return oldState; } @@ -302,14 +301,14 @@ var useFeatureReducer = function () { {}, function () { var error = undefined; - var errorQueryParam = utils.getQueryParams("error"); + var errorQueryParam = superTokens.getQueryParams("error"); if (errorQueryParam !== null) { if (errorQueryParam === "signin") { error = "SOMETHING_WENT_WRONG_ERROR"; } else if (errorQueryParam === "no_email_present") { error = "THIRD_PARTY_ERROR_NO_EMAIL"; } else { - var customError = utils.getQueryParams("message"); + var customError = superTokens.getQueryParams("message"); if (customError === null) { error = "SOMETHING_WENT_WRONG_ERROR"; } else { @@ -323,32 +322,34 @@ var useFeatureReducer = function () { } ); }; -function useChildProps(recipe) { +function useChildProps(recipe$1) { var recipeImplementation = React.useMemo( function () { - return recipe && getModifiedRecipeImplementation(recipe.webJSRecipe); + return recipe$1 && getModifiedRecipeImplementation(recipe$1.webJSRecipe); }, - [recipe] + [recipe$1] ); return React.useMemo( function () { - if (!recipe || !recipeImplementation) { + var _a; + if (!recipe$1 || !recipeImplementation) { return undefined; } - var providers = recipe.config.signInAndUpFeature.providers.map(function (provider) { - return { - id: provider.id, - buttonComponent: provider.getButton(), - }; - }); return { - providers: providers, + providers: recipe.mergeProviders({ + tenantProviders: + (_a = superTokens.Multitenancy.getInstanceOrThrow().getLoadedDynamicLoginMethods()) === null || + _a === void 0 + ? void 0 + : _a.thirdparty.providers, + clientProviders: recipe$1.config.signInAndUpFeature.providers, + }), recipeImplementation: recipeImplementation, - config: recipe.config, - recipe: recipe, + config: recipe$1.config, + recipe: recipe$1, }; }, - [recipe] + [recipe$1, recipeImplementation] ); } var SignInAndUpFeature = function (props) { @@ -356,40 +357,42 @@ var SignInAndUpFeature = function (props) { state = _a[0], dispatch = _a[1]; var childProps = useChildProps(props.recipe); + var themeProps = superTokens.__assign(superTokens.__assign({}, childProps), { providers: childProps.providers }); + return jsxRuntime.jsxs(React.Fragment, { + children: [ + props.children === undefined && + jsxRuntime.jsx( + SignInAndUpThemeWrapper, + superTokens.__assign({}, themeProps, { featureState: state, dispatch: dispatch }) + ), + props.children && + React__namespace.Children.map(props.children, function (child) { + if (React__namespace.isValidElement(child)) { + return React__namespace.cloneElement( + child, + superTokens.__assign(superTokens.__assign({}, childProps), { + featureState: state, + dispatch: dispatch, + }) + ); + } + return child; + }), + ], + }); +}; +var SignInAndUpFeatureWrapper = function (props) { var recipeComponentOverrides = props.useComponentOverrides(); return jsxRuntime.jsx( translations.ComponentOverrideContext.Provider, - utils.__assign( + superTokens.__assign( { value: recipeComponentOverrides }, { children: jsxRuntime.jsx( translations.FeatureWrapper, - utils.__assign( + superTokens.__assign( { useShadowDom: props.recipe.config.useShadowDom, defaultStore: defaultTranslationsThirdParty }, - { - children: jsxRuntime.jsxs(React.Fragment, { - children: [ - props.children === undefined && - jsxRuntime.jsx( - SignInAndUpThemeWrapper, - utils.__assign({}, childProps, { featureState: state, dispatch: dispatch }) - ), - props.children && - React__namespace.Children.map(props.children, function (child) { - if (React__namespace.isValidElement(child)) { - return React__namespace.cloneElement( - child, - utils.__assign(utils.__assign({}, childProps), { - featureState: state, - dispatch: dispatch, - }) - ); - } - return child; - }), - ], - }), - } + { children: jsxRuntime.jsx(SignInAndUpFeature, superTokens.__assign({}, props)) } ) ), } @@ -397,14 +400,14 @@ var SignInAndUpFeature = function (props) { ); }; var getModifiedRecipeImplementation = function (origImpl) { - return utils.__assign({}, origImpl); + return superTokens.__assign({}, origImpl); }; /* * Component. */ var ThirdPartySignInAndUpCallbackTheme = /** @class */ (function (_super) { - utils.__extends(ThirdPartySignInAndUpCallbackTheme, _super); + superTokens.__extends(ThirdPartySignInAndUpCallbackTheme, _super); function ThirdPartySignInAndUpCallbackTheme() { /* * Methods. @@ -413,17 +416,17 @@ var ThirdPartySignInAndUpCallbackTheme = /** @class */ (function (_super) { _this.render = function () { return jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "spinner" }, { children: jsxRuntime.jsx(spinnerIcon.SpinnerIcon, {}) } ) @@ -447,7 +450,7 @@ var SignInAndUpCallbackTheme = function (props) { var hasFont = translations.hasFontDefined(props.config.rootStyle); return jsxRuntime.jsx( ThemeBase, - utils.__assign( + superTokens.__assign( { loadDefaultFont: !hasFont, userStyles: [props.config.rootStyle, props.config.signInAndUpFeature.style] }, { children: jsxRuntime.jsx(SignInAndUpCallbackThemeWithOverride, {}) } ) @@ -466,13 +469,13 @@ var SignInAndUpCallback$1 = function (props) { ); var handleVerifyResponse = React.useCallback( function (response) { - return utils.__awaiter(void 0, void 0, void 0, function () { + return superTokens.__awaiter(void 0, void 0, void 0, function () { var stateResponse, redirectToPath; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { if (response.status === "NO_EMAIL_GIVEN_BY_PROVIDER") { return [ 2 /*return*/, - utils$1.SuperTokens.getInstanceOrThrow().redirectToAuth({ + superTokens.SuperTokens.getInstanceOrThrow().redirectToAuth({ history: props.history, queryParams: { error: "no_email_present", @@ -511,7 +514,7 @@ var SignInAndUpCallback$1 = function (props) { var handleError = React.useCallback( function (err) { if (STGeneralError__default.default.isThisError(err)) { - return utils$1.SuperTokens.getInstanceOrThrow().redirectToAuth({ + return superTokens.SuperTokens.getInstanceOrThrow().redirectToAuth({ history: props.history, queryParams: { error: "custom", @@ -520,7 +523,7 @@ var SignInAndUpCallback$1 = function (props) { redirectBack: false, }); } - return utils$1.SuperTokens.getInstanceOrThrow().redirectToAuth({ + return superTokens.SuperTokens.getInstanceOrThrow().redirectToAuth({ history: props.history, queryParams: { error: "signin", @@ -530,16 +533,16 @@ var SignInAndUpCallback$1 = function (props) { }, [props.recipe, props.history] ); - utils.useOnMountAPICall(verifyCode, handleVerifyResponse, handleError); + superTokens.useOnMountAPICall(verifyCode, handleVerifyResponse, handleError); var recipeComponentOverrides = props.useComponentOverrides(); return jsxRuntime.jsx( translations.ComponentOverrideContext.Provider, - utils.__assign( + superTokens.__assign( { value: recipeComponentOverrides }, { children: jsxRuntime.jsx( translations.FeatureWrapper, - utils.__assign( + superTokens.__assign( { useShadowDom: props.recipe.config.useShadowDom, defaultStore: defaultTranslationsThirdParty }, { children: jsxRuntime.jsxs(React.Fragment, { @@ -558,7 +561,7 @@ var SignInAndUpCallback$1 = function (props) { }; var ThirdPartyPreBuiltUI = /** @class */ (function (_super) { - utils.__extends(ThirdPartyPreBuiltUI, _super); + superTokens.__extends(ThirdPartyPreBuiltUI, _super); function ThirdPartyPreBuiltUI(recipeInstance) { var _this = _super.call(this) || this; _this.recipeInstance = recipeInstance; @@ -569,30 +572,30 @@ var ThirdPartyPreBuiltUI = /** @class */ (function (_super) { } var features = {}; if (_this.recipeInstance.config.signInAndUpFeature.disableDefaultUI !== true) { - var normalisedFullPath = _this.recipeInstance.config.appInfo.websiteBasePath.appendPath( + var normalisedFullPath_1 = _this.recipeInstance.config.appInfo.websiteBasePath.appendPath( new NormalisedURLPath__default.default("/") ); - features[normalisedFullPath.getAsStringDangerous()] = { - matches: utils.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), + features[normalisedFullPath_1.getAsStringDangerous()] = { + matches: superTokens.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), component: function (prop) { return _this.getFeatureComponent("signinup", prop, useComponentOverrides); }, + recipeID: recipe.ThirdParty.RECIPE_ID, }; } - // Add callback route for each provider. - _this.recipeInstance.config.signInAndUpFeature.providers.forEach(function (provider) { - var normalisedFullPath = _this.recipeInstance.config.appInfo.websiteBasePath.appendPath( - new NormalisedURLPath__default.default("/callback/".concat(provider.id)) - ); - features[normalisedFullPath.getAsStringDangerous()] = { - matches: function () { - return recipe.matchRecipeIdUsingState(_this.recipeInstance, {}); - }, - component: function (prop) { - return _this.getFeatureComponent("signinupcallback", prop, useComponentOverrides); - }, - }; - }); + // Add callback route for all provider + var normalisedFullPath = _this.recipeInstance.config.appInfo.websiteBasePath.appendPath( + new NormalisedURLPath__default.default("/callback/:id") + ); + features[normalisedFullPath.getAsStringDangerous()] = { + matches: function () { + return recipe.matchRecipeIdUsingState(_this.recipeInstance, {}); + }, + component: function (prop) { + return _this.getFeatureComponent("signinupcallback", prop, useComponentOverrides); + }, + recipeID: recipe.ThirdParty.RECIPE_ID, + }; return features; }; _this.getFeatureComponent = function (componentName, props, useComponentOverrides) { @@ -603,17 +606,17 @@ var ThirdPartyPreBuiltUI = /** @class */ (function (_super) { if (props.redirectOnSessionExists !== false) { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( SuperTokensBranding.AuthWidgetWrapper, - utils.__assign( + superTokens.__assign( { authRecipe: _this.recipeInstance, history: props.history }, { children: jsxRuntime.jsx( - SignInAndUpFeature, - utils.__assign({ recipe: _this.recipeInstance }, props, { + SignInAndUpFeatureWrapper, + superTokens.__assign({ recipe: _this.recipeInstance }, props, { useComponentOverrides: useComponentOverrides, }) ), @@ -626,12 +629,12 @@ var ThirdPartyPreBuiltUI = /** @class */ (function (_super) { } else { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( - SignInAndUpFeature, - utils.__assign({ recipe: _this.recipeInstance }, props, { + SignInAndUpFeatureWrapper, + superTokens.__assign({ recipe: _this.recipeInstance }, props, { useComponentOverrides: useComponentOverrides, }) ), @@ -642,12 +645,12 @@ var ThirdPartyPreBuiltUI = /** @class */ (function (_super) { } else if (componentName === "signinupcallback") { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( SignInAndUpCallback$1, - utils.__assign({ recipe: _this.recipeInstance }, props, { + superTokens.__assign({ recipe: _this.recipeInstance }, props, { useComponentOverrides: useComponentOverrides, }) ), @@ -686,7 +689,7 @@ var ThirdPartyPreBuiltUI = /** @class */ (function (_super) { }; // For tests ThirdPartyPreBuiltUI.reset = function () { - if (!utils.isTest()) { + if (!superTokens.isTest()) { return; } ThirdPartyPreBuiltUI.instance = undefined; diff --git a/lib/build/thirdparty.js b/lib/build/thirdparty.js index 3c482855b..57b67c719 100644 --- a/lib/build/thirdparty.js +++ b/lib/build/thirdparty.js @@ -2,646 +2,26 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var recipe = require("./thirdparty-shared.js"); -var jsxRuntime = require("react/jsx-runtime"); -require("react"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); +require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("react"); require("supertokens-web-js/utils/normalisedURLDomain"); require("supertokens-web-js/utils/normalisedURLPath"); -require("supertokens-web-js/utils/windowHandler"); require("./genericComponentOverrideContext.js"); +require("react/jsx-runtime"); require("supertokens-web-js/recipe/thirdparty"); require("./authRecipe-shared.js"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("./recipeModule-shared.js"); -require("supertokens-web-js"); require("./session-shared2.js"); require("supertokens-web-js/recipe/session"); require("supertokens-web-js/utils"); require("./translationContext.js"); - -/* - * Class. - */ -var Apple = /** @class */ (function (_super) { - utils.__extends(Apple, _super); - /* - * Constructor. - */ - function Apple(config) { - var _this = - _super.call(this, { - id: "apple", - name: "Apple", - clientId: config === null || config === void 0 ? void 0 : config.clientId, - getRedirectURL: config === null || config === void 0 ? void 0 : config.getRedirectURL, - }) || this; - _this.getButton = function () { - if (_this.buttonComponent !== undefined) { - return _this.buttonComponent; - } - return _this.getDefaultButton(); - }; - _this.getLogo = function () { - return jsxRuntime.jsx( - "svg", - utils.__assign( - { - xmlns: "http://www.w3.org/2000/svg", - width: "15.614", - height: "18", - viewBox: "0 0 15.614 18.737", - }, - { - children: jsxRuntime.jsxs( - "g", - utils.__assign( - { - id: "iconfinder_logo_brand_brands_logos_apple_ios_2993701", - transform: "translate(-2)", - }, - { - children: [ - jsxRuntime.jsx("path", { - id: "Path_91415", - d: "M14.494 11.075a4.29 4.29 0 0 1 2.372-3.836A4.888 4.888 0 0 0 13.713 6a4.783 4.783 0 0 0-1.83.406 4.357 4.357 0 0 1-1.684.375 4.357 4.357 0 0 1-1.684-.375A4.783 4.783 0 0 0 6.685 6C6.206 6 2 6.153 2 11.465c0 4.344 2.964 8.587 4.685 8.587a5.18 5.18 0 0 0 2.194-.464 3.2 3.2 0 0 1 1.32-.316 3.2 3.2 0 0 1 1.32.317 5.187 5.187 0 0 0 2.194.463c1.206 0 2.922-2.085 3.9-4.826a4.209 4.209 0 0 1-3.119-4.151z", - style: { fill: "#000" }, - transform: "translate(0 -1.316)", - }), - jsxRuntime.jsx("path", { - id: "XMLID_1339_", - d: "M12 4.684A4.734 4.734 0 0 0 15.906 0 4.734 4.734 0 0 0 12 4.684z", - style: { fill: "#000" }, - transform: "translate(-2.193)", - }), - jsxRuntime.jsx("path", { - id: "Path_91416", - d: "M6.685 6.2a4.783 4.783 0 0 1 1.83.406 4.357 4.357 0 0 0 1.684.375 4.357 4.357 0 0 0 1.684-.381 4.783 4.783 0 0 1 1.83-.406 4.953 4.953 0 0 1 3.014 1.126c.047-.026.091-.058.14-.082A4.888 4.888 0 0 0 13.713 6a4.783 4.783 0 0 0-1.83.406 4.357 4.357 0 0 1-1.684.375 4.357 4.357 0 0 1-1.684-.375A4.783 4.783 0 0 0 6.685 6C6.206 6 2 6.153 2 11.465v.107C2.053 6.352 6.208 6.2 6.685 6.2z", - style: { fill: "#000", opacity: 0.1 }, - transform: "translate(0 -1.316)", - }), - jsxRuntime.jsx("path", { - id: "Path_91417", - d: "M13.713 21.368a5.187 5.187 0 0 1-2.194-.463 3.2 3.2 0 0 0-1.32-.317 3.2 3.2 0 0 0-1.32.316 5.18 5.18 0 0 1-2.194.464c-1.707 0-4.633-4.174-4.681-8.48v.088c0 4.344 2.964 8.587 4.685 8.587a5.18 5.18 0 0 0 2.19-.463 3.2 3.2 0 0 1 1.32-.316 3.2 3.2 0 0 1 1.32.317 5.187 5.187 0 0 0 2.194.463c1.206 0 2.922-2.085 3.9-4.826-.023-.006-.043-.017-.066-.023-.991 2.654-2.655 4.653-3.834 4.653z", - style: { fill: "#000", opacity: 0.2 }, - transform: "translate(0 -2.826)", - }), - jsxRuntime.jsx("path", { - id: "Path_91418", - d: "M15.888.4A4.621 4.621 0 0 1 12 4.544v.2A4.745 4.745 0 0 0 15.9.261c0 .039 0 .098-.012.139z", - style: { fill: "#000", opacity: 0.2 }, - transform: "translate(-2.193 -.057)", - }), - jsxRuntime.jsx("path", { - id: "Path_91419", - d: "M12.005 4.477c.009-.051.02-.192.032-.278q.012-.161.035-.317A4.491 4.491 0 0 1 15.9.2V0a4.738 4.738 0 0 0-3.895 4.477z", - style: { fill: "#000", opacity: 0.1 }, - transform: "translate(-2.194)", - }), - jsxRuntime.jsx("path", { - id: "Path_91420", - d: "M14.494 9.759a4.29 4.29 0 0 1 2.372-3.836 4.888 4.888 0 0 0-3.153-1.239 4.783 4.783 0 0 0-1.83.406 4.357 4.357 0 0 1-1.684.375 4.357 4.357 0 0 1-1.684-.375 4.783 4.783 0 0 0-1.83-.406C6.206 4.684 2 4.838 2 10.15c0 4.344 2.964 8.587 4.685 8.587a5.18 5.18 0 0 0 2.194-.464 3.2 3.2 0 0 1 1.32-.316 3.2 3.2 0 0 1 1.32.317 5.187 5.187 0 0 0 2.194.463c1.206 0 2.922-2.085 3.9-4.826a4.209 4.209 0 0 1-3.119-4.152zM13.713 0a4.734 4.734 0 0 0-3.9 4.684A4.734 4.734 0 0 0 13.713 0z", - style: { fill: "#000" }, - }), - ], - } - ) - ), - } - ) - ); - }; - if (config === undefined) { - return _this; - } - _this.buttonComponent = config.buttonComponent; - return _this; - } - /* - * Static Methods - */ - Apple.init = function (config) { - if (Apple.instance !== undefined) { - console.warn("Apple Provider was already initialized"); - return Apple.instance; - } - Apple.instance = new Apple(config); - return Apple.instance; - }; - /* - * Tests methods. - */ - Apple.reset = function () { - if (!utils.isTest()) { - return; - } - Apple.instance = undefined; - return; - }; - return Apple; -})(recipe.Provider); - -/* - * Class. - */ -var Bitbucket = /** @class */ (function (_super) { - utils.__extends(Bitbucket, _super); - /* - * Constructor. - */ - function Bitbucket(config) { - var _this = - _super.call(this, { - id: "bitbucket", - name: "Bitbucket", - clientId: config === null || config === void 0 ? void 0 : config.clientId, - getRedirectURL: config === null || config === void 0 ? void 0 : config.getRedirectURL, - }) || this; - _this.getButton = function () { - if (_this.buttonComponent !== undefined) { - return _this.buttonComponent; - } - return _this.getDefaultButton(); - }; - _this.getLogo = function () { - return jsxRuntime.jsxs( - "svg", - utils.__assign( - { - width: "19", - height: "17", - viewBox: "0 0 19 17", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - }, - { - children: [ - jsxRuntime.jsx("path", { - d: "M0.59534 0.0522702C0.229457 0.0522702 -0.0841565 0.365883 0.0203815 0.73174L2.58156 16.2556C2.63383 16.6738 2.99971 16.9351 3.3656 16.9351H15.6488C15.9624 16.9351 16.1715 16.726 16.2238 16.4124L18.7849 0.679471C18.8372 0.313614 18.5759 0 18.21 0L0.59534 0.0522702ZM11.3628 11.2901H7.44258L6.3972 5.74956H12.3036L11.3628 11.2901Z", - fill: "#2684FF", - }), - jsxRuntime.jsx("path", { - d: "M17.9502 5.76172H12.3052L11.3643 11.3022H7.44415L2.84448 16.7905C2.84448 16.7905 3.05356 16.9996 3.36717 16.9996H15.6504C15.964 16.9996 16.1731 16.7905 16.2253 16.4769L17.9502 5.76172Z", - fill: "url(#paint0_linear_4108_67124)", - }), - jsxRuntime.jsx("defs", { - children: jsxRuntime.jsxs( - "linearGradient", - utils.__assign( - { - id: "paint0_linear_4108_67124", - x1: "19.2748", - y1: "7.29202", - x2: "9.92001", - y2: "14.5943", - gradientUnits: "userSpaceOnUse", - }, - { - children: [ - jsxRuntime.jsx("stop", { offset: "0.176", stopColor: "#0052CC" }), - jsxRuntime.jsx("stop", { offset: "1", stopColor: "#2684FF" }), - ], - } - ) - ), - }), - ], - } - ) - ); - }; - if (config === undefined) { - return _this; - } - _this.buttonComponent = config.buttonComponent; - return _this; - } - /* - * Static Methods - */ - Bitbucket.init = function (config) { - if (Bitbucket.instance !== undefined) { - console.warn("Bitbucket Provider was already initialized"); - return Bitbucket.instance; - } - Bitbucket.instance = new Bitbucket(config); - return Bitbucket.instance; - }; - /* - * Tests methods. - */ - Bitbucket.reset = function () { - if (!utils.isTest()) { - return; - } - Bitbucket.instance = undefined; - return; - }; - return Bitbucket; -})(recipe.Provider); - -/* - * Class. - */ -var Discord = /** @class */ (function (_super) { - utils.__extends(Discord, _super); - /* - * Constructor. - */ - function Discord(config) { - var _this = - _super.call(this, { - id: "discord", - name: "Discord", - clientId: config === null || config === void 0 ? void 0 : config.clientId, - getRedirectURL: config === null || config === void 0 ? void 0 : config.getRedirectURL, - }) || this; - _this.getButton = function () { - if (_this.buttonComponent !== undefined) { - return _this.buttonComponent; - } - return _this.getDefaultButton(); - }; - _this.getLogo = function () { - return jsxRuntime.jsxs( - "svg", - utils.__assign( - { - width: "18", - height: "14", - viewBox: "0 0 18 14", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - }, - { - children: [ - jsxRuntime.jsx( - "g", - utils.__assign( - { clipPath: "url(#clip0_4108_67056)" }, - { - children: jsxRuntime.jsx("path", { - d: "M15.2477 1.17248C14.0651 0.616848 12.8166 0.222666 11.5342 0C11.3587 0.321942 11.1999 0.653178 11.0585 0.99232C9.69245 0.781074 8.30327 0.781074 6.93722 0.99232C6.79573 0.653213 6.63694 0.321981 6.46152 0C5.17826 0.224546 3.92896 0.619664 2.74515 1.17538C0.394984 4.74367 -0.242109 8.22333 0.0764376 11.6536C1.45275 12.6971 2.99324 13.4908 4.63094 14C4.99971 13.491 5.32601 12.9511 5.6064 12.3858C5.07384 12.1817 4.55982 11.9299 4.0703 11.6332C4.19914 11.5374 4.32514 11.4386 4.4469 11.3427C5.87129 12.0301 7.42594 12.3865 8.99999 12.3865C10.574 12.3865 12.1287 12.0301 13.5531 11.3427C13.6762 11.4458 13.8023 11.5446 13.9297 11.6332C13.4392 11.9304 12.9242 12.1827 12.3907 12.3873C12.6708 12.9523 12.9971 13.4918 13.3662 14C15.0053 13.4928 16.547 12.6996 17.9235 11.655C18.2973 7.67704 17.285 4.22935 15.2477 1.17248ZM6.0099 9.544C5.12221 9.544 4.38885 8.71731 4.38885 7.70029C4.38885 6.68327 5.09673 5.84931 6.00707 5.84931C6.9174 5.84931 7.6451 6.68327 7.62953 7.70029C7.61396 8.71731 6.91457 9.544 6.0099 9.544ZM11.9901 9.544C11.101 9.544 10.3704 8.71731 10.3704 7.70029C10.3704 6.68327 11.0783 5.84931 11.9901 5.84931C12.9018 5.84931 13.6239 6.68327 13.6083 7.70029C13.5927 8.71731 12.8947 9.544 11.9901 9.544Z", - fill: "#5865F2", - }), - } - ) - ), - jsxRuntime.jsx("defs", { - children: jsxRuntime.jsx( - "clipPath", - utils.__assign( - { id: "clip0_4108_67056" }, - { - children: jsxRuntime.jsx("rect", { - width: "18", - height: "14", - fill: "white", - }), - } - ) - ), - }), - ], - } - ) - ); - }; - if (config === undefined) { - return _this; - } - _this.buttonComponent = config.buttonComponent; - return _this; - } - /* - * Static Methods - */ - Discord.init = function (config) { - if (Discord.instance !== undefined) { - console.warn("Discord Provider was already initialized"); - return Discord.instance; - } - Discord.instance = new Discord(config); - return Discord.instance; - }; - /* - * Tests methods. - */ - Discord.reset = function () { - if (!utils.isTest()) { - return; - } - Discord.instance = undefined; - return; - }; - return Discord; -})(recipe.Provider); - -/* - * Class. - */ -var Facebook = /** @class */ (function (_super) { - utils.__extends(Facebook, _super); - /* - * Constructor. - */ - function Facebook(config) { - var _this = - _super.call(this, { - id: "facebook", - name: "Facebook", - clientId: config === null || config === void 0 ? void 0 : config.clientId, - getRedirectURL: config === null || config === void 0 ? void 0 : config.getRedirectURL, - }) || this; - _this.getButton = function () { - if (_this.buttonComponent !== undefined) { - return _this.buttonComponent; - } - return _this.getDefaultButton(); - }; - _this.getLogo = function () { - return jsxRuntime.jsx( - "svg", - utils.__assign( - { - fill: "#1777F2", - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 30 30", - width: "24px", - height: "24px", - }, - { - children: jsxRuntime.jsx("path", { - d: "M15,3C8.373,3,3,8.373,3,15c0,6.016,4.432,10.984,10.206,11.852V18.18h-2.969v-3.154h2.969v-2.099c0-3.475,1.693-5,4.581-5 c1.383,0,2.115,0.103,2.461,0.149v2.753h-1.97c-1.226,0-1.654,1.163-1.654,2.473v1.724h3.593L19.73,18.18h-3.106v8.697 C22.481,26.083,27,21.075,27,15C27,8.373,21.627,3,15,3z", - }), - } - ) - ); - }; - if (config === undefined) { - return _this; - } - _this.buttonComponent = config.buttonComponent; - return _this; - } - /* - * Static Methods - */ - Facebook.init = function (config) { - if (Facebook.instance !== undefined) { - console.warn("Facebook Provider was already initialized"); - return Facebook.instance; - } - Facebook.instance = new Facebook(config); - return Facebook.instance; - }; - /* - * Tests methods. - */ - Facebook.reset = function () { - if (!utils.isTest()) { - return; - } - Facebook.instance = undefined; - return; - }; - return Facebook; -})(recipe.Provider); - -/* - * Class. - */ -var Github = /** @class */ (function (_super) { - utils.__extends(Github, _super); - /* - * Constructor. - */ - function Github(config) { - var _this = - _super.call(this, { - id: "github", - name: "GitHub", - clientId: config === null || config === void 0 ? void 0 : config.clientId, - getRedirectURL: config === null || config === void 0 ? void 0 : config.getRedirectURL, - }) || this; - _this.getButton = function () { - if (_this.buttonComponent !== undefined) { - return _this.buttonComponent; - } - return _this.getDefaultButton(); - }; - _this.getLogo = function () { - return jsxRuntime.jsx( - "svg", - utils.__assign( - { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "17.556", viewBox: "0 0 18 17.556" }, - { - children: jsxRuntime.jsx("path", { - fill: "#000", - fillRule: "evenodd", - d: "M145.319 107.44a9 9 0 0 0-2.844 17.54c.45.082.614-.2.614-.434 0-.214-.008-.78-.012-1.531-2.5.544-3.032-1.206-3.032-1.206a2.384 2.384 0 0 0-1-1.317c-.817-.559.062-.547.062-.547a1.89 1.89 0 0 1 1.378.927 1.916 1.916 0 0 0 2.619.748 1.924 1.924 0 0 1 .571-1.2c-2-.227-4.1-1-4.1-4.448a3.479 3.479 0 0 1 .927-2.415 3.233 3.233 0 0 1 .088-2.382s.755-.242 2.475.923a8.535 8.535 0 0 1 4.506 0c1.718-1.165 2.472-.923 2.472-.923a3.234 3.234 0 0 1 .09 2.382 3.473 3.473 0 0 1 .925 2.415c0 3.458-2.1 4.218-4.11 4.441a2.149 2.149 0 0 1 .611 1.667c0 1.2-.011 2.174-.011 2.469 0 .24.162.52.619.433a9 9 0 0 0-2.851-17.539z", - transform: "translate(-136.32 -107.44)", - }), - } - ) - ); - }; - if (config === undefined) { - return _this; - } - _this.buttonComponent = config.buttonComponent; - return _this; - } - /* - * Static Methods - */ - Github.init = function (config) { - if (Github.instance !== undefined) { - console.warn("Github Provider was already initialized"); - return Github.instance; - } - Github.instance = new Github(config); - return Github.instance; - }; - /* - * Tests methods. - */ - Github.reset = function () { - if (!utils.isTest()) { - return; - } - Github.instance = undefined; - return; - }; - return Github; -})(recipe.Provider); - -/* - * Class. - */ -var Gitlab = /** @class */ (function (_super) { - utils.__extends(Gitlab, _super); - /* - * Constructor. - */ - function Gitlab(config) { - var _this = - _super.call(this, { - id: "gitlab", - name: "Gitlab", - clientId: config === null || config === void 0 ? void 0 : config.clientId, - getRedirectURL: config === null || config === void 0 ? void 0 : config.getRedirectURL, - }) || this; - _this.getButton = function () { - if (_this.buttonComponent !== undefined) { - return _this.buttonComponent; - } - return _this.getDefaultButton(); - }; - _this.getLogo = function () { - return jsxRuntime.jsxs( - "svg", - utils.__assign( - { - width: "18", - height: "18", - viewBox: "0 0 18 18", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - }, - { - children: [ - jsxRuntime.jsx("path", { - d: "M17.7004 6.86178L17.6751 6.79711L15.2251 0.403269C15.1753 0.277953 15.087 0.171648 14.973 0.0996044C14.8589 0.0287852 14.7259 -0.00532357 14.5918 0.00188338C14.4577 0.00909034 14.3291 0.057266 14.2232 0.139906C14.1186 0.224918 14.0426 0.340113 14.0058 0.469813L12.3516 5.5309H5.65312L3.99889 0.469813C3.96302 0.339406 3.88693 0.223634 3.78145 0.138968C3.67562 0.0563286 3.54698 0.0081529 3.41289 0.000945942C3.27881 -0.00626101 3.14574 0.0278478 3.03166 0.0986669C2.91791 0.171001 2.82972 0.277214 2.77954 0.402332L0.324918 6.79336L0.30055 6.85803C-0.0521303 7.77953 -0.0956629 8.79071 0.176516 9.73911C0.448694 10.6875 1.02183 11.5217 1.8095 12.1159L1.81794 12.1225L1.84043 12.1384L5.57251 14.9333L7.41888 16.3307L8.54356 17.1798C8.67512 17.2797 8.83575 17.3338 9.00093 17.3338C9.16611 17.3338 9.32675 17.2797 9.45831 17.1798L10.583 16.3307L12.4293 14.9333L16.1839 12.1216L16.1933 12.1141C16.9792 11.5197 17.551 10.6864 17.8228 9.73926C18.0945 8.79214 18.0516 7.7824 17.7004 6.86178Z", - fill: "#E24329", - }), - jsxRuntime.jsx("path", { - d: "M17.7004 6.86154L17.6751 6.79688C16.4813 7.04191 15.3564 7.54756 14.3807 8.27771L9 12.3463C10.8323 13.7324 12.4275 14.9368 12.4275 14.9368L16.1821 12.1251L16.1914 12.1176C16.9785 11.5233 17.5511 10.6894 17.8233 9.74145C18.0954 8.79352 18.0523 7.78284 17.7004 6.86154Z", - fill: "#FC6D26", - }), - jsxRuntime.jsx("path", { - d: "M5.57251 14.9362L7.41887 16.3337L8.54356 17.1828C8.67511 17.2827 8.83575 17.3367 9.00093 17.3367C9.16611 17.3367 9.32674 17.2827 9.4583 17.1828L10.583 16.3337L12.4293 14.9362C12.4293 14.9362 10.8323 13.7281 8.99999 12.3457C7.16769 13.7281 5.57251 14.9362 5.57251 14.9362Z", - fill: "#FCA326", - }), - jsxRuntime.jsx("path", { - d: "M3.61837 8.27755C2.64345 7.5459 1.51877 7.03893 0.324918 6.79297L0.30055 6.85764C-0.0521303 7.77914 -0.0956629 8.79031 0.176516 9.73871C0.448694 10.6871 1.02183 11.5213 1.8095 12.1155L1.81794 12.1221L1.84043 12.138L5.57251 14.9329C5.57251 14.9329 7.16582 13.7285 9 12.3424L3.61837 8.27755Z", - fill: "#FC6D26", - }), - ], - } - ) - ); - }; - if (config === undefined) { - return _this; - } - _this.buttonComponent = config.buttonComponent; - return _this; - } - /* - * Static Methods - */ - Gitlab.init = function (config) { - if (Gitlab.instance !== undefined) { - console.warn("Gitlab Provider was already initialized"); - return Gitlab.instance; - } - Gitlab.instance = new Gitlab(config); - return Gitlab.instance; - }; - /* - * Tests methods. - */ - Gitlab.reset = function () { - if (!utils.isTest()) { - return; - } - Gitlab.instance = undefined; - return; - }; - return Gitlab; -})(recipe.Provider); - -/* - * Class. - */ -var Google = /** @class */ (function (_super) { - utils.__extends(Google, _super); - /* - * Constructor. - */ - function Google(config) { - var _this = - _super.call(this, { - id: "google", - name: "Google", - clientId: config === null || config === void 0 ? void 0 : config.clientId, - getRedirectURL: config === null || config === void 0 ? void 0 : config.getRedirectURL, - }) || this; - _this.getButton = function () { - if (_this.buttonComponent !== undefined) { - return _this.buttonComponent; - } - return _this.getDefaultButton(); - }; - _this.getLogo = function () { - return jsxRuntime.jsxs( - "svg", - utils.__assign( - { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 48 48", width: "18px", height: "18px" }, - { - children: [ - jsxRuntime.jsx("path", { - fill: "#FFC107", - d: "M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12c0-6.627,5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24c0,11.045,8.955,20,20,20c11.045,0,20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z", - }), - jsxRuntime.jsx("path", { - fill: "#FF3D00", - d: "M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z", - }), - jsxRuntime.jsx("path", { - fill: "#4CAF50", - d: "M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36c-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z", - }), - jsxRuntime.jsx("path", { - fill: "#1976D2", - d: "M43.611,20.083H42V20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571c0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z", - }), - ], - } - ) - ); - }; - if (config === undefined) { - return _this; - } - _this.buttonComponent = config.buttonComponent; - return _this; - } - /* - * Static Methods - */ - Google.init = function (config) { - if (Google.instance !== undefined) { - console.warn("Google Provider was already initialized"); - return Google.instance; - } - Google.instance = new Google(config); - return Google.instance; - }; - /* - * Tests methods. - */ - Google.reset = function () { - if (!utils.isTest()) { - return; - } - Google.instance = undefined; - return; - }; - return Google; -})(recipe.Provider); +require("supertokens-web-js/lib/build/normalisedURLPath"); /* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. * @@ -666,12 +46,12 @@ var Wrapper = /** @class */ (function () { return recipe.ThirdParty.init(config); }; Wrapper.signOut = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.ThirdParty.getInstanceOrThrow().signOut({ - userContext: utils.getNormalisedUserContext( + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }), @@ -680,16 +60,16 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.redirectToThirdPartyLogin = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var recipeInstance; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { recipeInstance = recipe.ThirdParty.getInstanceOrThrow(); return [ 2 /*return*/, recipe.redirectToThirdPartyLogin({ thirdPartyId: input.thirdPartyId, config: recipeInstance.config, - userContext: utils.getNormalisedUserContext(input.userContext), + userContext: superTokens.getNormalisedUserContext(input.userContext), recipeImplementation: recipeInstance.webJSRecipe, }), ]; @@ -698,49 +78,21 @@ var Wrapper = /** @class */ (function () { }; Wrapper.getStateAndOtherInfoFromStorage = function (input) { return recipe.ThirdParty.getInstanceOrThrow().webJSRecipe.getStateAndOtherInfoFromStorage( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) ); }; - Wrapper.setStateAndOtherInfoToStorage = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [ - 2 /*return*/, - recipe.ThirdParty.getInstanceOrThrow().webJSRecipe.setStateAndOtherInfoToStorage( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), - }) - ), - ]; - }); - }); - }; Wrapper.getAuthorisationURLWithQueryParamsAndSetState = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.ThirdParty.getInstanceOrThrow().webJSRecipe.getAuthorisationURLWithQueryParamsAndSetState( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), - }) - ), - ]; - }); - }); - }; - Wrapper.getAuthorisationURLFromBackend = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [ - 2 /*return*/, - recipe.ThirdParty.getInstanceOrThrow().webJSRecipe.getAuthorisationURLFromBackend( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -748,13 +100,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.signInAndUp = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, recipe.ThirdParty.getInstanceOrThrow().webJSRecipe.signInAndUp( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) @@ -763,103 +115,50 @@ var Wrapper = /** @class */ (function () { }); }); }; - Wrapper.generateStateToSendToOAuthProvider = function (input) { - return recipe.ThirdParty.getInstanceOrThrow().webJSRecipe.generateStateToSendToOAuthProvider( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( - input === null || input === void 0 ? void 0 : input.userContext - ), - }) - ); - }; - Wrapper.verifyAndGetStateOrThrowError = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [ - 2 /*return*/, - recipe.ThirdParty.getInstanceOrThrow().webJSRecipe.verifyAndGetStateOrThrowError( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), - }) - ), - ]; - }); - }); - }; - Wrapper.getAuthCodeFromURL = function (input) { - return recipe.ThirdParty.getInstanceOrThrow().webJSRecipe.getAuthCodeFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( - input === null || input === void 0 ? void 0 : input.userContext - ), - }) - ); - }; - Wrapper.getAuthErrorFromURL = function (input) { - return recipe.ThirdParty.getInstanceOrThrow().webJSRecipe.getAuthErrorFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( - input === null || input === void 0 ? void 0 : input.userContext - ), - }) - ); - }; - Wrapper.getAuthStateFromURL = function (input) { - return recipe.ThirdParty.getInstanceOrThrow().webJSRecipe.getAuthStateFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( - input === null || input === void 0 ? void 0 : input.userContext - ), - }) - ); - }; /* * Providers */ - Wrapper.Apple = Apple; - Wrapper.Bitbucket = Bitbucket; - Wrapper.Discord = Discord; - Wrapper.Github = Github; - Wrapper.Gitlab = Gitlab; - Wrapper.Google = Google; - Wrapper.Facebook = Facebook; - Wrapper.ComponentsOverrideProvider = recipe.Provider$1; + Wrapper.Apple = recipe.Apple; + Wrapper.Bitbucket = recipe.Bitbucket; + Wrapper.Discord = recipe.Discord; + Wrapper.Github = recipe.Github; + Wrapper.Gitlab = recipe.Gitlab; + Wrapper.Google = recipe.Google; + Wrapper.GoogleWorkspaces = recipe.GoogleWorkspaces; + Wrapper.Facebook = recipe.Facebook; + Wrapper.LinkedIn = recipe.LinkedIn; + Wrapper.ActiveDirectory = recipe.ActiveDirectory; + Wrapper.BoxySAML = recipe.BoxySAML; + Wrapper.Okta = recipe.Okta; + Wrapper.ComponentsOverrideProvider = recipe.Provider; return Wrapper; })(); var init = Wrapper.init; var signOut = Wrapper.signOut; var redirectToThirdPartyLogin = Wrapper.redirectToThirdPartyLogin; var getStateAndOtherInfoFromStorage = Wrapper.getStateAndOtherInfoFromStorage; -var setStateAndOtherInfoToStorage = Wrapper.setStateAndOtherInfoToStorage; var getAuthorisationURLWithQueryParamsAndSetState = Wrapper.getAuthorisationURLWithQueryParamsAndSetState; -var getAuthorisationURLFromBackend = Wrapper.getAuthorisationURLFromBackend; -var generateStateToSendToOAuthProvider = Wrapper.generateStateToSendToOAuthProvider; -var verifyAndGetStateOrThrowError = Wrapper.verifyAndGetStateOrThrowError; -var getAuthCodeFromURL = Wrapper.getAuthCodeFromURL; -var getAuthErrorFromURL = Wrapper.getAuthErrorFromURL; -var getAuthStateFromURL = Wrapper.getAuthStateFromURL; var signInAndUp = Wrapper.signInAndUp; var ThirdpartyComponentsOverrideProvider = Wrapper.ComponentsOverrideProvider; -exports.Apple = Apple; -exports.Bitbucket = Bitbucket; -exports.Discord = Discord; -exports.Facebook = Facebook; -exports.Github = Github; -exports.Gitlab = Gitlab; -exports.Google = Google; +exports.ActiveDirectory = recipe.ActiveDirectory; +exports.Apple = recipe.Apple; +exports.Bitbucket = recipe.Bitbucket; +exports.BoxySAML = recipe.BoxySAML; +exports.Discord = recipe.Discord; +exports.Facebook = recipe.Facebook; +exports.Github = recipe.Github; +exports.Gitlab = recipe.Gitlab; +exports.Google = recipe.Google; +exports.GoogleWorkspaces = recipe.GoogleWorkspaces; +exports.LinkedIn = recipe.LinkedIn; +exports.Okta = recipe.Okta; +exports.Twitter = recipe.Twitter; exports.ThirdpartyComponentsOverrideProvider = ThirdpartyComponentsOverrideProvider; exports.default = Wrapper; -exports.generateStateToSendToOAuthProvider = generateStateToSendToOAuthProvider; -exports.getAuthCodeFromURL = getAuthCodeFromURL; -exports.getAuthErrorFromURL = getAuthErrorFromURL; -exports.getAuthStateFromURL = getAuthStateFromURL; -exports.getAuthorisationURLFromBackend = getAuthorisationURLFromBackend; exports.getAuthorisationURLWithQueryParamsAndSetState = getAuthorisationURLWithQueryParamsAndSetState; exports.getStateAndOtherInfoFromStorage = getStateAndOtherInfoFromStorage; exports.init = init; exports.redirectToThirdPartyLogin = redirectToThirdPartyLogin; -exports.setStateAndOtherInfoToStorage = setStateAndOtherInfoToStorage; exports.signInAndUp = signInAndUp; exports.signOut = signOut; -exports.verifyAndGetStateOrThrowError = verifyAndGetStateOrThrowError; diff --git a/lib/build/thirdpartyemailpassword-shared.js b/lib/build/thirdpartyemailpassword-shared.js index a231fa645..057a0f0bc 100644 --- a/lib/build/thirdpartyemailpassword-shared.js +++ b/lib/build/thirdpartyemailpassword-shared.js @@ -1,9 +1,9 @@ "use strict"; var genericComponentOverrideContext = require("./genericComponentOverrideContext.js"); -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var ThirdPartyEmailPasswordWebJS = require("supertokens-web-js/recipe/thirdpartyemailpassword"); -var utils$1 = require("./authRecipe-shared.js"); +var utils = require("./authRecipe-shared.js"); var recipe$1 = require("./emailpassword-shared4.js"); var recipe = require("./thirdparty-shared.js"); @@ -19,11 +19,11 @@ var _a = genericComponentOverrideContext.createGenericComponentsOverrideContext( var getFunctionOverrides = function (recipeId, onHandleEvent) { return function (originalImp) { - return utils.__assign(utils.__assign({}, originalImp), { + return superTokens.__assign(superTokens.__assign({}, originalImp), { thirdPartySignInAndUp: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.thirdPartySignInAndUp(input)]; @@ -44,23 +44,25 @@ var getFunctionOverrides = function (recipeId, onHandleEvent) { }, setStateAndOtherInfoToStorage: function (input) { return originalImp.setStateAndOtherInfoToStorage({ - state: utils.__assign(utils.__assign({}, input.state), { + state: superTokens.__assign(superTokens.__assign({}, input.state), { rid: recipeId, - redirectToPath: utils.getRedirectToPathFromURL(), + redirectToPath: superTokens.getRedirectToPathFromURL(), }), userContext: input.userContext, }); }, submitNewPassword: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [ 4 /*yield*/, originalImp.submitNewPassword( - utils.__assign(utils.__assign({}, input), { formFields: [input.formFields[0]] }) + superTokens.__assign(superTokens.__assign({}, input), { + formFields: [input.formFields[0]], + }) ), ]; case 1: @@ -77,9 +79,9 @@ var getFunctionOverrides = function (recipeId, onHandleEvent) { }); }, sendPasswordResetEmail: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.sendPasswordResetEmail(input)]; @@ -97,9 +99,9 @@ var getFunctionOverrides = function (recipeId, onHandleEvent) { }); }, emailPasswordSignUp: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.emailPasswordSignUp(input)]; @@ -119,9 +121,9 @@ var getFunctionOverrides = function (recipeId, onHandleEvent) { }); }, emailPasswordSignIn: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.emailPasswordSignIn(input)]; @@ -166,6 +168,7 @@ function getRecipeImplementation$1(originalImplementation) { submitNewPassword: originalImplementation.submitNewPassword.bind(originalImplementation), signIn: originalImplementation.emailPasswordSignIn.bind(originalImplementation), signUp: originalImplementation.emailPasswordSignUp.bind(originalImplementation), + getTenantIdFromURL: originalImplementation.getTenantIdFromURL.bind(originalImplementation), }; } @@ -185,22 +188,11 @@ function getRecipeImplementation$1(originalImplementation) { */ function getRecipeImplementation(originalImplementation) { return { - generateStateToSendToOAuthProvider: - originalImplementation.generateStateToSendToOAuthProvider.bind(originalImplementation), - getAuthCodeFromURL: originalImplementation.getAuthCodeFromURL.bind(originalImplementation), - getAuthErrorFromURL: originalImplementation.getAuthErrorFromURL.bind(originalImplementation), - getAuthStateFromURL: originalImplementation.getAuthStateFromURL.bind(originalImplementation), - getAuthorisationURLFromBackend: - originalImplementation.getAuthorisationURLFromBackend.bind(originalImplementation), getAuthorisationURLWithQueryParamsAndSetState: originalImplementation.getAuthorisationURLWithQueryParamsAndSetState.bind(originalImplementation), getStateAndOtherInfoFromStorage: originalImplementation.getStateAndOtherInfoFromStorage.bind(originalImplementation), - setStateAndOtherInfoToStorage: - originalImplementation.setStateAndOtherInfoToStorage.bind(originalImplementation), signInAndUp: originalImplementation.thirdPartySignInAndUp.bind(originalImplementation), - verifyAndGetStateOrThrowError: - originalImplementation.verifyAndGetStateOrThrowError.bind(originalImplementation), }; } @@ -222,24 +214,10 @@ function getRecipeImplementation(originalImplementation) { * Methods. */ function normaliseThirdPartyEmailPasswordConfig(config) { - var _a, _b; if (config === undefined) { throw new Error("ThirdpartyEmailPassword config should not be empty"); } - var disableEmailPassword = config.disableEmailPassword === true; - var disableThirdParty = !((_b = - (_a = config.signInAndUpFeature) === null || _a === void 0 ? void 0 : _a.providers) === null || _b === void 0 - ? void 0 - : _b.length); - if ( - disableEmailPassword && - (config.signInAndUpFeature === undefined || - config.signInAndUpFeature.providers === undefined || - config.signInAndUpFeature.providers.length === 0) - ) { - throw new Error("You need to enable either email password or third party providers login."); - } - var override = utils.__assign( + var override = superTokens.__assign( { functions: function (originalImplementation) { return originalImplementation; @@ -248,18 +226,15 @@ function normaliseThirdPartyEmailPasswordConfig(config) { config.override ); var signInAndUpFeature = normaliseSignInUpFeatureConfig(config.signInAndUpFeature); - var thirdpartyNormalisedConfig; - if (!disableThirdParty) { - thirdpartyNormalisedConfig = recipe.normaliseThirdPartyConfig({ - getRedirectionURL: config.getRedirectionURL, - style: config.style, - onHandleEvent: config.onHandleEvent, - preAPIHook: config.preAPIHook, - signInAndUpFeature: config.signInAndUpFeature, - oAuthCallbackScreen: config.oAuthCallbackScreen, - useShadowDom: config.useShadowDom, - }); - } + var thirdpartyNormalisedConfig = recipe.normaliseThirdPartyConfig({ + getRedirectionURL: config.getRedirectionURL, + style: config.style, + onHandleEvent: config.onHandleEvent, + preAPIHook: config.preAPIHook, + signInAndUpFeature: config.signInAndUpFeature, + oAuthCallbackScreen: config.oAuthCallbackScreen, + useShadowDom: config.useShadowDom, + }); var emailPasswordNormalisedConfig = recipe$1.normaliseEmailPasswordConfig({ getRedirectionURL: config.getRedirectionURL, onHandleEvent: config.onHandleEvent, @@ -269,10 +244,10 @@ function normaliseThirdPartyEmailPasswordConfig(config) { signInAndUpFeature: config.signInAndUpFeature, useShadowDom: config.useShadowDom, }); - return utils.__assign(utils.__assign({}, utils$1.normaliseAuthRecipe(config)), { + return superTokens.__assign(superTokens.__assign({}, utils.normaliseAuthRecipe(config)), { emailPasswordConfig: emailPasswordNormalisedConfig, thirdPartyConfig: thirdpartyNormalisedConfig, - disableEmailPassword: disableEmailPassword, + disableEmailPassword: config.disableEmailPassword === true, signInAndUpFeature: signInAndUpFeature, override: override, }); @@ -281,7 +256,7 @@ function normaliseSignInUpFeatureConfig(config) { var disableDefaultUI = config === undefined || config.disableDefaultUI === undefined ? false : config.disableDefaultUI; var defaultToSignUp = config === undefined || config.defaultToSignUp === undefined ? false : config.defaultToSignUp; - return utils.__assign(utils.__assign({}, config), { + return superTokens.__assign(superTokens.__assign({}, config), { disableDefaultUI: disableDefaultUI, defaultToSignUp: defaultToSignUp, style: config === undefined || config.style === undefined ? "" : config.style, @@ -303,16 +278,29 @@ function normaliseSignInUpFeatureConfig(config) { * under the License. */ var ThirdPartyEmailPassword = /** @class */ (function (_super) { - utils.__extends(ThirdPartyEmailPassword, _super); + superTokens.__extends(ThirdPartyEmailPassword, _super); function ThirdPartyEmailPassword(config, recipes, webJSRecipe) { if (webJSRecipe === void 0) { webJSRecipe = ThirdPartyEmailPasswordWebJS__default.default; } - var _this = _super.call(this, config) || this; + var _this = this; + var _a; + var disableThirdParty = + ((_a = config.signInAndUpFeature) === null || _a === void 0 ? void 0 : _a.providers) === undefined || + config.signInAndUpFeature.providers.length === 0; + if ( + superTokens.SuperTokens.usesDynamicLoginMethods === false && + config.disableEmailPassword === true && + disableThirdParty + ) { + throw new Error("You need to enable either email password or third party providers login."); + } + _this = _super.call(this, config) || this; _this.webJSRecipe = webJSRecipe; + _this.recipeID = ThirdPartyEmailPassword.RECIPE_ID; _this.getDefaultRedirectionURL = function (context) { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { if (context.action === "RESET_PASSWORD") { if (this.emailPasswordRecipe === undefined) { throw new Error("Should not come here..."); @@ -327,10 +315,10 @@ var ThirdPartyEmailPassword = /** @class */ (function (_super) { _this.emailPasswordRecipe = recipes.emailPasswordInstance !== undefined ? recipes.emailPasswordInstance - : _this.config.disableEmailPassword + : superTokens.SuperTokens.usesDynamicLoginMethods === false && _this.config.disableEmailPassword ? undefined : new recipe$1.EmailPassword( - utils.__assign(utils.__assign({}, _this.config.emailPasswordConfig), { + superTokens.__assign(superTokens.__assign({}, _this.config.emailPasswordConfig), { appInfo: _this.config.appInfo, recipeId: _this.config.recipeId, }), @@ -346,10 +334,10 @@ var ThirdPartyEmailPassword = /** @class */ (function (_super) { _this.thirdPartyRecipe = recipes.thirdPartyInstance !== undefined ? recipes.thirdPartyInstance - : _this.config.thirdPartyConfig === undefined + : superTokens.SuperTokens.usesDynamicLoginMethods === false && disableThirdParty ? undefined : new recipe.ThirdParty( - utils.__assign(utils.__assign({}, _this.config.thirdPartyConfig), { + superTokens.__assign(superTokens.__assign({}, _this.config.thirdPartyConfig), { appInfo: _this.config.appInfo, recipeId: _this.config.recipeId, }), @@ -363,9 +351,10 @@ var ThirdPartyEmailPassword = /** @class */ (function (_super) { ThirdPartyEmailPassword.init = function (config) { var normalisedConfig = normaliseThirdPartyEmailPasswordConfig(config); return { + recipeID: ThirdPartyEmailPassword.RECIPE_ID, authReact: function (appInfo) { ThirdPartyEmailPassword.instance = new ThirdPartyEmailPassword( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { appInfo: appInfo, recipeId: ThirdPartyEmailPassword.RECIPE_ID, }), @@ -377,7 +366,7 @@ var ThirdPartyEmailPassword = /** @class */ (function (_super) { return ThirdPartyEmailPassword.instance; }, webJS: ThirdPartyEmailPasswordWebJS__default.default.init( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { override: { functions: function (originalImpl, builder) { var functions = getFunctionOverrides( @@ -400,7 +389,7 @@ var ThirdPartyEmailPassword = /** @class */ (function (_super) { "See https://supertokens.io/docs/thirdpartyemailpassword/quick-setup/frontend"; // eslint-disable-next-line supertokens-auth-react/no-direct-window-object if (typeof window === "undefined") { - error = error + utils.SSR_ERROR; + error = error + superTokens.SSR_ERROR; } throw Error(error); } @@ -410,7 +399,7 @@ var ThirdPartyEmailPassword = /** @class */ (function (_super) { * Tests methods. */ ThirdPartyEmailPassword.reset = function () { - if (!utils.isTest()) { + if (!superTokens.isTest()) { return; } ThirdPartyEmailPassword.instance = undefined; @@ -418,7 +407,7 @@ var ThirdPartyEmailPassword = /** @class */ (function (_super) { }; ThirdPartyEmailPassword.RECIPE_ID = "thirdpartyemailpassword"; return ThirdPartyEmailPassword; -})(utils$1.AuthRecipe); +})(utils.AuthRecipe); exports.Provider = Provider; exports.ThirdPartyEmailPassword = ThirdPartyEmailPassword; diff --git a/lib/build/thirdpartyemailpassword.js b/lib/build/thirdpartyemailpassword.js index afeda8e99..198c35a90 100644 --- a/lib/build/thirdpartyemailpassword.js +++ b/lib/build/thirdpartyemailpassword.js @@ -2,26 +2,28 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var utils = require("./utils.js"); -var thirdparty = require("./thirdparty.js"); -var recipe$1 = require("./thirdparty-shared.js"); -var recipe = require("./thirdpartyemailpassword-shared.js"); -require("react"); +var superTokens = require("./superTokens.js"); +require("./thirdparty.js"); +var recipe = require("./thirdparty-shared.js"); +var recipe$1 = require("./thirdpartyemailpassword-shared.js"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); +require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("react"); require("supertokens-web-js/utils/normalisedURLDomain"); require("supertokens-web-js/utils/normalisedURLPath"); -require("supertokens-web-js/utils/windowHandler"); -require("react/jsx-runtime"); require("./genericComponentOverrideContext.js"); +require("react/jsx-runtime"); require("supertokens-web-js/recipe/thirdparty"); require("./authRecipe-shared.js"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("./recipeModule-shared.js"); -require("supertokens-web-js"); require("./session-shared2.js"); require("supertokens-web-js/recipe/session"); require("supertokens-web-js/utils"); require("./translationContext.js"); +require("supertokens-web-js/lib/build/normalisedURLPath"); require("supertokens-web-js/recipe/thirdpartyemailpassword"); require("./emailpassword-shared4.js"); require("supertokens-web-js/recipe/emailpassword"); @@ -30,15 +32,15 @@ require("./emailpassword-shared5.js"); var Wrapper = /** @class */ (function () { function Wrapper() {} Wrapper.init = function (config) { - return recipe.ThirdPartyEmailPassword.init(config); + return recipe$1.ThirdPartyEmailPassword.init(config); }; Wrapper.signOut = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyEmailPassword.getInstanceOrThrow().signOut({ - userContext: utils.getNormalisedUserContext( + recipe$1.ThirdPartyEmailPassword.getInstanceOrThrow().signOut({ + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }), @@ -47,13 +49,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.submitNewPassword = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.submitNewPassword( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + recipe$1.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.submitNewPassword( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -61,13 +63,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.sendPasswordResetEmail = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.sendPasswordResetEmail( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + recipe$1.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.sendPasswordResetEmail( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -75,13 +77,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.emailPasswordSignUp = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.emailPasswordSignUp( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + recipe$1.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.emailPasswordSignUp( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -89,13 +91,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.emailPasswordSignIn = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.emailPasswordSignIn( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + recipe$1.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.emailPasswordSignIn( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -103,13 +105,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.doesEmailExist = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.doesEmailExist( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + recipe$1.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.doesEmailExist( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -117,19 +119,19 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.getResetPasswordTokenFromURL = function (input) { - return recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getResetPasswordTokenFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + return recipe$1.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getResetPasswordTokenFromURL( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) ); }; Wrapper.redirectToThirdPartyLogin = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var recipeInstance; - return utils.__generator(this, function (_a) { - recipeInstance = recipe.ThirdPartyEmailPassword.getInstanceOrThrow(); + return superTokens.__generator(this, function (_a) { + recipeInstance = recipe$1.ThirdPartyEmailPassword.getInstanceOrThrow(); if (recipeInstance.thirdPartyRecipe === undefined) { throw new Error( "Third party email password was initialised without any social providers. This function is only available if at least one social provider is initialised" @@ -137,38 +139,24 @@ var Wrapper = /** @class */ (function () { } return [ 2 /*return*/, - recipe$1.redirectToThirdPartyLogin({ + recipe.redirectToThirdPartyLogin({ thirdPartyId: input.thirdPartyId, config: recipeInstance.thirdPartyRecipe.config, - userContext: utils.getNormalisedUserContext(input.userContext), + userContext: superTokens.getNormalisedUserContext(input.userContext), recipeImplementation: recipeInstance.thirdPartyRecipe.webJSRecipe, }), ]; }); }); }; - Wrapper.getAuthorisationURLFromBackend = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [ - 2 /*return*/, - recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getAuthorisationURLFromBackend( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), - }) - ), - ]; - }); - }); - }; Wrapper.thirdPartySignInAndUp = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.thirdPartySignInAndUp( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + recipe$1.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.thirdPartySignInAndUp( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) @@ -178,100 +166,41 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.getStateAndOtherInfoFromStorage = function (input) { - return recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getStateAndOtherInfoFromStorage( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + return recipe$1.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getStateAndOtherInfoFromStorage( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) ); }; - Wrapper.setStateAndOtherInfoToStorage = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [ - 2 /*return*/, - recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.setStateAndOtherInfoToStorage( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), - }) - ), - ]; - }); - }); - }; Wrapper.getAuthorisationURLWithQueryParamsAndSetState = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [ - 2 /*return*/, - recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getAuthorisationURLWithQueryParamsAndSetState( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), - }) - ), - ]; - }); - }); - }; - Wrapper.generateStateToSendToOAuthProvider = function (input) { - return recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.generateStateToSendToOAuthProvider( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( - input === null || input === void 0 ? void 0 : input.userContext - ), - }) - ); - }; - Wrapper.verifyAndGetStateOrThrowError = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.verifyAndGetStateOrThrowError( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + recipe$1.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getAuthorisationURLWithQueryParamsAndSetState( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; }); }); }; - Wrapper.getAuthCodeFromURL = function (input) { - return recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getAuthCodeFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( - input === null || input === void 0 ? void 0 : input.userContext - ), - }) - ); - }; - Wrapper.getAuthErrorFromURL = function (input) { - return recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getAuthErrorFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( - input === null || input === void 0 ? void 0 : input.userContext - ), - }) - ); - }; - Wrapper.getAuthStateFromURL = function (input) { - return recipe.ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getAuthStateFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( - input === null || input === void 0 ? void 0 : input.userContext - ), - }) - ); - }; - Wrapper.Apple = thirdparty.Apple; - Wrapper.Bitbucket = thirdparty.Bitbucket; - Wrapper.Discord = thirdparty.Discord; - Wrapper.Github = thirdparty.Github; - Wrapper.Gitlab = thirdparty.Gitlab; - Wrapper.Google = thirdparty.Google; - Wrapper.Facebook = thirdparty.Facebook; - Wrapper.ComponentsOverrideProvider = recipe.Provider; + Wrapper.Google = recipe.Google; + Wrapper.GoogleWorkspaces = recipe.GoogleWorkspaces; + Wrapper.Apple = recipe.Apple; + Wrapper.Bitbucket = recipe.Bitbucket; + Wrapper.Discord = recipe.Discord; + Wrapper.Github = recipe.Github; + Wrapper.Gitlab = recipe.Gitlab; + Wrapper.Facebook = recipe.Facebook; + Wrapper.LinkedIn = recipe.LinkedIn; + Wrapper.ActiveDirectory = recipe.ActiveDirectory; + Wrapper.BoxySAML = recipe.BoxySAML; + Wrapper.Okta = recipe.Okta; + Wrapper.ComponentsOverrideProvider = recipe$1.Provider; return Wrapper; })(); var init = Wrapper.init; @@ -284,42 +213,33 @@ var emailPasswordSignUp = Wrapper.emailPasswordSignUp; var doesEmailExist = Wrapper.doesEmailExist; var getResetPasswordTokenFromURL = Wrapper.getResetPasswordTokenFromURL; var redirectToThirdPartyLogin = Wrapper.redirectToThirdPartyLogin; -var getAuthorisationURLFromBackend = Wrapper.getAuthorisationURLFromBackend; var thirdPartySignInAndUp = Wrapper.thirdPartySignInAndUp; var getStateAndOtherInfoFromStorage = Wrapper.getStateAndOtherInfoFromStorage; -var setStateAndOtherInfoToStorage = Wrapper.setStateAndOtherInfoToStorage; var getAuthorisationURLWithQueryParamsAndSetState = Wrapper.getAuthorisationURLWithQueryParamsAndSetState; -var generateStateToSendToOAuthProvider = Wrapper.generateStateToSendToOAuthProvider; -var verifyAndGetStateOrThrowError = Wrapper.verifyAndGetStateOrThrowError; -var getAuthCodeFromURL = Wrapper.getAuthCodeFromURL; -var getAuthErrorFromURL = Wrapper.getAuthErrorFromURL; -var getAuthStateFromURL = Wrapper.getAuthStateFromURL; -exports.Apple = thirdparty.Apple; -exports.Bitbucket = thirdparty.Bitbucket; -exports.Discord = thirdparty.Discord; -exports.Facebook = thirdparty.Facebook; -exports.Github = thirdparty.Github; -exports.Gitlab = thirdparty.Gitlab; -exports.Google = thirdparty.Google; +exports.ActiveDirectory = recipe.ActiveDirectory; +exports.Apple = recipe.Apple; +exports.Bitbucket = recipe.Bitbucket; +exports.BoxySAML = recipe.BoxySAML; +exports.Discord = recipe.Discord; +exports.Facebook = recipe.Facebook; +exports.Github = recipe.Github; +exports.Gitlab = recipe.Gitlab; +exports.Google = recipe.Google; +exports.GoogleWorkspaces = recipe.GoogleWorkspaces; +exports.LinkedIn = recipe.LinkedIn; +exports.Okta = recipe.Okta; exports.ThirdpartyEmailPasswordComponentsOverrideProvider = ThirdpartyEmailPasswordComponentsOverrideProvider; exports.default = Wrapper; exports.doesEmailExist = doesEmailExist; exports.emailPasswordSignIn = emailPasswordSignIn; exports.emailPasswordSignUp = emailPasswordSignUp; -exports.generateStateToSendToOAuthProvider = generateStateToSendToOAuthProvider; -exports.getAuthCodeFromURL = getAuthCodeFromURL; -exports.getAuthErrorFromURL = getAuthErrorFromURL; -exports.getAuthStateFromURL = getAuthStateFromURL; -exports.getAuthorisationURLFromBackend = getAuthorisationURLFromBackend; exports.getAuthorisationURLWithQueryParamsAndSetState = getAuthorisationURLWithQueryParamsAndSetState; exports.getResetPasswordTokenFromURL = getResetPasswordTokenFromURL; exports.getStateAndOtherInfoFromStorage = getStateAndOtherInfoFromStorage; exports.init = init; exports.redirectToThirdPartyLogin = redirectToThirdPartyLogin; exports.sendPasswordResetEmail = sendPasswordResetEmail; -exports.setStateAndOtherInfoToStorage = setStateAndOtherInfoToStorage; exports.signOut = signOut; exports.submitNewPassword = submitNewPassword; exports.thirdPartySignInAndUp = thirdPartySignInAndUp; -exports.verifyAndGetStateOrThrowError = verifyAndGetStateOrThrowError; diff --git a/lib/build/thirdpartyemailpasswordprebuiltui.js b/lib/build/thirdpartyemailpasswordprebuiltui.js index c0257f889..2025e1c8d 100644 --- a/lib/build/thirdpartyemailpasswordprebuiltui.js +++ b/lib/build/thirdpartyemailpasswordprebuiltui.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); var userContextWrapper = require("./userContextWrapper.js"); @@ -13,17 +13,18 @@ var React = require("react"); var translations = require("./translations.js"); var translationContext = require("./translationContext.js"); var generalError = require("./emailpassword-shared.js"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); -require("supertokens-web-js/utils/normalisedURLDomain"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("supertokens-web-js/utils/normalisedURLDomain"); require("./session-shared3.js"); require("supertokens-web-js/recipe/session"); require("./session-shared4.js"); require("./genericComponentOverrideContext.js"); require("./session-shared2.js"); require("./recipeModule-shared.js"); -require("supertokens-web-js"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils"); require("./session-shared.js"); require("./emailpassword-shared3.js"); @@ -39,6 +40,7 @@ require("supertokens-web-js/recipe/emailpassword"); require("./authRecipe-shared.js"); require("./thirdparty-shared.js"); require("supertokens-web-js/recipe/thirdparty"); +require("supertokens-web-js/lib/build/normalisedURLPath"); require("./spinnerIcon.js"); require("supertokens-web-js/recipe/thirdpartyemailpassword"); require("react-dom"); @@ -77,7 +79,7 @@ var NormalisedURLPath__default = /*#__PURE__*/ _interopDefault(NormalisedURLPath var React__namespace = /*#__PURE__*/ _interopNamespace(React); var styles = - '/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved.\n *\n * This software is licensed under the Apache License, Version 2.0 (the\n * "License") as published by the Apache Software Foundation.\n *\n * You may not use this file except in compliance with the License. You may\n * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations\n * under the License.\n */\n/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved.\n *\n * This software is licensed under the Apache License, Version 2.0 (the\n * "License") as published by the Apache Software Foundation.\n *\n * You may not use this file except in compliance with the License. You may\n * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations\n * under the License.\n */\n[data-supertokens~="container"] {\n --palette-background: 255, 255, 255;\n --palette-inputBackground: 250, 250, 250;\n --palette-inputBorder: 224, 224, 224;\n --palette-primary: 255, 155, 51;\n --palette-primaryBorder: 238, 141, 35;\n --palette-success: 65, 167, 0;\n --palette-successBackground: 217, 255, 191;\n --palette-error: 255, 23, 23;\n --palette-errorBackground: 255, 241, 235;\n --palette-textTitle: 34, 34, 34;\n --palette-textLabel: 34, 34, 34;\n --palette-textInput: 34, 34, 34;\n --palette-textPrimary: 101, 101, 101;\n --palette-textLink: 0, 118, 255;\n --palette-buttonText: 255, 255, 255;\n --palette-textGray: 128, 128, 128;\n --palette-superTokensBrandingBackground: 242, 245, 246;\n --palette-superTokensBrandingText: 173, 189, 196;\n\n --font-size-0: 12px;\n --font-size-1: 14px;\n --font-size-2: 16px;\n --font-size-3: 19px;\n --font-size-4: 24px;\n}\n/*\n * Default styles.\n */\n@-webkit-keyframes slideTop {\n 0% {\n -webkit-transform: translateY(-5px);\n transform: translateY(-5px);\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n }\n}\n@keyframes slideTop {\n 0% {\n -webkit-transform: translateY(-5px);\n transform: translateY(-5px);\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n }\n}\n@-webkit-keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n}\n@keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n}\n[data-supertokens~="container"] {\n font-family: "Rubik", sans-serif;\n margin: 12px auto;\n margin-top: 26px;\n margin-bottom: 26px;\n width: 420px;\n text-align: center;\n border-radius: 8px;\n box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.16);\n background-color: rgb(var(--palette-background));\n}\n@media (max-width: 440px) {\n [data-supertokens~="container"] {\n width: 95vw;\n }\n}\n[data-supertokens~="row"] {\n margin: 0 auto;\n width: 76%;\n padding-top: 30px;\n padding-bottom: 10px;\n}\n[data-supertokens~="superTokensBranding"] {\n display: block;\n margin: 0 auto;\n background: rgb(var(--palette-superTokensBrandingBackground));\n color: rgb(var(--palette-superTokensBrandingText));\n text-decoration: none;\n width: -webkit-fit-content;\n width: -moz-fit-content;\n width: fit-content;\n border-radius: 6px 6px 0 0;\n padding: 4px 9px;\n font-weight: 300;\n font-size: var(--font-size-0);\n letter-spacing: 0.4px;\n}\n[data-supertokens~="generalError"] {\n background: rgb(var(--palette-errorBackground));\n padding-top: 10px;\n padding-bottom: 10px;\n margin-bottom: 15px;\n padding-left: 18px;\n padding-right: 18px;\n letter-spacing: 0.2px;\n font-size: var(--font-size-1);\n border-radius: 8px;\n color: rgb(var(--palette-error));\n -webkit-animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n word-wrap: break-word;\n}\n[data-supertokens~="headerTitle"] {\n font-size: var(--font-size-4);\n line-height: 40px;\n letter-spacing: 0.58px;\n font-weight: 800;\n margin-bottom: 2px;\n color: rgb(var(--palette-textTitle));\n}\n[data-supertokens~="headerSubtitle"] {\n margin-bottom: 21px;\n}\n[data-supertokens~="privacyPolicyAndTermsAndConditions"] {\n max-width: 300px;\n margin-top: 10px;\n}\n[data-supertokens~="privacyPolicyAndTermsAndConditions"] a {\n line-height: 21px;\n}\n/* TODO: split the link style into separate things*/\n/* We add this before primary and secondary text, because if they are applied to the same element the other ones take priority */\n[data-supertokens~="link"] {\n padding-left: 3px;\n padding-right: 3px;\n color: rgb(var(--palette-textLink));\n font-size: var(--font-size-1);\n cursor: pointer;\n letter-spacing: 0.16px;\n line-height: 26px;\n}\n[data-supertokens~="primaryText"] {\n font-size: var(--font-size-1);\n font-weight: 500;\n letter-spacing: 0.4px;\n line-height: 21px;\n color: rgb(var(--palette-textLabel));\n}\n[data-supertokens~="secondaryText"] {\n font-size: var(--font-size-1);\n font-weight: 300;\n letter-spacing: 0.4px;\n color: rgb(var(--palette-textPrimary));\n}\n[data-supertokens~="divider"] {\n margin-top: 1em;\n margin-bottom: 1em;\n border-bottom: 0.3px solid #dddddd;\n align-items: center;\n padding-bottom: 5px;\n}\n[data-supertokens~="headerTinyTitle"] {\n margin-top: 13px;\n font-size: var(--font-size-3);\n letter-spacing: 1.1px;\n font-weight: 500;\n line-height: 28px;\n}\n[data-supertokens~="secondaryLinkWithArrow"] {\n margin-top: 10px;\n margin-bottom: 30px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithArrow"]:hover {\n position: relative;\n left: 2px;\n word-spacing: 4px;\n}\n[data-supertokens~="generalSuccess"] {\n color: rgb(var(--palette-success));\n font-size: var(--font-size-1);\n background: rgb(var(--palette-successBackground));\n -webkit-animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n padding: 9px 15px 9px 15px;\n border-radius: 6px;\n display: inline-block;\n}\n[data-supertokens~="spinner"] {\n width: 80px;\n height: auto;\n padding-top: 20px;\n padding-bottom: 40px;\n margin: 0 auto;\n}\n[data-supertokens~="error"] {\n color: rgb(var(--palette-error));\n}\n[data-supertokens~="linkButton"] {\n background-color: transparent;\n border: 0;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"] {\n margin-top: 10px;\n margin-bottom: 40px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"] svg {\n margin-right: 0.3em;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"]:hover svg {\n position: relative;\n left: -4px;\n}\n[data-supertokens~="button"] {\n background-color: rgb(var(--palette-primary));\n color: rgb(var(--palette-buttonText));\n width: 100%;\n height: 34px;\n font-weight: 700;\n border-width: 1px;\n border-style: solid;\n border-radius: 6px;\n border-color: rgb(var(--palette-primaryBorder));\n background-position: center;\n transition: all 0.4s;\n background-size: 12000%;\n cursor: pointer;\n}\n[data-supertokens~="button"]:disabled {\n border: none;\n cursor: no-drop;\n}\n[data-supertokens~="button"]:active {\n outline: none;\n transition: all 0s;\n background-size: 100%;\n -webkit-filter: brightness(0.85);\n filter: brightness(0.85);\n}\n[data-supertokens~="button"]:focus {\n outline: none;\n}\n[data-supertokens~="inputContainer"] {\n margin-top: 6px;\n}\n[data-supertokens~="inputWrapper"] {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n align-items: center;\n background-color: rgb(var(--palette-inputBackground));\n height: 34px;\n border-radius: 6px;\n border: 1px solid rgb(var(--palette-inputBorder));\n}\n[data-supertokens~="inputWrapper"][focus-within] {\n background-color: rgba(var(--palette-inputBackground), 0.25);\n border: 1px solid rgb(var(--palette-primary));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-primary), 0.25);\n outline: none;\n}\n[data-supertokens~="inputWrapper"]:focus-within {\n background-color: rgba(var(--palette-inputBackground), 0.25);\n border: 1px solid rgb(var(--palette-primary));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-primary), 0.25);\n outline: none;\n}\n[data-supertokens~="inputError"] {\n border: 1px solid rgb(var(--palette-error));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-error), 0.25);\n outline: none;\n}\n[data-supertokens~="inputError"][focus-within] {\n border: 1px solid rgb(var(--palette-error));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-error), 0.25);\n outline: none;\n}\n[data-supertokens~="inputError"]:focus-within {\n border: 1px solid rgb(var(--palette-error));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-error), 0.25);\n outline: none;\n}\n[data-supertokens~="input"] {\n box-sizing: border-box;\n padding-left: 15px;\n -webkit-filter: none;\n filter: none;\n color: rgb(var(--palette-textInput));\n background-color: transparent;\n border-radius: 6px;\n font-size: var(--font-size-1);\n border: none;\n padding-right: 25px;\n letter-spacing: 1.2px;\n flex: 9 1 75%;\n width: 75%;\n height: 32px;\n}\n[data-supertokens~="input"]:focus {\n border: none;\n outline: none;\n}\n[data-supertokens~="input"]:-webkit-autofill,\n[data-supertokens~="input"]:-webkit-autofill:hover,\n[data-supertokens~="input"]:-webkit-autofill:focus,\n[data-supertokens~="input"]:-webkit-autofill:active {\n -webkit-text-fill-color: rgb(var(--palette-textInput));\n box-shadow: 0 0 0 30px rgb(var(--palette-inputBackground)) inset;\n}\n[data-supertokens~="inputAdornment"] {\n justify-content: center;\n margin-right: 5px;\n}\n[data-supertokens~="showPassword"] {\n cursor: pointer;\n}\n[data-supertokens~="forgotPasswordLink"] {\n margin-top: 10px;\n}\n[data-supertokens~="enterEmailSuccessMessage"] {\n margin-top: 15px;\n margin-bottom: 15px;\n word-break: break-word;\n}\n[data-supertokens~="submitNewPasswordSuccessMessage"] {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n[data-supertokens~="inputErrorMessage"] {\n padding-top: 5px;\n padding-bottom: 5px;\n color: rgb(var(--palette-error));\n line-height: 24px;\n font-weight: 400;\n font-size: var(--font-size-1);\n text-align: left;\n -webkit-animation: slideTop 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n animation: slideTop 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n max-width: 330px;\n}\n@media (max-width: 440px) {\n [data-supertokens~="inputErrorMessage"] {\n max-width: 250px;\n }\n}\n[data-supertokens~="inputErrorSymbol"] {\n margin-right: 5px;\n top: 1px;\n position: relative;\n left: 2px;\n}\n[data-supertokens~="label"] {\n text-align: left;\n font-weight: 600;\n font-size: var(--font-size-1);\n line-height: 24px;\n color: rgb(var(--palette-textLabel));\n}\n[data-supertokens~="formRow"] {\n display: flex;\n flex-direction: column;\n padding-top: 0px;\n padding-bottom: 34px;\n}\n[data-supertokens~="formRow"][data-supertokens~="hasError"] {\n padding-bottom: 0;\n}\n[data-supertokens~="sendVerifyEmailIcon"] {\n margin-top: 11px;\n}\n[data-supertokens~="headerTinyTitle"] {\n margin-top: 13px;\n font-size: var(--font-size-3);\n letter-spacing: 1.1px;\n font-weight: 500;\n line-height: 28px;\n}\n[data-supertokens~="sendVerifyEmailText"] {\n line-height: 21px;\n font-size: var(--font-size-1);\n text-align: center;\n font-weight: 300;\n letter-spacing: 0.8px;\n}\n[data-supertokens~="secondaryLinkWithArrow"] {\n margin-top: 10px;\n margin-bottom: 30px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithArrow"]:hover {\n position: relative;\n left: 2px;\n word-spacing: 4px;\n}\n[data-supertokens~="sendVerifyEmailResend"] {\n margin-top: 13px;\n font-weight: 300;\n}\n[data-supertokens~="sendVerifyEmailResend"]:hover {\n text-decoration: underline;\n}\n[data-supertokens~="noFormRow"] {\n padding-bottom: 25px;\n}\n[data-supertokens~="emailVerificationButtonWrapper"] {\n padding-top: 25px;\n max-width: 96px;\n margin: 0 auto;\n}\n[data-supertokens~="resetPasswordHeaderTitle"] {\n position: relative;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n[data-supertokens~="backButtonCommon"] {\n width: 16px;\n height: 13px;\n}\n[data-supertokens~="backButton"] {\n cursor: pointer;\n border: none;\n background-color: transparent;\n padding: 0px;\n}\n[data-supertokens~="backButtonPlaceholder"] {\n display: block;\n}\n[data-supertokens~="resendEmailLink"] {\n display: inline-block;\n}\n[data-supertokens~="row"] {\n padding-bottom: 30px;\n}\n[data-supertokens~="providerContainer"] {\n padding-top: 9px;\n padding-bottom: 9px;\n}\n[data-supertokens~="providerButton"] {\n border-color: rgb(221, 221, 221) !important;\n}\n[data-supertokens~="providerButton"] {\n min-height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 2px 8px;\n\n background-color: white;\n color: black;\n}\n[data-supertokens~="providerButton"]:hover {\n -webkit-filter: none !important;\n filter: none !important;\n}\n[data-supertokens~="providerButton"]:hover {\n background-color: #fafafa;\n}\n[data-supertokens~="providerButtonLeft"] {\n width: 34px;\n margin-left: 66px;\n}\n[data-supertokens~="providerButtonLogo"] {\n height: 30px;\n display: flex;\n}\n[data-supertokens~="providerButtonLogoCenter"] {\n display: flex;\n margin: auto;\n}\n[data-supertokens~="providerButtonText"] {\n font-weight: 400;\n text-align: center;\n justify-content: center;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n display: inline-block;\n}\n[data-supertokens~="providerButtonText"]:only-child {\n margin: 0 auto;\n}\n[data-supertokens~="thirdPartyEmailPasswordDivider"] {\n padding-top: 5px;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n color: rgb(var(--palette-textPrimary));\n}\n[data-supertokens~="thirdPartyEmailPasswordDividerOr"] {\n flex: 1 1;\n margin-top: 0.75em;\n}\n[data-supertokens~="divider"] {\n flex: 3 3;\n}\n[data-supertokens~="providerButton"] {\n margin: auto !important;\n max-width: 240px !important;\n}\n[data-supertokens~="providerButtonLeft"] {\n margin-left: 30px !important;\n}\n'; + '/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved.\n *\n * This software is licensed under the Apache License, Version 2.0 (the\n * "License") as published by the Apache Software Foundation.\n *\n * You may not use this file except in compliance with the License. You may\n * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations\n * under the License.\n */\n/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved.\n *\n * This software is licensed under the Apache License, Version 2.0 (the\n * "License") as published by the Apache Software Foundation.\n *\n * You may not use this file except in compliance with the License. You may\n * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations\n * under the License.\n */\n[data-supertokens~="container"] {\n --palette-background: 255, 255, 255;\n --palette-inputBackground: 250, 250, 250;\n --palette-inputBorder: 224, 224, 224;\n --palette-primary: 255, 155, 51;\n --palette-primaryBorder: 238, 141, 35;\n --palette-success: 65, 167, 0;\n --palette-successBackground: 217, 255, 191;\n --palette-error: 255, 23, 23;\n --palette-errorBackground: 255, 241, 235;\n --palette-textTitle: 34, 34, 34;\n --palette-textLabel: 34, 34, 34;\n --palette-textInput: 34, 34, 34;\n --palette-textPrimary: 101, 101, 101;\n --palette-textLink: 0, 118, 255;\n --palette-buttonText: 255, 255, 255;\n --palette-textGray: 128, 128, 128;\n --palette-superTokensBrandingBackground: 242, 245, 246;\n --palette-superTokensBrandingText: 173, 189, 196;\n\n --font-size-0: 12px;\n --font-size-1: 14px;\n --font-size-2: 16px;\n --font-size-3: 19px;\n --font-size-4: 24px;\n}\n/*\n * Default styles.\n */\n@-webkit-keyframes slideTop {\n 0% {\n -webkit-transform: translateY(-5px);\n transform: translateY(-5px);\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n }\n}\n@keyframes slideTop {\n 0% {\n -webkit-transform: translateY(-5px);\n transform: translateY(-5px);\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n }\n}\n@-webkit-keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n}\n@keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n}\n[data-supertokens~="container"] {\n font-family: "Rubik", sans-serif;\n margin: 12px auto;\n margin-top: 26px;\n margin-bottom: 26px;\n width: 420px;\n text-align: center;\n border-radius: 8px;\n box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.16);\n background-color: rgb(var(--palette-background));\n}\n@media (max-width: 440px) {\n [data-supertokens~="container"] {\n width: 95vw;\n }\n}\n[data-supertokens~="row"] {\n margin: 0 auto;\n width: 76%;\n padding-top: 30px;\n padding-bottom: 10px;\n}\n[data-supertokens~="superTokensBranding"] {\n display: block;\n margin: 0 auto;\n background: rgb(var(--palette-superTokensBrandingBackground));\n color: rgb(var(--palette-superTokensBrandingText));\n text-decoration: none;\n width: -webkit-fit-content;\n width: -moz-fit-content;\n width: fit-content;\n border-radius: 6px 6px 0 0;\n padding: 4px 9px;\n font-weight: 300;\n font-size: var(--font-size-0);\n letter-spacing: 0.4px;\n}\n[data-supertokens~="generalError"] {\n background: rgb(var(--palette-errorBackground));\n padding-top: 10px;\n padding-bottom: 10px;\n margin-bottom: 15px;\n padding-left: 18px;\n padding-right: 18px;\n letter-spacing: 0.2px;\n font-size: var(--font-size-1);\n border-radius: 8px;\n color: rgb(var(--palette-error));\n -webkit-animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n word-wrap: break-word;\n}\n[data-supertokens~="headerTitle"] {\n font-size: var(--font-size-4);\n line-height: 40px;\n letter-spacing: 0.58px;\n font-weight: 800;\n margin-bottom: 2px;\n color: rgb(var(--palette-textTitle));\n}\n[data-supertokens~="headerSubtitle"] {\n margin-bottom: 21px;\n}\n[data-supertokens~="privacyPolicyAndTermsAndConditions"] {\n max-width: 300px;\n margin-top: 10px;\n}\n[data-supertokens~="privacyPolicyAndTermsAndConditions"] a {\n line-height: 21px;\n}\n/* TODO: split the link style into separate things*/\n/* We add this before primary and secondary text, because if they are applied to the same element the other ones take priority */\n[data-supertokens~="link"] {\n padding-left: 3px;\n padding-right: 3px;\n color: rgb(var(--palette-textLink));\n font-size: var(--font-size-1);\n cursor: pointer;\n letter-spacing: 0.16px;\n line-height: 26px;\n}\n[data-supertokens~="primaryText"] {\n font-size: var(--font-size-1);\n font-weight: 500;\n letter-spacing: 0.4px;\n line-height: 21px;\n color: rgb(var(--palette-textLabel));\n}\n[data-supertokens~="secondaryText"] {\n font-size: var(--font-size-1);\n font-weight: 300;\n letter-spacing: 0.4px;\n color: rgb(var(--palette-textPrimary));\n}\n[data-supertokens~="divider"] {\n margin-top: 1em;\n margin-bottom: 1em;\n border-bottom: 0.3px solid #dddddd;\n align-items: center;\n padding-bottom: 5px;\n}\n[data-supertokens~="headerTinyTitle"] {\n margin-top: 13px;\n font-size: var(--font-size-3);\n letter-spacing: 1.1px;\n font-weight: 500;\n line-height: 28px;\n}\n[data-supertokens~="secondaryLinkWithArrow"] {\n margin-top: 10px;\n margin-bottom: 30px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithArrow"]:hover {\n position: relative;\n left: 2px;\n word-spacing: 4px;\n}\n[data-supertokens~="generalSuccess"] {\n color: rgb(var(--palette-success));\n font-size: var(--font-size-1);\n background: rgb(var(--palette-successBackground));\n -webkit-animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n padding: 9px 15px 9px 15px;\n border-radius: 6px;\n display: inline-block;\n}\n[data-supertokens~="spinner"] {\n width: 80px;\n height: auto;\n padding-top: 20px;\n padding-bottom: 40px;\n margin: 0 auto;\n}\n[data-supertokens~="error"] {\n color: rgb(var(--palette-error));\n}\n[data-supertokens~="linkButton"] {\n background-color: transparent;\n border: 0;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"] {\n margin-top: 10px;\n margin-bottom: 40px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"] svg {\n margin-right: 0.3em;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"]:hover svg {\n position: relative;\n left: -4px;\n}\n[data-supertokens~="button"] {\n background-color: rgb(var(--palette-primary));\n color: rgb(var(--palette-buttonText));\n width: 100%;\n height: 34px;\n font-weight: 700;\n border-width: 1px;\n border-style: solid;\n border-radius: 6px;\n border-color: rgb(var(--palette-primaryBorder));\n background-position: center;\n transition: all 0.4s;\n background-size: 12000%;\n cursor: pointer;\n}\n[data-supertokens~="button"]:disabled {\n border: none;\n cursor: no-drop;\n}\n[data-supertokens~="button"]:active {\n outline: none;\n transition: all 0s;\n background-size: 100%;\n -webkit-filter: brightness(0.85);\n filter: brightness(0.85);\n}\n[data-supertokens~="button"]:focus {\n outline: none;\n}\n[data-supertokens~="inputContainer"] {\n margin-top: 6px;\n}\n[data-supertokens~="inputWrapper"] {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n align-items: center;\n background-color: rgb(var(--palette-inputBackground));\n height: 34px;\n border-radius: 6px;\n border: 1px solid rgb(var(--palette-inputBorder));\n}\n[data-supertokens~="inputWrapper"][focus-within] {\n background-color: rgba(var(--palette-inputBackground), 0.25);\n border: 1px solid rgb(var(--palette-primary));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-primary), 0.25);\n outline: none;\n}\n[data-supertokens~="inputWrapper"]:focus-within {\n background-color: rgba(var(--palette-inputBackground), 0.25);\n border: 1px solid rgb(var(--palette-primary));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-primary), 0.25);\n outline: none;\n}\n[data-supertokens~="inputError"] {\n border: 1px solid rgb(var(--palette-error));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-error), 0.25);\n outline: none;\n}\n[data-supertokens~="inputError"][focus-within] {\n border: 1px solid rgb(var(--palette-error));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-error), 0.25);\n outline: none;\n}\n[data-supertokens~="inputError"]:focus-within {\n border: 1px solid rgb(var(--palette-error));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-error), 0.25);\n outline: none;\n}\n[data-supertokens~="input"] {\n box-sizing: border-box;\n padding-left: 15px;\n -webkit-filter: none;\n filter: none;\n color: rgb(var(--palette-textInput));\n background-color: transparent;\n border-radius: 6px;\n font-size: var(--font-size-1);\n border: none;\n padding-right: 25px;\n letter-spacing: 1.2px;\n flex: 9 1 75%;\n width: 75%;\n height: 32px;\n}\n[data-supertokens~="input"]:focus {\n border: none;\n outline: none;\n}\n[data-supertokens~="input"]:-webkit-autofill,\n[data-supertokens~="input"]:-webkit-autofill:hover,\n[data-supertokens~="input"]:-webkit-autofill:focus,\n[data-supertokens~="input"]:-webkit-autofill:active {\n -webkit-text-fill-color: rgb(var(--palette-textInput));\n box-shadow: 0 0 0 30px rgb(var(--palette-inputBackground)) inset;\n}\n[data-supertokens~="inputAdornment"] {\n justify-content: center;\n margin-right: 5px;\n}\n[data-supertokens~="showPassword"] {\n cursor: pointer;\n}\n[data-supertokens~="forgotPasswordLink"] {\n margin-top: 10px;\n}\n[data-supertokens~="enterEmailSuccessMessage"] {\n margin-top: 15px;\n margin-bottom: 15px;\n word-break: break-word;\n}\n[data-supertokens~="submitNewPasswordSuccessMessage"] {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n[data-supertokens~="inputErrorMessage"] {\n padding-top: 5px;\n padding-bottom: 5px;\n color: rgb(var(--palette-error));\n line-height: 24px;\n font-weight: 400;\n font-size: var(--font-size-1);\n text-align: left;\n -webkit-animation: slideTop 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n animation: slideTop 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n max-width: 330px;\n}\n@media (max-width: 440px) {\n [data-supertokens~="inputErrorMessage"] {\n max-width: 250px;\n }\n}\n[data-supertokens~="inputErrorSymbol"] {\n margin-right: 5px;\n top: 1px;\n position: relative;\n left: 2px;\n}\n[data-supertokens~="label"] {\n text-align: left;\n font-weight: 600;\n font-size: var(--font-size-1);\n line-height: 24px;\n color: rgb(var(--palette-textLabel));\n}\n[data-supertokens~="formRow"] {\n display: flex;\n flex-direction: column;\n padding-top: 0px;\n padding-bottom: 34px;\n}\n[data-supertokens~="formRow"][data-supertokens~="hasError"] {\n padding-bottom: 0;\n}\n[data-supertokens~="sendVerifyEmailIcon"] {\n margin-top: 11px;\n}\n[data-supertokens~="headerTinyTitle"] {\n margin-top: 13px;\n font-size: var(--font-size-3);\n letter-spacing: 1.1px;\n font-weight: 500;\n line-height: 28px;\n}\n[data-supertokens~="sendVerifyEmailText"] {\n line-height: 21px;\n font-size: var(--font-size-1);\n text-align: center;\n font-weight: 300;\n letter-spacing: 0.8px;\n}\n[data-supertokens~="secondaryLinkWithArrow"] {\n margin-top: 10px;\n margin-bottom: 30px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithArrow"]:hover {\n position: relative;\n left: 2px;\n word-spacing: 4px;\n}\n[data-supertokens~="sendVerifyEmailResend"] {\n margin-top: 13px;\n font-weight: 300;\n}\n[data-supertokens~="sendVerifyEmailResend"]:hover {\n text-decoration: underline;\n}\n[data-supertokens~="noFormRow"] {\n padding-bottom: 25px;\n}\n[data-supertokens~="emailVerificationButtonWrapper"] {\n padding-top: 25px;\n max-width: 96px;\n margin: 0 auto;\n}\n[data-supertokens~="resetPasswordHeaderTitle"] {\n position: relative;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n[data-supertokens~="backButtonCommon"] {\n width: 16px;\n height: 13px;\n}\n[data-supertokens~="backButton"] {\n cursor: pointer;\n border: none;\n background-color: transparent;\n padding: 0px;\n}\n[data-supertokens~="backButtonPlaceholder"] {\n display: block;\n}\n[data-supertokens~="resendEmailLink"] {\n display: inline-block;\n}\n[data-supertokens~="row"] {\n padding-bottom: 30px;\n}\n[data-supertokens~="providerContainer"] {\n padding-top: 9px;\n padding-bottom: 9px;\n}\n[data-supertokens~="providerButton"] {\n border-color: rgb(221, 221, 221) !important;\n}\n[data-supertokens~="providerButton"] {\n min-height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 2px 8px;\n\n background-color: white;\n color: black;\n}\n[data-supertokens~="providerButton"]:hover {\n -webkit-filter: none !important;\n filter: none !important;\n}\n[data-supertokens~="providerButton"]:hover {\n background-color: #fafafa;\n}\n[data-supertokens~="providerButtonLeft"] {\n min-width: 34px;\n margin-left: 66px;\n}\n[data-supertokens~="providerButtonLogo"] {\n height: 30px;\n display: flex;\n}\n[data-supertokens~="providerButtonLogoCenter"] {\n display: flex;\n margin: auto;\n}\n[data-supertokens~="providerButtonText"] {\n font-weight: 400;\n text-align: center;\n justify-content: center;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n display: inline-block;\n}\n[data-supertokens~="providerButtonText"]:only-child {\n margin: 0 auto;\n}\n[data-supertokens~="thirdPartyEmailPasswordDivider"] {\n padding-top: 5px;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n color: rgb(var(--palette-textPrimary));\n}\n[data-supertokens~="thirdPartyEmailPasswordDividerOr"] {\n flex: 1 1;\n margin-top: 0.75em;\n}\n[data-supertokens~="divider"] {\n flex: 3 3;\n}\n[data-supertokens~="providerButton"] {\n margin: auto !important;\n max-width: 240px !important;\n}\n[data-supertokens~="providerButtonLeft"] {\n margin-left: 30px !important;\n}\n'; var ThemeBase = function (_a) { var children = _a.children, @@ -122,16 +124,36 @@ var Header = translations.withOverride("ThirdPartyEmailPasswordHeader", function }); var SignInAndUpTheme = function (props) { + var _a; var t = translationContext.useTranslation(); + var usesDynamicLoginMethods = superTokens.SuperTokens.usesDynamicLoginMethods; + var dynamicLoginMethods = superTokens.Multitenancy.getInstanceOrThrow().getLoadedDynamicLoginMethods(); + var hasProviders = + ((_a = props.tpChildProps) === null || _a === void 0 ? void 0 : _a.providers) !== undefined && + props.tpChildProps.providers.length > 0; + var thirdPartyEnabled = + (usesDynamicLoginMethods === false && hasProviders) || + ((dynamicLoginMethods === null || dynamicLoginMethods === void 0 + ? void 0 + : dynamicLoginMethods.thirdparty.enabled) && + hasProviders); + var emailPasswordEnabled = + (props.emailPasswordRecipe !== undefined && usesDynamicLoginMethods === false) || + (dynamicLoginMethods === null || dynamicLoginMethods === void 0 + ? void 0 + : dynamicLoginMethods.emailpassword.enabled); + if (thirdPartyEnabled === false && emailPasswordEnabled === false) { + return null; + } return jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: [ jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: [ @@ -144,25 +166,26 @@ var SignInAndUpTheme = function (props) { props.commonState.error && jsxRuntime.jsx(generalError.GeneralError, { error: props.commonState.error }), props.tpChildProps !== undefined && + thirdPartyEnabled && jsxRuntime.jsx( thirdpartyprebuiltui.ProvidersForm, - utils.__assign({}, props.tpChildProps, { + superTokens.__assign({}, props.tpChildProps, { featureState: props.tpState, dispatch: props.tpDispatch, }) ), - props.config.disableEmailPassword !== true && - props.thirdPartyRecipe !== undefined && + emailPasswordEnabled && + thirdPartyEnabled && jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "thirdPartyEmailPasswordDivider" }, { children: [ jsxRuntime.jsx("div", { "data-supertokens": "divider" }), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "thirdPartyEmailPasswordDividerOr", @@ -180,10 +203,11 @@ var SignInAndUpTheme = function (props) { ) ), props.epChildProps !== undefined && + emailPasswordEnabled && (props.epState.isSignUp ? jsxRuntime.jsx( emailpasswordprebuiltui.SignUpForm, - utils.__assign({}, props.epChildProps.signUpForm, { + superTokens.__assign({}, props.epChildProps.signUpForm, { footer: jsxRuntime.jsx(emailpasswordprebuiltui.SignUpFooter, { privacyPolicyLink: props.epChildProps.config.signInAndUpFeature.signUpForm @@ -196,7 +220,7 @@ var SignInAndUpTheme = function (props) { ) : jsxRuntime.jsx( emailpasswordprebuiltui.SignInForm, - utils.__assign({}, props.epChildProps.signInForm, { + superTokens.__assign({}, props.epChildProps.signInForm, { footer: jsxRuntime.jsx(emailpasswordprebuiltui.SignInFooter, { onClick: props.epChildProps.signInForm.forgotPasswordClick, }), @@ -216,17 +240,17 @@ function SignInAndUpThemeWrapper(props) { var hasFont = translations.hasFontDefined(props.config.rootStyle); return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( ThemeBase, - utils.__assign( + superTokens.__assign( { loadDefaultFont: !hasFont, userStyles: [props.config.rootStyle, props.config.signInAndUpFeature.style], }, - { children: jsxRuntime.jsx(SignInAndUpTheme, utils.__assign({}, props)) } + { children: jsxRuntime.jsx(SignInAndUpTheme, superTokens.__assign({}, props)) } ) ), } @@ -235,9 +259,9 @@ function SignInAndUpThemeWrapper(props) { } var defaultTranslationsThirdPartyEmailPassword = { - en: utils.__assign( - utils.__assign( - utils.__assign({}, thirdpartyprebuiltui.defaultTranslationsThirdParty.en), + en: superTokens.__assign( + superTokens.__assign( + superTokens.__assign({}, thirdpartyprebuiltui.defaultTranslationsThirdParty.en), emailpasswordprebuiltui.defaultTranslationsEmailPassword.en ), { THIRD_PARTY_EMAIL_PASSWORD_SIGN_IN_AND_UP_DIVIDER_OR: "or" } @@ -255,11 +279,11 @@ var SignInAndUp$1 = function (props) { function (state, action) { switch (action.type) { case "setSignIn": - return utils.__assign(utils.__assign({}, state), { error: undefined }); + return superTokens.__assign(superTokens.__assign({}, state), { error: undefined }); case "setSignUp": - return utils.__assign(utils.__assign({}, state), { error: undefined }); + return superTokens.__assign(superTokens.__assign({}, state), { error: undefined }); case "setError": - return utils.__assign(utils.__assign({}, state), { error: action.error }); + return superTokens.__assign(superTokens.__assign({}, state), { error: action.error }); default: return state; } @@ -268,7 +292,6 @@ var SignInAndUp$1 = function (props) { ), combinedState = _c[0], dispatch = _c[1]; - var recipeComponentOverrides = props.useComponentOverrides(); var combinedTPDispatch = React__namespace.useCallback( function (action) { dispatch(action); @@ -303,33 +326,35 @@ var SignInAndUp$1 = function (props) { epDispatch: combinedEPDispatch, epChildProps: epChildProps, }; + return jsxRuntime.jsxs(React.Fragment, { + children: [ + props.children === undefined && + jsxRuntime.jsx(SignInAndUpThemeWrapper, superTokens.__assign({}, childProps)), + props.children && + React__namespace.Children.map(props.children, function (child) { + if (React__namespace.isValidElement(child)) { + return React__namespace.cloneElement(child, childProps); + } + return child; + }), + ], + }); +}; +var SignInAndUpFeatureWrapper = function (props) { + var recipeComponentOverrides = props.useComponentOverrides(); return jsxRuntime.jsx( translations.ComponentOverrideContext.Provider, - utils.__assign( + superTokens.__assign( { value: recipeComponentOverrides }, { children: jsxRuntime.jsx( translations.FeatureWrapper, - utils.__assign( + superTokens.__assign( { useShadowDom: props.recipe.config.useShadowDom, defaultStore: defaultTranslationsThirdPartyEmailPassword, }, - { - children: jsxRuntime.jsxs(React.Fragment, { - children: [ - props.children === undefined && - jsxRuntime.jsx(SignInAndUpThemeWrapper, utils.__assign({}, childProps)), - props.children && - React__namespace.Children.map(props.children, function (child) { - if (React__namespace.isValidElement(child)) { - return React__namespace.cloneElement(child, childProps); - } - return child; - }), - ], - }), - } + { children: jsxRuntime.jsx(SignInAndUp$1, superTokens.__assign({}, props)) } ) ), } @@ -338,7 +363,7 @@ var SignInAndUp$1 = function (props) { }; var ThirdPartyEmailPasswordPreBuiltUI = /** @class */ (function (_super) { - utils.__extends(ThirdPartyEmailPasswordPreBuiltUI, _super); + superTokens.__extends(ThirdPartyEmailPasswordPreBuiltUI, _super); function ThirdPartyEmailPasswordPreBuiltUI(recipeInstance) { var _this = _super.call(this) || this; _this.recipeInstance = recipeInstance; @@ -349,14 +374,14 @@ var ThirdPartyEmailPasswordPreBuiltUI = /** @class */ (function (_super) { } var features = {}; if (_this.emailPasswordPreBuiltUI !== undefined) { - features = utils.__assign( - utils.__assign({}, features), + features = superTokens.__assign( + superTokens.__assign({}, features), _this.emailPasswordPreBuiltUI.getFeatures(useComponentOverrides) ); } if (_this.thirdPartyPreBuiltUI !== undefined) { - features = utils.__assign( - utils.__assign({}, features), + features = superTokens.__assign( + superTokens.__assign({}, features), _this.thirdPartyPreBuiltUI.getFeatures(useComponentOverrides) ); } @@ -365,10 +390,11 @@ var ThirdPartyEmailPasswordPreBuiltUI = /** @class */ (function (_super) { new NormalisedURLPath__default.default("/") ); features[normalisedFullPath.getAsStringDangerous()] = { - matches: utils.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), + matches: superTokens.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), component: function (prop) { return _this.getFeatureComponent("signinup", prop, useComponentOverrides); }, + recipeID: recipe.ThirdPartyEmailPassword.RECIPE_ID, }; } return features; @@ -381,17 +407,17 @@ var ThirdPartyEmailPasswordPreBuiltUI = /** @class */ (function (_super) { if (props.redirectOnSessionExists !== false) { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( SuperTokensBranding.AuthWidgetWrapper, - utils.__assign( + superTokens.__assign( { authRecipe: _this.recipeInstance, history: props.history }, { children: jsxRuntime.jsx( - SignInAndUp$1, - utils.__assign({ recipe: _this.recipeInstance }, props, { + SignInAndUpFeatureWrapper, + superTokens.__assign({ recipe: _this.recipeInstance }, props, { useComponentOverrides: useComponentOverrides, }) ), @@ -404,12 +430,12 @@ var ThirdPartyEmailPasswordPreBuiltUI = /** @class */ (function (_super) { } else { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( - SignInAndUp$1, - utils.__assign({ recipe: _this.recipeInstance }, props, { + SignInAndUpFeatureWrapper, + superTokens.__assign({ recipe: _this.recipeInstance }, props, { useComponentOverrides: useComponentOverrides, }) ), @@ -469,7 +495,7 @@ var ThirdPartyEmailPasswordPreBuiltUI = /** @class */ (function (_super) { }; // For tests ThirdPartyEmailPasswordPreBuiltUI.reset = function () { - if (!utils.isTest()) { + if (!superTokens.isTest()) { return; } ThirdPartyEmailPasswordPreBuiltUI.instance = undefined; diff --git a/lib/build/thirdpartypasswordless-shared.js b/lib/build/thirdpartypasswordless-shared.js index db10fd490..528997a60 100644 --- a/lib/build/thirdpartypasswordless-shared.js +++ b/lib/build/thirdpartypasswordless-shared.js @@ -1,9 +1,9 @@ "use strict"; var genericComponentOverrideContext = require("./genericComponentOverrideContext.js"); -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var ThirdpartyPasswordlessWebJS = require("supertokens-web-js/recipe/thirdpartypasswordless"); -var utils$1 = require("./authRecipe-shared.js"); +var utils = require("./authRecipe-shared.js"); var recipe$1 = require("./passwordless-shared2.js"); var recipe = require("./thirdparty-shared.js"); @@ -19,11 +19,11 @@ var _a = genericComponentOverrideContext.createGenericComponentsOverrideContext( var getFunctionOverrides = function (recipeId, onHandleEvent) { return function (originalImp) { - return utils.__assign(utils.__assign({}, originalImp), { + return superTokens.__assign(superTokens.__assign({}, originalImp), { thirdPartySignInAndUp: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.thirdPartySignInAndUp(input)]; @@ -44,17 +44,17 @@ var getFunctionOverrides = function (recipeId, onHandleEvent) { }, setThirdPartyStateAndOtherInfoToStorage: function (input) { return originalImp.setThirdPartyStateAndOtherInfoToStorage({ - state: utils.__assign(utils.__assign({}, input.state), { + state: superTokens.__assign(superTokens.__assign({}, input.state), { rid: recipeId, - redirectToPath: utils.getRedirectToPathFromURL(), + redirectToPath: superTokens.getRedirectToPathFromURL(), }), userContext: input.userContext, }); }, createPasswordlessCode: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.createPasswordlessCode(input)]; @@ -72,9 +72,9 @@ var getFunctionOverrides = function (recipeId, onHandleEvent) { }); }, resendPasswordlessCode: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.resendPasswordlessCode(input)]; @@ -96,9 +96,9 @@ var getFunctionOverrides = function (recipeId, onHandleEvent) { }); }, consumePasswordlessCode: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var response; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, originalImp.consumePasswordlessCode(input)]; @@ -121,14 +121,14 @@ var getFunctionOverrides = function (recipeId, onHandleEvent) { }); }, setPasswordlessLoginAttemptInfo: function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, originalImp.setPasswordlessLoginAttemptInfo( - utils.__assign(utils.__assign({}, input), { - attemptInfo: utils.__assign( - utils.__assign({}, input.attemptInfo), + superTokens.__assign(superTokens.__assign({}, input), { + attemptInfo: superTokens.__assign( + superTokens.__assign({}, input.attemptInfo), input.userContext.additionalAttemptInfo ), }) @@ -154,27 +154,17 @@ function getRecipeImplementation$1(originalImplementation) { getLinkCodeFromURL: originalImplementation.getPasswordlessLinkCodeFromURL.bind(originalImplementation), getPreAuthSessionIdFromURL: originalImplementation.getPasswordlessPreAuthSessionIdFromURL.bind(originalImplementation), + getTenantIdFromURL: originalImplementation.getTenantIdFromURL.bind(originalImplementation), }; } function getRecipeImplementation(originalImplementation) { return { - generateStateToSendToOAuthProvider: - originalImplementation.generateThirdPartyStateToSendToOAuthProvider.bind(originalImplementation), - getAuthCodeFromURL: originalImplementation.getThirdPartyAuthCodeFromURL.bind(originalImplementation), - getAuthErrorFromURL: originalImplementation.getThirdPartyAuthErrorFromURL.bind(originalImplementation), - getAuthStateFromURL: originalImplementation.getThirdPartyAuthStateFromURL.bind(originalImplementation), - getAuthorisationURLFromBackend: - originalImplementation.getAuthorisationURLFromBackend.bind(originalImplementation), getAuthorisationURLWithQueryParamsAndSetState: originalImplementation.getThirdPartyAuthorisationURLWithQueryParamsAndSetState.bind(originalImplementation), getStateAndOtherInfoFromStorage: originalImplementation.getThirdPartyStateAndOtherInfoFromStorage.bind(originalImplementation), - setStateAndOtherInfoToStorage: - originalImplementation.setThirdPartyStateAndOtherInfoToStorage.bind(originalImplementation), signInAndUp: originalImplementation.thirdPartySignInAndUp.bind(originalImplementation), - verifyAndGetStateOrThrowError: - originalImplementation.verifyAndGetThirdPartyStateOrThrowError.bind(originalImplementation), }; } @@ -197,15 +187,7 @@ function normaliseThirdPartyPasswordlessConfig(config) { if (config === undefined) { config = {}; } - var disablePasswordless = config.disablePasswordless === true; - var disableThirdParty = - config.signInUpFeature === undefined || - config.signInUpFeature.providers === undefined || - config.signInUpFeature.providers.length === 0; - if (disablePasswordless && disableThirdParty) { - throw new Error("You need to enable either passwordless or third party providers login."); - } - var override = utils.__assign( + var override = superTokens.__assign( { functions: function (originalImplementation) { return originalImplementation; @@ -221,39 +203,36 @@ function normaliseThirdPartyPasswordlessConfig(config) { : config === null || config === void 0 ? void 0 : config.signInUpFeature.thirdPartyProviderAndEmailOrPhoneFormStyle; - return utils.__assign(utils.__assign({}, utils$1.normaliseAuthRecipe(config)), { + return superTokens.__assign(superTokens.__assign({}, utils.normaliseAuthRecipe(config)), { thirdPartyProviderAndEmailOrPhoneFormStyle: thirdPartyProviderAndEmailOrPhoneFormStyle, - thirdpartyConfig: disableThirdParty - ? undefined - : recipe.normaliseThirdPartyConfig({ - getRedirectionURL: config.getRedirectionURL, - style: config.style, - onHandleEvent: config.onHandleEvent, - preAPIHook: config.preAPIHook, - signInAndUpFeature: utils.__assign(utils.__assign({}, config.signInUpFeature), { - style: thirdPartyProviderAndEmailOrPhoneFormStyle, - }), - oAuthCallbackScreen: config.oAuthCallbackScreen, - useShadowDom: config.useShadowDom, - override: {}, - }), - passwordlessConfig: disablePasswordless - ? undefined - : recipe$1.normalisePasswordlessConfig({ - contactMethod: config.contactMethod, - style: config.style, - validateEmailAddress: "validateEmailAddress" in config ? config.validateEmailAddress : undefined, - validatePhoneNumber: "validatePhoneNumber" in config ? config.validatePhoneNumber : undefined, - getRedirectionURL: config.getRedirectionURL, - onHandleEvent: config.onHandleEvent, - preAPIHook: config.preAPIHook, - useShadowDom: config.useShadowDom, - signInUpFeature: utils.__assign(utils.__assign({}, config.signInUpFeature), { - emailOrPhoneFormStyle: thirdPartyProviderAndEmailOrPhoneFormStyle, - }), - linkClickedScreenFeature: config.linkClickedScreenFeature, - override: {}, - }), + thirdpartyConfig: recipe.normaliseThirdPartyConfig({ + getRedirectionURL: config.getRedirectionURL, + style: config.style, + onHandleEvent: config.onHandleEvent, + preAPIHook: config.preAPIHook, + signInAndUpFeature: superTokens.__assign(superTokens.__assign({}, config.signInUpFeature), { + style: thirdPartyProviderAndEmailOrPhoneFormStyle, + }), + oAuthCallbackScreen: config.oAuthCallbackScreen, + useShadowDom: config.useShadowDom, + override: {}, + }), + passwordlessConfig: recipe$1.normalisePasswordlessConfig({ + contactMethod: config.contactMethod, + style: config.style, + validateEmailAddress: "validateEmailAddress" in config ? config.validateEmailAddress : undefined, + validatePhoneNumber: "validatePhoneNumber" in config ? config.validatePhoneNumber : undefined, + getRedirectionURL: config.getRedirectionURL, + onHandleEvent: config.onHandleEvent, + preAPIHook: config.preAPIHook, + useShadowDom: config.useShadowDom, + signInUpFeature: superTokens.__assign(superTokens.__assign({}, config.signInUpFeature), { + emailOrPhoneFormStyle: thirdPartyProviderAndEmailOrPhoneFormStyle, + }), + linkClickedScreenFeature: config.linkClickedScreenFeature, + override: {}, + }), + disablePasswordless: config.disablePasswordless === true, override: override, }); } @@ -273,16 +252,34 @@ function normaliseThirdPartyPasswordlessConfig(config) { * under the License. */ var ThirdPartyPasswordless = /** @class */ (function (_super) { - utils.__extends(ThirdPartyPasswordless, _super); + superTokens.__extends(ThirdPartyPasswordless, _super); function ThirdPartyPasswordless(config, recipes, webJSRecipe) { if (webJSRecipe === void 0) { webJSRecipe = ThirdpartyPasswordlessWebJS__default.default; } - var _this = _super.call(this, config) || this; + var _this = this; + var _a, _b, _c; + var disableThirdParty = + ((_b = (_a = config.thirdpartyConfig) === null || _a === void 0 ? void 0 : _a.signInAndUpFeature) === + null || _b === void 0 + ? void 0 + : _b.providers) === undefined || + ((_c = config.thirdpartyConfig) === null || _c === void 0 + ? void 0 + : _c.signInAndUpFeature.providers.length) === 0; + if ( + superTokens.SuperTokens.usesDynamicLoginMethods === false && + config.disablePasswordless === true && + disableThirdParty + ) { + throw new Error("You need to enable either passwordless or third party providers login."); + } + _this = _super.call(this, config) || this; _this.webJSRecipe = webJSRecipe; + _this.recipeID = ThirdPartyPasswordless.RECIPE_ID; _this.getDefaultRedirectionURL = function (context) { - return utils.__awaiter(_this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(_this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [2 /*return*/, this.getAuthRecipeDefaultRedirectionURL(context)]; }); }); @@ -290,10 +287,10 @@ var ThirdPartyPasswordless = /** @class */ (function (_super) { _this.passwordlessRecipe = recipes.passwordlessInstance !== undefined ? recipes.passwordlessInstance - : _this.config.passwordlessConfig === undefined + : superTokens.SuperTokens.usesDynamicLoginMethods === false && _this.config.disablePasswordless ? undefined : new recipe$1.Passwordless( - utils.__assign(utils.__assign({}, _this.config.passwordlessConfig), { + superTokens.__assign(superTokens.__assign({}, _this.config.passwordlessConfig), { appInfo: _this.config.appInfo, recipeId: _this.config.recipeId, }), @@ -309,10 +306,10 @@ var ThirdPartyPasswordless = /** @class */ (function (_super) { _this.thirdPartyRecipe = recipes.thirdPartyInstance !== undefined ? recipes.thirdPartyInstance - : _this.config.thirdpartyConfig === undefined + : superTokens.SuperTokens.usesDynamicLoginMethods === false && disableThirdParty ? undefined : new recipe.ThirdParty( - utils.__assign(utils.__assign({}, _this.config.thirdpartyConfig), { + superTokens.__assign(superTokens.__assign({}, _this.config.thirdpartyConfig), { appInfo: _this.config.appInfo, recipeId: _this.config.recipeId, }), @@ -326,9 +323,10 @@ var ThirdPartyPasswordless = /** @class */ (function (_super) { ThirdPartyPasswordless.init = function (config) { var normalisedConfig = normaliseThirdPartyPasswordlessConfig(config); return { + recipeID: ThirdPartyPasswordless.RECIPE_ID, authReact: function (appInfo) { ThirdPartyPasswordless.instance = new ThirdPartyPasswordless( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { appInfo: appInfo, recipeId: ThirdPartyPasswordless.RECIPE_ID, }), @@ -340,7 +338,7 @@ var ThirdPartyPasswordless = /** @class */ (function (_super) { return ThirdPartyPasswordless.instance; }, webJS: ThirdpartyPasswordlessWebJS__default.default.init( - utils.__assign(utils.__assign({}, normalisedConfig), { + superTokens.__assign(superTokens.__assign({}, normalisedConfig), { override: { functions: function (originalImpl, builder) { var functions = getFunctionOverrides( @@ -363,7 +361,7 @@ var ThirdPartyPasswordless = /** @class */ (function (_super) { "See https://supertokens.io/docs/thirdpartypasswordless/quick-setup/frontend"; // eslint-disable-next-line supertokens-auth-react/no-direct-window-object if (typeof window === "undefined") { - error = error + utils.SSR_ERROR; + error = error + superTokens.SSR_ERROR; } throw Error(error); } @@ -373,7 +371,7 @@ var ThirdPartyPasswordless = /** @class */ (function (_super) { * Tests methods. */ ThirdPartyPasswordless.reset = function () { - if (!utils.isTest()) { + if (!superTokens.isTest()) { return; } ThirdPartyPasswordless.instance = undefined; @@ -381,7 +379,7 @@ var ThirdPartyPasswordless = /** @class */ (function (_super) { }; ThirdPartyPasswordless.RECIPE_ID = "thirdpartypasswordless"; return ThirdPartyPasswordless; -})(utils$1.AuthRecipe); +})(utils.AuthRecipe); exports.Provider = Provider; exports.ThirdPartyPasswordless = ThirdPartyPasswordless; diff --git a/lib/build/thirdpartypasswordless.js b/lib/build/thirdpartypasswordless.js index 14963bf52..1c8539377 100644 --- a/lib/build/thirdpartypasswordless.js +++ b/lib/build/thirdpartypasswordless.js @@ -2,43 +2,44 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var utils = require("./utils.js"); -var recipe$2 = require("./passwordless-shared2.js"); -var thirdparty = require("./thirdparty.js"); -var recipe$1 = require("./thirdparty-shared.js"); -var recipe = require("./thirdpartypasswordless-shared.js"); -require("react"); +var superTokens = require("./superTokens.js"); +require("./thirdparty.js"); +var recipe = require("./thirdparty-shared.js"); +var recipe$1 = require("./thirdpartypasswordless-shared.js"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); +require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("react"); require("supertokens-web-js/utils/normalisedURLDomain"); require("supertokens-web-js/utils/normalisedURLPath"); -require("supertokens-web-js/utils/windowHandler"); -require("supertokens-web-js/recipe/passwordless"); +require("./genericComponentOverrideContext.js"); +require("react/jsx-runtime"); +require("supertokens-web-js/recipe/thirdparty"); require("./authRecipe-shared.js"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("./recipeModule-shared.js"); -require("supertokens-web-js"); require("./session-shared2.js"); require("supertokens-web-js/recipe/session"); require("supertokens-web-js/utils"); -require("supertokens-web-js/recipe/passwordless/utils"); -require("react/jsx-runtime"); -require("./genericComponentOverrideContext.js"); -require("supertokens-web-js/recipe/thirdparty"); require("./translationContext.js"); +require("supertokens-web-js/lib/build/normalisedURLPath"); require("supertokens-web-js/recipe/thirdpartypasswordless"); +require("./passwordless-shared2.js"); +require("supertokens-web-js/recipe/passwordless"); var Wrapper = /** @class */ (function () { function Wrapper() {} Wrapper.init = function (config) { - return recipe.ThirdPartyPasswordless.init(config); + return recipe$1.ThirdPartyPasswordless.init(config); }; Wrapper.signOut = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyPasswordless.getInstanceOrThrow().signOut({ - userContext: utils.getNormalisedUserContext( + recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().signOut({ + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }), @@ -47,10 +48,10 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.redirectToThirdPartyLogin = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var recipeInstance; - return utils.__generator(this, function (_a) { - recipeInstance = recipe.ThirdPartyPasswordless.getInstanceOrThrow(); + return superTokens.__generator(this, function (_a) { + recipeInstance = recipe$1.ThirdPartyPasswordless.getInstanceOrThrow(); if (recipeInstance.thirdPartyRecipe === undefined) { throw new Error( "Third party passwordless was initialised without any social providers. This function is only available if at least one social provider is initialised" @@ -58,38 +59,24 @@ var Wrapper = /** @class */ (function () { } return [ 2 /*return*/, - recipe$1.redirectToThirdPartyLogin({ + recipe.redirectToThirdPartyLogin({ thirdPartyId: input.thirdPartyId, config: recipeInstance.thirdPartyRecipe.config, - userContext: utils.getNormalisedUserContext(input.userContext), + userContext: superTokens.getNormalisedUserContext(input.userContext), recipeImplementation: recipeInstance.thirdPartyRecipe.webJSRecipe, }), ]; }); }); }; - Wrapper.getAuthorisationURLFromBackend = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [ - 2 /*return*/, - recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getAuthorisationURLFromBackend( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), - }) - ), - ]; - }); - }); - }; Wrapper.thirdPartySignInAndUp = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.thirdPartySignInAndUp( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.thirdPartySignInAndUp( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) @@ -99,107 +86,36 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.getThirdPartyStateAndOtherInfoFromStorage = function (input) { - return recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getThirdPartyStateAndOtherInfoFromStorage( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + return recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getThirdPartyStateAndOtherInfoFromStorage( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) ); }; - Wrapper.setThirdPartyStateAndOtherInfoToStorage = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [ - 2 /*return*/, - recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.setThirdPartyStateAndOtherInfoToStorage( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), - }) - ), - ]; - }); - }); - }; Wrapper.getThirdPartyAuthorisationURLWithQueryParamsAndSetState = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getThirdPartyAuthorisationURLWithQueryParamsAndSetState( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getThirdPartyAuthorisationURLWithQueryParamsAndSetState( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; }); }); }; - Wrapper.generateThirdPartyStateToSendToOAuthProvider = function (input) { - return recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.generateThirdPartyStateToSendToOAuthProvider( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( - input === null || input === void 0 ? void 0 : input.userContext - ), - }) - ); - }; - Wrapper.verifyAndGetThirdPartyStateOrThrowError = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { - return [ - 2 /*return*/, - recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.verifyAndGetThirdPartyStateOrThrowError( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), - }) - ), - ]; - }); - }); - }; - Wrapper.getThirdPartyAuthCodeFromURL = function (input) { - return recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getThirdPartyAuthCodeFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( - input === null || input === void 0 ? void 0 : input.userContext - ), - }) - ); - }; - Wrapper.getThirdPartyAuthErrorFromURL = function (input) { - return recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getThirdPartyAuthErrorFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( - input === null || input === void 0 ? void 0 : input.userContext - ), - }) - ); - }; - Wrapper.getThirdPartyAuthStateFromURL = function (input) { - return recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getThirdPartyAuthStateFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( - input === null || input === void 0 ? void 0 : input.userContext - ), - }) - ); - }; Wrapper.createPasswordlessCode = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - var recipe$1; - return utils.__generator(this, function (_a) { - recipe$1 = recipe.ThirdPartyPasswordless.getInstanceOrThrow(); - if (recipe$1.passwordlessRecipe === undefined) { - throw new Error( - "createCode requires the passwordless recipe to be enabled. Please check the value of disablePasswordless in the configuration." - ); - } + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe$2.createCode( - utils.__assign(utils.__assign({}, input), { - recipeImplementation: recipe$1.passwordlessRecipe.webJSRecipe, + recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.createPasswordlessCode( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -207,20 +123,15 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.resendPasswordlessCode = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - var recipe$1; - return utils.__generator(this, function (_a) { - recipe$1 = recipe.ThirdPartyPasswordless.getInstanceOrThrow(); - if (recipe$1.passwordlessRecipe === undefined) { - throw new Error( - "createCode requires the passwordless recipe to be enabled. Please check the value of disablePasswordless in the configuration." - ); - } + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe$2.resendCode( - utils.__assign(utils.__assign({}, input), { - recipeImplementation: recipe$1.passwordlessRecipe.webJSRecipe, + recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.resendPasswordlessCode( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( + input === null || input === void 0 ? void 0 : input.userContext + ), }) ), ]; @@ -228,20 +139,15 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.consumePasswordlessCode = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - var recipe$1; - return utils.__generator(this, function (_a) { - recipe$1 = recipe.ThirdPartyPasswordless.getInstanceOrThrow(); - if (recipe$1.passwordlessRecipe === undefined) { - throw new Error( - "createCode requires the passwordless recipe to be enabled. Please check the value of disablePasswordless in the configuration." - ); - } + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe$2.consumeCode( - utils.__assign(utils.__assign({}, input), { - recipeImplementation: recipe$1.passwordlessRecipe.webJSRecipe, + recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.consumePasswordlessCode( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( + input === null || input === void 0 ? void 0 : input.userContext + ), }) ), ]; @@ -249,31 +155,31 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.getPasswordlessLinkCodeFromURL = function (input) { - return recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getPasswordlessLinkCodeFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + return recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getPasswordlessLinkCodeFromURL( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) ); }; Wrapper.getPasswordlessPreAuthSessionIdFromURL = function (input) { - return recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getPasswordlessPreAuthSessionIdFromURL( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + return recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getPasswordlessPreAuthSessionIdFromURL( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) ); }; Wrapper.doesPasswordlessUserEmailExist = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.doesPasswordlessUserEmailExist( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.doesPasswordlessUserEmailExist( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -281,13 +187,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.doesPasswordlessUserPhoneNumberExist = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.doesPasswordlessUserPhoneNumberExist( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext(input.userContext), + recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.doesPasswordlessUserPhoneNumberExist( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext(input.userContext), }) ), ]; @@ -295,13 +201,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.getPasswordlessLoginAttemptInfo = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getPasswordlessLoginAttemptInfo( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getPasswordlessLoginAttemptInfo( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) @@ -311,13 +217,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.setPasswordlessLoginAttemptInfo = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.setPasswordlessLoginAttemptInfo( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.setPasswordlessLoginAttemptInfo( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) @@ -327,13 +233,13 @@ var Wrapper = /** @class */ (function () { }); }; Wrapper.clearPasswordlessLoginAttemptInfo = function (input) { - return utils.__awaiter(this, void 0, void 0, function () { - return utils.__generator(this, function (_a) { + return superTokens.__awaiter(this, void 0, void 0, function () { + return superTokens.__generator(this, function (_a) { return [ 2 /*return*/, - recipe.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.clearPasswordlessLoginAttemptInfo( - utils.__assign(utils.__assign({}, input), { - userContext: utils.getNormalisedUserContext( + recipe$1.ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.clearPasswordlessLoginAttemptInfo( + superTokens.__assign(superTokens.__assign({}, input), { + userContext: superTokens.getNormalisedUserContext( input === null || input === void 0 ? void 0 : input.userContext ), }) @@ -342,30 +248,28 @@ var Wrapper = /** @class */ (function () { }); }); }; - Wrapper.Apple = thirdparty.Apple; - Wrapper.Bitbucket = thirdparty.Bitbucket; - Wrapper.Discord = thirdparty.Discord; - Wrapper.Github = thirdparty.Github; - Wrapper.Gitlab = thirdparty.Gitlab; - Wrapper.Google = thirdparty.Google; - Wrapper.Facebook = thirdparty.Facebook; - Wrapper.ComponentsOverrideProvider = recipe.Provider; + Wrapper.Apple = recipe.Apple; + Wrapper.Bitbucket = recipe.Bitbucket; + Wrapper.Discord = recipe.Discord; + Wrapper.Github = recipe.Github; + Wrapper.Gitlab = recipe.Gitlab; + Wrapper.Google = recipe.Google; + Wrapper.GoogleWorkspaces = recipe.GoogleWorkspaces; + Wrapper.Facebook = recipe.Facebook; + Wrapper.LinkedIn = recipe.LinkedIn; + Wrapper.ActiveDirectory = recipe.ActiveDirectory; + Wrapper.BoxySAML = recipe.BoxySAML; + Wrapper.Okta = recipe.Okta; + Wrapper.ComponentsOverrideProvider = recipe$1.Provider; return Wrapper; })(); var init = Wrapper.init; var signOut = Wrapper.signOut; var redirectToThirdPartyLogin = Wrapper.redirectToThirdPartyLogin; -var getAuthorisationURLFromBackend = Wrapper.getAuthorisationURLFromBackend; var thirdPartySignInAndUp = Wrapper.thirdPartySignInAndUp; var getThirdPartyStateAndOtherInfoFromStorage = Wrapper.getThirdPartyStateAndOtherInfoFromStorage; -var setThirdPartyStateAndOtherInfoToStorage = Wrapper.setThirdPartyStateAndOtherInfoToStorage; var getThirdPartyAuthorisationURLWithQueryParamsAndSetState = Wrapper.getThirdPartyAuthorisationURLWithQueryParamsAndSetState; -var generateThirdPartyStateToSendToOAuthProvider = Wrapper.generateThirdPartyStateToSendToOAuthProvider; -var verifyAndGetThirdPartyStateOrThrowError = Wrapper.verifyAndGetThirdPartyStateOrThrowError; -var getThirdPartyAuthCodeFromURL = Wrapper.getThirdPartyAuthCodeFromURL; -var getThirdPartyAuthErrorFromURL = Wrapper.getThirdPartyAuthErrorFromURL; -var getThirdPartyAuthStateFromURL = Wrapper.getThirdPartyAuthStateFromURL; var createPasswordlessCode = Wrapper.createPasswordlessCode; var resendPasswordlessCode = Wrapper.resendPasswordlessCode; var consumePasswordlessCode = Wrapper.consumePasswordlessCode; @@ -378,13 +282,18 @@ var setPasswordlessLoginAttemptInfo = Wrapper.setPasswordlessLoginAttemptInfo; var clearPasswordlessLoginAttemptInfo = Wrapper.clearPasswordlessLoginAttemptInfo; var ThirdpartyPasswordlessComponentsOverrideProvider = Wrapper.ComponentsOverrideProvider; -exports.Apple = thirdparty.Apple; -exports.Bitbucket = thirdparty.Bitbucket; -exports.Discord = thirdparty.Discord; -exports.Facebook = thirdparty.Facebook; -exports.Github = thirdparty.Github; -exports.Gitlab = thirdparty.Gitlab; -exports.Google = thirdparty.Google; +exports.ActiveDirectory = recipe.ActiveDirectory; +exports.Apple = recipe.Apple; +exports.Bitbucket = recipe.Bitbucket; +exports.BoxySAML = recipe.BoxySAML; +exports.Discord = recipe.Discord; +exports.Facebook = recipe.Facebook; +exports.Github = recipe.Github; +exports.Gitlab = recipe.Gitlab; +exports.Google = recipe.Google; +exports.GoogleWorkspaces = recipe.GoogleWorkspaces; +exports.LinkedIn = recipe.LinkedIn; +exports.Okta = recipe.Okta; exports.ThirdpartyPasswordlessComponentsOverrideProvider = ThirdpartyPasswordlessComponentsOverrideProvider; exports.clearPasswordlessLoginAttemptInfo = clearPasswordlessLoginAttemptInfo; exports.consumePasswordlessCode = consumePasswordlessCode; @@ -392,14 +301,9 @@ exports.createPasswordlessCode = createPasswordlessCode; exports.default = Wrapper; exports.doesPasswordlessUserEmailExist = doesPasswordlessUserEmailExist; exports.doesPasswordlessUserPhoneNumberExist = doesPasswordlessUserPhoneNumberExist; -exports.generateThirdPartyStateToSendToOAuthProvider = generateThirdPartyStateToSendToOAuthProvider; -exports.getAuthorisationURLFromBackend = getAuthorisationURLFromBackend; exports.getPasswordlessLinkCodeFromURL = getPasswordlessLinkCodeFromURL; exports.getPasswordlessLoginAttemptInfo = getPasswordlessLoginAttemptInfo; exports.getPasswordlessPreAuthSessionIdFromURL = getPasswordlessPreAuthSessionIdFromURL; -exports.getThirdPartyAuthCodeFromURL = getThirdPartyAuthCodeFromURL; -exports.getThirdPartyAuthErrorFromURL = getThirdPartyAuthErrorFromURL; -exports.getThirdPartyAuthStateFromURL = getThirdPartyAuthStateFromURL; exports.getThirdPartyAuthorisationURLWithQueryParamsAndSetState = getThirdPartyAuthorisationURLWithQueryParamsAndSetState; exports.getThirdPartyStateAndOtherInfoFromStorage = getThirdPartyStateAndOtherInfoFromStorage; @@ -407,7 +311,5 @@ exports.init = init; exports.redirectToThirdPartyLogin = redirectToThirdPartyLogin; exports.resendPasswordlessCode = resendPasswordlessCode; exports.setPasswordlessLoginAttemptInfo = setPasswordlessLoginAttemptInfo; -exports.setThirdPartyStateAndOtherInfoToStorage = setThirdPartyStateAndOtherInfoToStorage; exports.signOut = signOut; exports.thirdPartySignInAndUp = thirdPartySignInAndUp; -exports.verifyAndGetThirdPartyStateOrThrowError = verifyAndGetThirdPartyStateOrThrowError; diff --git a/lib/build/thirdpartypasswordlessprebuiltui.js b/lib/build/thirdpartypasswordlessprebuiltui.js index 1fb66f2c5..2cc98c962 100644 --- a/lib/build/thirdpartypasswordlessprebuiltui.js +++ b/lib/build/thirdpartypasswordlessprebuiltui.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); var userContextWrapper = require("./userContextWrapper.js"); @@ -14,33 +14,34 @@ var translations = require("./translations.js"); require("./index.js"); var generalError = require("./emailpassword-shared.js"); var translationContext = require("./translationContext.js"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); -require("supertokens-web-js/utils/normalisedURLDomain"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("supertokens-web-js/utils/normalisedURLDomain"); require("./session-shared3.js"); require("supertokens-web-js/recipe/session"); require("./session-shared4.js"); require("./genericComponentOverrideContext.js"); require("./session-shared2.js"); require("./recipeModule-shared.js"); -require("supertokens-web-js"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils"); require("./session-shared.js"); require("./passwordless-shared.js"); require("supertokens-web-js/utils/error"); +require("./spinnerIcon.js"); +require("./emailpassword-shared2.js"); require("./passwordless-shared2.js"); require("supertokens-web-js/recipe/passwordless"); require("./authRecipe-shared.js"); -require("supertokens-web-js/recipe/passwordless/utils"); -require("./spinnerIcon.js"); -require("./emailpassword-shared2.js"); require("./checkedRoundIcon.js"); require("./emailpassword-shared7.js"); require("./emailpassword-shared5.js"); require("./arrowLeftIcon.js"); require("./thirdparty-shared.js"); require("supertokens-web-js/recipe/thirdparty"); +require("supertokens-web-js/lib/build/normalisedURLPath"); require("supertokens-web-js/recipe/thirdpartypasswordless"); require("react-dom"); @@ -78,7 +79,7 @@ var NormalisedURLPath__default = /*#__PURE__*/ _interopDefault(NormalisedURLPath var React__namespace = /*#__PURE__*/ _interopNamespace(React); var styles = - '/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved.\n *\n * This software is licensed under the Apache License, Version 2.0 (the\n * "License") as published by the Apache Software Foundation.\n *\n * You may not use this file except in compliance with the License. You may\n * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations\n * under the License.\n */\n/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved.\n *\n * This software is licensed under the Apache License, Version 2.0 (the\n * "License") as published by the Apache Software Foundation.\n *\n * You may not use this file except in compliance with the License. You may\n * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations\n * under the License.\n */\n[data-supertokens~="container"] {\n --palette-background: 255, 255, 255;\n --palette-inputBackground: 250, 250, 250;\n --palette-inputBorder: 224, 224, 224;\n --palette-primary: 255, 155, 51;\n --palette-primaryBorder: 238, 141, 35;\n --palette-success: 65, 167, 0;\n --palette-successBackground: 217, 255, 191;\n --palette-error: 255, 23, 23;\n --palette-errorBackground: 255, 241, 235;\n --palette-textTitle: 34, 34, 34;\n --palette-textLabel: 34, 34, 34;\n --palette-textInput: 34, 34, 34;\n --palette-textPrimary: 101, 101, 101;\n --palette-textLink: 0, 118, 255;\n --palette-buttonText: 255, 255, 255;\n --palette-textGray: 128, 128, 128;\n --palette-superTokensBrandingBackground: 242, 245, 246;\n --palette-superTokensBrandingText: 173, 189, 196;\n\n --font-size-0: 12px;\n --font-size-1: 14px;\n --font-size-2: 16px;\n --font-size-3: 19px;\n --font-size-4: 24px;\n}\n/*\n * Default styles.\n */\n@-webkit-keyframes slideTop {\n 0% {\n -webkit-transform: translateY(-5px);\n transform: translateY(-5px);\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n }\n}\n@keyframes slideTop {\n 0% {\n -webkit-transform: translateY(-5px);\n transform: translateY(-5px);\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n }\n}\n@-webkit-keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n}\n@keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n}\n[data-supertokens~="container"] {\n font-family: "Rubik", sans-serif;\n margin: 12px auto;\n margin-top: 26px;\n margin-bottom: 26px;\n width: 420px;\n text-align: center;\n border-radius: 8px;\n box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.16);\n background-color: rgb(var(--palette-background));\n}\n@media (max-width: 440px) {\n [data-supertokens~="container"] {\n width: 95vw;\n }\n}\n[data-supertokens~="row"] {\n margin: 0 auto;\n width: 76%;\n padding-top: 30px;\n padding-bottom: 10px;\n}\n[data-supertokens~="superTokensBranding"] {\n display: block;\n margin: 0 auto;\n background: rgb(var(--palette-superTokensBrandingBackground));\n color: rgb(var(--palette-superTokensBrandingText));\n text-decoration: none;\n width: -webkit-fit-content;\n width: -moz-fit-content;\n width: fit-content;\n border-radius: 6px 6px 0 0;\n padding: 4px 9px;\n font-weight: 300;\n font-size: var(--font-size-0);\n letter-spacing: 0.4px;\n}\n[data-supertokens~="generalError"] {\n background: rgb(var(--palette-errorBackground));\n padding-top: 10px;\n padding-bottom: 10px;\n margin-bottom: 15px;\n padding-left: 18px;\n padding-right: 18px;\n letter-spacing: 0.2px;\n font-size: var(--font-size-1);\n border-radius: 8px;\n color: rgb(var(--palette-error));\n -webkit-animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n word-wrap: break-word;\n}\n[data-supertokens~="headerTitle"] {\n font-size: var(--font-size-4);\n line-height: 40px;\n letter-spacing: 0.58px;\n font-weight: 800;\n margin-bottom: 2px;\n color: rgb(var(--palette-textTitle));\n}\n[data-supertokens~="headerSubtitle"] {\n margin-bottom: 21px;\n}\n[data-supertokens~="privacyPolicyAndTermsAndConditions"] {\n max-width: 300px;\n margin-top: 10px;\n}\n[data-supertokens~="privacyPolicyAndTermsAndConditions"] a {\n line-height: 21px;\n}\n/* TODO: split the link style into separate things*/\n/* We add this before primary and secondary text, because if they are applied to the same element the other ones take priority */\n[data-supertokens~="link"] {\n padding-left: 3px;\n padding-right: 3px;\n color: rgb(var(--palette-textLink));\n font-size: var(--font-size-1);\n cursor: pointer;\n letter-spacing: 0.16px;\n line-height: 26px;\n}\n[data-supertokens~="primaryText"] {\n font-size: var(--font-size-1);\n font-weight: 500;\n letter-spacing: 0.4px;\n line-height: 21px;\n color: rgb(var(--palette-textLabel));\n}\n[data-supertokens~="secondaryText"] {\n font-size: var(--font-size-1);\n font-weight: 300;\n letter-spacing: 0.4px;\n color: rgb(var(--palette-textPrimary));\n}\n[data-supertokens~="divider"] {\n margin-top: 1em;\n margin-bottom: 1em;\n border-bottom: 0.3px solid #dddddd;\n align-items: center;\n padding-bottom: 5px;\n}\n[data-supertokens~="headerTinyTitle"] {\n margin-top: 13px;\n font-size: var(--font-size-3);\n letter-spacing: 1.1px;\n font-weight: 500;\n line-height: 28px;\n}\n[data-supertokens~="secondaryLinkWithArrow"] {\n margin-top: 10px;\n margin-bottom: 30px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithArrow"]:hover {\n position: relative;\n left: 2px;\n word-spacing: 4px;\n}\n[data-supertokens~="generalSuccess"] {\n color: rgb(var(--palette-success));\n font-size: var(--font-size-1);\n background: rgb(var(--palette-successBackground));\n -webkit-animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n padding: 9px 15px 9px 15px;\n border-radius: 6px;\n display: inline-block;\n}\n[data-supertokens~="spinner"] {\n width: 80px;\n height: auto;\n padding-top: 20px;\n padding-bottom: 40px;\n margin: 0 auto;\n}\n[data-supertokens~="error"] {\n color: rgb(var(--palette-error));\n}\n[data-supertokens~="linkButton"] {\n background-color: transparent;\n border: 0;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"] {\n margin-top: 10px;\n margin-bottom: 40px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"] svg {\n margin-right: 0.3em;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"]:hover svg {\n position: relative;\n left: -4px;\n}\n[data-supertokens~="button"] {\n background-color: rgb(var(--palette-primary));\n color: rgb(var(--palette-buttonText));\n width: 100%;\n height: 34px;\n font-weight: 700;\n border-width: 1px;\n border-style: solid;\n border-radius: 6px;\n border-color: rgb(var(--palette-primaryBorder));\n background-position: center;\n transition: all 0.4s;\n background-size: 12000%;\n cursor: pointer;\n}\n[data-supertokens~="button"]:disabled {\n border: none;\n cursor: no-drop;\n}\n[data-supertokens~="button"]:active {\n outline: none;\n transition: all 0s;\n background-size: 100%;\n -webkit-filter: brightness(0.85);\n filter: brightness(0.85);\n}\n[data-supertokens~="button"]:focus {\n outline: none;\n}\n/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved.\n *\n * This software is licensed under the Apache License, Version 2.0 (the\n * "License") as published by the Apache Software Foundation.\n *\n * You may not use this file except in compliance with the License. You may\n * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations\n * under the License.\n */\n[data-supertokens~="inputContainer"] {\n margin-top: 6px;\n}\n[data-supertokens~="inputWrapper"] {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n align-items: center;\n background-color: rgb(var(--palette-inputBackground));\n height: 34px;\n border-radius: 6px;\n border: 1px solid rgb(var(--palette-inputBorder));\n}\n[data-supertokens~="inputWrapper"][focus-within] {\n background-color: rgba(var(--palette-inputBackground), 0.25);\n border: 1px solid rgb(var(--palette-primary));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-primary), 0.25);\n outline: none;\n}\n[data-supertokens~="inputWrapper"]:focus-within {\n background-color: rgba(var(--palette-inputBackground), 0.25);\n border: 1px solid rgb(var(--palette-primary));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-primary), 0.25);\n outline: none;\n}\n[data-supertokens~="inputError"] {\n border: 1px solid rgb(var(--palette-error));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-error), 0.25);\n outline: none;\n}\n[data-supertokens~="inputError"][focus-within] {\n border: 1px solid rgb(var(--palette-error));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-error), 0.25);\n outline: none;\n}\n[data-supertokens~="inputError"]:focus-within {\n border: 1px solid rgb(var(--palette-error));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-error), 0.25);\n outline: none;\n}\n[data-supertokens~="input"] {\n box-sizing: border-box;\n padding-left: 15px;\n -webkit-filter: none;\n filter: none;\n color: rgb(var(--palette-textInput));\n background-color: transparent;\n border-radius: 6px;\n font-size: var(--font-size-1);\n border: none;\n padding-right: 25px;\n letter-spacing: 1.2px;\n flex: 9 1 75%;\n width: 75%;\n height: 32px;\n}\n[data-supertokens~="input"]:focus {\n border: none;\n outline: none;\n}\n[data-supertokens~="input"]:-webkit-autofill,\n[data-supertokens~="input"]:-webkit-autofill:hover,\n[data-supertokens~="input"]:-webkit-autofill:focus,\n[data-supertokens~="input"]:-webkit-autofill:active {\n -webkit-text-fill-color: rgb(var(--palette-textInput));\n box-shadow: 0 0 0 30px rgb(var(--palette-inputBackground)) inset;\n}\n[data-supertokens~="inputAdornment"] {\n justify-content: center;\n margin-right: 5px;\n}\n[data-supertokens~="showPassword"] {\n cursor: pointer;\n}\n[data-supertokens~="forgotPasswordLink"] {\n margin-top: 10px;\n}\n[data-supertokens~="enterEmailSuccessMessage"] {\n margin-top: 15px;\n margin-bottom: 15px;\n word-break: break-word;\n}\n[data-supertokens~="submitNewPasswordSuccessMessage"] {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n[data-supertokens~="inputErrorMessage"] {\n padding-top: 5px;\n padding-bottom: 5px;\n color: rgb(var(--palette-error));\n line-height: 24px;\n font-weight: 400;\n font-size: var(--font-size-1);\n text-align: left;\n -webkit-animation: slideTop 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n animation: slideTop 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n max-width: 330px;\n}\n@media (max-width: 440px) {\n [data-supertokens~="inputErrorMessage"] {\n max-width: 250px;\n }\n}\n[data-supertokens~="inputErrorSymbol"] {\n margin-right: 5px;\n top: 1px;\n position: relative;\n left: 2px;\n}\n[data-supertokens~="label"] {\n text-align: left;\n font-weight: 600;\n font-size: var(--font-size-1);\n line-height: 24px;\n color: rgb(var(--palette-textLabel));\n}\n[data-supertokens~="formRow"] {\n display: flex;\n flex-direction: column;\n padding-top: 0px;\n padding-bottom: 34px;\n}\n[data-supertokens~="formRow"][data-supertokens~="hasError"] {\n padding-bottom: 0;\n}\n[data-supertokens~="sendVerifyEmailIcon"] {\n margin-top: 11px;\n}\n[data-supertokens~="headerTinyTitle"] {\n margin-top: 13px;\n font-size: var(--font-size-3);\n letter-spacing: 1.1px;\n font-weight: 500;\n line-height: 28px;\n}\n[data-supertokens~="sendVerifyEmailText"] {\n line-height: 21px;\n font-size: var(--font-size-1);\n text-align: center;\n font-weight: 300;\n letter-spacing: 0.8px;\n}\n[data-supertokens~="secondaryLinkWithArrow"] {\n margin-top: 10px;\n margin-bottom: 30px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithArrow"]:hover {\n position: relative;\n left: 2px;\n word-spacing: 4px;\n}\n[data-supertokens~="sendVerifyEmailResend"] {\n margin-top: 13px;\n font-weight: 300;\n}\n[data-supertokens~="sendVerifyEmailResend"]:hover {\n text-decoration: underline;\n}\n[data-supertokens~="noFormRow"] {\n padding-bottom: 25px;\n}\n[data-supertokens~="emailVerificationButtonWrapper"] {\n padding-top: 25px;\n max-width: 96px;\n margin: 0 auto;\n}\n[data-supertokens~="resetPasswordHeaderTitle"] {\n position: relative;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n[data-supertokens~="backButtonCommon"] {\n width: 16px;\n height: 13px;\n}\n[data-supertokens~="backButton"] {\n cursor: pointer;\n border: none;\n background-color: transparent;\n padding: 0px;\n}\n[data-supertokens~="backButtonPlaceholder"] {\n display: block;\n}\n[data-supertokens~="resendEmailLink"] {\n display: inline-block;\n}\n[data-supertokens~="generalSuccess"] {\n margin-bottom: 20px;\n -webkit-animation: swingIn 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) alternate 2 both;\n animation: swingIn 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) alternate 2 both;\n}\n[data-supertokens~="codeInputLabelWrapper"] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n[data-supertokens~="headerSubtitle"] strong {\n max-width: 100%;\n display: inline-block;\n vertical-align: bottom;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n[data-supertokens~="sendCodeText"] {\n margin-top: 15px;\n margin-bottom: 20px;\n}\n[data-supertokens~="sendCodeText"] strong {\n max-width: 100%;\n display: inline-block;\n vertical-align: bottom;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n[data-supertokens~="resendCodeBtn"] {\n width: auto;\n margin-top: 0;\n line-height: 24px;\n}\n[data-supertokens~="resendCodeBtn"]:hover {\n text-decoration: underline;\n}\n[data-supertokens~="resendCodeBtn"]:disabled {\n color: rgb(var(--palette-textPrimary));\n cursor: default;\n text-decoration: none;\n}\n[data-supertokens~="phoneInputLibRoot"] {\n display: flex;\n align-items: center;\n}\n[data-supertokens~="phoneInputWrapper"] {\n display: flex;\n align-items: center;\n}\n[data-supertokens~="phoneInputWrapper"] .iti [data-supertokens~="input"] {\n padding-left: 15px;\n}\n[data-supertokens~="phoneInputWrapper"] .iti {\n flex: 1 1;\n min-width: 0;\n width: 100%;\n background: transparent;\n border: none;\n color: inherit;\n outline: none;\n}\n[data-supertokens~="continueButtonWrapper"] {\n margin-top: 10px;\n margin-bottom: 30px;\n}\n.iti__country-list {\n border: 0;\n top: 40px;\n width: min(72.2vw, 320px);\n border-radius: 6;\n box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.16);\n}\n.iti__country {\n display: flex;\n align-items: center;\n height: 34px;\n cursor: pointer;\n\n padding: 0 8px;\n}\n.iti__country-name {\n color: var(--palette-textLabel);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin: "0 16px";\n}\n[data-supertokens~="row"] {\n padding-bottom: 30px;\n}\n[data-supertokens~="providerContainer"] {\n padding-top: 9px;\n padding-bottom: 9px;\n}\n[data-supertokens~="providerButton"] {\n border-color: rgb(221, 221, 221) !important;\n}\n[data-supertokens~="providerButton"] {\n min-height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 2px 8px;\n\n background-color: white;\n color: black;\n}\n[data-supertokens~="providerButton"]:hover {\n -webkit-filter: none !important;\n filter: none !important;\n}\n[data-supertokens~="providerButton"]:hover {\n background-color: #fafafa;\n}\n[data-supertokens~="providerButtonLeft"] {\n width: 34px;\n margin-left: 66px;\n}\n[data-supertokens~="providerButtonLogo"] {\n height: 30px;\n display: flex;\n}\n[data-supertokens~="providerButtonLogoCenter"] {\n display: flex;\n margin: auto;\n}\n[data-supertokens~="providerButtonText"] {\n font-weight: 400;\n text-align: center;\n justify-content: center;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n display: inline-block;\n}\n[data-supertokens~="providerButtonText"]:only-child {\n margin: 0 auto;\n}\n[data-supertokens~="thirdPartyPasswordlessDivider"] {\n padding-top: 5px;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n color: rgb(var(--palette-textPrimary));\n}\n[data-supertokens~="thirdPartyPasswordlessDividerText"] {\n flex: 1 1;\n margin-top: 0.75em;\n}\n[data-supertokens~="divider"] {\n flex: 3 3;\n}\n[data-supertokens~="providerButton"] {\n margin: auto !important;\n max-width: 240px !important;\n}\n[data-supertokens~="providerButtonLeft"] {\n margin-left: 30px !important;\n}\n'; + '/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved.\n *\n * This software is licensed under the Apache License, Version 2.0 (the\n * "License") as published by the Apache Software Foundation.\n *\n * You may not use this file except in compliance with the License. You may\n * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations\n * under the License.\n */\n/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved.\n *\n * This software is licensed under the Apache License, Version 2.0 (the\n * "License") as published by the Apache Software Foundation.\n *\n * You may not use this file except in compliance with the License. You may\n * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations\n * under the License.\n */\n[data-supertokens~="container"] {\n --palette-background: 255, 255, 255;\n --palette-inputBackground: 250, 250, 250;\n --palette-inputBorder: 224, 224, 224;\n --palette-primary: 255, 155, 51;\n --palette-primaryBorder: 238, 141, 35;\n --palette-success: 65, 167, 0;\n --palette-successBackground: 217, 255, 191;\n --palette-error: 255, 23, 23;\n --palette-errorBackground: 255, 241, 235;\n --palette-textTitle: 34, 34, 34;\n --palette-textLabel: 34, 34, 34;\n --palette-textInput: 34, 34, 34;\n --palette-textPrimary: 101, 101, 101;\n --palette-textLink: 0, 118, 255;\n --palette-buttonText: 255, 255, 255;\n --palette-textGray: 128, 128, 128;\n --palette-superTokensBrandingBackground: 242, 245, 246;\n --palette-superTokensBrandingText: 173, 189, 196;\n\n --font-size-0: 12px;\n --font-size-1: 14px;\n --font-size-2: 16px;\n --font-size-3: 19px;\n --font-size-4: 24px;\n}\n/*\n * Default styles.\n */\n@-webkit-keyframes slideTop {\n 0% {\n -webkit-transform: translateY(-5px);\n transform: translateY(-5px);\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n }\n}\n@keyframes slideTop {\n 0% {\n -webkit-transform: translateY(-5px);\n transform: translateY(-5px);\n }\n 100% {\n -webkit-transform: translateY(0px);\n transform: translateY(0px);\n }\n}\n@-webkit-keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n}\n@keyframes swing-in-top-fwd {\n 0% {\n -webkit-transform: rotateX(-100deg);\n transform: rotateX(-100deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 0;\n }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n -webkit-transform-origin: top;\n transform-origin: top;\n opacity: 1;\n }\n}\n[data-supertokens~="container"] {\n font-family: "Rubik", sans-serif;\n margin: 12px auto;\n margin-top: 26px;\n margin-bottom: 26px;\n width: 420px;\n text-align: center;\n border-radius: 8px;\n box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.16);\n background-color: rgb(var(--palette-background));\n}\n@media (max-width: 440px) {\n [data-supertokens~="container"] {\n width: 95vw;\n }\n}\n[data-supertokens~="row"] {\n margin: 0 auto;\n width: 76%;\n padding-top: 30px;\n padding-bottom: 10px;\n}\n[data-supertokens~="superTokensBranding"] {\n display: block;\n margin: 0 auto;\n background: rgb(var(--palette-superTokensBrandingBackground));\n color: rgb(var(--palette-superTokensBrandingText));\n text-decoration: none;\n width: -webkit-fit-content;\n width: -moz-fit-content;\n width: fit-content;\n border-radius: 6px 6px 0 0;\n padding: 4px 9px;\n font-weight: 300;\n font-size: var(--font-size-0);\n letter-spacing: 0.4px;\n}\n[data-supertokens~="generalError"] {\n background: rgb(var(--palette-errorBackground));\n padding-top: 10px;\n padding-bottom: 10px;\n margin-bottom: 15px;\n padding-left: 18px;\n padding-right: 18px;\n letter-spacing: 0.2px;\n font-size: var(--font-size-1);\n border-radius: 8px;\n color: rgb(var(--palette-error));\n -webkit-animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n word-wrap: break-word;\n}\n[data-supertokens~="headerTitle"] {\n font-size: var(--font-size-4);\n line-height: 40px;\n letter-spacing: 0.58px;\n font-weight: 800;\n margin-bottom: 2px;\n color: rgb(var(--palette-textTitle));\n}\n[data-supertokens~="headerSubtitle"] {\n margin-bottom: 21px;\n}\n[data-supertokens~="privacyPolicyAndTermsAndConditions"] {\n max-width: 300px;\n margin-top: 10px;\n}\n[data-supertokens~="privacyPolicyAndTermsAndConditions"] a {\n line-height: 21px;\n}\n/* TODO: split the link style into separate things*/\n/* We add this before primary and secondary text, because if they are applied to the same element the other ones take priority */\n[data-supertokens~="link"] {\n padding-left: 3px;\n padding-right: 3px;\n color: rgb(var(--palette-textLink));\n font-size: var(--font-size-1);\n cursor: pointer;\n letter-spacing: 0.16px;\n line-height: 26px;\n}\n[data-supertokens~="primaryText"] {\n font-size: var(--font-size-1);\n font-weight: 500;\n letter-spacing: 0.4px;\n line-height: 21px;\n color: rgb(var(--palette-textLabel));\n}\n[data-supertokens~="secondaryText"] {\n font-size: var(--font-size-1);\n font-weight: 300;\n letter-spacing: 0.4px;\n color: rgb(var(--palette-textPrimary));\n}\n[data-supertokens~="divider"] {\n margin-top: 1em;\n margin-bottom: 1em;\n border-bottom: 0.3px solid #dddddd;\n align-items: center;\n padding-bottom: 5px;\n}\n[data-supertokens~="headerTinyTitle"] {\n margin-top: 13px;\n font-size: var(--font-size-3);\n letter-spacing: 1.1px;\n font-weight: 500;\n line-height: 28px;\n}\n[data-supertokens~="secondaryLinkWithArrow"] {\n margin-top: 10px;\n margin-bottom: 30px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithArrow"]:hover {\n position: relative;\n left: 2px;\n word-spacing: 4px;\n}\n[data-supertokens~="generalSuccess"] {\n color: rgb(var(--palette-success));\n font-size: var(--font-size-1);\n background: rgb(var(--palette-successBackground));\n -webkit-animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n animation: swing-in-top-fwd 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;\n padding: 9px 15px 9px 15px;\n border-radius: 6px;\n display: inline-block;\n}\n[data-supertokens~="spinner"] {\n width: 80px;\n height: auto;\n padding-top: 20px;\n padding-bottom: 40px;\n margin: 0 auto;\n}\n[data-supertokens~="error"] {\n color: rgb(var(--palette-error));\n}\n[data-supertokens~="linkButton"] {\n background-color: transparent;\n border: 0;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"] {\n margin-top: 10px;\n margin-bottom: 40px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"] svg {\n margin-right: 0.3em;\n}\n[data-supertokens~="secondaryLinkWithLeftArrow"]:hover svg {\n position: relative;\n left: -4px;\n}\n[data-supertokens~="button"] {\n background-color: rgb(var(--palette-primary));\n color: rgb(var(--palette-buttonText));\n width: 100%;\n height: 34px;\n font-weight: 700;\n border-width: 1px;\n border-style: solid;\n border-radius: 6px;\n border-color: rgb(var(--palette-primaryBorder));\n background-position: center;\n transition: all 0.4s;\n background-size: 12000%;\n cursor: pointer;\n}\n[data-supertokens~="button"]:disabled {\n border: none;\n cursor: no-drop;\n}\n[data-supertokens~="button"]:active {\n outline: none;\n transition: all 0s;\n background-size: 100%;\n -webkit-filter: brightness(0.85);\n filter: brightness(0.85);\n}\n[data-supertokens~="button"]:focus {\n outline: none;\n}\n/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved.\n *\n * This software is licensed under the Apache License, Version 2.0 (the\n * "License") as published by the Apache Software Foundation.\n *\n * You may not use this file except in compliance with the License. You may\n * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations\n * under the License.\n */\n[data-supertokens~="inputContainer"] {\n margin-top: 6px;\n}\n[data-supertokens~="inputWrapper"] {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n align-items: center;\n background-color: rgb(var(--palette-inputBackground));\n height: 34px;\n border-radius: 6px;\n border: 1px solid rgb(var(--palette-inputBorder));\n}\n[data-supertokens~="inputWrapper"][focus-within] {\n background-color: rgba(var(--palette-inputBackground), 0.25);\n border: 1px solid rgb(var(--palette-primary));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-primary), 0.25);\n outline: none;\n}\n[data-supertokens~="inputWrapper"]:focus-within {\n background-color: rgba(var(--palette-inputBackground), 0.25);\n border: 1px solid rgb(var(--palette-primary));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-primary), 0.25);\n outline: none;\n}\n[data-supertokens~="inputError"] {\n border: 1px solid rgb(var(--palette-error));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-error), 0.25);\n outline: none;\n}\n[data-supertokens~="inputError"][focus-within] {\n border: 1px solid rgb(var(--palette-error));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-error), 0.25);\n outline: none;\n}\n[data-supertokens~="inputError"]:focus-within {\n border: 1px solid rgb(var(--palette-error));\n box-shadow: 0 0 0 0.2rem rgba(var(--palette-error), 0.25);\n outline: none;\n}\n[data-supertokens~="input"] {\n box-sizing: border-box;\n padding-left: 15px;\n -webkit-filter: none;\n filter: none;\n color: rgb(var(--palette-textInput));\n background-color: transparent;\n border-radius: 6px;\n font-size: var(--font-size-1);\n border: none;\n padding-right: 25px;\n letter-spacing: 1.2px;\n flex: 9 1 75%;\n width: 75%;\n height: 32px;\n}\n[data-supertokens~="input"]:focus {\n border: none;\n outline: none;\n}\n[data-supertokens~="input"]:-webkit-autofill,\n[data-supertokens~="input"]:-webkit-autofill:hover,\n[data-supertokens~="input"]:-webkit-autofill:focus,\n[data-supertokens~="input"]:-webkit-autofill:active {\n -webkit-text-fill-color: rgb(var(--palette-textInput));\n box-shadow: 0 0 0 30px rgb(var(--palette-inputBackground)) inset;\n}\n[data-supertokens~="inputAdornment"] {\n justify-content: center;\n margin-right: 5px;\n}\n[data-supertokens~="showPassword"] {\n cursor: pointer;\n}\n[data-supertokens~="forgotPasswordLink"] {\n margin-top: 10px;\n}\n[data-supertokens~="enterEmailSuccessMessage"] {\n margin-top: 15px;\n margin-bottom: 15px;\n word-break: break-word;\n}\n[data-supertokens~="submitNewPasswordSuccessMessage"] {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n[data-supertokens~="inputErrorMessage"] {\n padding-top: 5px;\n padding-bottom: 5px;\n color: rgb(var(--palette-error));\n line-height: 24px;\n font-weight: 400;\n font-size: var(--font-size-1);\n text-align: left;\n -webkit-animation: slideTop 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n animation: slideTop 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n max-width: 330px;\n}\n@media (max-width: 440px) {\n [data-supertokens~="inputErrorMessage"] {\n max-width: 250px;\n }\n}\n[data-supertokens~="inputErrorSymbol"] {\n margin-right: 5px;\n top: 1px;\n position: relative;\n left: 2px;\n}\n[data-supertokens~="label"] {\n text-align: left;\n font-weight: 600;\n font-size: var(--font-size-1);\n line-height: 24px;\n color: rgb(var(--palette-textLabel));\n}\n[data-supertokens~="formRow"] {\n display: flex;\n flex-direction: column;\n padding-top: 0px;\n padding-bottom: 34px;\n}\n[data-supertokens~="formRow"][data-supertokens~="hasError"] {\n padding-bottom: 0;\n}\n[data-supertokens~="sendVerifyEmailIcon"] {\n margin-top: 11px;\n}\n[data-supertokens~="headerTinyTitle"] {\n margin-top: 13px;\n font-size: var(--font-size-3);\n letter-spacing: 1.1px;\n font-weight: 500;\n line-height: 28px;\n}\n[data-supertokens~="sendVerifyEmailText"] {\n line-height: 21px;\n font-size: var(--font-size-1);\n text-align: center;\n font-weight: 300;\n letter-spacing: 0.8px;\n}\n[data-supertokens~="secondaryLinkWithArrow"] {\n margin-top: 10px;\n margin-bottom: 30px;\n cursor: pointer;\n}\n[data-supertokens~="secondaryLinkWithArrow"]:hover {\n position: relative;\n left: 2px;\n word-spacing: 4px;\n}\n[data-supertokens~="sendVerifyEmailResend"] {\n margin-top: 13px;\n font-weight: 300;\n}\n[data-supertokens~="sendVerifyEmailResend"]:hover {\n text-decoration: underline;\n}\n[data-supertokens~="noFormRow"] {\n padding-bottom: 25px;\n}\n[data-supertokens~="emailVerificationButtonWrapper"] {\n padding-top: 25px;\n max-width: 96px;\n margin: 0 auto;\n}\n[data-supertokens~="resetPasswordHeaderTitle"] {\n position: relative;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n[data-supertokens~="backButtonCommon"] {\n width: 16px;\n height: 13px;\n}\n[data-supertokens~="backButton"] {\n cursor: pointer;\n border: none;\n background-color: transparent;\n padding: 0px;\n}\n[data-supertokens~="backButtonPlaceholder"] {\n display: block;\n}\n[data-supertokens~="resendEmailLink"] {\n display: inline-block;\n}\n[data-supertokens~="generalSuccess"] {\n margin-bottom: 20px;\n -webkit-animation: swingIn 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) alternate 2 both;\n animation: swingIn 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) alternate 2 both;\n}\n[data-supertokens~="codeInputLabelWrapper"] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n[data-supertokens~="headerSubtitle"] strong {\n max-width: 100%;\n display: inline-block;\n vertical-align: bottom;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n[data-supertokens~="sendCodeText"] {\n margin-top: 15px;\n margin-bottom: 20px;\n}\n[data-supertokens~="sendCodeText"] strong {\n max-width: 100%;\n display: inline-block;\n vertical-align: bottom;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n[data-supertokens~="resendCodeBtn"] {\n width: auto;\n margin-top: 0;\n line-height: 24px;\n}\n[data-supertokens~="resendCodeBtn"]:hover {\n text-decoration: underline;\n}\n[data-supertokens~="resendCodeBtn"]:disabled {\n color: rgb(var(--palette-textPrimary));\n cursor: default;\n text-decoration: none;\n}\n[data-supertokens~="phoneInputLibRoot"] {\n display: flex;\n align-items: center;\n}\n[data-supertokens~="phoneInputWrapper"] {\n display: flex;\n align-items: center;\n}\n[data-supertokens~="phoneInputWrapper"] .iti [data-supertokens~="input"] {\n padding-left: 15px;\n}\n[data-supertokens~="phoneInputWrapper"] .iti {\n flex: 1 1;\n min-width: 0;\n width: 100%;\n background: transparent;\n border: none;\n color: inherit;\n outline: none;\n}\n[data-supertokens~="continueButtonWrapper"] {\n margin-top: 10px;\n margin-bottom: 30px;\n}\n.iti__country-list {\n border: 0;\n top: 40px;\n width: min(72.2vw, 320px);\n border-radius: 6;\n box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.16);\n}\n.iti__country {\n display: flex;\n align-items: center;\n height: 34px;\n cursor: pointer;\n\n padding: 0 8px;\n}\n.iti__country-name {\n color: var(--palette-textLabel);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin: "0 16px";\n}\n[data-supertokens~="row"] {\n padding-bottom: 30px;\n}\n[data-supertokens~="providerContainer"] {\n padding-top: 9px;\n padding-bottom: 9px;\n}\n[data-supertokens~="providerButton"] {\n border-color: rgb(221, 221, 221) !important;\n}\n[data-supertokens~="providerButton"] {\n min-height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 2px 8px;\n\n background-color: white;\n color: black;\n}\n[data-supertokens~="providerButton"]:hover {\n -webkit-filter: none !important;\n filter: none !important;\n}\n[data-supertokens~="providerButton"]:hover {\n background-color: #fafafa;\n}\n[data-supertokens~="providerButtonLeft"] {\n min-width: 34px;\n margin-left: 66px;\n}\n[data-supertokens~="providerButtonLogo"] {\n height: 30px;\n display: flex;\n}\n[data-supertokens~="providerButtonLogoCenter"] {\n display: flex;\n margin: auto;\n}\n[data-supertokens~="providerButtonText"] {\n font-weight: 400;\n text-align: center;\n justify-content: center;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n display: inline-block;\n}\n[data-supertokens~="providerButtonText"]:only-child {\n margin: 0 auto;\n}\n[data-supertokens~="thirdPartyPasswordlessDivider"] {\n padding-top: 5px;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n color: rgb(var(--palette-textPrimary));\n}\n[data-supertokens~="thirdPartyPasswordlessDividerText"] {\n flex: 1 1;\n margin-top: 0.75em;\n}\n[data-supertokens~="divider"] {\n flex: 3 3;\n}\n[data-supertokens~="providerButton"] {\n margin: auto !important;\n max-width: 240px !important;\n}\n[data-supertokens~="providerButtonLeft"] {\n margin-left: 30px !important;\n}\n'; var ThemeBase = function (_a) { var children = _a.children, @@ -107,7 +108,7 @@ var Header = translations.withOverride("ThirdPartyPasswordlessHeader", function children: [ jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "headerTitle" }, { children: t("THIRD_PARTY_PASSWORDLESS_SIGN_IN_AND_UP_HEADER_TITLE") } ) @@ -118,26 +119,46 @@ var Header = translations.withOverride("ThirdPartyPasswordlessHeader", function }); var SignInUpTheme = function (props) { + var _a; var t = translationContext.useTranslation(); + var usesDynamicLoginMethods = superTokens.SuperTokens.usesDynamicLoginMethods; + var dynamicLoginMethods = superTokens.Multitenancy.getInstanceOrThrow().getLoadedDynamicLoginMethods(); + var hasProviders = + ((_a = props.tpChildProps) === null || _a === void 0 ? void 0 : _a.providers) !== undefined && + props.tpChildProps.providers.length > 0; + var thirdPartyEnabled = + (usesDynamicLoginMethods === false && hasProviders) || + ((dynamicLoginMethods === null || dynamicLoginMethods === void 0 + ? void 0 + : dynamicLoginMethods.thirdparty.enabled) && + hasProviders); + var passwordlessEnabled = + (props.passwordlessRecipe !== undefined && usesDynamicLoginMethods === false) || + (dynamicLoginMethods === null || dynamicLoginMethods === void 0 + ? void 0 + : dynamicLoginMethods.passwordless.enabled); + if (thirdPartyEnabled === false && passwordlessEnabled === false) { + return null; + } if (props.activeScreen === passwordlessprebuiltui.SignInUpScreens.CloseTab) { - return jsxRuntime.jsx(passwordlessprebuiltui.CloseTabScreen, utils.__assign({}, props.pwlessChildProps)); + return jsxRuntime.jsx(passwordlessprebuiltui.CloseTabScreen, superTokens.__assign({}, props.pwlessChildProps)); } else if (props.activeScreen === passwordlessprebuiltui.SignInUpScreens.LinkSent) { return jsxRuntime.jsx( passwordlessprebuiltui.LinkSent, - utils.__assign({}, getCommonPwlessProps(props.pwlessChildProps, props), { + superTokens.__assign({}, getCommonPwlessProps(props.pwlessChildProps, props), { loginAttemptInfo: props.pwlessState.loginAttemptInfo, }) ); } return jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "container" }, { children: [ jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "row" }, { children: @@ -148,7 +169,7 @@ var SignInUpTheme = function (props) { passwordlessprebuiltui.SignInUpScreens.UserInputCodeForm ? jsxRuntime.jsx( passwordlessprebuiltui.UserInputCodeFormHeader, - utils.__assign( + superTokens.__assign( {}, getCommonPwlessProps(props.pwlessChildProps, props), { loginAttemptInfo: props.pwlessState.loginAttemptInfo } @@ -160,22 +181,23 @@ var SignInUpTheme = function (props) { error: props.commonState.error, }), props.tpChildProps !== undefined && + thirdPartyEnabled && props.activeScreen !== passwordlessprebuiltui.SignInUpScreens.UserInputCodeForm && jsxRuntime.jsx( thirdpartyprebuiltui.ProvidersForm, - utils.__assign({}, props.tpChildProps, { + superTokens.__assign({}, props.tpChildProps, { featureState: props.tpState, dispatch: props.tpDispatch, }) ), - props.thirdPartyRecipe !== undefined && - props.passwordlessRecipe !== undefined && + thirdPartyEnabled && + passwordlessEnabled && props.activeScreen !== passwordlessprebuiltui.SignInUpScreens.UserInputCodeForm && jsxRuntime.jsxs( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "thirdPartyPasswordlessDivider" }, { children: [ @@ -184,7 +206,7 @@ var SignInUpTheme = function (props) { }), jsxRuntime.jsx( "div", - utils.__assign( + superTokens.__assign( { "data-supertokens": "thirdPartyPasswordlessDividerText", @@ -203,10 +225,13 @@ var SignInUpTheme = function (props) { } ) ), - props.activeScreen === passwordlessprebuiltui.SignInUpScreens.EmailForm + !passwordlessEnabled + ? null + : props.activeScreen === + passwordlessprebuiltui.SignInUpScreens.EmailForm ? jsxRuntime.jsx( passwordlessprebuiltui.EmailForm, - utils.__assign( + superTokens.__assign( {}, getCommonPwlessProps(props.pwlessChildProps, props) ) @@ -215,7 +240,7 @@ var SignInUpTheme = function (props) { passwordlessprebuiltui.SignInUpScreens.PhoneForm ? jsxRuntime.jsx( passwordlessprebuiltui.PhoneForm, - utils.__assign( + superTokens.__assign( {}, getCommonPwlessProps(props.pwlessChildProps, props) ) @@ -224,7 +249,7 @@ var SignInUpTheme = function (props) { passwordlessprebuiltui.SignInUpScreens.EmailOrPhoneForm ? jsxRuntime.jsx( passwordlessprebuiltui.EmailOrPhoneForm, - utils.__assign( + superTokens.__assign( {}, getCommonPwlessProps(props.pwlessChildProps, props) ) @@ -233,7 +258,7 @@ var SignInUpTheme = function (props) { passwordlessprebuiltui.SignInUpScreens.UserInputCodeForm ? jsxRuntime.jsx( passwordlessprebuiltui.UserInputCodeForm, - utils.__assign( + superTokens.__assign( {}, getCommonPwlessProps(props.pwlessChildProps, props), { @@ -259,7 +284,7 @@ function SignInUpThemeWrapper(props) { // By defining it in a single object here TSC can deduce the connection between props var childProps = props.passwordlessRecipe !== undefined && props.pwlessChildProps !== undefined - ? utils.__assign(utils.__assign({}, props), { + ? superTokens.__assign(superTokens.__assign({}, props), { activeScreen: passwordlessprebuiltui.getActiveScreen({ config: props.pwlessChildProps.config, featureState: props.pwlessState, @@ -267,7 +292,7 @@ function SignInUpThemeWrapper(props) { pwlessChildProps: props.pwlessChildProps, passwordlessRecipe: props.passwordlessRecipe, }) - : utils.__assign(utils.__assign({}, props), { + : superTokens.__assign(superTokens.__assign({}, props), { activeScreen: undefined, passwordlessRecipe: undefined, pwlessChildProps: undefined, @@ -286,9 +311,9 @@ function SignInUpThemeWrapper(props) { // This style provider will override the parent with the screen specific user config return jsxRuntime.jsx( ThemeBase, - utils.__assign( + superTokens.__assign( { loadDefaultFont: !hasFont, userStyles: [props.config.rootStyle, activeStyle] }, - { children: jsxRuntime.jsx(SignInUpTheme, utils.__assign({}, childProps)) } + { children: jsxRuntime.jsx(SignInUpTheme, superTokens.__assign({}, childProps)) } ) ); } @@ -308,9 +333,9 @@ function getCommonPwlessProps(childProps, props) { } var defaultTranslationsThirdPartyPasswordless = { - en: utils.__assign( - utils.__assign( - utils.__assign({}, thirdpartyprebuiltui.defaultTranslationsThirdParty.en), + en: superTokens.__assign( + superTokens.__assign( + superTokens.__assign({}, thirdpartyprebuiltui.defaultTranslationsThirdParty.en), passwordlessprebuiltui.defaultTranslationsPasswordless.en ), { @@ -332,25 +357,24 @@ var SignInAndUp$1 = function (props) { ), pwlessState = _c[0], pwlessDispatch = _c[1]; - var recipeComponentOverrides = props.useComponentOverrides(); var _d = React__namespace.useReducer( function (state, action) { switch (action.type) { // Intentionally fall through, both of these should clear the error case "startLogin": case "resendCode": - return utils.__assign(utils.__assign({}, state), { error: undefined }); + return superTokens.__assign(superTokens.__assign({}, state), { error: undefined }); case "load": if (action.loginAttemptInfo !== undefined) { - return utils.__assign(utils.__assign({}, state), { error: action.error }); + return superTokens.__assign(superTokens.__assign({}, state), { error: action.error }); } - return utils.__assign(utils.__assign({}, state), { + return superTokens.__assign(superTokens.__assign({}, state), { error: state.error !== undefined ? state.error : action.error, }); // Intentionally fall through, both of these should set the error case "restartFlow": case "setError": - return utils.__assign(utils.__assign({}, state), { error: action.error }); + return superTokens.__assign(superTokens.__assign({}, state), { error: action.error }); default: return state; } @@ -415,33 +439,34 @@ var SignInAndUp$1 = function (props) { pwlessDispatch: combinedPwlessDispatch, pwlessChildProps: pwlessChildProps, }; + return jsxRuntime.jsxs(React.Fragment, { + children: [ + props.children === undefined && jsxRuntime.jsx(SignInUpThemeWrapper, superTokens.__assign({}, childProps)), + props.children && + React__namespace.Children.map(props.children, function (child) { + if (React__namespace.isValidElement(child)) { + return React__namespace.cloneElement(child, childProps); + } + return child; + }), + ], + }); +}; +var SignInAndUpFeatureWrapper = function (props) { + var recipeComponentOverrides = props.useComponentOverrides(); return jsxRuntime.jsx( translations.ComponentOverrideContext.Provider, - utils.__assign( + superTokens.__assign( { value: recipeComponentOverrides }, { children: jsxRuntime.jsx( translations.FeatureWrapper, - utils.__assign( + superTokens.__assign( { useShadowDom: props.recipe.config.useShadowDom, defaultStore: defaultTranslationsThirdPartyPasswordless, }, - { - children: jsxRuntime.jsxs(React.Fragment, { - children: [ - props.children === undefined && - jsxRuntime.jsx(SignInUpThemeWrapper, utils.__assign({}, childProps)), - props.children && - React__namespace.Children.map(props.children, function (child) { - if (React__namespace.isValidElement(child)) { - return React__namespace.cloneElement(child, childProps); - } - return child; - }), - ], - }), - } + { children: jsxRuntime.jsx(SignInAndUp$1, superTokens.__assign({}, props)) } ) ), } @@ -450,7 +475,7 @@ var SignInAndUp$1 = function (props) { }; var ThirdPartyPasswordlessPreBuiltUI = /** @class */ (function (_super) { - utils.__extends(ThirdPartyPasswordlessPreBuiltUI, _super); + superTokens.__extends(ThirdPartyPasswordlessPreBuiltUI, _super); function ThirdPartyPasswordlessPreBuiltUI(recipeInstance) { var _this = _super.call(this) || this; _this.recipeInstance = recipeInstance; @@ -463,17 +488,17 @@ var ThirdPartyPasswordlessPreBuiltUI = /** @class */ (function (_super) { if (props.redirectOnSessionExists !== false) { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( SuperTokensBranding.AuthWidgetWrapper, - utils.__assign( + superTokens.__assign( { authRecipe: _this.recipeInstance, history: props.history }, { children: jsxRuntime.jsx( - SignInAndUp$1, - utils.__assign({ recipe: _this.recipeInstance }, props, { + SignInAndUpFeatureWrapper, + superTokens.__assign({ recipe: _this.recipeInstance }, props, { useComponentOverrides: useComponentOverrides, }) ), @@ -486,12 +511,12 @@ var ThirdPartyPasswordlessPreBuiltUI = /** @class */ (function (_super) { } else { return jsxRuntime.jsx( userContextWrapper.UserContextWrapper, - utils.__assign( + superTokens.__assign( { userContext: props.userContext }, { children: jsxRuntime.jsx( - SignInAndUp$1, - utils.__assign({ recipe: _this.recipeInstance }, props, { + SignInAndUpFeatureWrapper, + superTokens.__assign({ recipe: _this.recipeInstance }, props, { useComponentOverrides: useComponentOverrides, }) ), @@ -524,14 +549,14 @@ var ThirdPartyPasswordlessPreBuiltUI = /** @class */ (function (_super) { } var features = {}; if (_this.passwordlessPreBuiltUI !== undefined) { - features = utils.__assign( - utils.__assign({}, features), + features = superTokens.__assign( + superTokens.__assign({}, features), _this.passwordlessPreBuiltUI.getFeatures(useComponentOverrides) ); } if (_this.thirdPartyPreBuiltUI !== undefined) { - features = utils.__assign( - utils.__assign({}, features), + features = superTokens.__assign( + superTokens.__assign({}, features), _this.thirdPartyPreBuiltUI.getFeatures(useComponentOverrides) ); } @@ -549,13 +574,14 @@ var ThirdPartyPasswordlessPreBuiltUI = /** @class */ (function (_super) { new NormalisedURLPath__default.default("/") ); features[normalisedFullPath.getAsStringDangerous()] = { - matches: utils.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), + matches: superTokens.matchRecipeIdUsingQueryParams(_this.recipeInstance.config.recipeId), component: function (prop) { return _this.getFeatureComponent("signInUp", prop, useComponentOverrides); }, + recipeID: recipe.ThirdPartyPasswordless.RECIPE_ID, }; } - return utils.__assign({}, features); + return superTokens.__assign({}, features); }; var thirdPartyRecipe = recipeInstance.thirdPartyRecipe, passwordlessRecipe = recipeInstance.passwordlessRecipe; @@ -593,7 +619,7 @@ var ThirdPartyPasswordlessPreBuiltUI = /** @class */ (function (_super) { }; // For tests ThirdPartyPasswordlessPreBuiltUI.reset = function () { - if (!utils.isTest()) { + if (!superTokens.isTest()) { return; } ThirdPartyPasswordlessPreBuiltUI.instance = undefined; diff --git a/lib/build/thirdpartyprebuiltui.js b/lib/build/thirdpartyprebuiltui.js index 72358067f..a54ed2308 100644 --- a/lib/build/thirdpartyprebuiltui.js +++ b/lib/build/thirdpartyprebuiltui.js @@ -1,6 +1,6 @@ "use strict"; -require("./utils.js"); +require("./superTokens.js"); require("react/jsx-runtime"); require("supertokens-web-js/utils/normalisedURLPath"); require("./userContextWrapper.js"); @@ -8,23 +8,25 @@ require("./SuperTokensBranding.js"); require("./index2.js"); require("./thirdparty-shared.js"); var thirdpartyprebuiltui = require("./thirdparty-shared2.js"); -require("react"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); -require("supertokens-web-js/utils/normalisedURLDomain"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("react"); +require("supertokens-web-js/utils/normalisedURLDomain"); require("./session-shared3.js"); require("supertokens-web-js/recipe/session"); require("./session-shared4.js"); require("./genericComponentOverrideContext.js"); require("./session-shared2.js"); require("./recipeModule-shared.js"); -require("supertokens-web-js"); -require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils"); require("./session-shared.js"); require("./translationContext.js"); require("supertokens-web-js/recipe/thirdparty"); require("./authRecipe-shared.js"); +require("supertokens-web-js/lib/build/normalisedURLPath"); require("./translations.js"); require("react-dom"); require("./emailpassword-shared.js"); diff --git a/lib/build/translationContext.js b/lib/build/translationContext.js index 7c9672aa8..01ccda532 100644 --- a/lib/build/translationContext.js +++ b/lib/build/translationContext.js @@ -1,9 +1,8 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var React = require("react"); -var utils$1 = require("./recipeModule-shared.js"); function _interopDefault(e) { return e && e.__esModule ? e : { default: e }; @@ -35,12 +34,12 @@ var TranslationContextProvider = function (_a) { React.useEffect( function () { function loadLanguageFromCookies() { - return utils.__awaiter(this, void 0, void 0, function () { + return superTokens.__awaiter(this, void 0, void 0, function () { var cookieLang, cookieLangTemp; - return utils.__generator(this, function (_a) { + return superTokens.__generator(this, function (_a) { switch (_a.label) { case 0: - return [4 /*yield*/, utils$1.getCurrentLanguageFromCookie()]; + return [4 /*yield*/, superTokens.getCurrentLanguageFromCookie()]; case 1: cookieLang = _a.sent(); cookieLangTemp = cookieLang === null ? defaultLanguage : cookieLang; @@ -71,7 +70,7 @@ var TranslationContextProvider = function (_a) { // eslint-disable-next-line @typescript-eslint/no-unused-vars var loadHandler = function (_eventName, detail) { setTranslationStore(function (os) { - return utils.mergeObjects(os, detail); + return superTokens.mergeObjects(os, detail); }); }; translationControlEventSource.on("LanguageChange", changeHandler); @@ -106,7 +105,7 @@ var TranslationContextProvider = function (_a) { } return jsxRuntime.jsx( TranslationContext.Provider, - utils.__assign({ value: { translate: translateFunc } }, { children: children }) + superTokens.__assign({ value: { translate: translateFunc } }, { children: children }) ); }; diff --git a/lib/build/translations.js b/lib/build/translations.js index b4901690c..3375a8501 100644 --- a/lib/build/translations.js +++ b/lib/build/translations.js @@ -1,10 +1,9 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var React = require("react"); var reactDom = require("react-dom"); -var utils$1 = require("./recipeModule-shared.js"); var translationContext = require("./translationContext.js"); function _interopDefault(e) { @@ -19,7 +18,7 @@ var ComponentOverrideContext = React__default.default.createContext("IS_DEFAULT" * Component. */ var ErrorBoundary = /** @class */ (function (_super) { - utils.__extends(ErrorBoundary, _super); + superTokens.__extends(ErrorBoundary, _super); function ErrorBoundary(props) { var _this = _super.call(this, props) || this; _this.state = { hasError: false }; @@ -44,21 +43,36 @@ function FeatureWrapper(_a) { var children = _a.children, useShadowDom = _a.useShadowDom, defaultStore = _a.defaultStore; - var st = utils$1.SuperTokens.getInstanceOrThrow(); + var _b = React.useState( + superTokens.SuperTokens.usesDynamicLoginMethods === false || + superTokens.Multitenancy.getInstanceOrThrow().getLoadedDynamicLoginMethods() !== undefined + ), + loadedDynamicLoginMethods = _b[0], + setLoadedDynamicLoginMethods = _b[1]; + var st = superTokens.SuperTokens.getInstanceOrThrow(); + React.useEffect(function () { + var handler = function () { + return setLoadedDynamicLoginMethods(true); + }; + superTokens.SuperTokens.uiController.on("LoginMethodsLoaded", handler); + }, []); + if (loadedDynamicLoginMethods === false) { + return null; + } return jsxRuntime.jsx(ErrorBoundary, { children: jsxRuntime.jsx( translationContext.TranslationContextProvider, - utils.__assign( + superTokens.__assign( { defaultLanguage: st.languageTranslations.defaultLanguage, - defaultStore: utils.mergeObjects(defaultStore, st.languageTranslations.userTranslationStore), + defaultStore: superTokens.mergeObjects(defaultStore, st.languageTranslations.userTranslationStore), translationControlEventSource: st.languageTranslations.translationEventSource, userTranslationFunc: st.languageTranslations.userTranslationFunc, }, { children: jsxRuntime.jsx( WithOrWithoutShadowDom, - utils.__assign({ useShadowDom: useShadowDom }, { children: children }) + superTokens.__assign({ useShadowDom: useShadowDom }, { children: children }) ), } ) @@ -85,8 +99,8 @@ function WithShadowDom(_a) { // Otherwise, use shadow dom. return jsxRuntime.jsx( "div", - utils.__assign( - { id: utils.ST_ROOT_ID, ref: rootDiv }, + superTokens.__assign( + { id: superTokens.ST_ROOT_ID, ref: rootDiv }, { children: shadowRoot && reactDom.createPortal(children, shadowRoot) } ) ); @@ -98,7 +112,10 @@ function WithOrWithoutShadowDom(_a) { if (useShadowDom === false) { return jsxRuntime.jsxs( "div", - utils.__assign({ id: utils.ST_ROOT_ID }, { children: [children, jsxRuntime.jsx(DisableAutoFillInput, {})] }) + superTokens.__assign( + { id: superTokens.ST_ROOT_ID }, + { children: [children, jsxRuntime.jsx(DisableAutoFillInput, {})] } + ) ); } return jsxRuntime.jsxs(WithShadowDom, { children: [children, jsxRuntime.jsx(DisableAutoFillInput, {})] }); @@ -107,7 +124,7 @@ function DisableAutoFillInput() { /* eslint-disable react/jsx-no-literals */ return jsxRuntime.jsx( "style", - utils.__assign( + superTokens.__assign( { type: "text/css" }, { children: @@ -133,9 +150,12 @@ var withOverride = function (overrideKey, DefaultComponent) { return function (props) { var OverrideComponent = useComponentOverride(finalKey); if (OverrideComponent !== null) { - return jsxRuntime.jsx(OverrideComponent, utils.__assign({ DefaultComponent: DefaultComponent }, props)); + return jsxRuntime.jsx( + OverrideComponent, + superTokens.__assign({ DefaultComponent: DefaultComponent }, props) + ); } - return jsxRuntime.jsx(DefaultComponent, utils.__assign({}, props)); + return jsxRuntime.jsx(DefaultComponent, superTokens.__assign({}, props)); }; }; diff --git a/lib/build/types.d.ts b/lib/build/types.d.ts index 725f1fec0..1aa7f2568 100644 --- a/lib/build/types.d.ts +++ b/lib/build/types.d.ts @@ -1,4 +1,4 @@ -import type RecipeModule from "./recipe/recipeModule"; +import type { BaseRecipeModule } from "./recipe/recipeModule/baseRecipeModule"; import type { NormalisedConfig as NormalisedRecipeModuleConfig } from "./recipe/recipeModule/types"; import type { TranslationFunc, TranslationStore } from "./translation/translationHelpers"; import type { ComponentClass, PropsWithChildren } from "react"; @@ -21,12 +21,18 @@ export declare type SessionClaimValidator = SessionClaimValidatorWebJS & { }; export declare type SuperTokensConfig = { appInfo: AppInfoUserInput; + /** + * Identifier for the client, such as `web`, `ios`, etc. to be used with thirdparty, multitenancy recipes. + */ + clientType?: string; recipeList: { + recipeID: string; authReact: CreateRecipeFunction; webJS: CreateRecipeFunctionWebJS; }[]; cookieHandler?: CookieHandlerInput; windowHandler?: WindowHandlerInput; + usesDynamicLoginMethods?: boolean; languageTranslations?: { defaultLanguage?: string; currentLanguageCookieScope?: string; @@ -40,7 +46,7 @@ export declare type WebJSRecipeInterface = Omit> = ( appInfo: NormalisedAppInfo, enableDebugLogs: boolean -) => RecipeModule; +) => BaseRecipeModule; export declare type AppInfoUserInput = { appName: string; apiDomain: string; @@ -54,6 +60,7 @@ export declare type AppInfoUserInput = { apiGatewayPath?: string; }; export declare type RecipeInitResult> = { + recipeID: string; authReact: CreateRecipeFunction; webJS: CreateRecipeFunctionWebJS; }; @@ -71,6 +78,10 @@ export declare type NormalisedAppInfo = { export declare type ComponentWithRecipeAndMatchingMethod = { component: ReactComponentClass; matches: () => boolean; + /** + * Recipe ID this component belongs + */ + recipeID: string; }; export declare type RecipeFeatureComponentMap = Record; export declare type BaseFeatureComponentMap = Record; diff --git a/lib/build/ui-entry.js b/lib/build/ui-entry.js index 59f0efa0b..f5b352634 100644 --- a/lib/build/ui-entry.js +++ b/lib/build/ui-entry.js @@ -5,11 +5,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); require("react/jsx-runtime"); require("react"); var uiEntry = require("./index2.js"); -require("./utils.js"); +require("./superTokens.js"); require("supertokens-web-js/utils/normalisedURLPath"); +require("supertokens-web-js"); require("supertokens-web-js/utils/cookieHandler"); -require("supertokens-web-js/utils/normalisedURLDomain"); +require("supertokens-web-js/utils/postSuperTokensInitCallbacks"); require("supertokens-web-js/utils/windowHandler"); +require("supertokens-web-js/recipe/multitenancy"); +require("supertokens-web-js/utils/normalisedURLDomain"); exports.canHandleRoute = uiEntry.canHandleRoute; exports.default = uiEntry.UI; diff --git a/lib/build/ui/uiController.d.ts b/lib/build/ui/uiController.d.ts new file mode 100644 index 000000000..17651eaac --- /dev/null +++ b/lib/build/ui/uiController.d.ts @@ -0,0 +1,11 @@ +declare type UIEventMap = { + LoginMethodsLoaded: string; +}; +declare type UIEventHandler = (event: K, detail: UIEventMap[K]) => void; +export declare class UIController { + handlers: Map[]>; + emit(event: K, detail?: UIEventHandler): void; + on(event: K, handler: UIEventHandler): void; + off(event: K, handler: UIEventHandler): void; +} +export {}; diff --git a/lib/build/userContextWrapper.js b/lib/build/userContextWrapper.js index f624ce4c7..0b95aef2f 100644 --- a/lib/build/userContextWrapper.js +++ b/lib/build/userContextWrapper.js @@ -1,6 +1,6 @@ "use strict"; -var utils = require("./utils.js"); +var superTokens = require("./superTokens.js"); var jsxRuntime = require("react/jsx-runtime"); var React = require("react"); @@ -17,10 +17,10 @@ var useUserContext = function () { var UserContextProvider = function (_a) { var children = _a.children, userContext = _a.userContext; - var currentUserContext = React.useState(utils.getNormalisedUserContext(userContext))[0]; + var currentUserContext = React.useState(superTokens.getNormalisedUserContext(userContext))[0]; return jsxRuntime.jsx( UserContextContext.Provider, - utils.__assign({ value: currentUserContext }, { children: children }) + superTokens.__assign({ value: currentUserContext }, { children: children }) ); }; @@ -35,7 +35,7 @@ function UserContextWrapper(props) { if (props.userContext !== undefined) { return jsxRuntime.jsx( UserContextProvider, - utils.__assign({ userContext: props.userContext }, { children: props.children }) + superTokens.__assign({ userContext: props.userContext }, { children: props.children }) ); } return jsxRuntime.jsx(UserContextContext.Consumer, { diff --git a/lib/build/utils.js b/lib/build/utils.js index 47dc2e566..57af5b688 100644 --- a/lib/build/utils.js +++ b/lib/build/utils.js @@ -1,793 +1,13566 @@ "use strict"; -var React = require("react"); -var cookieHandler = require("supertokens-web-js/utils/cookieHandler"); -var NormalisedURLDomain = require("supertokens-web-js/utils/normalisedURLDomain"); -var NormalisedURLPath = require("supertokens-web-js/utils/normalisedURLPath"); -var windowHandler = require("supertokens-web-js/utils/windowHandler"); +(function () { + /* -function _interopDefault(e) { - return e && e.__esModule ? e : { default: e }; -} + Copyright The Closure Library Authors. + SPDX-License-Identifier: Apache-2.0 +*/ + var aa = this || self; + function k(a, b) { + a = a.split("."); + var c = aa; + a[0] in c || "undefined" == typeof c.execScript || c.execScript("var " + a[0]); + for (var d; a.length && (d = a.shift()); ) + a.length || void 0 === b + ? c[d] && c[d] !== Object.prototype[d] + ? (c = c[d]) + : (c = c[d] = {}) + : (c[d] = b); + } + function m(a, b) { + function c() {} + c.prototype = b.prototype; + a.$ = b.prototype; + a.prototype = new c(); + a.prototype.constructor = a; + a.fa = function (d, e, g) { + for (var f = Array(arguments.length - 2), h = 2; h < arguments.length; h++) f[h - 2] = arguments[h]; + return b.prototype[e].apply(d, f); + }; + } + function ba(a) { + var b = [], + c = 0, + d; + for (d in a) b[c++] = a[d]; + return b; + } + function ca(a, b) { + a.sort(b || da); + } + function da(a, b) { + return a > b ? 1 : a < b ? -1 : 0; + } + function ea(a, b) { + this.g = a; + this.m = !!b.o; + this.i = b.h; + this.v = b.type; + this.u = !1; + switch (this.i) { + case fa: + case ha: + case ia: + case ja: + case ka: + case la: + case ma: + this.u = !0; + } + this.l = b.defaultValue; + } + var ma = 1, + la = 2, + fa = 3, + ha = 4, + ia = 6, + ja = 16, + ka = 18; + function na(a, b) { + this.i = a; + this.g = {}; + for (a = 0; a < b.length; a++) { + var c = b[a]; + this.g[c.g] = c; + } + } + function oa(a) { + a = ba(a.g); + ca(a, function (b, c) { + return b.g - c.g; + }); + return a; + } + function n() { + this.g = {}; + this.l = this.j().g; + this.i = this.m = null; + } + n.prototype.has = function (a) { + return null != this.g[a.g]; + }; + n.prototype.get = function (a, b) { + return p(this, a.g, b); + }; + n.prototype.set = function (a, b) { + q(this, a.g, b); + }; + n.prototype.add = function (a, b) { + r(this, a.g, b); + }; + function t(a, b) { + for (var c = oa(a.j()), d = 0; d < c.length; d++) { + var e = c[d], + g = e.g; + if (null != b.g[g]) { + a.i && delete a.i[e.g]; + var f = 11 == e.i || 10 == e.i; + if (e.m) { + e = u(b, g); + for (var h = 0; h < e.length; h++) r(a, g, f ? e[h].clone() : e[h]); + } else (e = v(b, g)), f ? ((f = v(a, g)) ? t(f, e) : q(a, g, e.clone())) : q(a, g, e); + } + } + } + n.prototype.clone = function () { + var a = new this.constructor(); + a != this && ((a.g = {}), a.i && (a.i = {}), t(a, this)); + return a; + }; + function v(a, b) { + var c = a.g[b]; + if (null == c) return null; + if (a.m) { + if (!(b in a.i)) { + var d = a.m, + e = a.l[b]; + if (null != c) + if (e.m) { + for (var g = [], f = 0; f < c.length; f++) g[f] = d.i(e, c[f]); + c = g; + } else c = d.i(e, c); + return (a.i[b] = c); + } + return a.i[b]; + } + return c; + } + function p(a, b, c) { + var d = v(a, b); + return a.l[b].m ? d[c || 0] : d; + } + function w(a, b) { + if (null != a.g[b]) a = p(a, b, void 0); + else + a: { + a = a.l[b]; + if (void 0 === a.l) + if (((b = a.v), b === Boolean)) a.l = !1; + else if (b === Number) a.l = 0; + else if (b === String) a.l = a.u ? "0" : ""; + else { + a = new b(); + break a; + } + a = a.l; + } + return a; + } + function u(a, b) { + return v(a, b) || []; + } + function x(a, b) { + return a.l[b].m ? (null != a.g[b] ? a.g[b].length : 0) : null != a.g[b] ? 1 : 0; + } + function q(a, b, c) { + a.g[b] = c; + a.i && (a.i[b] = c); + } + function r(a, b, c) { + a.g[b] || (a.g[b] = []); + a.g[b].push(c); + a.i && delete a.i[b]; + } + function y(a, b) { + var c = [], + d; + for (d in b) 0 != d && c.push(new ea(d, b[d])); + return new na(a, c); + } + function A() {} + A.prototype.g = function (a) { + new a.i(); + throw Error("Unimplemented"); + }; + A.prototype.i = function (a, b) { + if (11 == a.i || 10 == a.i) return b instanceof n ? b : this.g(a.v.prototype.j(), b); + if (14 == a.i) return "string" === typeof b && B.test(b) && ((a = Number(b)), 0 < a) ? a : b; + if (!a.u) return b; + a = a.v; + if (a === String) { + if ("number" === typeof b) return String(b); + } else if ( + a === Number && + "string" === typeof b && + ("Infinity" === b || "-Infinity" === b || "NaN" === b || B.test(b)) + ) + return Number(b); + return b; + }; + var B = /^-?[0-9]+$/; + function C() {} + m(C, A); + C.prototype.g = function (a, b) { + a = new a.i(); + a.m = this; + a.g = b; + a.i = {}; + return a; + }; + function D() {} + m(D, C); + D.prototype.i = function (a, b) { + return 8 == a.i ? !!b : A.prototype.i.apply(this, arguments); + }; + D.prototype.g = function (a, b) { + return D.$.g.call(this, a, b); + }; + function E(a, b) { + null != a && this.g.apply(this, arguments); + } + E.prototype.i = ""; + E.prototype.set = function (a) { + this.i = "" + a; + }; + E.prototype.g = function (a, b, c) { + this.i += String(a); + if (null != b) for (var d = 1; d < arguments.length; d++) this.i += arguments[d]; + return this; + }; + E.prototype.toString = function () { + return this.i; + }; /* + + Protocol Buffer 2 Copyright 2008 Google Inc. + All other code copyright its respective owners. + Copyright (C) 2010 The Libphonenumber Authors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 -var NormalisedURLDomain__default = /*#__PURE__*/ _interopDefault(NormalisedURLDomain); -var NormalisedURLPath__default = /*#__PURE__*/ _interopDefault(NormalisedURLPath); + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + function F() { + n.call(this); + } + m(F, n); + var pa = null; + function G() { + n.call(this); + } + m(G, n); + var qa = null; + function H() { + n.call(this); + } + m(H, n); + var ra = null; + F.prototype.j = function () { + var a = pa; + a || + (pa = a = + y(F, { + 0: { name: "NumberFormat", s: "i18n.phonenumbers.NumberFormat" }, + 1: { name: "pattern", required: !0, h: 9, type: String }, + 2: { name: "format", required: !0, h: 9, type: String }, + 3: { name: "leading_digits_pattern", o: !0, h: 9, type: String }, + 4: { name: "national_prefix_formatting_rule", h: 9, type: String }, + 6: { name: "national_prefix_optional_when_formatting", h: 8, defaultValue: !1, type: Boolean }, + 5: { name: "domestic_carrier_code_formatting_rule", h: 9, type: String }, + })); + return a; + }; + F.j = F.prototype.j; + G.prototype.j = function () { + var a = qa; + a || + (qa = a = + y(G, { + 0: { name: "PhoneNumberDesc", s: "i18n.phonenumbers.PhoneNumberDesc" }, + 2: { name: "national_number_pattern", h: 9, type: String }, + 9: { name: "possible_length", o: !0, h: 5, type: Number }, + 10: { name: "possible_length_local_only", o: !0, h: 5, type: Number }, + 6: { name: "example_number", h: 9, type: String }, + })); + return a; + }; + G.j = G.prototype.j; + H.prototype.j = function () { + var a = ra; + a || + (ra = a = + y(H, { + 0: { name: "PhoneMetadata", s: "i18n.phonenumbers.PhoneMetadata" }, + 1: { name: "general_desc", h: 11, type: G }, + 2: { name: "fixed_line", h: 11, type: G }, + 3: { name: "mobile", h: 11, type: G }, + 4: { name: "toll_free", h: 11, type: G }, + 5: { name: "premium_rate", h: 11, type: G }, + 6: { name: "shared_cost", h: 11, type: G }, + 7: { name: "personal_number", h: 11, type: G }, + 8: { name: "voip", h: 11, type: G }, + 21: { name: "pager", h: 11, type: G }, + 25: { name: "uan", h: 11, type: G }, + 27: { name: "emergency", h: 11, type: G }, + 28: { name: "voicemail", h: 11, type: G }, + 29: { name: "short_code", h: 11, type: G }, + 30: { name: "standard_rate", h: 11, type: G }, + 31: { name: "carrier_specific", h: 11, type: G }, + 33: { name: "sms_services", h: 11, type: G }, + 24: { name: "no_international_dialling", h: 11, type: G }, + 9: { name: "id", required: !0, h: 9, type: String }, + 10: { name: "country_code", h: 5, type: Number }, + 11: { name: "international_prefix", h: 9, type: String }, + 17: { name: "preferred_international_prefix", h: 9, type: String }, + 12: { name: "national_prefix", h: 9, type: String }, + 13: { name: "preferred_extn_prefix", h: 9, type: String }, + 15: { name: "national_prefix_for_parsing", h: 9, type: String }, + 16: { name: "national_prefix_transform_rule", h: 9, type: String }, + 18: { name: "same_mobile_and_fixed_line_pattern", h: 8, defaultValue: !1, type: Boolean }, + 19: { name: "number_format", o: !0, h: 11, type: F }, + 20: { name: "intl_number_format", o: !0, h: 11, type: F }, + 22: { name: "main_country_for_code", h: 8, defaultValue: !1, type: Boolean }, + 23: { name: "leading_digits", h: 9, type: String }, + 26: { name: "leading_zero_possible", h: 8, defaultValue: !1, type: Boolean }, + })); + return a; + }; + H.j = H.prototype.j; + function I() { + n.call(this); + } + m(I, n); + var sa = null, + ta = { ea: 0, da: 1, ca: 5, ba: 10, aa: 20 }; + I.prototype.j = function () { + var a = sa; + a || + (sa = a = + y(I, { + 0: { name: "PhoneNumber", s: "i18n.phonenumbers.PhoneNumber" }, + 1: { name: "country_code", required: !0, h: 5, type: Number }, + 2: { name: "national_number", required: !0, h: 4, type: Number }, + 3: { name: "extension", h: 9, type: String }, + 4: { name: "italian_leading_zero", h: 8, type: Boolean }, + 8: { name: "number_of_leading_zeros", h: 5, defaultValue: 1, type: Number }, + 5: { name: "raw_input", h: 9, type: String }, + 6: { name: "country_code_source", h: 14, defaultValue: 0, type: ta }, + 7: { name: "preferred_domestic_carrier_code", h: 9, type: String }, + })); + return a; + }; + I.ctor = I; + I.ctor.j = I.prototype.j; /* -/****************************************************************************** -Copyright (c) Microsoft Corporation. + Copyright (C) 2010 The Libphonenumber Authors -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/* global Reflect, Promise */ + http://www.apache.org/licenses/LICENSE-2.0 -var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b; - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - }; - return extendStatics(d, b); -}; + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + var J = { + 1: "US AG AI AS BB BM BS CA DM DO GD GU JM KN KY LC MP MS PR SX TC TT VC VG VI".split(" "), + 7: ["RU", "KZ"], + 20: ["EG"], + 27: ["ZA"], + 30: ["GR"], + 31: ["NL"], + 32: ["BE"], + 33: ["FR"], + 34: ["ES"], + 36: ["HU"], + 39: ["IT", "VA"], + 40: ["RO"], + 41: ["CH"], + 43: ["AT"], + 44: ["GB", "GG", "IM", "JE"], + 45: ["DK"], + 46: ["SE"], + 47: ["NO", "SJ"], + 48: ["PL"], + 49: ["DE"], + 51: ["PE"], + 52: ["MX"], + 53: ["CU"], + 54: ["AR"], + 55: ["BR"], + 56: ["CL"], + 57: ["CO"], + 58: ["VE"], + 60: ["MY"], + 61: ["AU", "CC", "CX"], + 62: ["ID"], + 63: ["PH"], + 64: ["NZ"], + 65: ["SG"], + 66: ["TH"], + 81: ["JP"], + 82: ["KR"], + 84: ["VN"], + 86: ["CN"], + 90: ["TR"], + 91: ["IN"], + 92: ["PK"], + 93: ["AF"], + 94: ["LK"], + 95: ["MM"], + 98: ["IR"], + 211: ["SS"], + 212: ["MA", "EH"], + 213: ["DZ"], + 216: ["TN"], + 218: ["LY"], + 220: ["GM"], + 221: ["SN"], + 222: ["MR"], + 223: ["ML"], + 224: ["GN"], + 225: ["CI"], + 226: ["BF"], + 227: ["NE"], + 228: ["TG"], + 229: ["BJ"], + 230: ["MU"], + 231: ["LR"], + 232: ["SL"], + 233: ["GH"], + 234: ["NG"], + 235: ["TD"], + 236: ["CF"], + 237: ["CM"], + 238: ["CV"], + 239: ["ST"], + 240: ["GQ"], + 241: ["GA"], + 242: ["CG"], + 243: ["CD"], + 244: ["AO"], + 245: ["GW"], + 246: ["IO"], + 247: ["AC"], + 248: ["SC"], + 249: ["SD"], + 250: ["RW"], + 251: ["ET"], + 252: ["SO"], + 253: ["DJ"], + 254: ["KE"], + 255: ["TZ"], + 256: ["UG"], + 257: ["BI"], + 258: ["MZ"], + 260: ["ZM"], + 261: ["MG"], + 262: ["RE", "YT"], + 263: ["ZW"], + 264: ["NA"], + 265: ["MW"], + 266: ["LS"], + 267: ["BW"], + 268: ["SZ"], + 269: ["KM"], + 290: ["SH", "TA"], + 291: ["ER"], + 297: ["AW"], + 298: ["FO"], + 299: ["GL"], + 350: ["GI"], + 351: ["PT"], + 352: ["LU"], + 353: ["IE"], + 354: ["IS"], + 355: ["AL"], + 356: ["MT"], + 357: ["CY"], + 358: ["FI", "AX"], + 359: ["BG"], + 370: ["LT"], + 371: ["LV"], + 372: ["EE"], + 373: ["MD"], + 374: ["AM"], + 375: ["BY"], + 376: ["AD"], + 377: ["MC"], + 378: ["SM"], + 380: ["UA"], + 381: ["RS"], + 382: ["ME"], + 383: ["XK"], + 385: ["HR"], + 386: ["SI"], + 387: ["BA"], + 389: ["MK"], + 420: ["CZ"], + 421: ["SK"], + 423: ["LI"], + 500: ["FK"], + 501: ["BZ"], + 502: ["GT"], + 503: ["SV"], + 504: ["HN"], + 505: ["NI"], + 506: ["CR"], + 507: ["PA"], + 508: ["PM"], + 509: ["HT"], + 590: ["GP", "BL", "MF"], + 591: ["BO"], + 592: ["GY"], + 593: ["EC"], + 594: ["GF"], + 595: ["PY"], + 596: ["MQ"], + 597: ["SR"], + 598: ["UY"], + 599: ["CW", "BQ"], + 670: ["TL"], + 672: ["NF"], + 673: ["BN"], + 674: ["NR"], + 675: ["PG"], + 676: ["TO"], + 677: ["SB"], + 678: ["VU"], + 679: ["FJ"], + 680: ["PW"], + 681: ["WF"], + 682: ["CK"], + 683: ["NU"], + 685: ["WS"], + 686: ["KI"], + 687: ["NC"], + 688: ["TV"], + 689: ["PF"], + 690: ["TK"], + 691: ["FM"], + 692: ["MH"], + 800: ["001"], + 808: ["001"], + 850: ["KP"], + 852: ["HK"], + 853: ["MO"], + 855: ["KH"], + 856: ["LA"], + 870: ["001"], + 878: ["001"], + 880: ["BD"], + 881: ["001"], + 882: ["001"], + 883: ["001"], + 886: ["TW"], + 888: ["001"], + 960: ["MV"], + 961: ["LB"], + 962: ["JO"], + 963: ["SY"], + 964: ["IQ"], + 965: ["KW"], + 966: ["SA"], + 967: ["YE"], + 968: ["OM"], + 970: ["PS"], + 971: ["AE"], + 972: ["IL"], + 973: ["BH"], + 974: ["QA"], + 975: ["BT"], + 976: ["MN"], + 977: ["NP"], + 979: ["001"], + 992: ["TJ"], + 993: ["TM"], + 994: ["AZ"], + 995: ["GE"], + 996: ["KG"], + 998: ["UZ"], + }, + va = { + AC: [ + , + [, , "(?:[01589]\\d|[46])\\d{4}", , , , , , , [5, 6]], + [, , "6[2-467]\\d{3}", , , , "62889", , , [5]], + [, , "4\\d{4}", , , , "40123", , , [5]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AC", + 247, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "(?:0[1-9]|[1589]\\d)\\d{4}", , , , "542011", , , [6]], + , + , + [, , , , , , , , , [-1]], + ], + AD: [ + , + [, , "(?:1|6\\d)\\d{7}|[135-9]\\d{5}", , , , , , , [6, 8, 9]], + [, , "[78]\\d{5}", , , , "712345", , , [6]], + [, , "690\\d{6}|[356]\\d{5}", , , , "312345", , , [6, 9]], + [, , "180[02]\\d{4}", , , , "18001234", , , [8]], + [, , "[19]\\d{5}", , , , "912345", , , [6]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AD", + 376, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{3})", "$1 $2", ["[135-9]"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["1"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "1800\\d{4}", , , , , , , [8]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AE: [ + , + [, , "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}", , , , , , , [5, 6, 7, 8, 9, 10, 11, 12]], + [, , "[2-4679][2-8]\\d{6}", , , , "22345678", , , [8], [7]], + [, , "5[024-68]\\d{7}", , , , "501234567", , , [9]], + [, , "400\\d{6}|800\\d{2,9}", , , , "800123456"], + [, , "900[02]\\d{5}", , , , "900234567", , , [9]], + [, , "700[05]\\d{5}", , , , "700012345", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AE", + 971, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{2,9})", "$1 $2", ["60|8"]], + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[236]|[479][2-8]"], "0$1"], + [, "(\\d{3})(\\d)(\\d{5})", "$1 $2 $3", ["[479]"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "600[25]\\d{5}", , , , "600212345", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + AF: [ + , + [, , "[2-7]\\d{8}", , , , , , , [9], [7]], + [, , "(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}", , , , "234567890", , , , [7]], + [, , "7\\d{8}", , , , "701234567", , , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AF", + 93, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[1-9]"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"], + ], + [[, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AG: [ + , + [, , "(?:268|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [, , "268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}", , , , "2684601234", , , , [7]], + [, , "268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}", , , , "2684641234", , , , [7]], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , "26848[01]\\d{4}", , , , "2684801234", , , , [7]], + "AG", + 1, + "011", + "1", + , + , + "1|([457]\\d{6})$", + "268$1", + , + , + , + , + [, , "26840[69]\\d{4}", , , , "2684061234", , , , [7]], + , + "268", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AI: [ + , + [, , "(?:264|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [, , "264(?:292|4(?:6[12]|9[78]))\\d{4}", , , , "2644612345", , , , [7]], + [, , "264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}", , , , "2642351234", , , , [7]], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "AI", + 1, + "011", + "1", + , + , + "1|([2457]\\d{6})$", + "264$1", + , + , + , + , + [, , "264724\\d{4}", , , , "2647241234", , , , [7]], + , + "264", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AL: [ + , + [, , "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}", , , , , , , [6, 7, 8, 9], [5]], + [ + , + , + "4505[0-2]\\d{3}|(?:[2358][16-9]\\d[2-9]|4410)\\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\\d))\\d{5}", + , + , + , + "22345678", + , + , + [8], + [5, 6, 7], + ], + [, , "6(?:[78][2-9]|9\\d)\\d{6}", , , , "672123456", , , [9]], + [, , "800\\d{4}", , , , "8001234", , , [7]], + [, , "900[1-9]\\d\\d", , , , "900123", , , [6]], + [, , "808[1-9]\\d\\d", , , , "808123", , , [6]], + [, , "700[2-9]\\d{4}", , , , "70021234", , , [8]], + [, , , , , , , , , [-1]], + "AL", + 355, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3,4})", "$1 $2", ["80|9"], "0$1"], + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["4[2-6]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2358][2-5]|4"], "0$1"], + [, "(\\d{3})(\\d{5})", "$1 $2", ["[23578]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["6"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AM: [ + , + [, , "(?:[1-489]\\d|55|60|77)\\d{6}", , , , , , , [8], [5, 6]], + [ + , + , + "(?:(?:1[0-25]|47)\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}", + , + , + , + "10123456", + , + , + , + [5, 6], + ], + [, , "(?:33|4[1349]|55|77|88|9[13-9])\\d{6}", , , , "77123456"], + [, , "800\\d{5}", , , , "80012345"], + [, , "90[016]\\d{5}", , , , "90012345"], + [, , "80[1-4]\\d{5}", , , , "80112345"], + [, , , , , , , , , [-1]], + [, , "60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\d|9[01])\\d{4}", , , , "60271234"], + "AM", + 374, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[89]0"], "0 $1"], + [, "(\\d{3})(\\d{5})", "$1 $2", ["2|3[12]"], "(0$1)"], + [, "(\\d{2})(\\d{6})", "$1 $2", ["1|47"], "(0$1)"], + [, "(\\d{2})(\\d{6})", "$1 $2", ["[3-9]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AO: [ + , + [, , "[29]\\d{8}", , , , , , , [9]], + [, , "2\\d(?:[0134][25-9]|[25-9]\\d)\\d{5}", , , , "222123456"], + [, , "9[1-59]\\d{7}", , , , "923123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AO", + 244, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[29]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AR: [ + , + [, , "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}", , , , , , , [10, 11], [6, 7, 8]], + [ + , + , + "3888[013-9]\\d{5}|3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|(?:29(?:54|66)|3(?:7(?:55|77)|865))[2-8]\\d{5}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|(?:2(?:284|3(?:02|23)|657|920)|3(?:4(?:8[27]|92)|541|878))[2-7]\\d{5}|(?:2(?:(?:26|62)2|320|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\d{5}|(?:(?:11[1-8]|670)\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|[17][2-6]|3[4-6]|[58][3-6])))\\d{6}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}", + , + , + , + "1123456789", + , + , + [10], + [6, 7, 8], + ], + [ + , + , + "93(?:7(?:1[15]|81)[46]|8(?:(?:21|4[16]|69|9[12])[46]|88[013-9]))\\d{5}|9(?:29(?:54|66)|3(?:7(?:55|77)|865))[2-8]\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|9(?:2(?:284|3(?:02|23)|657|920)|3(?:4(?:8[27]|92)|541|878))[2-7]\\d{5}|9(?:2(?:(?:26|62)2|320|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\d{5}|(?:675\\d|9(?:11[1-8]\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|[17][2-6]|3[4-6]|[58][3-6]))))\\d{6}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}", + , + , + , + "91123456789", + , + , + , + [6, 7, 8], + ], + [, , "800\\d{7,8}", , , , "8001234567"], + [, , "60[04579]\\d{7}", , , , "6001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AR", + 54, + "00", + "0", + , + , + "0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?", + "9$1", + , + , + [ + [, "(\\d{3})", "$1", ["0|1(?:0[0-35-7]|1[02-5]|2[015]|3[47]|4[478])|911"]], + [, "(\\d{2})(\\d{4})", "$1-$2", ["[1-9]"]], + [, "(\\d{3})(\\d{4})", "$1-$2", ["[2-9]"]], + [, "(\\d{4})(\\d{4})", "$1-$2", ["[1-8]"]], + [ + , + "(\\d{4})(\\d{2})(\\d{4})", + "$1 $2-$3", + [ + "2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])", + "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)", + "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", + "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]", + ], + "0$1", + , + 1, + ], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", , 1], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", , 1], + [ + , + "(\\d)(\\d{4})(\\d{2})(\\d{4})", + "$2 15-$3-$4", + [ + "9(?:2[2-469]|3[3-578])", + "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))", + "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)", + "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", + "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]", + ], + "0$1", + ], + [, "(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 15-$3-$4", ["91"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 15-$3-$4", ["9"], "0$1"], + ], + [ + [ + , + "(\\d{4})(\\d{2})(\\d{4})", + "$1 $2-$3", + [ + "2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])", + "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)", + "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", + "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]", + ], + "0$1", + , + 1, + ], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", , 1], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", , 1], + [ + , + "(\\d)(\\d{4})(\\d{2})(\\d{4})", + "$1 $2 $3-$4", + [ + "9(?:2[2-469]|3[3-578])", + "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))", + "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)", + "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", + "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]", + ], + ], + [, "(\\d)(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3-$4", ["91"]], + [, "(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3-$4", ["9"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , "810\\d{7}", , , , , , , [10]], + [, , "810\\d{7}", , , , "8101234567", , , [10]], + , + , + [, , , , , , , , , [-1]], + ], + AS: [ + , + [, , "(?:[58]\\d\\d|684|900)\\d{7}", , , , , , , [10], [7]], + [, , "6846(?:22|33|44|55|77|88|9[19])\\d{4}", , , , "6846221234", , , , [7]], + [, , "684(?:2(?:48|5[2468]|72)|7(?:3[13]|70|82))\\d{4}", , , , "6847331234", , , , [7]], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "AS", + 1, + "011", + "1", + , + , + "1|([267]\\d{6})$", + "684$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "684", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AT: [ + , + [ + , + , + "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}", + , + , + , + , + , + , + [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], + [3], + ], + [ + , + , + "1(?:11\\d|[2-9]\\d{3,11})|(?:316|463|(?:51|66|73)2)\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-8]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{4,10}", + , + , + , + "1234567890", + , + , + , + [3], + ], + [, , "6(?:5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}", , , , "664123456", , , [7, 8, 9, 10, 11, 12, 13]], + [, , "800\\d{6,10}", , , , "800123456", , , [9, 10, 11, 12, 13]], + [, , "(?:8[69][2-68]|9(?:0[01]|3[019]))\\d{6,10}", , , , "900123456", , , [9, 10, 11, 12, 13]], + [, , "8(?:10|2[018])\\d{6,10}|828\\d{5}", , , , "810123456", , , [8, 9, 10, 11, 12, 13]], + [, , , , , , , , , [-1]], + [ + , + , + "5(?:0[1-9]|17|[79]\\d)\\d{2,10}|7[28]0\\d{6,10}", + , + , + , + "780123456", + , + , + [5, 6, 7, 8, 9, 10, 11, 12, 13], + ], + "AT", + 43, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"], + [, "(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"], + [, "(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"], + [, "(\\d{6})", "$1", ["[18]"]], + [, "(\\d{3})(\\d{3,10})", "$1 $2", ["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"], "0$1"], + [, "(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"], + ], + [ + [, "(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"], + [, "(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"], + [, "(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"], + [, "(\\d{3})(\\d{3,10})", "$1 $2", ["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"], "0$1"], + [, "(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AU: [ + , + [ + , + , + "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 10, 12], + ], + [ + , + , + "(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\d|2[0-8]))\\d{3}|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4]))|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}", + , + , + , + "212345678", + , + , + [9], + [8], + ], + [ + , + , + "4(?:83[0-38]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}", + , + , + , + "412345678", + , + , + [9], + ], + [, , "180(?:0\\d{3}|2)\\d{3}", , , , "1800123456", , , [7, 10]], + [, , "190[0-26]\\d{6}", , , , "1900123456", , , [10]], + [, , "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", , , , "1300123456", , , [6, 8, 10, 12]], + [, , , , , , , , , [-1]], + [, , "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", , , , "147101234", , , [9]], + "AU", + 61, + "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", + "0", + , + , + "0|(183[12])", + , + "0011", + , + [ + [, "(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["13"]], + [, "(\\d{3})(\\d{3})", "$1 $2", ["19"]], + [, "(\\d{3})(\\d{4})", "$1 $2", ["180", "1802"]], + [, "(\\d{4})(\\d{3,4})", "$1 $2", ["19"]], + [, "(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[2378]"], "(0$1)", "$CC ($1)"], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]], + [, "(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["130"]], + ], + [ + [, "(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[2378]"], "(0$1)", "$CC ($1)"], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]], + ], + [, , "163\\d{2,6}", , , , "1631234", , , [5, 6, 7, 8, 9]], + 1, + , + [, , "1(?:3(?:00\\d{5}|45[0-4])|802)\\d{3}|1[38]00\\d{6}|13\\d{4}", , , , , , , [6, 7, 8, 10, 12]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AW: [ + , + [, , "(?:[25-79]\\d\\d|800)\\d{4}", , , , , , , [7]], + [, , "5(?:2\\d|8[1-9])\\d{4}", , , , "5212345"], + [ + , + , + "(?:290|5[69]\\d|6(?:[03]0|22|4[0-2]|[69]\\d)|7(?:[34]\\d|7[07])|9(?:6[45]|9[4-8]))\\d{4}", + , + , + , + "5601234", + ], + [, , "800\\d{4}", , , , "8001234"], + [, , "900\\d{4}", , , , "9001234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:28\\d|501)\\d{4}", , , , "5011234"], + "AW", + 297, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[25-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + AX: [ + , + [ + , + , + "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 10, 11, 12], + ], + [, , "18[1-8]\\d{3,6}", , , , "181234567", , , [6, 7, 8, 9]], + [, , "4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}", , , , "412345678", , , [6, 7, 8, 9, 10]], + [, , "800\\d{4,6}", , , , "800123456", , , [7, 8, 9]], + [, , "[67]00\\d{5,6}", , , , "600123456", , , [8, 9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AX", + 358, + "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", + "0", + , + , + "0", + , + "00", + , + , + , + [, , , , , , , , , [-1]], + , + "18", + [, , , , , , , , , [-1]], + [ + , + , + "20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}", + , + , + , + "10112345", + ], + , + , + [, , , , , , , , , [-1]], + ], + AZ: [ + , + [, , "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}", , , , , , , [9], [7]], + [ + , + , + "(?:2[12]428|3655[02])\\d{4}|(?:2(?:22[0-79]|63[0-28])|3654)\\d{5}|(?:(?:1[28]|46)\\d|2(?:[014-6]2|[23]3))\\d{6}", + , + , + , + "123123456", + , + , + , + [7], + ], + [, , "36554\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\d{7}", , , , "401234567"], + [, , "88\\d{7}", , , , "881234567"], + [, , "900200\\d{3}", , , , "900200123"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "AZ", + 994, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[1-9]"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["90"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["1[28]|2|365|46", "1[28]|2|365[45]|46", "1[28]|2|365(?:4|5[02])|46"], + "(0$1)", + ], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[13-9]"], "0$1"], + ], + [ + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["90"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["1[28]|2|365|46", "1[28]|2|365[45]|46", "1[28]|2|365(?:4|5[02])|46"], + "(0$1)", + ], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[13-9]"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BA: [ + , + [, , "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}", , , , , , , [8, 9], [6]], + [ + , + , + "(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\d{5}", + , + , + , + "30212345", + , + , + [8], + [6], + ], + [, , "6040\\d{5}|6(?:03|[1-356]|44|7\\d)\\d{6}", , , , "61123456"], + [, , "8[08]\\d{6}", , , , "80123456", , , [8]], + [, , "9[0246]\\d{6}", , , , "90123456", , , [8]], + [, , "8[12]\\d{6}", , , , "82123456", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BA", + 387, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})", "$1-$2", ["[2-9]"]], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"], + ], + [ + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "703[235]0\\d{3}|70(?:2[0-5]|3[0146]|[56]0)\\d{4}", , , , "70341234", , , [8]], + , + , + [, , , , , , , , , [-1]], + ], + BB: [ + , + [, , "(?:246|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "246521[0369]\\d{3}|246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\d|3[2-9])|5(?:20|[34]\\d|54|7[1-3])|6(?:2\\d|38)|7[35]7|9(?:1[89]|63))\\d{4}", + , + , + , + "2464123456", + , + , + , + [7], + ], + [ + , + , + "246(?:(?:2(?:[3568]\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\d)|69[5-7]|8(?:[2-5]\\d|83))\\d|52(?:1[147]|20))\\d{3}", + , + , + , + "2462501234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "(?:246976|900[2-9]\\d\\d)\\d{4}", , , , "9002123456", , , , [7]], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , "24631\\d{5}", , , , "2463101234", , , , [7]], + "BB", + 1, + "011", + "1", + , + , + "1|([2-9]\\d{6})$", + "246$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "246", + [, , , , , , , , , [-1]], + [ + , + , + "246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\\d|3[016]|53))\\d{4}", + , + , + , + "2464301234", + , + , + , + [7], + ], + , + , + [, , , , , , , , , [-1]], + ], + BD: [ + , + [ + , + , + "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}", + , + , + , + , + , + , + [6, 7, 8, 9, 10], + ], + [ + , + , + "(?:4(?:31\\d\\d|423)|5222)\\d{3}(?:\\d{2})?|8332[6-9]\\d\\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\\d{4}|(?:2(?:222|[45]\\d)\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\d{5}|[59]1\\d{5}", + , + , + , + "27111234", + ], + [, , "(?:1[13-9]\\d|644)\\d{7}|(?:3[78]|44|66)[02-9]\\d{7}", , , , "1812345678", , , [10]], + [, , "80[03]\\d{7}", , , , "8001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "96(?:0[469]|1[0-47]|3[389]|6[69]|7[78])\\d{6}", , , , "9604123456", , , [10]], + "BD", + 880, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{4,6})", "$1-$2", ["31[5-8]|[459]1"], "0$1"], + [ + , + "(\\d{3})(\\d{3,7})", + "$1-$2", + [ + "3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]", + ], + "0$1", + ], + [, "(\\d{4})(\\d{3,6})", "$1-$2", ["[13-9]|22"], "0$1"], + [, "(\\d)(\\d{7,8})", "$1-$2", ["2"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BE: [ + , + [, , "4\\d{8}|[1-9]\\d{7}", , , , , , , [8, 9]], + [ + , + , + "80[2-8]\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\d{6}", + , + , + , + "12345678", + , + , + [8], + ], + [, , "4[5-9]\\d{7}", , , , "470123456", , , [9]], + [, , "800[1-9]\\d{4}", , , , "80012345", , , [8]], + [ + , + , + "(?:70(?:2[0-57]|3[04-7]|44|6[569]|7[0579])|90(?:0[0-8]|1[36]|2[0-3568]|3[0-689]|[47][2-68]|5[1-68]|6[0-378]|9[34679]))\\d{4}", + , + , + , + "90012345", + , + , + [8], + ], + [, , "7879\\d{4}", , , , "78791234", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BE", + 32, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:80|9)0"], "0$1"], + [, "(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[239]|4[23]"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[15-8]"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "78(?:0[57]|1[014-8]|2[25]|3[15-8]|48|[56]0|7[06-8]|9\\d)\\d{4}", , , , "78102345", , , [8]], + , + , + [, , , , , , , , , [-1]], + ], + BF: [ + , + [, , "[025-7]\\d{7}", , , , , , , [8]], + [ + , + , + "2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\d|50|6[5-7]))\\d{4}", + , + , + , + "20491234", + ], + [, , "(?:0[1-35-7]|5[1-8]|[67]\\d)\\d{6}", , , , "70123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BF", + 226, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[025-7]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BG: [ + , + [, , "[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}", , , , , , , [6, 7, 8, 9], [4, 5]], + [ + , + , + "2\\d{5,7}|(?:43[1-6]|70[1-9])\\d{4,5}|(?:[36]\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\d{5,6}", + , + , + , + "2123456", + , + , + [6, 7, 8], + [4, 5], + ], + [, , "(?:43[07-9]|99[69]\\d)\\d{5}|(?:8[7-9]|98)\\d{7}", , , , "43012345", , , [8, 9]], + [, , "800\\d{5}", , , , "80012345", , , [8]], + [, , "90\\d{6}", , , , "90123456", , , [8]], + [, , "700\\d{5}", , , , "70012345", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BG", + 359, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{6})", "$1", ["1"]], + [, "(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], + [, "(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], + ], + [ + [, "(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], + [, "(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BH: [ + , + [, , "[136-9]\\d{7}", , , , , , , [8]], + [ + , + , + "(?:1(?:3[1356]|6[0156]|7\\d)\\d|6(?:1[16]\\d|500|6(?:0\\d|3[12]|44|7[7-9]|88)|9[69][69])|7(?:1(?:11|78)|7\\d\\d))\\d{4}", + , + , + , + "17001234", + ], + [ + , + , + "(?:3(?:[1-79]\\d|8[0-47-9])\\d|6(?:3(?:00|33|6[16])|6(?:3[03-9]|[69]\\d|7[0-6])))\\d{4}", + , + , + , + "36001234", + ], + [, , "80\\d{6}", , , , "80123456"], + [, , "(?:87|9[014578])\\d{6}", , , , "90123456"], + [, , "84\\d{6}", , , , "84123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BH", + 973, + "00", + , + , + , + , + , + , + , + [[, "(\\d{4})(\\d{4})", "$1 $2", ["[13679]|8[047]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BI: [ + , + [, , "(?:[267]\\d|31)\\d{6}", , , , , , , [8]], + [, , "(?:22|31)\\d{6}", , , , "22201234"], + [, , "(?:29|6[1257-9]|7[125-9])\\d{6}", , , , "79561234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BI", + 257, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2367]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BJ: [ + , + [, , "(?:[25689]\\d|40)\\d{6}", , , , , , , [8]], + [, , "2(?:02|1[037]|2[45]|3[68])\\d{5}", , , , "20211234"], + [, , "(?:40|5[1-9]|6\\d|9[013-9])\\d{6}", , , , "90011234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "857[58]\\d{4}", , , , "85751234"], + "BJ", + 229, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-689]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "81\\d{6}", , , , "81123456"], + , + , + [, , , , , , , , , [-1]], + ], + BL: [ + , + [, , "(?:590|(?:69|80)\\d|976)\\d{6}", , , , , , , [9]], + [, , "590(?:2[7-9]|5[12]|87)\\d{4}", , , , "590271234"], + [, , "69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}", , , , "690001234"], + [, , "80[0-5]\\d{6}", , , , "800012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "976[01]\\d{5}", , , , "976012345"], + "BL", + 590, + "00", + "0", + , + , + "0", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BM: [ + , + [, , "(?:441|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [, , "441(?:[46]\\d\\d|5(?:4\\d|60|89))\\d{4}", , , , "4414123456", , , , [7]], + [, , "441(?:[2378]\\d|5[0-39])\\d{5}", , , , "4413701234", , , , [7]], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "BM", + 1, + "011", + "1", + , + , + "1|([2-8]\\d{6})$", + "441$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "441", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BN: [ + , + [, , "[2-578]\\d{6}", , , , , , , [7]], + [, , "22[0-7]\\d{4}|(?:2[013-9]|[34]\\d|5[0-25-9])\\d{5}", , , , "2345678"], + [, , "(?:22[89]|[78]\\d\\d)\\d{4}", , , , "7123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "5[34]\\d{5}", , , , "5345678"], + "BN", + 673, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[2-578]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BO: [ + , + [, , "(?:[2-467]\\d\\d|8001)\\d{5}", , , , , , , [8, 9], [7]], + [ + , + , + "(?:2(?:2\\d\\d|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d\\d|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\d\\d|6(?:11|[24689]\\d|72)))\\d{4}", + , + , + , + "22123456", + , + , + [8], + [7], + ], + [, , "[67]\\d{7}", , , , "71234567", , , [8]], + [, , "8001[07]\\d{4}", , , , "800171234", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BO", + 591, + "00(?:1\\d)?", + "0", + , + , + "0(1\\d)?", + , + , + , + [ + [, "(\\d)(\\d{7})", "$1 $2", ["[23]|4[46]"], , "0$CC $1"], + [, "(\\d{8})", "$1", ["[67]"], , "0$CC $1"], + [, "(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["8"], , "0$CC $1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "8001[07]\\d{4}", , , , , , , [9]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BQ: [ + , + [, , "(?:[34]1|7\\d)\\d{5}", , , , , , , [7]], + [, , "(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\d)\\d{3}", , , , "7151234"], + [, , "(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\d|9[056])\\d)\\d{3}", , , , "3181234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BQ", + 599, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "[347]", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BR: [ + , + [ + , + , + "(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}", + , + , + , + , + , + , + [8, 9, 10, 11], + ], + [ + , + , + "(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}", + , + , + , + "1123456789", + , + , + [10], + [8], + ], + [ + , + , + "(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\d)\\d{7}", + , + , + , + "11961234567", + , + , + [10, 11], + [8, 9], + ], + [, , "800\\d{6,7}", , , , "800123456", , , [9, 10]], + [, , "300\\d{6}|[59]00\\d{6,7}", , , , "300123456", , , [9, 10]], + [, , "(?:30[03]\\d{3}|4(?:0(?:0\\d|20)|370))\\d{4}|300\\d{5}", , , , "40041234", , , [8, 10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BR", + 55, + "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)", + "0", + , + , + "(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?", + "$2", + , + , + [ + [ + , + "(\\d{3,6})", + "$1", + ["1(?:1[25-8]|2[357-9]|3[02-68]|4[12568]|5|6[0-8]|8[015]|9[0-47-9])|321|610"], + ], + [, "(\\d{4})(\\d{4})", "$1-$2", ["300|4(?:0[02]|37)", "4(?:02|37)0|[34]00"]], + [, "(\\d{4})(\\d{4})", "$1-$2", ["[2-57]", "[2357]|4(?:[0-24-9]|3(?:[0-689]|7[1-9]))"]], + [, "(\\d{3})(\\d{2,3})(\\d{4})", "$1 $2 $3", ["(?:[358]|90)0"], "0$1"], + [, "(\\d{5})(\\d{4})", "$1-$2", ["9"]], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2-$3", + ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"], + "($1)", + "0 $CC ($1)", + ], + [, "(\\d{2})(\\d{5})(\\d{4})", "$1 $2-$3", ["[16][1-9]|[2-57-9]"], "($1)", "0 $CC ($1)"], + ], + [ + [, "(\\d{4})(\\d{4})", "$1-$2", ["300|4(?:0[02]|37)", "4(?:02|37)0|[34]00"]], + [, "(\\d{3})(\\d{2,3})(\\d{4})", "$1 $2 $3", ["(?:[358]|90)0"], "0$1"], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2-$3", + ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"], + "($1)", + "0 $CC ($1)", + ], + [, "(\\d{2})(\\d{5})(\\d{4})", "$1 $2-$3", ["[16][1-9]|[2-57-9]"], "($1)", "0 $CC ($1)"], + ], + [, , , , , , , , , [-1]], + , + , + [, , "30(?:0\\d{5,7}|3\\d{7})|40(?:0\\d|20)\\d{4}|800\\d{6,7}", , , , , , , [8, 9, 10]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BS: [ + , + [, , "(?:242|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-4]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}", + , + , + , + "2423456789", + , + , + , + [7], + ], + [ + , + , + "242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|[89]9))\\d{4}", + , + , + , + "2423591234", + , + , + , + [7], + ], + [, , "242300\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456", , , , [7]], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "BS", + 1, + "011", + "1", + , + , + "1|([3-8]\\d{6})$", + "242$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "242", + [, , , , , , , , , [-1]], + [, , "242225\\d{4}", , , , "2422250123"], + , + , + [, , , , , , , , , [-1]], + ], + BT: [ + , + [, , "[17]\\d{7}|[2-8]\\d{6}", , , , , , , [7, 8], [6]], + [, , "(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}", , , , "2345678", , , [7], [6]], + [, , "(?:1[67]|77)\\d{6}", , , , "17123456", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BT", + 975, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{3})", "$1 $2", ["[2-7]"]], + [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-68]|7[246]"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|7"]], + ], + [ + [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-68]|7[246]"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|7"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BW: [ + , + [, , "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}", , , , , , , [7, 8, 10]], + [ + , + , + "(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[013])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\d{4}", + , + , + , + "2401234", + , + , + [7], + ], + [, , "(?:321|7(?:[1-7]\\d|8[01]))\\d{5}", , , , "71123456", , , [8]], + [, , "(?:0800|800\\d)\\d{6}", , , , "0800012345", , , [10]], + [, , "90\\d{5}", , , , "9012345", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "79(?:1(?:[01]\\d|2[0-7])|2[0-7]\\d)\\d{3}", , , , "79101234", , , [8]], + "BW", + 267, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{5})", "$1 $2", ["90"]], + [, "(\\d{3})(\\d{4})", "$1 $2", ["[24-6]|3[15-79]"]], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37]"]], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["0"]], + [, "(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BY: [ + , + [ + , + , + "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 11], + [5], + ], + [ + , + , + "(?:1(?:5(?:1[1-5]|[24]\\d|6[2-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d\\d)|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:[26]\\d|3[02-79]|4[024-7]|5[03-7])))\\d{5}", + , + , + , + "152450911", + , + , + [9], + [5, 6, 7], + ], + [, , "(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\d)\\d{6}", , , , "294911911", , , [9]], + [, , "800\\d{3,7}|8(?:0[13]|20\\d)\\d{7}", , , , "8011234567"], + [, , "(?:810|902)\\d{7}", , , , "9021234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "249\\d{6}", , , , "249123456", , , [9]], + "BY", + 375, + "810", + "8", + , + , + "0|80?", + , + "8~10", + , + [ + [, "(\\d{3})(\\d{3})", "$1 $2", ["800"], "8 $1"], + [, "(\\d{3})(\\d{2})(\\d{2,4})", "$1 $2 $3", ["800"], "8 $1"], + [ + , + "(\\d{4})(\\d{2})(\\d{3})", + "$1 $2-$3", + [ + "1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])", + "1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])", + ], + "8 0$1", + ], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["1(?:[56]|7[467])|2[1-3]"], "8 0$1"], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-4]"], "8 0$1"], + [, "(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[89]"], "8 $1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "800\\d{3,7}|(?:8(?:0[13]|10|20\\d)|902)\\d{7}"], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + BZ: [ + , + [, , "(?:0800\\d|[2-8])\\d{6}", , , , , , , [7, 11]], + [ + , + , + "(?:2(?:[02]\\d|36|[68]0)|[3-58](?:[02]\\d|[68]0)|7(?:[02]\\d|32|[68]0))\\d{4}", + , + , + , + "2221234", + , + , + [7], + ], + [, , "6[0-35-7]\\d{5}", , , , "6221234", , , [7]], + [, , "0800\\d{7}", , , , "08001234123", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "BZ", + 501, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1-$2", ["[2-8]"]], + [, "(\\d)(\\d{3})(\\d{4})(\\d{3})", "$1-$2-$3-$4", ["0"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CA: [ + , + [, , "(?:[2-8]\\d|90)\\d{8}|3\\d{6}", , , , , , , [7, 10]], + [ + , + , + "(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}", + , + , + , + "5062345678", + , + , + [10], + [7], + ], + [ + , + , + "(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}", + , + , + , + "5062345678", + , + , + [10], + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456", , , [10]], + [, , "900[2-9]\\d{6}", , , , "9002123456", , , [10]], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-7]|33|44|66|77|88)|622)[2-9]\\d{6}", + , + , + , + "5002345678", + , + , + [10], + ], + [, , "600[2-9]\\d{6}", , , , "6002012345", , , [10]], + "CA", + 1, + "011", + "1", + , + , + "1", + , + , + 1, + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "310\\d{4}", , , , "3101234", , , [7]], + , + , + [, , , , , , , , , [-1]], + ], + CC: [ + , + [ + , + , + "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 12], + ], + [ + , + , + "8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}", + , + , + , + "891621234", + , + , + [9], + [8], + ], + [ + , + , + "4(?:83[0-38]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}", + , + , + , + "412345678", + , + , + [9], + ], + [, , "180(?:0\\d{3}|2)\\d{3}", , , , "1800123456", , , [7, 10]], + [, , "190[0-26]\\d{6}", , , , "1900123456", , , [10]], + [, , "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", , , , "1300123456", , , [6, 8, 10, 12]], + [, , , , , , , , , [-1]], + [, , "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", , , , "147101234", , , [9]], + "CC", + 61, + "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", + "0", + , + , + "0|([59]\\d{7})$", + "8$1", + "0011", + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CD: [ + , + [, , "[189]\\d{8}|[1-68]\\d{6}", , , , , , , [7, 9]], + [, , "12\\d{7}|[1-6]\\d{6}", , , , "1234567"], + [, , "88\\d{5}|(?:8[0-59]|9[017-9])\\d{7}", , , , "991234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CD", + 243, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], + [, "(\\d{2})(\\d{5})", "$1 $2", ["[1-6]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CF: [ + , + [, , "(?:[27]\\d{3}|8776)\\d{4}", , , , , , , [8]], + [, , "2[12]\\d{6}", , , , "21612345"], + [, , "7[02457]\\d{6}", , , , "70012345"], + [, , , , , , , , , [-1]], + [, , "8776\\d{4}", , , , "87761234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CF", + 236, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[278]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CG: [ + , + [, , "222\\d{6}|(?:0\\d|80)\\d{7}", , , , , , , [9]], + [, , "222[1-589]\\d{5}", , , , "222123456"], + [, , "026(?:1[0-5]|6[6-9])\\d{4}|0(?:[14-6]\\d\\d|2(?:40|5[5-8]|6[07-9]))\\d{5}", , , , "061234567"], + [, , , , , , , , , [-1]], + [, , "80(?:0\\d\\d|120)\\d{4}", , , , "800123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CG", + 242, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[02]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CH: [ + , + [, , "8\\d{11}|[2-9]\\d{8}", , , , , , , [9, 12]], + [, , "(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\d{7}", , , , "212345678", , , [9]], + [, , "7[35-9]\\d{7}", , , , "781234567", , , [9]], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , "90[016]\\d{6}", , , , "900123456", , , [9]], + [, , "84[0248]\\d{6}", , , , "840123456", , , [9]], + [, , "878\\d{6}", , , , "878123456", , , [9]], + [, , , , , , , , , [-1]], + "CH", + 41, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8[047]|90"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]|81"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["8"], "0$1"], + ], + , + [, , "74[0248]\\d{6}", , , , "740123456", , , [9]], + , + , + [, , , , , , , , , [-1]], + [, , "5[18]\\d{7}", , , , "581234567", , , [9]], + , + , + [, , "860\\d{9}", , , , "860123456789", , , [12]], + ], + CI: [ + , + [, , "[02]\\d{9}", , , , , , , [10]], + [ + , + , + "2(?:[15]\\d{3}|7(?:2(?:0[23]|1[2357]|[23][45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\d{5}", + , + , + , + "2123456789", + ], + [, , "0704[0-7]\\d{5}|0(?:[15]\\d\\d|7(?:0[0-37-9]|[4-9][7-9]))\\d{6}", , , , "0123456789"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CI", + 225, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d)(\\d{5})", "$1 $2 $3 $4", ["2"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3 $4", ["0"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CK: [ + , + [, , "[2-578]\\d{4}", , , , , , , [5]], + [, , "(?:2\\d|3[13-7]|4[1-5])\\d{3}", , , , "21234"], + [, , "[578]\\d{4}", , , , "71234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CK", + 682, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{3})", "$1 $2", ["[2-578]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CL: [ + , + [, , "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}", , , , , , , [9, 10, 11]], + [ + , + , + "2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[0346]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|7[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}", + , + , + , + "221234567", + , + , + [9], + ], + [ + , + , + "2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[0346]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|7[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}", + , + , + , + "221234567", + , + , + [9], + ], + [, , "(?:123|8)00\\d{6}", , , , "800123456", , , [9, 11]], + [, , , , , , , , , [-1]], + [, , "600\\d{7,8}", , , , "6001234567", , , [10, 11]], + [, , , , , , , , , [-1]], + [, , "44\\d{7}", , , , "441234567", , , [9]], + "CL", + 56, + "(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0", + , + , + , + , + , + , + 1, + [ + [, "(\\d{4})", "$1", ["1(?:[03-589]|21)|[29]0|78"]], + [, "(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9[2-9]"]], + [ + , + "(\\d{2})(\\d{3})(\\d{4})", + "$1 $2 $3", + ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"], + "($1)", + ], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], + [, "(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]], + ], + [ + [, "(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9[2-9]"]], + [ + , + "(\\d{2})(\\d{3})(\\d{4})", + "$1 $2 $3", + ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"], + "($1)", + ], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], + [, "(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , "600\\d{7,8}", , , , , , , [10, 11]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CM: [ + , + [, , "[26]\\d{8}|88\\d{6,7}", , , , , , , [8, 9]], + [, , "2(?:22|33)\\d{6}", , , , "222123456", , , [9]], + [, , "(?:24[23]|6[25-9]\\d)\\d{6}", , , , "671234567", , , [9]], + [, , "88\\d{6,7}", , , , "88012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CM", + 237, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["88"]], + [, "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[26]|88"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CN: [ + , + [ + , + , + "1[127]\\d{8,9}|2\\d{9}(?:\\d{2})?|[12]\\d{6,7}|86\\d{6}|(?:1[03-689]\\d|6)\\d{7,9}|(?:[3-579]\\d|8[0-57-9])\\d{6,9}", + , + , + , + , + , + , + [7, 8, 9, 10, 11, 12], + [5, 6], + ], + [ + , + , + "(?:10(?:[02-79]\\d\\d|[18](?:0[1-9]|[1-9]\\d))|21(?:[18](?:0[1-9]|[1-9]\\d)|[2-79]\\d\\d))\\d{5}|(?:43[35]|754)\\d{7,8}|8(?:078\\d{7}|51\\d{7,8})|(?:10|(?:2|85)1|43[35]|754)(?:100\\d\\d|95\\d{3,4})|(?:2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\d{7}|1(?:0(?:0\\d\\d(?:\\d{3})?|[1-9]\\d{5})|[1-9]\\d{6})|9(?:[0-46-9]\\d{6}|5\\d{3}(?:\\d(?:\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]\\d{6}|1(?:0(?:0\\d\\d(?:\\d{2})?|[1-9]\\d{4})|[1-9]\\d{5})|9(?:[0-46-9]\\d{5}|5\\d{3,5}))", + , + , + , + "1012345678", + , + , + [7, 8, 9, 10, 11], + [5, 6], + ], + [ + , + , + "1740[0-5]\\d{6}|1(?:[38]\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\d{8}", + , + , + , + "13123456789", + , + , + [11], + ], + [, , "(?:(?:10|21)8|8)00\\d{7}", , , , "8001234567", , , [10, 12]], + [, , "16[08]\\d{5}", , , , "16812345", , , [8]], + [ + , + , + "400\\d{7}|950\\d{7,8}|(?:10|2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}", + , + , + , + "4001234567", + , + , + [7, 8, 9, 10, 11], + [5, 6], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CN", + 86, + "00|1(?:[12]\\d|79)\\d\\d00", + "0", + , + , + "0|(1(?:[12]\\d|79)\\d\\d)", + , + "00", + , + [ + [, "(\\d{5,6})", "$1", ["96"]], + [ + , + "(\\d{2})(\\d{5,6})", + "$1 $2", + ["(?:10|2[0-57-9])[19]", "(?:10|2[0-57-9])(?:10|9[56])", "(?:10|2[0-57-9])(?:100|9[56])"], + "0$1", + "$CC $1", + ], + [ + , + "(\\d{3})(\\d{4})", + "$1 $2", + [ + "[1-9]", + "1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])", + "1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])", + ], + ], + [, "(\\d{4})(\\d{4})", "$1 $2", ["16[08]"]], + [ + , + "(\\d{3})(\\d{5,6})", + "$1 $2", + [ + "3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]", + "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]", + "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])", + "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])", + ], + "0$1", + "$CC $1", + ], + [ + , + "(\\d{4})(\\d{4})", + "$1 $2", + [ + "[1-9]", + "1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])", + "26|3(?:[0268]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9])|(?:34|85[23])[0-8]|(?:1|58)[1-9]|(?:63|95)[06-9]|(?:33|85[23]9)[0-46-9]|(?:10|2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])", + "26|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:1|58|85[23]10)[1-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])", + ], + ], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2 $3", + [ + "10|2(?:[02-57-9]|1[1-9])", + "10|2(?:[02-57-9]|1[1-9])", + "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])", + ], + "0$1", + "$CC $1", + 1, + ], + [ + , + "(\\d{3})(\\d{3})(\\d{4})", + "$1 $2 $3", + [ + "3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]", + ], + "0$1", + "$CC $1", + 1, + ], + [, "(\\d{3})(\\d{7,8})", "$1 $2", ["9"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["80"], "0$1", "$CC $1", 1], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[3-578]"], "0$1", "$CC $1", 1], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"], , "$CC $1"], + [, "(\\d{2})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["[12]"], "0$1", , 1], + ], + [ + [ + , + "(\\d{2})(\\d{5,6})", + "$1 $2", + ["(?:10|2[0-57-9])[19]", "(?:10|2[0-57-9])(?:10|9[56])", "(?:10|2[0-57-9])(?:100|9[56])"], + "0$1", + "$CC $1", + ], + [ + , + "(\\d{3})(\\d{5,6})", + "$1 $2", + [ + "3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]", + "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]", + "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])", + "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])", + ], + "0$1", + "$CC $1", + ], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2 $3", + [ + "10|2(?:[02-57-9]|1[1-9])", + "10|2(?:[02-57-9]|1[1-9])", + "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])", + ], + "0$1", + "$CC $1", + 1, + ], + [ + , + "(\\d{3})(\\d{3})(\\d{4})", + "$1 $2 $3", + [ + "3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]", + ], + "0$1", + "$CC $1", + 1, + ], + [, "(\\d{3})(\\d{7,8})", "$1 $2", ["9"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["80"], "0$1", "$CC $1", 1], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[3-578]"], "0$1", "$CC $1", 1], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"], , "$CC $1"], + [, "(\\d{2})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["[12]"], "0$1", , 1], + ], + [, , , , , , , , , [-1]], + , + , + [, , "(?:(?:10|21)8|[48])00\\d{7}|950\\d{7,8}", , , , , , , [10, 11, 12]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CO: [ + , + [, , "(?:60\\d\\d|9101)\\d{6}|(?:1\\d|3)\\d{9}", , , , , , , [10, 11], [7]], + [, , "60[124-8][2-9]\\d{6}", , , , "6012345678", , , [10], [7]], + [ + , + , + "3333(?:0(?:0\\d|1[0-5])|[4-9]\\d\\d)\\d{3}|(?:3(?:24[1-9]|3(?:00|3[0-24-9]))|9101)\\d{6}|3(?:0[0-5]|1\\d|2[0-3]|5[01]|70)\\d{7}", + , + , + , + "3211234567", + , + , + [10], + ], + [, , "1800\\d{7}", , , , "18001234567", , , [11]], + [, , "19(?:0[01]|4[78])\\d{7}", , , , "19001234567", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CO", + 57, + "00(?:4(?:[14]4|56)|[579])", + "0", + , + , + "0(4(?:[14]4|56)|[579])?", + , + , + , + [ + [, "(\\d{3})(\\d{7})", "$1 $2", ["6"], "($1)", "0$CC $1"], + [, "(\\d{3})(\\d{7})", "$1 $2", ["[39]"], , "0$CC $1"], + [, "(\\d)(\\d{3})(\\d{7})", "$1-$2-$3", ["1"], "0$1"], + ], + [ + [, "(\\d{3})(\\d{7})", "$1 $2", ["6"], "($1)", "0$CC $1"], + [, "(\\d{3})(\\d{7})", "$1 $2", ["[39]"], , "0$CC $1"], + [, "(\\d)(\\d{3})(\\d{7})", "$1 $2 $3", ["1"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CR: [ + , + [, , "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}", , , , , , , [8, 10]], + [, , "210[7-9]\\d{4}|2(?:[024-7]\\d|1[1-9])\\d{5}", , , , "22123456", , , [8]], + [, , "(?:3005\\d|6500[01])\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\d{6}", , , , "83123456", , , [8]], + [, , "800\\d{7}", , , , "8001234567", , , [10]], + [, , "90[059]\\d{7}", , , , "9001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:210[0-6]|4\\d{3}|5100)\\d{4}", , , , "40001234", , , [8]], + "CR", + 506, + "00", + , + , + , + "(19(?:0[0-2468]|1[09]|20|66|77|99))", + , + , + , + [ + [, "(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[3-9]"], , "$CC $1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[89]"], , "$CC $1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CU: [ + , + [, , "[27]\\d{6,7}|[34]\\d{5,7}|(?:5|8\\d\\d)\\d{7}", , , , , , , [6, 7, 8, 10], [4, 5]], + [ + , + , + "(?:3[23]|48)\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\d)\\d{6}|(?:2[1-4]|4[1257]|7\\d)\\d{5,6}", + , + , + , + "71234567", + , + , + , + [4, 5], + ], + [, , "5\\d{7}", , , , "51234567", , , [8]], + [, , "800\\d{7}", , , , "8001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , "807\\d{7}", , , , "8071234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CU", + 53, + "119", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{4,6})", "$1 $2", ["2[1-4]|[34]"], "(0$1)"], + [, "(\\d)(\\d{6,7})", "$1 $2", ["7"], "(0$1)"], + [, "(\\d)(\\d{7})", "$1 $2", ["5"], "0$1"], + [, "(\\d{3})(\\d{7})", "$1 $2", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CV: [ + , + [, , "(?:[2-59]\\d\\d|800)\\d{4}", , , , , , , [7]], + [, , "2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}", , , , "2211234"], + [, , "(?:36|5[1-389]|9\\d)\\d{5}", , , , "9911234"], + [, , "800\\d{4}", , , , "8001234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:3[3-5]|4[356])\\d{5}", , , , "3401234"], + "CV", + 238, + "0", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2-589]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CW: [ + , + [, , "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}", , , , , , , [7, 8]], + [ + , + , + "9(?:4(?:3[0-5]|4[14]|6\\d)|50\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\d|7[01]|8[57-9]))\\d{4}", + , + , + , + "94351234", + ], + [, , "953[01]\\d{4}|9(?:5[12467]|6[5-9])\\d{5}", , , , "95181234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "60[0-2]\\d{4}", , , , "6001234", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "CW", + 599, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[3467]"]], + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["9[4-8]"]], + ], + , + [, , "955\\d{5}", , , , "95581234", , , [8]], + 1, + "[69]", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CX: [ + , + [ + , + , + "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 12], + ], + [ + , + , + "8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}", + , + , + , + "891641234", + , + , + [9], + [8], + ], + [ + , + , + "4(?:83[0-38]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}", + , + , + , + "412345678", + , + , + [9], + ], + [, , "180(?:0\\d{3}|2)\\d{3}", , , , "1800123456", , , [7, 10]], + [, , "190[0-26]\\d{6}", , , , "1900123456", , , [10]], + [, , "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", , , , "1300123456", , , [6, 8, 10, 12]], + [, , , , , , , , , [-1]], + [, , "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", , , , "147101234", , , [9]], + "CX", + 61, + "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", + "0", + , + , + "0|([59]\\d{7})$", + "8$1", + "0011", + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + CY: [ + , + [, , "(?:[279]\\d|[58]0)\\d{6}", , , , , , , [8]], + [, , "2[2-6]\\d{6}", , , , "22345678"], + [, , "9[4-79]\\d{6}", , , , "96123456"], + [, , "800\\d{5}", , , , "80001234"], + [, , "90[09]\\d{5}", , , , "90012345"], + [, , "80[1-9]\\d{5}", , , , "80112345"], + [, , "700\\d{5}", , , , "70012345"], + [, , , , , , , , , [-1]], + "CY", + 357, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{6})", "$1 $2", ["[257-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "(?:50|77)\\d{6}", , , , "77123456"], + , + , + [, , , , , , , , , [-1]], + ], + CZ: [ + , + [, , "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}", , , , , , , [9, 10, 11, 12]], + [, , "(?:2\\d|3[1257-9]|4[16-9]|5[13-9])\\d{7}", , , , "212345678", , , [9]], + [, , "(?:60[1-8]|7(?:0[2-5]|[2379]\\d))\\d{6}", , , , "601123456", , , [9]], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , "9(?:0[05689]|76)\\d{6}", , , , "900123456", , , [9]], + [, , "8[134]\\d{7}", , , , "811234567", , , [9]], + [, , "70[01]\\d{6}", , , , "700123456", , , [9]], + [, , "9[17]0\\d{6}", , , , "910123456", , , [9]], + "CZ", + 420, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]], + [, "(\\d{2})(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["96"]], + [, "(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], + [, "(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "9(?:5\\d|7[2-4])\\d{6}", , , , "972123456", , , [9]], + , + , + [, , "9(?:3\\d{9}|6\\d{7,10})", , , , "93123456789"], + ], + DE: [ + , + [ + , + , + "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[02-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|[23]1|[46][1-8])\\d{1,9}", + , + , + , + , + , + , + [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], + [2, 3], + ], + [ + , + , + "32\\d{9,11}|49[1-6]\\d{10}|322\\d{6}|49[0-7]\\d{3,9}|(?:[34]0|[68]9)\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\d|[589][0-7]|6[0-8]|7[0-467]))\\d{3,12}", + , + , + , + "30123456", + , + , + [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], + [2, 3, 4], + ], + [, , "15[0-25-9]\\d{8}|1(?:6[023]|7\\d)\\d{7,8}", , , , "15123456789", , , [10, 11]], + [, , "800\\d{7,12}", , , , "8001234567890", , , [10, 11, 12, 13, 14, 15]], + [, , "(?:137[7-9]|900(?:[135]|9\\d))\\d{6}", , , , "9001234567", , , [10, 11]], + [, , "180\\d{5,11}|13(?:7[1-6]\\d\\d|8)\\d{4}", , , , "18012345", , , [7, 8, 9, 10, 11, 12, 13, 14]], + [, , "700\\d{8}", , , , "70012345678", , , [11]], + [, , , , , , , , , [-1]], + "DE", + 49, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3,13})", "$1 $2", ["3[02]|40|[68]9"], "0$1"], + [ + , + "(\\d{3})(\\d{3,12})", + "$1 $2", + [ + "2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", + "2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", + ], + "0$1", + ], + [ + , + "(\\d{4})(\\d{2,11})", + "$1 $2", + [ + "[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]", + "[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]", + ], + "0$1", + ], + [, "(\\d{3})(\\d{4})", "$1 $2", ["138"], "0$1"], + [, "(\\d{5})(\\d{2,10})", "$1 $2", ["3"], "0$1"], + [, "(\\d{3})(\\d{5,11})", "$1 $2", ["181"], "0$1"], + [, "(\\d{3})(\\d)(\\d{4,10})", "$1 $2 $3", ["1(?:3|80)|9"], "0$1"], + [, "(\\d{3})(\\d{7,8})", "$1 $2", ["1[67]"], "0$1"], + [, "(\\d{3})(\\d{7,12})", "$1 $2", ["8"], "0$1"], + [, "(\\d{5})(\\d{6})", "$1 $2", ["185", "1850", "18500"], "0$1"], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], + [, "(\\d{4})(\\d{7})", "$1 $2", ["18[68]"], "0$1"], + [, "(\\d{5})(\\d{6})", "$1 $2", ["15[0568]"], "0$1"], + [, "(\\d{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"], + [, "(\\d{3})(\\d{8})", "$1 $2", ["18"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"], + [, "(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"], + ], + , + [, , "16(?:4\\d{1,10}|[89]\\d{1,11})", , , , "16412345", , , [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]], + , + , + [, , , , , , , , , [-1]], + [, , "18(?:1\\d{5,11}|[2-9]\\d{8})", , , , "18500123456", , , [8, 9, 10, 11, 12, 13, 14]], + , + , + [ + , + , + "1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\d{7,8}|15(?:(?:[03-68]00|113)\\d|2\\d55|7\\d99|9\\d33)\\d{7}", + , + , + , + "177991234567", + , + , + [12, 13], + ], + ], + DJ: [ + , + [, , "(?:2\\d|77)\\d{6}", , , , , , , [8]], + [, , "2(?:1[2-5]|7[45])\\d{5}", , , , "21360003"], + [, , "77\\d{6}", , , , "77831001"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "DJ", + 253, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[27]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + DK: [ + , + [, , "[2-9]\\d{7}", , , , , , , [8]], + [, , "(?:[2-7]\\d|8[126-9]|9[1-46-9])\\d{6}", , , , "32123456"], + [, , "(?:[2-7]\\d|8[126-9]|9[1-46-9])\\d{6}", , , , "32123456"], + [, , "80\\d{6}", , , , "80123456"], + [, , "90\\d{6}", , , , "90123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "DK", + 45, + "00", + , + , + , + , + , + , + 1, + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + DM: [ + , + [, , "(?:[58]\\d\\d|767|900)\\d{7}", , , , , , , [10], [7]], + [, , "767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\d{4}", , , , "7674201234", , , , [7]], + [, , "767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\d{4}", , , , "7672251234", , , , [7]], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "DM", + 1, + "011", + "1", + , + , + "1|([2-7]\\d{6})$", + "767$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "767", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + DO: [ + , + [, , "(?:[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "8(?:[04]9[2-9]\\d\\d|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d\\d|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\d{4}", + , + , + , + "8092345678", + , + , + , + [7], + ], + [, , "8[024]9[2-9]\\d{6}", , , , "8092345678", , , , [7]], + [, , "8(?:00(?:14|[2-9]\\d)|(?:33|44|55|66|77|88)[2-9]\\d)\\d{5}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "DO", + 1, + "011", + "1", + , + , + "1", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "8001|8[024]9", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + DZ: [ + , + [, , "(?:[1-4]|[5-79]\\d|80)\\d{7}", , , , , , , [8, 9]], + [, , "9619\\d{5}|(?:1\\d|2[013-79]|3[0-8]|4[013-689])\\d{6}", , , , "12345678"], + [, , "(?:5(?:4[0-29]|5\\d|6[0-2])|6(?:[569]\\d|7[0-6])|7[7-9]\\d)\\d{6}", , , , "551234567", , , [9]], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , "80[3-689]1\\d{5}", , , , "808123456", , , [9]], + [, , "80[12]1\\d{5}", , , , "801123456", , , [9]], + [, , , , , , , , , [-1]], + [, , "98[23]\\d{6}", , , , "983123456", , , [9]], + "DZ", + 213, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-4]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["9"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-8]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + EC: [ + , + [, , "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}", , , , , , , [8, 9, 10, 11], [7]], + [, , "[2-7][2-7]\\d{6}", , , , "22123456", , , [8], [7]], + [, , "964[0-2]\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\d)\\d{6}", , , , "991234567", , , [9]], + [, , "1800\\d{7}|1[78]00\\d{6}", , , , "18001234567", , , [10, 11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "[2-7]890\\d{4}", , , , "28901234", , , [8]], + "EC", + 593, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1-$2", ["[2-7]"]], + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2-$3", ["[2-7]"], "(0$1)"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]], + ], + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-7]"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + EE: [ + , + [, , "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}", , , , , , , [7, 8, 10]], + [, , "(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}", , , , "3212345", , , [7]], + [ + , + , + "(?:5\\d{5}|8(?:1(?:0(?:000|[3-9]\\d\\d)|(?:1(?:0[236]|1\\d)|(?:23|[3-79]\\d)\\d)\\d)|2(?:0(?:000|(?:19|[2-7]\\d)\\d)|(?:(?:[124-6]\\d|3[5-9])\\d|7(?:[3679]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}", + , + , + , + "51234567", + , + , + [7, 8], + ], + [, , "800(?:(?:0\\d\\d|1)\\d|[2-9])\\d{3}", , , , "80012345"], + [, , "(?:40\\d\\d|900)\\d{4}", , , , "9001234", , , [7, 8]], + [, , , , , , , , , [-1]], + [, , "70[0-2]\\d{5}", , , , "70012345", , , [8]], + [, , , , , , , , , [-1]], + "EE", + 372, + "00", + , + , + , + , + , + , + , + [ + [ + , + "(\\d{3})(\\d{4})", + "$1 $2", + [ + "[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88", + "[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88", + ], + ], + [, "(\\d{4})(\\d{3,4})", "$1 $2", ["[45]|8(?:00|[1-49])", "[45]|8(?:00[1-9]|[1-49])"]], + [, "(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["7"]], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "800[2-9]\\d{3}", , , , , , , [7]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + EG: [ + , + [, , "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}", , , , , , , [8, 9, 10], [6, 7]], + [ + , + , + "13[23]\\d{6}|(?:15|57)\\d{6,7}|(?:2[2-4]|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\d{7}", + , + , + , + "234567890", + , + , + [8, 9], + [6, 7], + ], + [, , "1[0-25]\\d{8}", , , , "1001234567", , , [10]], + [, , "800\\d{7}", , , , "8001234567", , , [10]], + [, , "900\\d{7}", , , , "9001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "EG", + 20, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{7,8})", "$1 $2", ["[23]"], "0$1"], + [, "(\\d{2})(\\d{6,7})", "$1 $2", ["1[35]|[4-6]|8[2468]|9[235-7]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[189]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + EH: [ + , + [, , "[5-8]\\d{8}", , , , , , , [9]], + [, , "528[89]\\d{5}", , , , "528812345"], + [, , "(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]))\\d{6}", , , , "650123456"], + [, , "80\\d{7}", , , , "801234567"], + [, , "89\\d{7}", , , , "891234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "592(?:4[0-2]|93)\\d{4}", , , , "592401234"], + "EH", + 212, + "00", + "0", + , + , + "0", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "528[89]", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + ER: [ + , + [, , "[178]\\d{6}", , , , , , , [7], [6]], + [, , "(?:1(?:1[12568]|[24]0|55|6[146])|8\\d\\d)\\d{4}", , , , "8370362", , , , [6]], + [, , "(?:17[1-3]|7\\d\\d)\\d{4}", , , , "7123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "ER", + 291, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[178]"], "0$1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + ES: [ + , + [, , "[5-9]\\d{8}", , , , , , , [9]], + [ + , + , + "96906(?:0[0-8]|1[1-9]|[2-9]\\d)\\d\\d|9(?:69(?:0[0-57-9]|[1-9]\\d)|73(?:[0-8]\\d|9[1-9]))\\d{4}|(?:8(?:[1356]\\d|[28][0-8]|[47][1-9])|9(?:[135]\\d|[268][0-8]|4[1-9]|7[124-9]))\\d{6}", + , + , + , + "810123456", + ], + [, , "(?:590[16]00\\d|9(?:6906(?:09|10)|7390\\d\\d))\\d\\d|(?:6\\d|7[1-48])\\d{7}", , , , "612345678"], + [, , "[89]00\\d{6}", , , , "800123456"], + [, , "80[367]\\d{6}", , , , "803123456"], + [, , "90[12]\\d{6}", , , , "901123456"], + [, , "70\\d{7}", , , , "701234567"], + [, , , , , , , , , [-1]], + "ES", + 34, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4})", "$1", ["905"]], + [, "(\\d{6})", "$1", ["[79]9"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]00"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-9]"]], + ], + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]00"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-9]"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "51\\d{7}", , , , "511234567"], + , + , + [, , , , , , , , , [-1]], + ], + ET: [ + , + [, , "(?:11|[2-579]\\d)\\d{7}", , , , , , , [9], [7]], + [ + , + , + "11667[01]\\d{3}|(?:11(?:1(?:1[124]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:1[78]|2[69]|39|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}", + , + , + , + "111112345", + , + , + , + [7], + ], + [, , "7001\\d{5}|(?:7(?:0[1-9]|1[01]|77|86|99)|9\\d\\d)\\d{6}", , , , "911234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "ET", + 251, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-579]"], "0$1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + FI: [ + , + [ + , + , + "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 10, 11, 12], + ], + [, , "(?:1[3-79][1-8]|[235689][1-8]\\d)\\d{2,6}", , , , "131234567", , , [5, 6, 7, 8, 9]], + [, , "4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}", , , , "412345678", , , [6, 7, 8, 9, 10]], + [, , "800\\d{4,6}", , , , "800123456", , , [7, 8, 9]], + [, , "[67]00\\d{5,6}", , , , "600123456", , , [8, 9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "FI", + 358, + "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", + "0", + , + , + "0", + , + "00", + , + [ + [, "(\\d{5})", "$1", ["75[12]"], "0$1"], + [, "(\\d)(\\d{4,9})", "$1 $2", ["[2568][1-8]|3(?:0[1-9]|[1-9])|9"], "0$1"], + [, "(\\d{6})", "$1", ["11"]], + [, "(\\d{3})(\\d{3,7})", "$1 $2", ["[12]00|[368]|70[07-9]"], "0$1"], + [, "(\\d{2})(\\d{4,8})", "$1 $2", ["[1245]|7[135]"], "0$1"], + [, "(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], + ], + [ + [, "(\\d)(\\d{4,9})", "$1 $2", ["[2568][1-8]|3(?:0[1-9]|[1-9])|9"], "0$1"], + [, "(\\d{3})(\\d{3,7})", "$1 $2", ["[12]00|[368]|70[07-9]"], "0$1"], + [, "(\\d{2})(\\d{4,8})", "$1 $2", ["[1245]|7[135]"], "0$1"], + [, "(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], + ], + [, , , , , , , , , [-1]], + 1, + "1[03-79]|[2-9]", + [ + , + , + "20(?:2[023]|9[89])\\d{1,6}|(?:60[12]\\d|7099)\\d{4,5}|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:[1-3]00|7(?:0[1-5]\\d\\d|5[03-9]))\\d{3,7}", + ], + [ + , + , + "20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}", + , + , + , + "10112345", + ], + , + , + [, , , , , , , , , [-1]], + ], + FJ: [ + , + [, , "45\\d{5}|(?:0800\\d|[235-9])\\d{6}", , , , , , , [7, 11]], + [, , "603\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\d{5}", , , , "3212345", , , [7]], + [, , "(?:[279]\\d|45|5[01568]|8[034679])\\d{5}", , , , "7012345", , , [7]], + [, , "0800\\d{7}", , , , "08001234567", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "FJ", + 679, + "0(?:0|52)", + , + , + , + , + , + "00", + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[235-9]|45"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + FK: [ + , + [, , "[2-7]\\d{4}", , , , , , , [5]], + [, , "[2-47]\\d{4}", , , , "31234"], + [, , "[56]\\d{4}", , , , "51234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "FK", + 500, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + FM: [ + , + [, , "(?:[39]\\d\\d|820)\\d{4}", , , , , , , [7]], + [ + , + , + "31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\d)\\d)\\d{3}", + , + , + , + "3201234", + ], + [ + , + , + "31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\d)\\d)\\d{3}", + , + , + , + "3501234", + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "FM", + 691, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[389]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + FO: [ + , + [, , "[2-9]\\d{5}", , , , , , , [6]], + [, , "(?:20|[34]\\d|8[19])\\d{4}", , , , "201234"], + [, , "(?:[27][1-9]|5\\d|9[16])\\d{4}", , , , "211234"], + [, , "80[257-9]\\d{3}", , , , "802123"], + [, , "90(?:[13-5][15-7]|2[125-7]|9\\d)\\d\\d", , , , "901123"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:6[0-36]|88)\\d{4}", , , , "601234"], + "FO", + 298, + "00", + , + , + , + "(10(?:01|[12]0|88))", + , + , + , + [[, "(\\d{6})", "$1", ["[2-9]"], , "$CC $1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + FR: [ + , + [, , "[1-9]\\d{8}", , , , , , , [9]], + [, , "(?:[1-35]\\d|4[1-9])\\d{7}", , , , "123456789"], + [, , "(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7(?:00|[3-9]\\d))\\d{6}", , , , "612345678"], + [, , "80[0-5]\\d{6}", , , , "801234567"], + [ + , + , + "836(?:0[0-36-9]|[1-9]\\d)\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\d|8[0-35-9])\\d{6}", + , + , + , + "891123456", + ], + [, , "8(?:1[01]|2[0156]|4[02]|84)\\d{6}", , , , "884012345"], + [, , , , , , , , , [-1]], + [, , "9\\d{8}", , , , "912345678"], + "FR", + 33, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})", "$1", ["10"]], + [, "(\\d{3})(\\d{3})", "$1 $2", ["1"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0 $1"], + [, "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[1-79]"], "0$1"], + ], + [ + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0 $1"], + [, "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[1-79]"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "80[6-9]\\d{6}", , , , "806123456"], + , + , + [, , , , , , , , , [-1]], + ], + GA: [ + , + [, , "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}", , , , , , , [7, 8]], + [, , "[01]1\\d{6}", , , , "01441234", , , [8]], + [, , "(?:(?:0[2-7]|7[467])\\d|6(?:0[0-4]|10|[256]\\d))\\d{5}|[2-7]\\d{6}", , , , "06031234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "GA", + 241, + "00", + , + , + , + "0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})", + "$1", + , + , + [ + [, "(\\d)(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-7]"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["11|[67]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GB: [ + , + [, , "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}", , , , , , , [7, 9, 10], [4, 5, 6, 8]], + [ + , + , + "(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0235])|4(?:[0-5]\\d\\d|69[7-9]|70[01359])|(?:5[0-26-9]|[78][0-49])\\d\\d|6(?:[0-4]\\d\\d|50[0-79]))|2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d\\d|1(?:[0-7]\\d\\d|8(?:[02]\\d|1[0-26-9])))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}", + , + , + , + "1212345678", + , + , + [9, 10], + [4, 5, 6, 7, 8], + ], + [ + , + , + "7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}", + , + , + , + "7400123456", + , + , + [10], + ], + [, , "80[08]\\d{7}|800\\d{6}|8001111", , , , "8001234567"], + [, , "(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d", , , , "9012345678", , , [7, 10]], + [, , , , , , , , , [-1]], + [, , "70\\d{8}", , , , "7012345678", , , [10]], + [, , "56\\d{8}", , , , "5612345678", , , [10]], + "GB", + 44, + "00", + "0", + " x", + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["800", "8001", "80011", "800111", "8001111"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["845", "8454", "84546", "845464"], "0$1"], + [, "(\\d{3})(\\d{6})", "$1 $2", ["800"], "0$1"], + [ + , + "(\\d{5})(\\d{4,5})", + "$1 $2", + [ + "1(?:38|5[23]|69|76|94)", + "1(?:(?:38|69)7|5(?:24|39)|768|946)", + "1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)", + ], + "0$1", + ], + [, "(\\d{4})(\\d{5,6})", "$1 $2", ["1(?:[2-69][02-9]|[78])"], "0$1"], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2 $3", + ["[25]|7(?:0|6[02-9])", "[25]|7(?:0|6(?:[03-9]|2[356]))"], + "0$1", + ], + [, "(\\d{4})(\\d{6})", "$1 $2", ["7"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1389]"], "0$1"], + ], + , + [ + , + , + "76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", + , + , + , + "7640123456", + , + , + [10], + ], + 1, + , + [, , , , , , , , , [-1]], + [, , "(?:3[0347]|55)\\d{8}", , , , "5512345678", , , [10]], + , + , + [, , , , , , , , , [-1]], + ], + GD: [ + , + [, , "(?:473|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|73|90)|63[68]|7(?:58|84)|800|938)\\d{4}", + , + , + , + "4732691234", + , + , + , + [7], + ], + [ + , + , + "473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\d{4}", + , + , + , + "4734031234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "GD", + 1, + "011", + "1", + , + , + "1|([2-9]\\d{6})$", + "473$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "473", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GE: [ + , + [, , "(?:[3-57]\\d\\d|800)\\d{6}", , , , , , , [9], [6, 7]], + [ + , + , + "(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}", + , + , + , + "322123456", + , + , + , + [6, 7], + ], + [ + , + , + "5(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d{3}|5(?:0070|11(?:33|51)|[25]222|3333)[0-4]\\d{3}|5(?:00(?:0\\d|5[05])|11(?:00|[124]\\d|3[01])|5200|75(?:00|[57]5)|8(?:0(?:[01]\\d|2[0-4])|58[89]|8(?:55|88)))\\d{4}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\d{6}", + , + , + , + "555123456", + ], + [, , "800\\d{6}", , , , "800123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "70[67]\\d{6}", , , , "706123456"], + "GE", + 995, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["32"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[57]"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[348]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "70[67]\\d{6}"], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GF: [ + , + [, , "(?:[56]94|80\\d|976)\\d{6}", , , , , , , [9]], + [, , "594(?:[023]\\d|1[0-2]|4[03-9]|5[6-9]|6[0-3]|80|9[0-8])\\d{4}", , , , "594101234"], + [, , "694(?:[0-249]\\d|3[0-48])\\d{4}", , , , "694201234"], + [, , "80[0-5]\\d{6}", , , , "800012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "976\\d{6}", , , , "976012345"], + "GF", + 594, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GG: [ + , + [, , "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?", , , , , , , [7, 9, 10], [6]], + [, , "1481[25-9]\\d{5}", , , , "1481256789", , , [10], [6]], + [, , "7(?:(?:781|839)\\d|911[17])\\d{5}", , , , "7781123456", , , [10]], + [, , "80[08]\\d{7}|800\\d{6}|8001111", , , , "8001234567"], + [, , "(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d", , , , "9012345678", , , [7, 10]], + [, , , , , , , , , [-1]], + [, , "70\\d{8}", , , , "7012345678", , , [10]], + [, , "56\\d{8}", , , , "5612345678", , , [10]], + "GG", + 44, + "00", + "0", + , + , + "0|([25-9]\\d{5})$", + "1481$1", + , + , + , + , + [ + , + , + "76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", + , + , + , + "7640123456", + , + , + [10], + ], + , + , + [, , , , , , , , , [-1]], + [, , "(?:3[0347]|55)\\d{8}", , , , "5512345678", , , [10]], + , + , + [, , , , , , , , , [-1]], + ], + GH: [ + , + [, , "(?:[235]\\d{3}|800)\\d{5}", , , , , , , [8, 9], [7]], + [ + , + , + "3082[0-5]\\d{4}|3(?:0(?:[237]\\d|8[01])|[167](?:2[0-6]|7\\d|80)|2(?:2[0-5]|7\\d|80)|3(?:2[0-3]|7\\d|80)|4(?:2[013-9]|3[01]|7\\d|80)|5(?:2[0-7]|7\\d|80)|8(?:2[0-2]|7\\d|80)|9(?:[28]0|7\\d))\\d{5}", + , + , + , + "302345678", + , + , + [9], + [7], + ], + [, , "(?:2(?:[0346-9]\\d|5[67])|5(?:[0457]\\d|6[01]|9[1-9]))\\d{6}", , , , "231234567", , , [9]], + [, , "800\\d{5}", , , , "80012345", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "GH", + 233, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[237]|8[0-2]"]], + [, "(\\d{3})(\\d{5})", "$1 $2", ["8"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[235]"], "0$1"], + ], + [ + [, "(\\d{3})(\\d{5})", "$1 $2", ["8"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[235]"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , "800\\d{5}", , , , , , , [8]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GI: [ + , + [, , "(?:[25]\\d\\d|606)\\d{5}", , , , , , , [8]], + [, , "21(?:6[24-7]\\d|90[0-2])\\d{3}|2(?:00|2[25])\\d{5}", , , , "20012345"], + [, , "(?:5[146-8]\\d|606)\\d{5}", , , , "57123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "GI", + 350, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{5})", "$1 $2", ["2"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GL: [ + , + [, , "(?:19|[2-689]\\d|70)\\d{4}", , , , , , , [6]], + [, , "(?:19|3[1-7]|6[14689]|70|8[14-79]|9\\d)\\d{4}", , , , "321000"], + [, , "[245]\\d{5}", , , , "221234"], + [, , "80\\d{4}", , , , "801234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "3[89]\\d{4}", , , , "381234"], + "GL", + 299, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["19|[2-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GM: [ + , + [, , "[2-9]\\d{6}", , , , , , , [7]], + [ + , + , + "(?:4(?:[23]\\d\\d|4(?:1[024679]|[6-9]\\d))|5(?:5(?:3\\d|4[0-7])|6[67]\\d|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}", + , + , + , + "5661234", + ], + [, , "(?:[23679]\\d|5[0-389])\\d{5}", , , , "3012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "GM", + 220, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GN: [ + , + [, , "722\\d{6}|(?:3|6\\d)\\d{7}", , , , , , , [8, 9]], + [ + , + , + "3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\d\\d)\\d{4}", + , + , + , + "30241234", + , + , + [8], + ], + [, , "6[0-356]\\d{7}", , , , "601123456", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "722\\d{6}", , , , "722123456", , , [9]], + "GN", + 224, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["3"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[67]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GP: [ + , + [, , "(?:590|(?:69|80)\\d|976)\\d{6}", , , , , , , [9]], + [ + , + , + "590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1289]|5[3-579]|6[0-289]|7[08]|8[0-689]|9\\d)\\d{4}", + , + , + , + "590201234", + ], + [, , "69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}", , , , "690001234"], + [, , "80[0-5]\\d{6}", , , , "800012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "976[01]\\d{5}", , , , "976012345"], + "GP", + 590, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + 1, + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GQ: [ + , + [, , "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}", , , , , , , [9]], + [, , "33[0-24-9]\\d[46]\\d{4}|3(?:33|5\\d)\\d[7-9]\\d{4}", , , , "333091234"], + [, , "(?:222|55\\d)\\d{6}", , , , "222123456"], + [, , "80\\d[1-9]\\d{5}", , , , "800123456"], + [, , "90\\d[1-9]\\d{5}", , , , "900123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "GQ", + 240, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235]"]], + [, "(\\d{3})(\\d{6})", "$1 $2", ["[89]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GR: [ + , + [, , "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}", , , , , , , [10, 11, 12]], + [ + , + , + "2(?:1\\d\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-57]))\\d{6}", + , + , + , + "2123456789", + , + , + [10], + ], + [, , "68[57-9]\\d{7}|(?:69|94)\\d{8}", , , , "6912345678", , , [10]], + [, , "800\\d{7,9}", , , , "8001234567"], + [, , "90[19]\\d{7}", , , , "9091234567", , , [10]], + [, , "8(?:0[16]|12|[27]5|50)\\d{7}", , , , "8011234567", , , [10]], + [, , "70\\d{8}", , , , "7012345678", , , [10]], + [, , , , , , , , , [-1]], + "GR", + 30, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["21|7"]], + [, "(\\d{4})(\\d{6})", "$1 $2", ["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2689]"]], + [, "(\\d{3})(\\d{3,4})(\\d{5})", "$1 $2 $3", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "5005000\\d{3}", , , , "5005000123", , , [10]], + , + , + [, , , , , , , , , [-1]], + ], + GT: [ + , + [, , "(?:1\\d{3}|[2-7])\\d{7}", , , , , , , [8, 11]], + [, , "[267][2-9]\\d{6}", , , , "22456789", , , [8]], + [, , "[3-5]\\d{7}", , , , "51234567", , , [8]], + [, , "18[01]\\d{8}", , , , "18001112222", , , [11]], + [, , "19\\d{9}", , , , "19001112222", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "GT", + 502, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4})(\\d{4})", "$1 $2", ["[2-7]"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GU: [ + , + [, , "(?:[58]\\d\\d|671|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}", + , + , + , + "6713001234", + , + , + , + [7], + ], + [ + , + , + "671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}", + , + , + , + "6713001234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "GU", + 1, + "011", + "1", + , + , + "1|([3-9]\\d{6})$", + "671$1", + , + 1, + , + , + [, , , , , , , , , [-1]], + , + "671", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GW: [ + , + [, , "[49]\\d{8}|4\\d{6}", , , , , , , [7, 9]], + [, , "443\\d{6}", , , , "443201234", , , [9]], + [, , "9(?:5\\d|6[569]|77)\\d{6}", , , , "955012345", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "40\\d{5}", , , , "4012345", , , [7]], + "GW", + 245, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["40"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + GY: [ + , + [, , "9008\\d{3}|(?:[2-467]\\d\\d|862)\\d{4}", , , , , , , [7]], + [ + , + , + "(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-24-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|77[1-57])\\d{4}", + , + , + , + "2201234", + ], + [, , "(?:6\\d\\d|70[015-7])\\d{4}", , , , "6091234"], + [, , "(?:289|862)\\d{4}", , , , "2891234"], + [, , "9008\\d{3}", , , , "9008123"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "GY", + 592, + "001", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[2-46-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + HK: [ + , + [, , "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}", , , , , , , [5, 6, 7, 8, 9, 11]], + [ + , + , + "(?:38[45][0-8]|58(?:0[1-8]|1[2-9]))\\d{4}|(?:2(?:[13-9]\\d|2[013-9])|3(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69]|89))\\d{5}", + , + , + , + "21234567", + , + , + [8], + ], + [ + , + , + "(?:4(?:44[5-9]|6(?:0[0-7]|1[0-6]|4[0-57-9]|6[0-4]|7[0-8]))|573[0-6]|6(?:26[013-8]|66[0-3])|70(?:7[1-5]|8[0-4])|848[015-9]|9(?:29[013-9]|59[0-4]))\\d{4}|(?:4(?:4[01]|6[2358])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\d|[268][0-57-9]|7[0-79])|84[09]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}", + , + , + , + "51234567", + , + , + [8], + ], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , "900(?:[0-24-9]\\d{7}|3\\d{1,4})", , , , "90012345678", , , [5, 6, 7, 8, 11]], + [, , , , , , , , , [-1]], + [, , "8(?:1[0-4679]\\d|2(?:[0-36]\\d|7[0-4])|3(?:[034]\\d|2[09]|70))\\d{4}", , , , "81123456", , , [8]], + [, , , , , , , , , [-1]], + "HK", + 852, + "00(?:30|5[09]|[126-9]?)", + , + , + , + , + , + "00", + , + [ + [, "(\\d{3})(\\d{2,5})", "$1 $2", ["900", "9003"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], + [, "(\\d{3})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], + ], + , + [ + , + , + "7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[0136])|2(?:[02389]\\d|1[18]|7[27-9])|3(?:[0-38]\\d|7[0-369]|9[2357-9])|47\\d|5(?:[178]\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\d)|7(?:[27]\\d|8[7-9])|8(?:[23689]\\d|7[1-9])|9(?:[025]\\d|6[0-246-8]|7[0-36-9]|8[238]))\\d{4}", + , + , + , + "71123456", + , + , + [8], + ], + , + , + [, , , , , , , , , [-1]], + [, , "30(?:0[1-9]|[15-7]\\d|2[047]|89)\\d{4}", , , , "30161234", , , [8]], + , + , + [, , , , , , , , , [-1]], + ], + HN: [ + , + [, , "8\\d{10}|[237-9]\\d{7}", , , , , , , [8, 11]], + [ + , + , + "2(?:2(?:0[0-359]|1[1-367]|[23]\\d|4[03-6]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[78]|2[3-59]|3[13-9]|4[0-68]|5[1-35])|5(?:0[7-9]|16|4[03-5]|5\\d|6[014-6]|7[04]|80)|6(?:[056]\\d|17|2[067]|3[04]|4[0-378]|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\d{4}", + , + , + , + "22123456", + , + , + [8], + ], + [, , "[37-9]\\d{7}", , , , "91234567", , , [8]], + [, , "8002\\d{7}", , , , "80021234567", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "HN", + 504, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], + ], + [[, "(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]]], + [, , , , , , , , , [-1]], + , + , + [, , "8002\\d{7}", , , , , , , [11]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + HR: [ + , + [, , "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}", , , , , , , [6, 7, 8, 9]], + [, , "1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6,7}", , , , "12345678", , , [8, 9], [6, 7]], + [ + , + , + "98\\d{6,7}|975(?:1\\d|9[67])\\d{4}|9(?:0[1-9]|[1259]\\d|7[0679])\\d{6}", + , + , + , + "921234567", + , + , + [8, 9], + ], + [, , "80[01]\\d{4,6}", , , , "800123456", , , [7, 8, 9]], + [, , "6[01459]\\d{6}|6[01]\\d{4,5}", , , , "611234", , , [6, 7, 8]], + [, , , , , , , , , [-1]], + [, , "7[45]\\d{6}", , , , "74123456", , , [8]], + [, , , , , , , , , [-1]], + "HR", + 385, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["6[01]"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["8"], "0$1"], + [, "(\\d)(\\d{4})(\\d{3})", "$1 $2 $3", ["1"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[67]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-5]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "62\\d{6,7}|72\\d{6}", , , , "62123456", , , [8, 9]], + , + , + [, , , , , , , , , [-1]], + ], + HT: [ + , + [, , "[2-489]\\d{7}", , , , , , , [8]], + [, , "2(?:2\\d|5[1-5]|81|9[149])\\d{5}", , , , "22453300"], + [, , "[34]\\d{7}", , , , "34101234"], + [, , "8\\d{7}", , , , "80012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "9(?:[67][0-4]|8[0-3589]|9\\d)\\d{5}", , , , "98901234"], + "HT", + 509, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[2-489]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + HU: [ + , + [, , "[235-7]\\d{8}|[1-9]\\d{7}", , , , , , , [8, 9], [6, 7]], + [ + , + , + "(?:1\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\d{6}", + , + , + , + "12345678", + , + , + [8], + [6, 7], + ], + [, , "(?:[257]0|3[01])\\d{7}", , , , "201234567", , , [9]], + [, , "(?:[48]0\\d|680[29])\\d{5}", , , , "80123456"], + [, , "9[01]\\d{6}", , , , "90123456", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "21\\d{7}", , , , "211234567", , , [9]], + "HU", + 36, + "00", + "06", + , + , + "06", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "(06 $1)"], + [ + , + "(\\d{2})(\\d{3})(\\d{3})", + "$1 $2 $3", + ["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"], + "(06 $1)", + ], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "06 $1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "(?:[48]0\\d|680[29])\\d{5}"], + [, , "38\\d{7}", , , , "381234567", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + ID: [ + , + [ + , + , + "(?:(?:00[1-9]|8\\d)\\d{4}|[1-36])\\d{6}|00\\d{10}|[1-9]\\d{8,10}|[2-9]\\d{7}", + , + , + , + , + , + , + [7, 8, 9, 10, 11, 12, 13], + [5, 6], + ], + [ + , + , + "2[124]\\d{7,8}|619\\d{8}|2(?:1(?:14|500)|2\\d{3})\\d{3}|61\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}", + , + , + , + "218350123", + , + , + [7, 8, 9, 10, 11], + [5, 6], + ], + [, , "8[1-35-9]\\d{7,10}", , , , "812345678", , , [9, 10, 11, 12]], + [ + , + , + "00[17]803\\d{7}|(?:177\\d|800)\\d{5,7}|001803\\d{6}", + , + , + , + "8001234567", + , + , + [8, 9, 10, 11, 12, 13], + ], + [, , "809\\d{7}", , , , "8091234567", , , [10]], + [, , "804\\d{7}", , , , "8041234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "ID", + 62, + "00[89]", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]], + [, "(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"], + [, "(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"], + [, "(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"], + [, "(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"], + [, "(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"], + [, "(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"], + [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["001"]], + [, "(\\d{2})(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["0"]], + ], + [ + [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]], + [, "(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"], + [, "(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"], + [, "(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"], + [, "(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"], + [, "(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"], + [, "(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"], + [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , "001803\\d{6,7}|(?:007803\\d|8071)\\d{6}", , , , , , , [10, 12, 13]], + [, , "(?:1500|8071\\d{3})\\d{3}", , , , "8071123456", , , [7, 10]], + , + , + [, , , , , , , , , [-1]], + ], + IE: [ + , + [, , "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}", , , , , , , [7, 8, 9, 10], [5, 6]], + [ + , + , + "(?:1\\d|21)\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\d|7)|5(?:0[45]|1\\d|8)|6(?:1\\d|[237-9])|9(?:1\\d|[35-9]))\\d{5}|(?:23|4(?:[1-469]|8\\d)|5[23679]|6[4-6]|7[14]|9[04])\\d{7}", + , + , + , + "2212345", + , + , + , + [5, 6], + ], + [, , "8(?:22|[35-9]\\d)\\d{6}", , , , "850123456", , , [9]], + [, , "1800\\d{6}", , , , "1800123456", , , [10]], + [, , "15(?:1[2-8]|[2-8]0|9[089])\\d{6}", , , , "1520123456", , , [10]], + [, , "18[59]0\\d{6}", , , , "1850123456", , , [10]], + [, , "700\\d{6}", , , , "700123456", , , [9]], + [, , "76\\d{7}", , , , "761234567", , , [9]], + "IE", + 353, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{5})", "$1 $2", ["2[24-9]|47|58|6[237-9]|9[35-9]"], "(0$1)"], + [, "(\\d{3})(\\d{5})", "$1 $2", ["[45]0"], "(0$1)"], + [, "(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"], "(0$1)"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2569]|4[1-69]|7[14]"], "(0$1)"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["81"], "(0$1)"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[78]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["4"], "(0$1)"], + [, "(\\d{2})(\\d)(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "18[59]0\\d{6}", , , , , , , [10]], + [, , "818\\d{6}", , , , "818123456", , , [9]], + , + , + [ + , + , + "88210[1-9]\\d{4}|8(?:[35-79]5\\d\\d|8(?:[013-9]\\d\\d|2(?:[01][1-9]|[2-9]\\d)))\\d{5}", + , + , + , + "8551234567", + , + , + [10], + ], + ], + IL: [ + , + [, , "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}", , , , , , , [7, 8, 9, 10, 11, 12]], + [, , "153\\d{8,9}|29[1-9]\\d{5}|(?:2[0-8]|[3489]\\d)\\d{6}", , , , "21234567", , , [8, 11, 12], [7]], + [ + , + , + "5(?:(?:[02368]\\d|[19][2-9]|4[1-9])\\d|5(?:01|1[79]|2[2-9]|3[0-3]|4[34]|5[015689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}", + , + , + , + "502345678", + , + , + [9], + ], + [, , "1(?:255|80[019]\\d{3})\\d{3}", , , , "1800123456", , , [7, 10]], + [, , "1212\\d{4}|1(?:200|9(?:0[0-2]|19))\\d{6}", , , , "1919123456", , , [8, 10]], + [, , "1700\\d{6}", , , , "1700123456", , , [10]], + [, , , , , , , , , [-1]], + [ + , + , + "7(?:380|8(?:33|55|77|81))\\d{5}|7(?:18|2[23]|3[237]|47|6[258]|7\\d|82|9[2-9])\\d{6}", + , + , + , + "771234567", + , + , + [9], + ], + "IL", + 972, + "0(?:0|1[2-9])", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})(\\d{3})", "$1-$2", ["125"]], + [, "(\\d{4})(\\d{2})(\\d{2})", "$1-$2-$3", ["121"]], + [, "(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-489]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1-$2-$3", ["12"]], + [, "(\\d{4})(\\d{6})", "$1-$2", ["159"]], + [, "(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3-$4", ["1[7-9]"]], + [, "(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})", "$1-$2 $3-$4", ["15"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "1700\\d{6}", , , , , , , [10]], + [, , "1599\\d{6}", , , , "1599123456", , , [10]], + , + , + [, , "151\\d{8,9}", , , , "15112340000", , , [11, 12]], + ], + IM: [ + , + [, , "1624\\d{6}|(?:[3578]\\d|90)\\d{8}", , , , , , , [10], [6]], + [, , "1624(?:230|[5-8]\\d\\d)\\d{3}", , , , "1624756789", , , , [6]], + [, , "76245[06]\\d{4}|7(?:4576|[59]24\\d|624[0-4689])\\d{5}", , , , "7924123456"], + [, , "808162\\d{4}", , , , "8081624567"], + [, , "8(?:440[49]06|72299\\d)\\d{3}|(?:8(?:45|70)|90[0167])624\\d{4}", , , , "9016247890"], + [, , , , , , , , , [-1]], + [, , "70\\d{8}", , , , "7012345678"], + [, , "56\\d{8}", , , , "5612345678"], + "IM", + 44, + "00", + "0", + , + , + "0|([25-8]\\d{5})$", + "1624$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "74576|(?:16|7[56])24", + [, , , , , , , , , [-1]], + [, , "3440[49]06\\d{3}|(?:3(?:08162|3\\d{4}|45624|7(?:0624|2299))|55\\d{4})\\d{4}", , , , "5512345678"], + , + , + [, , , , , , , , , [-1]], + ], + IN: [ + , + [, , "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}", , , , , , , [8, 9, 10, 11, 12, 13], [6, 7]], + [ + , + , + "2717(?:[2-7]\\d|95)\\d{4}|(?:271[0-689]|782[0-6])[2-7]\\d{5}|(?:170[24]|2(?:(?:[02][2-79]|90)\\d|80[13468])|(?:3(?:23|80)|683|79[1-7])\\d|4(?:20[24]|72[2-8])|552[1-7])\\d{6}|(?:11|33|4[04]|80)[2-7]\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\d)\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d[2-7]\\d{5}", + , + , + , + "7410410123", + , + , + [10], + [6, 7, 8], + ], + [ + , + , + "(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\d|7[02-8])\\d{5}|(?:6(?:[09]\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\d\\d)\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\d|7(?:[235689]\\d|4[0189]))|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]|881))[0189]\\d{5}", + , + , + , + "8123456789", + , + , + [10], + ], + [, , "000800\\d{7}|1(?:600\\d{6}|80(?:0\\d{4,9}|3\\d{9}))", , , , "1800123456"], + [, , "186[12]\\d{9}", , , , "1861123456789", , , [13]], + [, , "1860\\d{7}", , , , "18603451234", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "IN", + 91, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{7})", "$1", ["575"]], + [ + , + "(\\d{8})", + "$1", + [ + "5(?:0|2[23]|3[03]|[67]1|88)", + "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)", + "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)", + ], + , + , + 1, + ], + [, "(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], , , 1], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], , , 1], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2 $3", + [ + "11|2[02]|33|4[04]|79[1-7]|80[2-46]", + "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])", + "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])", + ], + "0$1", + , + 1, + ], + [ + , + "(\\d{3})(\\d{3})(\\d{4})", + "$1 $2 $3", + [ + "1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]", + "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]", + "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]", + ], + "0$1", + , + 1, + ], + [ + , + "(\\d{4})(\\d{3})(\\d{3})", + "$1 $2 $3", + [ + "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807", + "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]", + "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]", + ], + "0$1", + , + 1, + ], + [, "(\\d{5})(\\d{5})", "$1 $2", ["[6-9]"], "0$1", , 1], + [, "(\\d{4})(\\d{2,4})(\\d{4})", "$1 $2 $3", ["1(?:6|8[06])", "1(?:6|8[06]0)"], , , 1], + [, "(\\d{3})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["0"]], + [, "(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], , , 1], + ], + [ + [ + , + "(\\d{8})", + "$1", + [ + "5(?:0|2[23]|3[03]|[67]1|88)", + "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)", + "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)", + ], + , + , + 1, + ], + [, "(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], , , 1], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], , , 1], + [ + , + "(\\d{2})(\\d{4})(\\d{4})", + "$1 $2 $3", + [ + "11|2[02]|33|4[04]|79[1-7]|80[2-46]", + "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])", + "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])", + ], + "0$1", + , + 1, + ], + [ + , + "(\\d{3})(\\d{3})(\\d{4})", + "$1 $2 $3", + [ + "1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]", + "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]", + "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]", + ], + "0$1", + , + 1, + ], + [ + , + "(\\d{4})(\\d{3})(\\d{3})", + "$1 $2 $3", + [ + "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807", + "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]", + "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]", + ], + "0$1", + , + 1, + ], + [, "(\\d{5})(\\d{5})", "$1 $2", ["[6-9]"], "0$1", , 1], + [, "(\\d{4})(\\d{2,4})(\\d{4})", "$1 $2 $3", ["1(?:6|8[06])", "1(?:6|8[06]0)"], , , 1], + [, "(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], , , 1], + ], + [, , , , , , , , , [-1]], + , + , + [, , "1(?:600\\d{6}|800\\d{4,9})|(?:000800|18(?:03\\d\\d|6(?:0|[12]\\d\\d)))\\d{7}"], + [, , "140\\d{7}", , , , "1409305260", , , [10]], + , + , + [, , , , , , , , , [-1]], + ], + IO: [ + , + [, , "3\\d{6}", , , , , , , [7]], + [, , "37\\d{5}", , , , "3709100"], + [, , "38\\d{5}", , , , "3801234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "IO", + 246, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["3"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + IQ: [ + , + [, , "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}", , , , , , , [8, 9, 10], [6, 7]], + [, , "1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}", , , , "12345678", , , [8, 9], [6, 7]], + [, , "7[3-9]\\d{8}", , , , "7912345678", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "IQ", + 964, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-6]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + IR: [ + , + [, , "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}", , , , , , , [4, 5, 6, 7, 10], [8]], + [ + , + , + "(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\d{7}|[16]\\d{3}(?:\\d{4})?|[289]\\d{3}(?:\\d(?:\\d{3})?)?)|94(?:000[09]|2(?:121|[2689]0\\d)|30[0-2]\\d|4(?:111|40\\d))\\d{4}", + , + , + , + "2123456789", + , + , + [6, 7, 10], + [4, 5, 8], + ], + [ + , + , + "9(?:(?:0(?:[0-35]\\d|4[4-6])|(?:[13]\\d|2[0-3])\\d)\\d|9(?:[0-46]\\d\\d|5[15]0|8(?:1\\d|88)|9(?:0[0-3]|[19]\\d|21|77|8[7-9])))\\d{5}", + , + , + , + "9123456789", + , + , + [10], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "IR", + 98, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4,5})", "$1", ["96"], "0$1"], + [ + , + "(\\d{2})(\\d{4,5})", + "$1 $2", + ["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"], + "0$1", + ], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[1-8]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [ + , + , + "9(?:4440\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))", + , + , + , + , + , + , + [4, 5, 10], + ], + [ + , + , + "96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])", + , + , + , + "9601", + , + , + [4, 5], + ], + , + , + [, , , , , , , , , [-1]], + ], + IS: [ + , + [, , "(?:38\\d|[4-9])\\d{6}", , , , , , , [7, 9]], + [ + , + , + "(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-24589]|5[0-68]|6\\d|8[0-36-8])|5(?:05|[156]\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\d{4}", + , + , + , + "4101234", + , + , + [7], + ], + [ + , + , + "(?:38[589]\\d\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\d)|7(?:5[057]|[6-9]\\d)|8(?:2[0-59]|[3-69]\\d|8[238]))\\d{4}", + , + , + , + "6111234", + ], + [, , "80[0-8]\\d{4}", , , , "8001234", , , [7]], + [ + , + , + "90(?:0\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\d{3}", + , + , + , + "9001234", + , + , + [7], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "49[0-24-79]\\d{4}", , , , "4921234", , , [7]], + "IS", + 354, + "00|1(?:0(?:01|[12]0)|100)", + , + , + , + , + , + "00", + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[4-9]"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["3"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "809\\d{4}", , , , "8091234", , , [7]], + , + , + [, , "(?:689|8(?:7[18]|80)|95[48])\\d{4}", , , , "6891234", , , [7]], + ], + IT: [ + , + [ + , + , + "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 11, 12], + ], + [ + , + , + "0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}", + , + , + , + "0212345678", + , + , + [6, 7, 8, 9, 10, 11], + ], + [, , "3[1-9]\\d{8}|3[2-9]\\d{7}", , , , "3123456789", , , [9, 10]], + [, , "80(?:0\\d{3}|3)\\d{3}", , , , "800123456", , , [6, 9]], + [ + , + , + "(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", + , + , + , + "899123456", + , + , + [6, 8, 9, 10], + ], + [, , "84(?:[08]\\d{3}|[17])\\d{3}", , , , "848123456", , , [6, 9]], + [, , "1(?:78\\d|99)\\d{6}", , , , "1781234567", , , [9, 10]], + [, , "55\\d{8}", , , , "5512345678", , , [10]], + "IT", + 39, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4,5})", "$1", ["1(?:0|9[246])", "1(?:0|9(?:2[2-9]|[46]))"]], + [, "(\\d{6})", "$1", ["1(?:1|92)"]], + [, "(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], + [ + , + "(\\d{3})(\\d{3,6})", + "$1 $2", + [ + "0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", + "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))", + ], + ], + [, "(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["894"]], + [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1(?:44|[679])|[378]"]], + [, "(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], + [, "(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], + [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]], + ], + [ + [, "(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], + [ + , + "(\\d{3})(\\d{3,6})", + "$1 $2", + [ + "0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", + "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))", + ], + ], + [, "(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["894"]], + [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1(?:44|[679])|[378]"]], + [, "(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], + [, "(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], + [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]], + ], + [, , , , , , , , , [-1]], + 1, + , + [, , "848\\d{6}", , , , , , , [9]], + [, , , , , , , , , [-1]], + , + , + [, , "3[2-8]\\d{9,10}", , , , "33101234501", , , [11, 12]], + ], + JE: [ + , + [, , "1534\\d{6}|(?:[3578]\\d|90)\\d{8}", , , , , , , [10], [6]], + [, , "1534[0-24-8]\\d{5}", , , , "1534456789", , , , [6]], + [, , "7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97[7-9]))\\d{5}", , , , "7797712345"], + [, , "80(?:07(?:35|81)|8901)\\d{4}", , , , "8007354567"], + [ + , + , + "(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}", + , + , + , + "9018105678", + ], + [, , , , , , , , , [-1]], + [, , "701511\\d{4}", , , , "7015115678"], + [, , "56\\d{8}", , , , "5612345678"], + "JE", + 44, + "00", + "0", + , + , + "0|([0-24-8]\\d{5})$", + "1534$1", + , + , + , + , + [ + , + , + "76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", + , + , + , + "7640123456", + ], + , + , + [, , , , , , , , , [-1]], + [ + , + , + "(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}", + , + , + , + "5512345678", + ], + , + , + [, , , , , , , , , [-1]], + ], + JM: [ + , + [, , "(?:[58]\\d\\d|658|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "8766060\\d{3}|(?:658(?:2(?:[0-8]\\d|9[0-46-9])|[3-9]\\d\\d)|876(?:52[35]|6(?:0[1-3579]|1[02357-9]|[23]\\d|40|5[06]|6[2-589]|7[025-7]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468])))\\d{4}", + , + , + , + "8765230123", + , + , + , + [7], + ], + [ + , + , + "(?:658295|876(?:2(?:0[1-9]|[13-9]\\d|2[013-9])|[348]\\d\\d|5(?:0[1-9]|[1-9]\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\d{4}", + , + , + , + "8762101234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "JM", + 1, + "011", + "1", + , + , + "1", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "658|876", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + JO: [ + , + [, , "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}", , , , , , , [8, 9]], + [ + , + , + "87(?:000|90[01])\\d{3}|(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\d|4[0-3]|[5-7][023])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:20|7[078]|99))\\d{4}", + , + , + , + "62001234", + , + , + [8], + ], + [, , "7(?:[78][0-25-9]|9\\d)\\d{6}", , , , "790123456", , , [9]], + [, , "80\\d{6}", , , , "80012345", , , [8]], + [, , "9\\d{7}", , , , "90012345", , , [8]], + [, , "85\\d{6}", , , , "85012345", , , [8]], + [, , "70\\d{7}", , , , "700123456", , , [9]], + [, , , , , , , , , [-1]], + "JO", + 962, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2356]|87"], "(0$1)"], + [, "(\\d{3})(\\d{5,6})", "$1 $2", ["[89]"], "0$1"], + [, "(\\d{2})(\\d{7})", "$1 $2", ["70"], "0$1"], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], + ], + , + [, , "74(?:66|77)\\d{5}", , , , "746612345", , , [9]], + , + , + [, , , , , , , , , [-1]], + [, , "8(?:10|8\\d)\\d{5}", , , , "88101234", , , [8]], + , + , + [, , , , , , , , , [-1]], + ], + JP: [ + , + [ + , + , + "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}", + , + , + , + , + , + , + [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], + ], + [ + , + , + "(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\d|4(?:[2-578]\\d|6[02-8]|9[2-59])|5(?:[2-589]\\d|6[1-9]|7[2-8])|7(?:[25-9]\\d|3[4-9]|4[02-9])|8(?:[2679]\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\d|[679][1-9]))\\d{6}", + , + , + , + "312345678", + , + , + [9], + ], + [, , "[7-9]0[1-9]\\d{7}", , , , "9012345678", , , [10]], + [ + , + , + "00777(?:[01]|5\\d)\\d\\d|(?:00(?:7778|882[1245])|(?:120|800\\d)\\d\\d)\\d{4}|00(?:37|66|78)\\d{6,13}", + , + , + , + "120123456", + ], + [, , "990\\d{6}", , , , "990123456", , , [9]], + [, , , , , , , , , [-1]], + [, , "60\\d{7}", , , , "601234567", , , [9]], + [, , "50[1-9]\\d{7}", , , , "5012345678", , , [10]], + "JP", + 81, + "010", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})(\\d{4})", "$1-$2", ["007", "0077", "00777", "00777[01]"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"], + [ + , + "(\\d{4})(\\d)(\\d{4})", + "$1-$2-$3", + [ + "1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:80|9[16])", + "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", + "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", + ], + "0$1", + ], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"], + [ + , + "(\\d)(\\d{4})(\\d{4})", + "$1-$2-$3", + ["[36]|4(?:2[09]|7[01])", "[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"], + "0$1", + ], + [ + , + "(\\d{2})(\\d{3})(\\d{4})", + "$1-$2-$3", + [ + "1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])", + "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]", + "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]", + "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]", + ], + "0$1", + ], + [, "(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3", ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], "0$1"], + [, "(\\d{4})(\\d{2})(\\d{3,4})", "$1-$2-$3", ["007", "0077"]], + [, "(\\d{4})(\\d{2})(\\d{4})", "$1-$2-$3", ["008"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[257-9]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3,4})", "$1-$2-$3", ["0"]], + [, "(\\d{4})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["0"]], + [, "(\\d{4})(\\d{5})(\\d{5,6})", "$1-$2-$3", ["0"]], + [, "(\\d{4})(\\d{6})(\\d{6,7})", "$1-$2-$3", ["0"]], + ], + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"], + [ + , + "(\\d{4})(\\d)(\\d{4})", + "$1-$2-$3", + [ + "1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:80|9[16])", + "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", + "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", + ], + "0$1", + ], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"], + [ + , + "(\\d)(\\d{4})(\\d{4})", + "$1-$2-$3", + ["[36]|4(?:2[09]|7[01])", "[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"], + "0$1", + ], + [ + , + "(\\d{2})(\\d{3})(\\d{4})", + "$1-$2-$3", + [ + "1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])", + "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]", + "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]", + "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]", + ], + "0$1", + ], + [, "(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3", ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[257-9]"], "0$1"], + ], + [, , "20\\d{8}", , , , "2012345678", , , [10]], + , + , + [, , "00(?:777(?:[01]|(?:5|8\\d)\\d)|882[1245]\\d\\d)\\d\\d|00(?:37|66|78)\\d{6,13}"], + [, , "570\\d{6}", , , , "570123456", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + KE: [ + , + [, , "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}", , , , , , , [7, 8, 9, 10]], + [ + , + , + "(?:4[245]|5[1-79]|6[01457-9])\\d{5,7}|(?:4[136]|5[08]|62)\\d{7}|(?:[24]0|66)\\d{6,7}", + , + , + , + "202012345", + , + , + [7, 8, 9], + ], + [, , "(?:1(?:0[0-6]|1[0-5]|2[014]|30)|7\\d\\d)\\d{6}", , , , "712123456", , , [9]], + [, , "800[2-8]\\d{5,6}", , , , "800223456", , , [9, 10]], + [, , "900[02-9]\\d{5}", , , , "900223456", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "KE", + 254, + "000", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{5,7})", "$1 $2", ["[24-6]"], "0$1"], + [, "(\\d{3})(\\d{6})", "$1 $2", ["[17]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KG: [ + , + [, , "8\\d{9}|(?:[235-8]\\d|99)\\d{7}", , , , , , , [9, 10], [5, 6]], + [ + , + , + "312(?:5[0-79]\\d|9(?:[0-689]\\d|7[0-24-9]))\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}", + , + , + , + "312123456", + , + , + [9], + [5, 6], + ], + [ + , + , + "312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|7(?:[07]\\d|55)|88[08]|99[05-9])\\d{6}", + , + , + , + "700123456", + , + , + [9], + ], + [, , "800\\d{6,7}", , , , "800123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "KG", + 996, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})(\\d{5})", "$1 $2", ["3(?:1[346]|[24-79])"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-79]|88"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d)(\\d{2,3})", "$1 $2 $3 $4", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KH: [ + , + [, , "1\\d{9}|[1-9]\\d{7,8}", , , , , , , [8, 9, 10], [6, 7]], + [ + , + , + "23(?:4(?:[2-4]|[56]\\d)|[568]\\d\\d)\\d{4}|23[236-9]\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\d)\\d{5}|6\\d{5,6})", + , + , + , + "23756789", + , + , + [8, 9], + [6, 7], + ], + [ + , + , + "(?:(?:1[28]|3[18]|9[67])\\d|6[016-9]|7(?:[07-9]|[16]\\d)|8(?:[013-79]|8\\d))\\d{6}|(?:1\\d|9[0-57-9])\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\d{5}", + , + , + , + "91234567", + , + , + [8, 9], + ], + [, , "1800(?:1\\d|2[019])\\d{4}", , , , "1800123456", , , [10]], + [, , "1900(?:1\\d|2[09])\\d{4}", , , , "1900123456", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "KH", + 855, + "00[14-9]", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-9]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KI: [ + , + [, , "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}", , , , , , , [5, 8]], + [ + , + , + "(?:[24]\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\d\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\d{3}", + , + , + , + "31234", + ], + [, , "(?:63\\d{3}|73(?:0[0-5]\\d|140))\\d{3}|[67]200[01]\\d{3}", , , , "72001234", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "30(?:0[01]\\d\\d|12(?:11|20))\\d\\d", , , , "30010000", , , [8]], + "KI", + 686, + "00", + "0", + , + , + "0", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KM: [ + , + [, , "[3478]\\d{6}", , , , , , , [7], [4]], + [, , "7[4-7]\\d{5}", , , , "7712345", , , , [4]], + [, , "[34]\\d{6}", , , , "3212345"], + [, , , , , , , , , [-1]], + [, , "8\\d{6}", , , , "8001234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "KM", + 269, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[3478]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KN: [ + , + [, , "(?:[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [, , "869(?:2(?:29|36)|302|4(?:6[015-9]|70)|56[5-7])\\d{4}", , , , "8692361234", , , , [7]], + [, , "869(?:48[89]|55[6-8]|66\\d|76[02-7])\\d{4}", , , , "8697652917", , , , [7]], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "KN", + 1, + "011", + "1", + , + , + "1|([2-7]\\d{6})$", + "869$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "869", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KP: [ + , + [, , "85\\d{6}|(?:19\\d|[2-7])\\d{7}", , , , , , , [8, 10], [6, 7]], + [, , "(?:(?:195|2)\\d|3[19]|4[159]|5[37]|6[17]|7[39]|85)\\d{6}", , , , "21234567", , , , [6, 7]], + [, , "19[1-3]\\d{7}", , , , "1921234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "KP", + 850, + "00|99", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"], + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "238[02-9]\\d{4}|2(?:[0-24-9]\\d|3[0-79])\\d{5}", , , , , , , [8]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KR: [ + , + [ + , + , + "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}", + , + , + , + , + , + , + [5, 6, 8, 9, 10, 11, 12, 13, 14], + [3, 4, 7], + ], + [ + , + , + "(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\d{2,3}", + , + , + , + "22123456", + , + , + [5, 6, 8, 9, 10], + [3, 4, 7], + ], + [ + , + , + "1(?:05(?:[0-8]\\d|9[0-6])|22[13]\\d)\\d{4,5}|1(?:0[1-46-9]|[16-9]\\d|2[013-9])\\d{6,7}", + , + , + , + "1020000000", + , + , + [9, 10], + ], + [, , "00(?:308\\d{6,7}|798\\d{7,9})|(?:00368|80)\\d{7}", , , , "801234567", , , [9, 11, 12, 13, 14]], + [, , "60[2-9]\\d{6}", , , , "602345678", , , [9]], + [, , , , , , , , , [-1]], + [, , "50\\d{8,9}", , , , "5012345678", , , [10, 11]], + [, , "70\\d{8}", , , , "7012345678", , , [10]], + "KR", + 82, + "00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))", + "0", + , + , + "0(8(?:[1-46-8]|5\\d\\d))?", + , + , + , + [ + [, "(\\d{5})", "$1", ["1[016-9]1", "1[016-9]11", "1[016-9]114"], "0$1"], + [, "(\\d{2})(\\d{3,4})", "$1-$2", ["(?:3[1-3]|[46][1-4]|5[1-5])1"], "0$1", "0$CC-$1"], + [, "(\\d{4})(\\d{4})", "$1-$2", ["1"]], + [, "(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1", "0$CC-$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60|8"], "0$1", "0$CC-$1"], + [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1-$2-$3", ["[1346]|5[1-5]"], "0$1", "0$CC-$1"], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1", "0$CC-$1"], + [, "(\\d{5})(\\d{3})(\\d{3})", "$1 $2 $3", ["003", "0030"]], + [, "(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1", "0$CC-$1"], + [, "(\\d{5})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0"]], + [, "(\\d{5})(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["0"]], + ], + [ + [, "(\\d{2})(\\d{3,4})", "$1-$2", ["(?:3[1-3]|[46][1-4]|5[1-5])1"], "0$1", "0$CC-$1"], + [, "(\\d{4})(\\d{4})", "$1-$2", ["1"]], + [, "(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1", "0$CC-$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60|8"], "0$1", "0$CC-$1"], + [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1-$2-$3", ["[1346]|5[1-5]"], "0$1", "0$CC-$1"], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1", "0$CC-$1"], + [, "(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1", "0$CC-$1"], + ], + [, , "15\\d{7,8}", , , , "1523456789", , , [9, 10]], + , + , + [, , "00(?:3(?:08\\d{6,7}|68\\d{7})|798\\d{7,9})", , , , , , , [11, 12, 13, 14]], + [ + , + , + "1(?:5(?:22|33|44|66|77|88|99)|6(?:[07]0|44|6[168]|88)|8(?:00|33|55|77|99))\\d{4}", + , + , + , + "15441234", + , + , + [8], + ], + , + , + [, , , , , , , , , [-1]], + ], + KW: [ + , + [, , "18\\d{5}|(?:[2569]\\d|41)\\d{6}", , , , , , , [7, 8]], + [ + , + , + "2(?:[23]\\d\\d|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7]))\\d{4}", + , + , + , + "22345678", + , + , + [8], + ], + [ + , + , + "(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|111|222|333|444|7(?:0[013-9]|[67]\\d)|888|9(?:[069]\\d|3[039]))|9(?:(?:0[09]|22|[4679]\\d|8[057-9])\\d|1(?:1[01]|99)|3(?:00|33)|5(?:00|5\\d)))\\d{4}", + , + , + , + "50012345", + , + , + [8], + ], + [, , "18\\d{5}", , , , "1801234", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "KW", + 965, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4})(\\d{3,4})", "$1 $2", ["[169]|2(?:[235]|4[1-35-9])|52"]], + [, "(\\d{3})(\\d{5})", "$1 $2", ["[245]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KY: [ + , + [, , "(?:345|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "345(?:2(?:22|3[23]|44|66)|333|444|6(?:23|38|40)|7(?:30|4[35-79]|6[6-9]|77)|8(?:00|1[45]|[48]8)|9(?:14|4[035-9]))\\d{4}", + , + , + , + "3452221234", + , + , + , + [7], + ], + [ + , + , + "345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\d{4}", + , + , + , + "3453231234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "(?:345976|900[2-9]\\d\\d)\\d{4}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "KY", + 1, + "011", + "1", + , + , + "1|([2-9]\\d{6})$", + "345$1", + , + , + , + , + [, , "345849\\d{4}", , , , "3458491234"], + , + "345", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + KZ: [ + , + [, , "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}", , , , , , , [10, 14], [5, 6, 7]], + [ + , + , + "(?:33622|7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9])|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[2-4]\\d|5[139])|4(?:2\\d|3[1-35-9]|59)|5(?:[23]\\d|4[0-246-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))))\\d{5}", + , + , + , + "7123456789", + , + , + [10], + [5, 6, 7], + ], + [, , "7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\d{7}", , , , "7710009998", , , [10]], + [, , "8(?:00|108\\d{3})\\d{7}", , , , "8001234567"], + [, , "809\\d{7}", , , , "8091234567", , , [10]], + [, , , , , , , , , [-1]], + [, , "808\\d{7}", , , , "8081234567", , , [10]], + [, , "751\\d{7}", , , , "7511234567", , , [10]], + "KZ", + 7, + "810", + "8", + , + , + "8", + , + "8~10", + , + , + , + [, , , , , , , , , [-1]], + , + "33|7", + [, , "751\\d{7}", , , , , , , [10]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LA: [ + , + [, , "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}", , , , , , , [8, 9, 10], [6]], + [, , "(?:2[13]|[35-7][14]|41|8[1468])\\d{6}", , , , "21212862", , , [8], [6]], + [, , "(?:20(?:[239]\\d|5[24-9]|7[6-8]|88)|302\\d)\\d{6}", , , , "2023123456", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LA", + 856, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2[13]|3[14]|[4-8]"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["30[013-9]"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[23]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "30[013-9]\\d{6}", , , , "301234567", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + LB: [ + , + [, , "[27-9]\\d{7}|[13-9]\\d{6}", , , , , , , [7, 8]], + [ + , + , + "7(?:62|8[0-7]|9[04-9])\\d{4}|(?:[14-69]\\d|2(?:[14-69]\\d|[78][1-9])|7[2-57]|8[02-9])\\d{5}", + , + , + , + "1123456", + ], + [ + , + , + "793(?:[01]\\d|2[0-4])\\d{3}|(?:(?:3|81)\\d|7(?:[01]\\d|6[013-9]|8[89]|9[12]))\\d{5}", + , + , + , + "71123456", + ], + [, , , , , , , , , [-1]], + [, , "9[01]\\d{6}", , , , "90123456", , , [8]], + [, , "80\\d{6}", , , , "80123456", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LB", + 961, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27-9]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LC: [ + , + [, , "(?:[58]\\d\\d|758|900)\\d{7}", , , , , , , [10], [7]], + [, , "758(?:234|4(?:30|5\\d|6[2-9]|8[0-2])|57[0-2]|(?:63|75)8)\\d{4}", , , , "7584305678", , , , [7]], + [ + , + , + "758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\d|3[0-3])|812)\\d{4}", + , + , + , + "7582845678", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "LC", + 1, + "011", + "1", + , + , + "1|([2-8]\\d{6})$", + "758$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "758", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LI: [ + , + [, , "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", , , , , , , [7, 9]], + [ + , + , + "(?:2(?:01|1[27]|2[02]|3\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\d{4}", + , + , + , + "2345678", + , + , + [7], + ], + [ + , + , + "(?:6(?:(?:4[5-9]|5[0-4])\\d|6(?:[0245]\\d|[17]0|3[7-9]))\\d|7(?:[37-9]\\d|42|56))\\d{4}", + , + , + , + "660234567", + ], + [, , "8002[28]\\d\\d|80(?:05\\d|9)\\d{4}", , , , "8002222"], + [, , "90(?:02[258]|1(?:23|3[14])|66[136])\\d\\d", , , , "9002222", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LI", + 423, + "00", + "0", + , + , + "0|(1001)", + , + , + , + [ + [ + , + "(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3", + ["[2379]|8(?:0[09]|7)", "[2379]|8(?:0(?:02|9)|7)"], + , + "$CC $1", + ], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["69"], , "$CC $1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"], , "$CC $1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "870(?:28|87)\\d\\d", , , , "8702812", , , [7]], + , + , + [, , "697(?:42|56|[78]\\d)\\d{4}", , , , "697861234", , , [9]], + ], + LK: [ + , + [, , "[1-9]\\d{8}", , , , , , , [9], [7]], + [ + , + , + "(?:12[2-9]|602|8[12]\\d|9(?:1\\d|22|9[245]))\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}", + , + , + , + "112345678", + , + , + , + [7], + ], + [, , "7(?:[0-25-8]\\d|4[0-4])\\d{6}", , , , "712345678"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LK", + 94, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[1-689]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "1973\\d{5}", , , , "197312345"], + , + , + [, , , , , , , , , [-1]], + ], + LR: [ + , + [, , "(?:2|33|5\\d|77|88)\\d{7}|[4-6]\\d{6}", , , , , , , [7, 8, 9]], + [, , "(?:2\\d{3}|33333)\\d{4}", , , , "21234567", , , [8, 9]], + [, , "(?:(?:330|555|(?:77|88)\\d)\\d|4[67])\\d{5}|[56]\\d{6}", , , , "770123456", , , [7, 9]], + [, , , , , , , , , [-1]], + [, , "332(?:02|[34]\\d)\\d{4}", , , , "332021234", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LR", + 231, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[4-6]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3578]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LS: [ + , + [, , "(?:[256]\\d\\d|800)\\d{5}", , , , , , , [8]], + [, , "2\\d{7}", , , , "22123456"], + [, , "[56]\\d{7}", , , , "50123456"], + [, , "800[256]\\d{4}", , , , "80021234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LS", + 266, + "00", + , + , + , + , + , + , + , + [[, "(\\d{4})(\\d{4})", "$1 $2", ["[2568]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LT: [ + , + [, , "(?:[3469]\\d|52|[78]0)\\d{6}", , , , , , , [8]], + [, , "(?:3[1478]|4[124-6]|52)\\d{6}", , , , "31234567"], + [, , "6\\d{7}", , , , "61234567"], + [, , "80[02]\\d{5}", , , , "80012345"], + [, , "9(?:0[0239]|10)\\d{5}", , , , "90012345"], + [, , "808\\d{5}", , , , "80812345"], + [, , "70[05]\\d{5}", , , , "70012345"], + [, , "[89]01\\d{5}", , , , "80123456"], + "LT", + 370, + "00", + "8", + , + , + "[08]", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["52[0-7]"], "(8-$1)", , 1], + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[7-9]"], "8 $1", , 1], + [, "(\\d{2})(\\d{6})", "$1 $2", ["37|4(?:[15]|6[1-8])"], "(8-$1)", , 1], + [, "(\\d{3})(\\d{5})", "$1 $2", ["[3-6]"], "(8-$1)", , 1], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "70[67]\\d{5}", , , , "70712345"], + , + , + [, , , , , , , , , [-1]], + ], + LU: [ + , + [ + , + , + "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}", + , + , + , + , + , + , + [4, 5, 6, 7, 8, 9, 10, 11], + ], + [ + , + , + "(?:35[013-9]|80[2-9]|90[89])\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\d|8[13-9]|9[2-579])\\d{2,9}", + , + , + , + "27123456", + ], + [, , "6(?:[269][18]|5[1568]|7[189]|81)\\d{6}", , , , "628123456", , , [9]], + [, , "800\\d{5}", , , , "80012345", , , [8]], + [, , "90[015]\\d{5}", , , , "90012345", , , [8]], + [, , "801\\d{5}", , , , "80112345", , , [8]], + [, , , , , , , , , [-1]], + [, , "20(?:1\\d{5}|[2-689]\\d{1,7})", , , , "20201234", , , [4, 5, 6, 7, 8, 9, 10]], + "LU", + 352, + "00", + , + , + , + "(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)", + , + , + , + [ + [ + , + "(\\d{2})(\\d{3})", + "$1 $2", + ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"], + , + "$CC $1", + ], + [ + , + "(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3", + ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"], + , + "$CC $1", + ], + [, "(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["20[2-689]"], , "$CC $1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4", ["2(?:[0367]|4[3-8])"], , "$CC $1"], + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["80[01]|90[015]"], , "$CC $1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["20"], , "$CC $1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"], , "$CC $1"], + [ + , + "(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", + "$1 $2 $3 $4 $5", + ["2(?:[0367]|4[3-8])"], + , + "$CC $1", + ], + [ + , + "(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})", + "$1 $2 $3 $4", + ["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"], + , + "$CC $1", + ], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LV: [ + , + [, , "(?:[268]\\d|90)\\d{6}", , , , , , , [8]], + [, , "6\\d{7}", , , , "63123456"], + [, , "2\\d{7}", , , , "21234567"], + [, , "80\\d{6}", , , , "80123456"], + [, , "90\\d{6}", , , , "90123456"], + [, , "81\\d{6}", , , , "81123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LV", + 371, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[269]|8[01]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + LY: [ + , + [, , "[2-9]\\d{8}", , , , , , , [9], [7]], + [ + , + , + "(?:2(?:0[56]|[1-6]\\d|7[124579]|8[124])|3(?:1\\d|2[2356])|4(?:[17]\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\d|5[2-57]|8[1-5])|7(?:[13]\\d|2[13-79])|8(?:[124]\\d|5[124]|84))\\d{6}", + , + , + , + "212345678", + , + , + , + [7], + ], + [, , "9[1-6]\\d{7}", , , , "912345678"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "LY", + 218, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{2})(\\d{7})", "$1-$2", ["[2-9]"], "0$1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MA: [ + , + [, , "[5-8]\\d{8}", , , , , , , [9]], + [ + , + , + "5(?:29(?:[189][05]|2[29]|3[01])|389[05])\\d{4}|5(?:2(?:[0-25-7]\\d|3[1-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[08]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}", + , + , + , + "520123456", + ], + [, , "(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]))\\d{6}", , , , "650123456"], + [, , "80\\d{7}", , , , "801234567"], + [, , "89\\d{7}", , , , "891234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "592(?:4[0-2]|93)\\d{4}", , , , "592401234"], + "MA", + 212, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{5})(\\d{4})", "$1-$2", ["5(?:29|38)", "5(?:29[89]|389)", "5(?:29[89]|389)0"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5[45]"], "0$1"], + [ + , + "(\\d{4})(\\d{5})", + "$1-$2", + ["5(?:2[2-489]|3[5-9]|9)|892", "5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892"], + "0$1", + ], + [, "(\\d{2})(\\d{7})", "$1-$2", ["8"], "0$1"], + [, "(\\d{3})(\\d{6})", "$1-$2", ["[5-7]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + 1, + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MC: [ + , + [, , "(?:[3489]|6\\d)\\d{7}", , , , , , , [8, 9]], + [, , "(?:870|9[2-47-9]\\d)\\d{5}", , , , "99123456", , , [8]], + [, , "4(?:[46]\\d|5[1-9])\\d{5}|(?:3|6\\d)\\d{7}", , , , "612345678"], + [, , "(?:800|90\\d)\\d{5}", , , , "90123456", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MC", + 377, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["87"]], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]], + [, "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["6"], "0$1"], + ], + [ + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]], + [, "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["6"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , "8[07]0\\d{5}", , , , , , , [8]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MD: [ + , + [, , "(?:[235-7]\\d|[89]0)\\d{6}", , , , , , , [8]], + [, , "(?:(?:2[1-9]|3[1-79])\\d|5(?:33|5[257]))\\d{5}", , , , "22212345"], + [, , "562\\d{5}|(?:6\\d|7[16-9])\\d{6}", , , , "62112345"], + [, , "800\\d{5}", , , , "80012345"], + [, , "90[056]\\d{5}", , , , "90012345"], + [, , "808\\d{5}", , , , "80812345"], + [, , , , , , , , , [-1]], + [, , "3[08]\\d{6}", , , , "30123456"], + "MD", + 373, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["22|3"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[25-7]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "803\\d{5}", , , , "80312345"], + , + , + [, , , , , , , , , [-1]], + ], + ME: [ + , + [, , "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}", , , , , , , [8, 9], [6]], + [ + , + , + "(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\d{5}", + , + , + , + "30234567", + , + , + [8], + [6], + ], + [, , "6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}", , , , "67622901", , , [8]], + [, , "80(?:[0-2578]|9\\d)\\d{5}", , , , "80080002"], + [, , "9(?:4[1568]|5[178])\\d{5}", , , , "94515151", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "78[1-49]\\d{5}", , , , "78108780", , , [8]], + "ME", + 382, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "0$1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "77[1-9]\\d{5}", , , , "77273012", , , [8]], + , + , + [, , , , , , , , , [-1]], + ], + MF: [ + , + [, , "(?:590|(?:69|80)\\d|976)\\d{6}", , , , , , , [9]], + [, , "590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\d{4}", , , , "590271234"], + [, , "69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}", , , , "690001234"], + [, , "80[0-5]\\d{6}", , , , "800012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "976[01]\\d{5}", , , , "976012345"], + "MF", + 590, + "00", + "0", + , + , + "0", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MG: [ + , + [, , "[23]\\d{8}", , , , , , , [9], [7]], + [ + , + , + "2072[29]\\d{4}|20(?:2\\d|4[47]|5[3467]|6[279]|7[35]|8[268]|9[245])\\d{5}", + , + , + , + "202123456", + , + , + , + [7], + ], + [, , "3[2-489]\\d{7}", , , , "321234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "22\\d{7}", , , , "221234567"], + "MG", + 261, + "00", + "0", + , + , + "0|([24-9]\\d{6})$", + "20$1", + , + , + [[, "(\\d{2})(\\d{2})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["[23]"], "0$1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MH: [ + , + [, , "329\\d{4}|(?:[256]\\d|45)\\d{5}", , , , , , , [7]], + [, , "(?:247|528|625)\\d{4}", , , , "2471234"], + [, , "(?:(?:23|54)5|329|45[356])\\d{4}", , , , "2351234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "635\\d{4}", , , , "6351234"], + "MH", + 692, + "011", + "1", + , + , + "1", + , + , + , + [[, "(\\d{3})(\\d{4})", "$1-$2", ["[2-6]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MK: [ + , + [, , "[2-578]\\d{7}", , , , , , , [8], [6, 7]], + [ + , + , + "(?:(?:2(?:62|77)0|3444)\\d|4[56]440)\\d{3}|(?:34|4[357])700\\d{3}|(?:2(?:[23]\\d|5[0-578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\d{5}", + , + , + , + "22012345", + , + , + , + [6, 7], + ], + [ + , + , + "7(?:3555|4(?:60\\d|747)|94(?:[01]\\d|2[0-4]))\\d{3}|7(?:[0-25-8]\\d|3[1-4]|42|9[23])\\d{5}", + , + , + , + "72345678", + ], + [, , "800\\d{5}", , , , "80012345"], + [, , "5[02-9]\\d{6}", , , , "50012345"], + [, , "8(?:0[1-9]|[1-9]\\d)\\d{5}", , , , "80123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MK", + 389, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2|34[47]|4(?:[37]7|5[47]|64)"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[347]"], "0$1"], + [, "(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[58]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + ML: [ + , + [, , "[24-9]\\d{7}", , , , , , , [8]], + [, , "2(?:07[0-8]|12[67])\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-39]))\\d{5}", , , , "20212345"], + [, , "2(?:0(?:01|79)|17\\d)\\d{4}|(?:5[01]|[679]\\d|8[2-49])\\d{6}", , , , "65012345"], + [, , "80\\d{6}", , , , "80012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "ML", + 223, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4})", "$1", ["67[057-9]|74[045]", "67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]], + ], + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]]], + [, , , , , , , , , [-1]], + , + , + [, , "80\\d{6}"], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MM: [ + , + [ + , + , + "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}", + , + , + , + , + , + , + [6, 7, 8, 9, 10], + [5], + ], + [ + , + , + "(?:1(?:(?:2\\d|3[56]|[89][0-6])\\d|4(?:2[2-469]|39|46|6[25]|7[0-3]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\d|2[246]|39|46|62|7[0-3]|83)|51\\d\\d)|4(?:2(?:2\\d\\d|48[0-3])|3(?:20\\d|4(?:70|83)|56)|420\\d|5470)|6(?:0(?:[23]|88\\d)|(?:124|[56]2\\d)\\d|247[23]|3(?:20\\d|470)|4(?:2[04]\\d|47[23])|7(?:(?:3\\d|8[01459])\\d|4(?:39|60|7[013]))))\\d{4}|5(?:2(?:2\\d{5,6}|47[023]\\d{4})|(?:347[23]|4(?:2(?:1|86)|470)|522\\d|6(?:20\\d|483)|7(?:20\\d|48[0-2])|8(?:20\\d|47[02])|9(?:20\\d|47[01]))\\d{4})|7(?:(?:0470|4(?:25\\d|470)|5(?:202|470|96\\d))\\d{4}|1(?:20\\d{4,5}|4(?:70|83)\\d{4}))|8(?:1(?:2\\d{5,6}|4(?:10|7[01]\\d)\\d{3})|2(?:2\\d{5,6}|(?:320|490\\d)\\d{3})|(?:3(?:2\\d\\d|470)|4[24-7]|5(?:2\\d|4[1-9]|51)\\d|6[23])\\d{4})|(?:1[2-6]\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|[35]2\\d))\\d{4}|25\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\d{4}", + , + , + , + "1234567", + , + , + [6, 7, 8, 9], + [5], + ], + [ + , + , + "(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|9[4-8])\\d|7(?:3|40|[5-9]\\d)|8(?:78|[89]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}", + , + , + , + "92123456", + , + , + [7, 8, 9, 10], + ], + [, , "80080(?:[01][1-9]|2\\d)\\d{3}", , , , "8008001234", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "1333\\d{4}|[12]468\\d{4}", , , , "13331234", , , [8]], + "MM", + 95, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{2})(\\d{3})", "$1 $2 $3", ["16|2"], "0$1"], + [ + , + "(\\d{2})(\\d{2})(\\d{3})", + "$1 $2 $3", + ["[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]"], + "0$1", + ], + [, "(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[4-7]|8[1-35]"], "0$1"], + [, "(\\d)(\\d{3})(\\d{4,6})", "$1 $2 $3", ["9(?:2[0-4]|[35-9]|4[137-9])"], "0$1"], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["92"], "0$1"], + [, "(\\d)(\\d{5})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MN: [ + , + [, , "[12]\\d{7,9}|[5-9]\\d{7}", , , , , , , [8, 9, 10], [4, 5, 6]], + [ + , + , + "[12]2[1-3]\\d{5,6}|7(?:0[0-5]\\d|128)\\d{4}|(?:[12](?:1|27)|5[368])\\d{6}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\d{6,7}", + , + , + , + "53123456", + , + , + , + [4, 5, 6], + ], + [, , "(?:83[01]|920)\\d{5}|(?:5[05]|6[06]|8[015689]|9[013-9])\\d{6}", , , , "88123456", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "712[0-79]\\d{4}|7(?:1[013-9]|[25-8]\\d)\\d{5}", , , , "75123456", , , [8]], + "MN", + 976, + "001", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[12]1"], "0$1"], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[5-9]"]], + [, "(\\d{3})(\\d{5,6})", "$1 $2", ["[12]2[1-3]"], "0$1"], + [ + , + "(\\d{4})(\\d{5,6})", + "$1 $2", + ["[12](?:27|3[2-8]|4[2-68]|5[1-4689])", "[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"], + "0$1", + ], + [, "(\\d{5})(\\d{4,5})", "$1 $2", ["[12]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MO: [ + , + [, , "0800\\d{3}|(?:28|[68]\\d)\\d{6}", , , , , , , [7, 8]], + [, , "(?:28[2-9]|8(?:11|[2-57-9]\\d))\\d{5}", , , , "28212345", , , [8]], + [ + , + , + "6800[0-79]\\d{3}|6(?:[235]\\d\\d|6(?:0[0-5]|[1-9]\\d)|8(?:0[1-9]|[14-8]\\d|2[5-9]|[39][0-4]))\\d{4}", + , + , + , + "66123456", + , + , + [8], + ], + [, , "0800\\d{3}", , , , "0800501", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MO", + 853, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4})(\\d{3})", "$1 $2", ["0"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[268]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MP: [ + , + [, , "[58]\\d{9}|(?:67|90)0\\d{7}", , , , , , , [10], [7]], + [ + , + , + "670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}", + , + , + , + "6702345678", + , + , + , + [7], + ], + [ + , + , + "670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}", + , + , + , + "6702345678", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "MP", + 1, + "011", + "1", + , + , + "1|([2-9]\\d{6})$", + "670$1", + , + 1, + , + , + [, , , , , , , , , [-1]], + , + "670", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MQ: [ + , + [, , "(?:69|80)\\d{7}|(?:59|97)6\\d{6}", , , , , , , [9]], + [, , "596(?:[03-7]\\d|10|2[7-9]|8[09]|9[4-9])\\d{4}", , , , "596301234"], + [, , "69(?:6(?:[0-46-9]\\d|5[0-6])|727)\\d{4}", , , , "696201234"], + [, , "80[0-5]\\d{6}", , , , "800012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "976(?:6\\d|7[0-367])\\d{4}", , , , "976612345"], + "MQ", + 596, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MR: [ + , + [, , "(?:[2-4]\\d\\d|800)\\d{5}", , , , , , , [8]], + [, , "(?:25[08]|35\\d|45[1-7])\\d{5}", , , , "35123456"], + [, , "[2-4][0-46-9]\\d{6}", , , , "22123456"], + [, , "800\\d{5}", , , , "80012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MR", + 222, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-48]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MS: [ + , + [, , "(?:[58]\\d\\d|664|900)\\d{7}", , , , , , , [10], [7]], + [, , "6644(?:1[0-3]|91)\\d{4}", , , , "6644912345", , , , [7]], + [, , "664(?:3(?:49|9[1-6])|49[2-6])\\d{4}", , , , "6644923456", , , , [7]], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "MS", + 1, + "011", + "1", + , + , + "1|([34]\\d{6})$", + "664$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "664", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MT: [ + , + [, , "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}", , , , , , , [8]], + [, , "20(?:3[1-4]|6[059])\\d{4}|2(?:0[19]|[1-357]\\d|60)\\d{5}", , , , "21001234"], + [, , "(?:7(?:210|[79]\\d\\d)|9(?:[29]\\d\\d|69[67]|8(?:1[1-3]|89|97)))\\d{4}", , , , "96961234"], + [, , "800(?:02|[3467]\\d)\\d{3}", , , , "80071234"], + [, , "5(?:0(?:0(?:37|43)|(?:6\\d|70|9[0168])\\d)|[12]\\d0[1-5])\\d{3}", , , , "50037123"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "3550\\d{4}", , , , "35501234"], + "MT", + 356, + "00", + , + , + , + , + , + , + , + [[, "(\\d{4})(\\d{4})", "$1 $2", ["[2357-9]"]]], + , + [, , "7117\\d{4}", , , , "71171234"], + , + , + [, , , , , , , , , [-1]], + [, , "501\\d{5}", , , , "50112345"], + , + , + [, , , , , , , , , [-1]], + ], + MU: [ + , + [, , "(?:5|8\\d\\d)\\d{7}|[2-468]\\d{6}", , , , , , , [7, 8, 10]], + [ + , + , + "(?:2(?:[0346-8]\\d|1[0-7])|4(?:[013568]\\d|2[4-7])|54(?:[3-5]\\d|71)|6\\d\\d|8(?:14|3[129]))\\d{4}", + , + , + , + "54480123", + , + , + [7, 8], + ], + [ + , + , + "5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])\\d{5}", + , + , + , + "52512345", + , + , + [8], + ], + [, , "802\\d{7}|80[0-2]\\d{4}", , , , "8001234", , , [7, 10]], + [, , "30\\d{5}", , , , "3012345", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "3(?:20|9\\d)\\d{4}", , , , "3201234", , , [7]], + "MU", + 230, + "0(?:0|[24-7]0|3[03])", + , + , + , + , + , + "020", + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[2-46]|8[013]"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["5"]], + [, "(\\d{5})(\\d{5})", "$1 $2", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MV: [ + , + [, , "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}", , , , , , , [7, 10]], + [, , "(?:3(?:0[0-3]|3[0-59])|6(?:[57][02468]|6[024-68]|8[024689]))\\d{4}", , , , "6701234", , , [7]], + [, , "46[46]\\d{4}|(?:7\\d|9[13-9])\\d{5}", , , , "7712345", , , [7]], + [, , "800\\d{7}", , , , "8001234567", , , [10]], + [, , "900\\d{7}", , , , "9001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MV", + 960, + "0(?:0|19)", + , + , + , + , + , + "00", + , + [ + [, "(\\d{3})(\\d{4})", "$1-$2", ["[3467]|9[13-9]"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "4(?:0[01]|50)\\d{4}", , , , "4001234", , , [7]], + , + , + [, , , , , , , , , [-1]], + ], + MW: [ + , + [, , "(?:[129]\\d|31|77|88)\\d{7}|1\\d{6}", , , , , , , [7, 9]], + [, , "(?:1[2-9]|2[12]\\d\\d)\\d{5}", , , , "1234567"], + [, , "111\\d{6}|(?:31|77|88|9[89])\\d{7}", , , , "991234567", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MW", + 265, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["1[2-9]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[137-9]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MX: [ + , + [ + , + , + "1(?:(?:44|99)[1-9]|65[0-689])\\d{7}|(?:1(?:[017]\\d|[235][1-9]|4[0-35-9]|6[0-46-9]|8[1-79]|9[1-8])|[2-9]\\d)\\d{8}", + , + , + , + , + , + , + [10, 11], + [7, 8], + ], + [ + , + , + "657[12]\\d{6}|(?:2(?:0[01]|2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}", + , + , + , + "2001234567", + , + , + [10], + [7, 8], + ], + [ + , + , + "657[12]\\d{6}|(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}", + , + , + , + "12221234567", + , + , + , + [7, 8], + ], + [, , "8(?:00|88)\\d{7}", , , , "8001234567", , , [10]], + [, , "900\\d{7}", , , , "9001234567", , , [10]], + [, , "300\\d{7}", , , , "3001234567", , , [10]], + [, , "500\\d{7}", , , , "5001234567", , , [10]], + [, , , , , , , , , [-1]], + "MX", + 52, + "0[09]", + "01", + , + , + "0(?:[12]|4[45])|1", + , + "00", + , + [ + [, "(\\d{5})", "$1", ["53"]], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"], , , 1], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"], , , 1], + [, "(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 $3 $4", ["1(?:33|5[56]|81)"], , , 1], + [, "(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 $3 $4", ["1"], , , 1], + ], + [ + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"], , , 1], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"], , , 1], + [, "(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 $3 $4", ["1(?:33|5[56]|81)"], , , 1], + [, "(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 $3 $4", ["1"], , , 1], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MY: [ + , + [, , "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}", , , , , , , [8, 9, 10], [6, 7]], + [ + , + , + "(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\d|9[0-57])\\d|4(?:2[0-689]|[3-79]\\d|8[1-35689])|5(?:2[0-589]|[3468]\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\d|[3489][0-8]))\\d{5}", + , + , + , + "323856789", + , + , + [8, 9], + [6, 7], + ], + [ + , + , + "1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0134]\\d|2[1-9]|5[0-6]))|(?:[269]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}", + , + , + , + "123456789", + , + , + [9, 10], + ], + [, , "1[378]00\\d{6}", , , , "1300123456", , , [10]], + [, , "1600\\d{6}", , , , "1600123456", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [ + , + , + "15(?:4(?:6[0-4]\\d|8(?:0[125]|[17]\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\d))\\d{4}", + , + , + , + "1546012345", + , + , + [10], + ], + "MY", + 60, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1-$2 $3", ["[4-79]"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{3,4})", + "$1-$2 $3", + ["1(?:[02469]|[378][1-9]|53)|8", "1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"], + "0$1", + ], + [, "(\\d)(\\d{4})(\\d{4})", "$1-$2 $3", ["3"], "0$1"], + [, "(\\d)(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3-$4", ["1(?:[367]|80)"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2 $3", ["15"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1-$2 $3", ["1"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + MZ: [ + , + [, , "(?:2|8\\d)\\d{7}", , , , , , , [8, 9]], + [, , "2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}", , , , "21123456", , , [8]], + [, , "8[2-79]\\d{7}", , , , "821234567", , , [9]], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "MZ", + 258, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2|8[2-79]"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NA: [ + , + [, , "[68]\\d{7,8}", , , , , , , [8, 9]], + [ + , + , + "64426\\d{3}|6(?:1(?:2[2-7]|3[01378]|4[0-4])|254|32[0237]|4(?:27|41|5[25])|52[236-8]|626|7(?:2[2-4]|30))\\d{4,5}|6(?:1(?:(?:0\\d|2[0189]|3[24-69]|4[5-9])\\d|17|69|7[014])|2(?:17|5[0-36-8]|69|70)|3(?:17|2[14-689]|34|6[289]|7[01]|81)|4(?:17|2[0-2]|4[06]|5[0137]|69|7[01])|5(?:17|2[0459]|69|7[01])|6(?:17|25|38|42|69|7[01])|7(?:17|2[569]|3[13]|6[89]|7[01]))\\d{4}", + , + , + , + "61221234", + ], + [, , "(?:60|8[1245])\\d{7}", , , , "811234567", , , [9]], + [, , "80\\d{7}", , , , "800123456", , , [9]], + [, , "8701\\d{5}", , , , "870123456", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "8(?:3\\d\\d|86)\\d{5}", , , , "88612345"], + "NA", + 264, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["87"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NC: [ + , + [, , "(?:050|[2-57-9]\\d\\d)\\d{3}", , , , , , , [6]], + [, , "(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}", , , , "201234"], + [, , "(?:5[0-4]|[79]\\d|8[0-79])\\d{4}", , , , "751234"], + [, , "050\\d{3}", , , , "050012"], + [, , "36\\d{4}", , , , "366711"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NC", + 687, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})", "$1", ["5[6-8]"]], + [, "(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]], + ], + [[, "(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NE: [ + , + [, , "[027-9]\\d{7}", , , , , , , [8]], + [ + , + , + "2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}", + , + , + , + "20201234", + ], + [, , "(?:23|7[04]|[89]\\d)\\d{6}", , , , "93123456"], + [, , "08\\d{6}", , , , "08123456"], + [, , "09\\d{6}", , , , "09123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NE", + 227, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["08"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[089]|2[013]|7[04]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NF: [ + , + [, , "[13]\\d{5}", , , , , , , [6], [5]], + [, , "(?:1(?:06|17|28|39)|3[0-2]\\d)\\d{3}", , , , "106609", , , , [5]], + [, , "(?:14|3[58])\\d{4}", , , , "381234", , , , [5]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NF", + 672, + "00", + , + , + , + "([0-258]\\d{4})$", + "3$1", + , + , + [ + [, "(\\d{2})(\\d{4})", "$1 $2", ["1[0-3]"]], + [, "(\\d)(\\d{5})", "$1 $2", ["[13]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NG: [ + , + [ + , + , + "(?:[124-7]|9\\d{3})\\d{6}|[1-9]\\d{7}|[78]\\d{9,13}", + , + , + , + , + , + , + [7, 8, 10, 11, 12, 13, 14], + [5, 6], + ], + [ + , + , + "(?:(?:[1-356]\\d|4[02-8]|8[2-9])\\d|9(?:0[3-9]|[1-9]\\d))\\d{5}|7(?:0(?:[013-689]\\d|2[0-24-9])\\d{3,4}|[1-79]\\d{6})|(?:[12]\\d|4[147]|5[14579]|6[1578]|7[1-3578])\\d{5}", + , + , + , + "18040123", + , + , + [7, 8], + [5, 6], + ], + [ + , + , + "(?:702[0-24-9]|8(?:01|19)[01])\\d{6}|(?:70[13-689]|8(?:0[2-9]|1[0-8])|9(?:0[1-9]|1[2356]))\\d{7}", + , + , + , + "8021234567", + , + , + [10], + ], + [, , "800\\d{7,11}", , , , "80017591759", , , [10, 11, 12, 13, 14]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NG", + 234, + "009", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["78"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]|9(?:0[3-9]|[1-9])"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[3-7]|8[2-9]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[7-9]"], "0$1"], + [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[78]"], "0$1"], + [, "(\\d{3})(\\d{5})(\\d{5,6})", "$1 $2 $3", ["[78]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "700\\d{7,11}", , , , "7001234567", , , [10, 11, 12, 13, 14]], + , + , + [, , , , , , , , , [-1]], + ], + NI: [ + , + [, , "(?:1800|[25-8]\\d{3})\\d{4}", , , , , , , [8]], + [, , "2\\d{7}", , , , "21234567"], + [ + , + , + "(?:5(?:5[0-7]|[78]\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\d)\\d)\\d{5}", + , + , + , + "81234567", + ], + [, , "1800\\d{4}", , , , "18001234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NI", + 505, + "00", + , + , + , + , + , + , + , + [[, "(\\d{4})(\\d{4})", "$1 $2", ["[125-8]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NL: [ + , + [ + , + , + "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 10, 11], + ], + [ + , + , + "(?:1(?:[035]\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\d\\d)\\d{6}", + , + , + , + "101234567", + , + , + [9], + ], + [, , "(?:6[1-58]|970\\d)\\d{7}", , , , "612345678", , , [9, 11]], + [, , "800\\d{4,7}", , , , "8001234", , , [7, 8, 9, 10]], + [, , "90[069]\\d{4,7}", , , , "9061234", , , [7, 8, 9, 10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:85|91)\\d{7}", , , , "851234567", , , [9]], + "NL", + 31, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})", "$1", ["1[238]|[34]"]], + [, "(\\d{2})(\\d{3,4})", "$1 $2", ["14"]], + [, "(\\d{6})", "$1", ["1"]], + [, "(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"], + [, "(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"], + [, "(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-578]|91"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"], + ], + [ + [, "(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"], + [, "(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"], + [, "(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-578]|91"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"], + ], + [, , "66\\d{7}", , , , "662345678", , , [9]], + , + , + [ + , + , + "140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)\\d", + , + , + , + , + , + , + [5, 6], + ], + [ + , + , + "140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\d{6})\\d", + , + , + , + "14020", + , + , + [5, 6, 9], + ], + , + , + [, , , , , , , , , [-1]], + ], + NO: [ + , + [, , "(?:0|[2-9]\\d{3})\\d{4}", , , , , , , [5, 8]], + [, , "(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}", , , , "21234567", , , [8]], + [, , "(?:4[015-8]|59|9\\d)\\d{6}", , , , "40612345", , , [8]], + [, , "80[01]\\d{5}", , , , "80012345", , , [8]], + [, , "82[09]\\d{5}", , , , "82012345", , , [8]], + [, , "810(?:0[0-6]|[2-8]\\d)\\d{3}", , , , "81021234", , , [8]], + [, , "880\\d{5}", , , , "88012345", , , [8]], + [, , "85[0-5]\\d{5}", , , , "85012345", , , [8]], + "NO", + 47, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[489]|59"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[235-7]"]], + ], + , + [, , , , , , , , , [-1]], + 1, + "[02-689]|7[0-8]", + [, , , , , , , , , [-1]], + [, , "(?:0[2-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}", , , , "02000"], + , + , + [, , "81[23]\\d{5}", , , , "81212345", , , [8]], + ], + NP: [ + , + [, , "(?:1\\d|9)\\d{9}|[1-9]\\d{7}", , , , , , , [8, 10, 11], [6, 7]], + [ + , + , + "(?:1[0-6]\\d|99[02-6])\\d{5}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-7])[2-6]\\d{5}", + , + , + , + "14567890", + , + , + [8], + [6, 7], + ], + [, , "9(?:6[0-3]|7[024-6]|8[0-24-68])\\d{7}", , , , "9841234567", , , [10]], + [, , "1(?:66001|800\\d\\d)\\d{5}", , , , "16600101234", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NP", + 977, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], + [, "(\\d{2})(\\d{6})", "$1-$2", ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], "0$1"], + [, "(\\d{3})(\\d{7})", "$1-$2", ["9"]], + [, "(\\d{4})(\\d{2})(\\d{5})", "$1-$2-$3", ["1"]], + ], + [ + [, "(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], + [, "(\\d{2})(\\d{6})", "$1-$2", ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], "0$1"], + [, "(\\d{3})(\\d{7})", "$1-$2", ["9"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NR: [ + , + [, , "(?:444|(?:55|8\\d)\\d|666)\\d{4}", , , , , , , [7]], + [, , "444\\d{4}", , , , "4441234"], + [, , "(?:55[3-9]|666|8\\d\\d)\\d{4}", , , , "5551234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NR", + 674, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[4-68]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NU: [ + , + [, , "(?:[47]|888\\d)\\d{3}", , , , , , , [4, 7]], + [, , "[47]\\d{3}", , , , "7012", , , [4]], + [, , "888[4-9]\\d{3}", , , , "8884012", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "NU", + 683, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["8"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + NZ: [ + , + [ + , + , + "[29]\\d{7,9}|50\\d{5}(?:\\d{2,3})?|6[0-35-9]\\d{6}|7\\d{7,8}|8\\d{4,9}|(?:11\\d|[34])\\d{7}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 10], + ], + [, , "24099\\d{3}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\d{6}", , , , "32345678", , , [8], [7]], + [, , "2[0-27-9]\\d{7,8}|21\\d{6}", , , , "211234567", , , [8, 9, 10]], + [, , "508\\d{6,7}|80\\d{6,8}", , , , "800123456", , , [8, 9, 10]], + [, , "(?:11\\d{5}|50(?:0[08]|30|66|77|88))\\d{3}|90\\d{6,8}", , , , "900123456", , , [7, 8, 9, 10]], + [, , , , , , , , , [-1]], + [, , "70\\d{7}", , , , "701234567", , , [9]], + [, , , , , , , , , [-1]], + "NZ", + 64, + "0(?:0|161)", + "0", + , + , + "0", + , + "00", + , + [ + [, "(\\d{2})(\\d{3,8})", "$1 $2", ["8[1-579]"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["50[036-8]|[89]0", "50(?:[0367]|88)|[89]0"], "0$1"], + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["24|[346]|7[2-57-9]|9[2-9]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:10|74)|[59]|80"], "0$1"], + [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1|2[028]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,5})", "$1 $2 $3", ["2(?:[169]|7[0-35-9])|7|86"], "0$1"], + ], + , + [, , "[28]6\\d{6,7}", , , , "26123456", , , [8, 9]], + , + , + [, , , , , , , , , [-1]], + [, , "8(?:1[6-9]|22|3\\d|4[045]|5[459]|7[0-3579]|90)\\d{2,7}", , , , "83012378"], + , + , + [, , , , , , , , , [-1]], + ], + OM: [ + , + [, , "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}", , , , , , , [7, 8, 9]], + [, , "2[2-6]\\d{6}", , , , "23123456", , , [8]], + [, , "1505\\d{4}|(?:7(?:[1289]\\d|7[0-4])|9(?:0[1-9]|[1-9]\\d))\\d{5}", , , , "92123456", , , [8]], + [, , "8007\\d{4,5}|(?:500|800[05])\\d{4}", , , , "80071234"], + [, , "900\\d{5}", , , , "90012345", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "OM", + 968, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4,6})", "$1 $2", ["[58]"]], + [, "(\\d{2})(\\d{6})", "$1 $2", ["2"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[179]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PA: [ + , + [, , "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}", , , , , , , [7, 8, 10, 11]], + [ + , + , + "(?:1(?:0\\d|1[479]|2[37]|3[0137]|4[17]|5[05]|6[58]|7[0167]|8[258]|9[1389])|2(?:[0235-79]\\d|1[0-7]|4[013-9]|8[02-9])|3(?:[089]\\d|1[0-7]|2[0-5]|33|4[0-79]|5[0-35]|6[068]|7[0-8])|4(?:00|3[0-579]|4\\d|7[0-57-9])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[056]|7[0-24-9]|8[5-9]|90)|8(?:09|2[89]|3\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\d))\\d{4}", + , + , + , + "2001234", + , + , + [7], + ], + [, , "(?:1[16]1|21[89]|6\\d{3}|8(?:1[01]|7[23]))\\d{4}", , , , "61234567", , , [7, 8]], + [, , "800\\d{4,5}|(?:00800|800\\d)\\d{6}", , , , "8001234"], + [, , "(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\d{4}", , , , "8601234", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "PA", + 507, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1-$2", ["[1-57-9]"]], + [, "(\\d{4})(\\d{4})", "$1-$2", ["[68]"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PE: [ + , + [, , "(?:[14-8]|9\\d)\\d{7}", , , , , , , [8, 9], [6, 7]], + [ + , + , + "(?:(?:4[34]|5[14])[0-8]\\d|7(?:173|3[0-8]\\d)|8(?:10[05689]|6(?:0[06-9]|1[6-9]|29)|7(?:0[569]|[56]0)))\\d{4}|(?:1[0-8]|4[12]|5[236]|6[1-7]|7[246]|8[2-4])\\d{6}", + , + , + , + "11234567", + , + , + [8], + [6, 7], + ], + [, , "9\\d{8}", , , , "912345678", , , [9]], + [, , "800\\d{5}", , , , "80012345", , , [8]], + [, , "805\\d{5}", , , , "80512345", , , [8]], + [, , "801\\d{5}", , , , "80112345", , , [8]], + [, , "80[24]\\d{5}", , , , "80212345", , , [8]], + [, , , , , , , , , [-1]], + "PE", + 51, + "00|19(?:1[124]|77|90)00", + "0", + " Anexo ", + , + "0", + , + "00", + , + [ + [, "(\\d{3})(\\d{5})", "$1 $2", ["80"], "(0$1)"], + [, "(\\d)(\\d{7})", "$1 $2", ["1"], "(0$1)"], + [, "(\\d{2})(\\d{6})", "$1 $2", ["[4-8]"], "(0$1)"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PF: [ + , + [, , "4\\d{5}(?:\\d{2})?|8\\d{7,8}", , , , , , , [6, 8, 9]], + [, , "4(?:0[4-689]|9[4-68])\\d{5}", , , , "40412345", , , [8]], + [, , "8[7-9]\\d{6}", , , , "87123456", , , [8]], + [, , "80[0-5]\\d{6}", , , , "800012345", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "499\\d{5}", , , , "49901234", , , [8]], + "PF", + 689, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["44"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4|8[7-9]"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "44\\d{4}", , , , , , , [6]], + [, , "44\\d{4}", , , , "440123", , , [6]], + , + , + [, , , , , , , , , [-1]], + ], + PG: [ + , + [, , "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}", , , , , , , [7, 8]], + [, , "(?:(?:3[0-2]|4[257]|5[34]|9[78])\\d|64[1-9]|85[02-46-9])\\d{4}", , , , "3123456", , , [7]], + [, , "(?:7\\d|8[128])\\d{6}", , , , "70123456", , , [8]], + [, , "180\\d{4}", , , , "1801234", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "2(?:0[0-57]|7[568])\\d{4}", , , , "2751234", , , [7]], + "PG", + 675, + "00|140[1-3]", + , + , + , + , + , + "00", + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["18|[2-69]|85"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[78]"]], + ], + , + [, , "27[01]\\d{4}", , , , "2700123", , , [7]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PH: [ + , + [ + , + , + "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}", + , + , + , + , + , + , + [6, 8, 9, 10, 11, 12, 13], + [4, 5, 7], + ], + [ + , + , + "(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\d{3}|88(?:22\\d\\d|42))\\d{4}|(?:2|8[2-8]\\d\\d)\\d{5}", + , + , + , + "232345678", + , + , + [6, 8, 9, 10], + [4, 5, 7], + ], + [ + , + , + "(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\d|4[2-9]|8[135-9]|9[1-9]))\\d{7}", + , + , + , + "9051234567", + , + , + [10], + ], + [, , "1800\\d{7,9}", , , , "180012345678", , , [11, 12, 13]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "PH", + 63, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{5})", "$1 $2", ["2"], "(0$1)"], + [ + , + "(\\d{4})(\\d{4,6})", + "$1 $2", + [ + "3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2", + "3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))", + ], + "(0$1)", + ], + [ + , + "(\\d{5})(\\d{4})", + "$1 $2", + ["346|4(?:27|9[35])|883", "3469|4(?:279|9(?:30|56))|8834"], + "(0$1)", + ], + [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "(0$1)"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|8[2-8]"], "(0$1)"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], + [, "(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["1"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PK: [ + , + [ + , + , + "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}", + , + , + , + , + , + , + [8, 9, 10, 11, 12], + [5, 6, 7], + ], + [ + , + , + "(?:(?:21|42)[2-9]|58[126])\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6,7}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\d{5,6}", + , + , + , + "2123456789", + , + , + [9, 10], + [5, 6, 7, 8], + ], + [, , "3(?:[0-24]\\d|3[0-7]|55|64)\\d{7}", , , , "3012345678", , , [10]], + [, , "800\\d{5}(?:\\d{3})?", , , , "80012345", , , [8, 11]], + [, , "900\\d{5}", , , , "90012345", , , [8]], + [, , , , , , , , , [-1]], + [, , "122\\d{6}", , , , "122044444", , , [9]], + [, , , , , , , , , [-1]], + "PK", + 92, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})(\\d{2,7})", "$1 $2 $3", ["[89]0"], "0$1"], + [, "(\\d{4})(\\d{5})", "$1 $2", ["1"]], + [ + , + "(\\d{3})(\\d{6,7})", + "$1 $2", + [ + "2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])", + "9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]", + ], + "(0$1)", + ], + [ + , + "(\\d{2})(\\d{7,8})", + "$1 $2", + ["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"], + "(0$1)", + ], + [, "(\\d{5})(\\d{5})", "$1 $2", ["58"], "(0$1)"], + [, "(\\d{3})(\\d{7})", "$1 $2", ["3"], "0$1"], + [ + , + "(\\d{2})(\\d{3})(\\d{3})(\\d{3})", + "$1 $2 $3 $4", + ["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"], + "(0$1)", + ], + [, "(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[24-9]"], "(0$1)"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [ + , + , + "(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}", + , + , + , + "21111825888", + , + , + [11, 12], + ], + , + , + [, , , , , , , , , [-1]], + ], + PL: [ + , + [, , "6\\d{5}(?:\\d{2})?|8\\d{9}|[1-9]\\d{6}(?:\\d{2})?", , , , , , , [6, 7, 8, 9, 10]], + [ + , + , + "47\\d{7}|(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])(?:[02-9]\\d{6}|1(?:[0-8]\\d{5}|9\\d{3}(?:\\d{2})?))", + , + , + , + "123456789", + , + , + [7, 9], + ], + [ + , + , + "21(?:1(?:[145]\\d|3[1-5])|2[0-4]\\d)\\d{4}|(?:45|5[0137]|6[069]|7[2389]|88)\\d{7}", + , + , + , + "512345678", + , + , + [9], + ], + [, , "800\\d{6,7}", , , , "800123456", , , [9, 10]], + [, , "70[01346-8]\\d{6}", , , , "701234567", , , [9]], + [, , "801\\d{6}", , , , "801234567", , , [9]], + [, , , , , , , , , [-1]], + [, , "39\\d{7}", , , , "391234567", , , [9]], + "PL", + 48, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{5})", "$1", ["19"]], + [, "(\\d{3})(\\d{3})", "$1 $2", ["11|64"]], + [ + , + "(\\d{2})(\\d{2})(\\d{3})", + "$1 $2 $3", + [ + "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1", + "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19", + ], + ], + [, "(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["64"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[2-8]|[2-7]|8[1-79]|9[145]"]], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["8"]], + ], + , + [, , "64\\d{4,7}", , , , "641234567", , , [6, 7, 8, 9]], + , + , + [, , , , , , , , , [-1]], + [, , "804\\d{6}", , , , "804123456", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + PM: [ + , + [, , "(?:[45]|80\\d\\d)\\d{5}", , , , , , , [6, 9]], + [, , "(?:4[1-356]|50)\\d{4}", , , , "430123", , , [6]], + [, , "(?:4[02-4]|5[056])\\d{4}", , , , "551234", , , [6]], + [, , "80[0-5]\\d{6}", , , , "800012345", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "PM", + 508, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[45]"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PR: [ + , + [, , "(?:[589]\\d\\d|787)\\d{7}", , , , , , , [10], [7]], + [, , "(?:787|939)[2-9]\\d{6}", , , , "7872345678", , , , [7]], + [, , "(?:787|939)[2-9]\\d{6}", , , , "7872345678", , , , [7]], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "PR", + 1, + "011", + "1", + , + , + "1", + , + , + 1, + , + , + [, , , , , , , , , [-1]], + , + "787|939", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PS: [ + , + [, , "[2489]2\\d{6}|(?:1\\d|5)\\d{8}", , , , , , , [8, 9, 10], [7]], + [, , "(?:22[2-47-9]|42[45]|82[014-68]|92[3569])\\d{5}", , , , "22234567", , , [8], [7]], + [, , "5[69]\\d{7}", , , , "599123456", , , [9]], + [, , "1800\\d{6}", , , , "1800123456", , , [10]], + [, , , , , , , , , [-1]], + [, , "1700\\d{6}", , , , "1700123456", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "PS", + 970, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2489]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["5"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PT: [ + , + [, , "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}", , , , , , , [9]], + [, , "2(?:[12]\\d|3[1-689]|4[1-59]|[57][1-9]|6[1-35689]|8[1-69]|9[1256])\\d{6}", , , , "212345678"], + [ + , + , + "6(?:[06]92(?:30|9\\d)|[35]92(?:3[03]|9\\d))\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\d\\d|480))\\d{5}", + , + , + , + "912345678", + ], + [, , "80[02]\\d{6}", , , , "800123456"], + [, , "(?:6(?:0[178]|4[68])\\d|76(?:0[1-57]|1[2-47]|2[237]))\\d{5}", , , , "760123456"], + [, , "80(?:8\\d|9[1579])\\d{5}", , , , "808123456"], + [, , "884[0-4689]\\d{5}", , , , "884123456"], + [, , "30\\d{7}", , , , "301234567"], + "PT", + 351, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["2[12]"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["16|[236-9]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "70(?:7\\d|8[17])\\d{5}", , , , "707123456"], + , + , + [, , "600\\d{6}|6[06]9233\\d{3}", , , , "600110000"], + ], + PW: [ + , + [, , "(?:[24-8]\\d\\d|345|900)\\d{4}", , , , , , , [7]], + [ + , + , + "(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\d{4}", + , + , + , + "2771234", + ], + [, , "(?:(?:46|83)[0-5]|6[2-4689]0)\\d{4}|(?:45|77|88)\\d{5}", , , , "6201234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "PW", + 680, + "01[12]", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + PY: [ + , + [, , "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}", , , , , , , [6, 7, 8, 9, 10, 11], [5]], + [ + , + , + "(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\d|6[1-578]|75|8[0-8])|858)\\d{5,6}", + , + , + , + "212345678", + , + , + [7, 8, 9], + [5, 6], + ], + [, , "9(?:51|6[129]|[78][1-6]|9[1-5])\\d{6}", , , , "961456789", , , [9]], + [, , "9800\\d{5,7}", , , , "98000123456", , , [9, 10, 11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "8700[0-4]\\d{4}", , , , "870012345", , , [9]], + "PY", + 595, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3,6})", "$1 $2", ["[2-9]0"], "0$1"], + [, "(\\d{2})(\\d{5})", "$1 $2", ["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"], "(0$1)"], + [ + , + "(\\d{3})(\\d{4,5})", + "$1 $2", + ["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"], + "(0$1)", + ], + [ + , + "(\\d{2})(\\d{3})(\\d{3,4})", + "$1 $2 $3", + ["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"], + "(0$1)", + ], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["87"]], + [, "(\\d{3})(\\d{6})", "$1 $2", ["9(?:[5-79]|8[1-6])"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "[2-9]0\\d{4,7}", , , , "201234567", , , [6, 7, 8, 9]], + , + , + [, , , , , , , , , [-1]], + ], + QA: [ + , + [, , "[2-7]\\d{7}|800\\d{4}(?:\\d{2})?|2\\d{6}", , , , , , , [7, 8, 9]], + [, , "414[1-4]\\d{4}|(?:23|4[04])\\d{6}", , , , "44123456", , , [8]], + [, , "(?:2[89]|[35-7]\\d)\\d{6}", , , , "33123456", , , [8]], + [, , "800\\d{4}(?:\\d{2})?", , , , "8001234", , , [7, 9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "QA", + 974, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["2[126]|8"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[2-7]"]], + ], + , + [, , "2(?:[12]\\d|61)\\d{4}", , , , "2123456", , , [7]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + RE: [ + , + [, , "976\\d{6}|(?:26|[68]\\d)\\d{7}", , , , , , , [9]], + [, , "26(?:2\\d\\d|3(?:0\\d|1[01]))\\d{4}", , , , "262161234"], + [ + , + , + "(?:69(?:2\\d\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|6[0-6]|7[0-27]|8[0-8]|9[0-479]))|976(?:2[27]|3[0-37]|9\\d))\\d{4}", + , + , + , + "692123456", + ], + [, , "80\\d{7}", , , , "801234567"], + [, , "89[1-37-9]\\d{6}", , , , "891123456"], + [, , "8(?:1[019]|2[0156]|84|90)\\d{6}", , , , "810123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "RE", + 262, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2689]"], "0$1"]], + , + [, , , , , , , , , [-1]], + 1, + "26[23]|69|[89]", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + RO: [ + , + [, , "(?:[2378]\\d|90)\\d{7}|[23]\\d{5}", , , , , , , [6, 9]], + [, , "[23][13-6]\\d{7}|(?:2(?:19\\d|[3-6]\\d9)|31\\d\\d)\\d\\d", , , , "211234567"], + [, , "7020\\d{5}|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[019])\\d{6}", , , , "712034567", , , [9]], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , "90[0136]\\d{6}", , , , "900123456", , , [9]], + [, , "801\\d{6}", , , , "801123456", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "RO", + 40, + "00", + "0", + " int ", + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})", "$1 $2", ["2[3-6]", "2[3-6]\\d9"], "0$1"], + [, "(\\d{2})(\\d{4})", "$1 $2", ["219|31"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[23]1"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[237-9]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "(?:37\\d|80[578])\\d{6}", , , , "372123456", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + RS: [ + , + [ + , + , + "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 11, 12], + [4, 5], + ], + [ + , + , + "(?:11[1-9]\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\d))\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\d{4,9}", + , + , + , + "10234567", + , + , + [7, 8, 9, 10, 11, 12], + [4, 5, 6], + ], + [, , "6(?:[0-689]|7\\d)\\d{6,7}", , , , "601234567", , , [8, 9, 10]], + [, , "800\\d{3,9}", , , , "80012345"], + [, , "(?:78\\d|90[0169])\\d{3,7}", , , , "90012345", , , [6, 7, 8, 9, 10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "RS", + 381, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3,9})", "$1 $2", ["(?:2[389]|39)0|[7-9]"], "0$1"], + [, "(\\d{2})(\\d{5,10})", "$1 $2", ["[1-36]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "7[06]\\d{4,10}", , , , "700123456"], + , + , + [, , , , , , , , , [-1]], + ], + RU: [ + , + [, , "8\\d{13}|[347-9]\\d{9}", , , , , , , [10, 14], [7]], + [ + , + , + "(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-79]|7[1-37-9]))\\d{7}", + , + , + , + "3011234567", + , + , + [10], + [7], + ], + [, , "9\\d{9}", , , , "9123456789", , , [10]], + [, , "8(?:0[04]|108\\d{3})\\d{7}", , , , "8001234567"], + [, , "80[39]\\d{7}", , , , "8091234567", , , [10]], + [, , , , , , , , , [-1]], + [, , "808\\d{7}", , , , "8081234567", , , [10]], + [, , , , , , , , , [-1]], + "RU", + 7, + "810", + "8", + , + , + "8", + , + "8~10", + , + [ + [, "(\\d{3})(\\d{2})(\\d{2})", "$1-$2-$3", ["[0-79]"]], + [ + , + "(\\d{4})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + [ + "7(?:1[0-8]|2[1-9])", + "7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))", + "7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2", + ], + "8 ($1)", + , + 1, + ], + [ + , + "(\\d{5})(\\d)(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + [ + "7(?:1[0-68]|2[1-9])", + "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))", + "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]", + ], + "8 ($1)", + , + 1, + ], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", , 1], + [, "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[349]|8(?:[02-7]|1[1-8])"], "8 ($1)", , 1], + [, "(\\d{4})(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["8"], "8 ($1)"], + ], + [ + [ + , + "(\\d{4})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + [ + "7(?:1[0-8]|2[1-9])", + "7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))", + "7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2", + ], + "8 ($1)", + , + 1, + ], + [ + , + "(\\d{5})(\\d)(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + [ + "7(?:1[0-68]|2[1-9])", + "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))", + "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]", + ], + "8 ($1)", + , + 1, + ], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", , 1], + [, "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[349]|8(?:[02-7]|1[1-8])"], "8 ($1)", , 1], + [, "(\\d{4})(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["8"], "8 ($1)"], + ], + [, , , , , , , , , [-1]], + 1, + "3[04-689]|[489]", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + RW: [ + , + [, , "(?:06|[27]\\d\\d|[89]00)\\d{6}", , , , , , , [8, 9]], + [, , "(?:06|2[23568]\\d)\\d{6}", , , , "250123456"], + [, , "7[2389]\\d{7}", , , , "720123456", , , [9]], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , "900\\d{6}", , , , "900123456", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "RW", + 250, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SA: [ + , + [, , "92\\d{7}|(?:[15]|8\\d)\\d{8}", , , , , , , [9, 10], [7]], + [, , "1(?:1\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\d{6}", , , , "112345678", , , [9], [7]], + [, , "579[01]\\d{5}|5(?:[013-689]\\d|7[0-35-8])\\d{6}", , , , "512345678", , , [9]], + [, , "800\\d{7}", , , , "8001234567", , , [10]], + [, , "925\\d{6}", , , , "925012345", , , [9]], + [, , "920\\d{6}", , , , "920012345", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SA", + 966, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})(\\d{5})", "$1 $2", ["9"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["81"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "811\\d{7}", , , , "8110123456", , , [10]], + , + , + [, , , , , , , , , [-1]], + ], + SB: [ + , + [, , "(?:[1-6]|[7-9]\\d\\d)\\d{4}", , , , , , , [5, 7]], + [, , "(?:1[4-79]|[23]\\d|4[0-2]|5[03]|6[0-37])\\d{3}", , , , "40123", , , [5]], + [ + , + , + "48\\d{3}|(?:(?:7[1-9]|8[4-9])\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\d{4}", + , + , + , + "7421234", + ], + [, , "1[38]\\d{3}", , , , "18123", , , [5]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "5[12]\\d{3}", , , , "51123", , , [5]], + "SB", + 677, + "0[01]", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{5})", "$1 $2", ["7|8[4-9]|9(?:[1-8]|9[0-8])"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SC: [ + , + [, , "800\\d{4}|(?:[249]\\d|64)\\d{5}", , , , , , , [7]], + [, , "4[2-46]\\d{5}", , , , "4217123"], + [, , "2[125-8]\\d{5}", , , , "2510123"], + [, , "800[08]\\d{3}", , , , "8000000"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "971\\d{4}|(?:64|95)\\d{5}", , , , "6412345"], + "SC", + 248, + "010|0[0-2]", + , + , + , + , + , + "00", + , + [[, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[246]|9[57]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SD: [ + , + [, , "[19]\\d{8}", , , , , , , [9]], + [, , "1(?:5\\d|8[35-7])\\d{6}", , , , "153123456"], + [, , "(?:1[0-2]|9[0-3569])\\d{7}", , , , "911231234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SD", + 249, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[19]"], "0$1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SE: [ + , + [ + , + , + "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 12], + ], + [ + , + , + "(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\d)\\d|90[1-9])\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\d{5,6}", + , + , + , + "8123456", + , + , + [7, 8, 9], + ], + [, , "7[02369]\\d{7}", , , , "701234567", , , [9]], + [, , "20\\d{4,7}", , , , "20123456", , , [6, 7, 8, 9]], + [ + , + , + "649\\d{6}|99[1-59]\\d{4}(?:\\d{3})?|9(?:00|39|44)[1-8]\\d{3,6}", + , + , + , + "9001234567", + , + , + [7, 8, 9, 10], + ], + [, , "77[0-7]\\d{6}", , , , "771234567", , , [9]], + [, , "75[1-8]\\d{6}", , , , "751234567", , , [9]], + [, , , , , , , , , [-1]], + "SE", + 46, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["20"], "0$1"], + [, "(\\d{3})(\\d{4})", "$1-$2", ["9(?:00|39|44|9)"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2})", "$1-$2 $3", ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"], "0$1"], + [, "(\\d)(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1"], + [ + , + "(\\d{3})(\\d{2,3})(\\d{2})", + "$1-$2 $3", + [ + "1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])", + ], + "0$1", + ], + [, "(\\d{3})(\\d{2,3})(\\d{3})", "$1-$2 $3", ["9(?:00|39|44)"], "0$1"], + [ + , + "(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})", + "$1-$2 $3 $4", + ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"], + "0$1", + ], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["10|7"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1"], + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1-$2 $3 $4", + ["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], + "0$1", + ], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{3})", "$1-$2 $3 $4", ["9"], "0$1"], + [, "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4 $5", ["[26]"], "0$1"], + ], + [ + [, "(\\d{2})(\\d{2,3})(\\d{2})", "$1 $2 $3", ["20"]], + [, "(\\d{3})(\\d{4})", "$1 $2", ["9(?:00|39|44|9)"]], + [, "(\\d{2})(\\d{3})(\\d{2})", "$1 $2 $3", ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"]], + [, "(\\d)(\\d{2,3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], + [ + , + "(\\d{3})(\\d{2,3})(\\d{2})", + "$1 $2 $3", + [ + "1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])", + ], + ], + [, "(\\d{3})(\\d{2,3})(\\d{3})", "$1 $2 $3", ["9(?:00|39|44)"]], + [ + , + "(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"], + ], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["10|7"]], + [, "(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["8"]], + [ + , + "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], + ], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["9"]], + [, "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[26]"]], + ], + [, , "74[02-9]\\d{6}", , , , "740123456", , , [9]], + , + , + [, , , , , , , , , [-1]], + [, , "10[1-8]\\d{6}", , , , "102345678", , , [9]], + , + , + [, , "(?:25[245]|67[3-68])\\d{9}", , , , "254123456789", , , [12]], + ], + SG: [ + , + [, , "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}", , , , , , , [8, 10, 11]], + [, , "662[0-24-9]\\d{4}|6(?:[0-578]\\d|6[013-57-9]|9[0-35-9])\\d{5}", , , , "61234567", , , [8]], + [ + , + , + "8(?:05[0-3]|95[0-2])\\d{4}|(?:8(?:0[1-4]|[1-8]\\d|9[0-4])|9[0-8]\\d)\\d{5}", + , + , + , + "81234567", + , + , + [8], + ], + [, , "(?:18|8)00\\d{7}", , , , "18001234567", , , [10, 11]], + [, , "1900\\d{7}", , , , "19001234567", , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:3[12]\\d|666)\\d{5}", , , , "31234567", , , [8]], + "SG", + 65, + "0[0-3]\\d", + , + , + , + , + , + , + , + [ + [, "(\\d{4,5})", "$1", ["1[013-9]|77", "1(?:[013-8]|9(?:0[1-9]|[1-9]))|77"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-5]|[1-9])"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], + [, "(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], + ], + [ + [, "(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-5]|[1-9])"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], + [, "(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]], + [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "7000\\d{7}", , , , "70001234567", , , [11]], + , + , + [, , , , , , , , , [-1]], + ], + SH: [ + , + [, , "(?:[256]\\d|8)\\d{3}", , , , , , , [4, 5]], + [, , "2(?:[0-57-9]\\d|6[4-9])\\d\\d", , , , "22158"], + [, , "[56]\\d{4}", , , , "51234", , , [5]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "262\\d\\d", , , , "26212", , , [5]], + "SH", + 290, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + 1, + "[256]", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SI: [ + , + [, , "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}", , , , , , , [5, 6, 7, 8]], + [, , "(?:[1-357][2-8]|4[24-8])\\d{6}", , , , "12345678", , , [8], [7]], + [, , "65(?:1\\d|55|6[01]|70)\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}", , , , "31234567", , , [8]], + [, , "80\\d{4,6}", , , , "80123456", , , [6, 7, 8]], + [, , "89[1-3]\\d{2,5}|90\\d{4,6}", , , , "90123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [ + , + , + "(?:59\\d\\d|8(?:1(?:[67]\\d|8[0-589])|2(?:0\\d|2[0-37-9]|8[0-2489])|3[389]\\d))\\d{4}", + , + , + , + "59012345", + , + , + [8], + ], + "SI", + 386, + "00|10(?:22|66|88|99)", + "0", + , + , + "0", + , + "00", + , + [ + [, "(\\d{2})(\\d{3,6})", "$1 $2", ["8[09]|9"], "0$1"], + [, "(\\d{3})(\\d{5})", "$1 $2", ["59|8"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37][01]|4[0139]|51|6"], "0$1"], + [, "(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-57]"], "(0$1)"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SJ: [ + , + [, , "0\\d{4}|(?:[489]\\d|[57]9)\\d{6}", , , , , , , [5, 8]], + [, , "79\\d{6}", , , , "79123456", , , [8]], + [, , "(?:4[015-8]|59|9\\d)\\d{6}", , , , "41234567", , , [8]], + [, , "80[01]\\d{5}", , , , "80012345", , , [8]], + [, , "82[09]\\d{5}", , , , "82012345", , , [8]], + [, , "810(?:0[0-6]|[2-8]\\d)\\d{3}", , , , "81021234", , , [8]], + [, , "880\\d{5}", , , , "88012345", , , [8]], + [, , "85[0-5]\\d{5}", , , , "85012345", , , [8]], + "SJ", + 47, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "79", + [, , , , , , , , , [-1]], + [, , "(?:0[2-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}", , , , "02000"], + , + , + [, , "81[23]\\d{5}", , , , "81212345", , , [8]], + ], + SK: [ + , + [, , "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}", , , , , , , [6, 7, 9]], + [ + , + , + "(?:2(?:16|[2-9]\\d{3})|(?:(?:[3-5][1-8]\\d|819)\\d|601[1-5])\\d)\\d{4}|(?:2|[3-5][1-8])1[67]\\d{3}|[3-5][1-8]16\\d\\d", + , + , + , + "221234567", + ], + [, , "909[1-9]\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\d)\\d{6}", , , , "912123456", , , [9]], + [, , "800\\d{6}", , , , "800123456", , , [9]], + [, , "9(?:00|[78]\\d)\\d{6}", , , , "900123456", , , [9]], + [, , "8[5-9]\\d{7}", , , , "850123456", , , [9]], + [, , , , , , , , , [-1]], + [, , "6(?:02|5[0-4]|9[0-6])\\d{6}", , , , "690123456", , , [9]], + "SK", + 421, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["[3-5][1-8]1", "[3-5][1-8]1[67]"], "0$1"], + [, "(\\d{4})(\\d{3})", "$1 $2", ["909", "9090"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1/$2 $3 $4", ["2"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1/$2 $3 $4", ["[3-5]"], "0$1"], + ], + [ + [, "(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"], + [, "(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["[3-5][1-8]1", "[3-5][1-8]1[67]"], "0$1"], + [, "(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1/$2 $3 $4", ["2"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1/$2 $3 $4", ["[3-5]"], "0$1"], + ], + [, , "9090\\d{3}", , , , "9090123", , , [7]], + , + , + [, , "9090\\d{3}|(?:602|8(?:00|[5-9]\\d)|9(?:00|[78]\\d))\\d{6}", , , , , , , [7, 9]], + [, , "96\\d{7}", , , , "961234567", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + SL: [ + , + [, , "(?:[237-9]\\d|66)\\d{6}", , , , , , , [8], [6]], + [, , "22[2-4][2-9]\\d{4}", , , , "22221234", , , , [6]], + [, , "(?:25|3[0-5]|66|7[2-9]|8[08]|9[09])\\d{6}", , , , "25123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SL", + 232, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{2})(\\d{6})", "$1 $2", ["[236-9]"], "(0$1)"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SM: [ + , + [, , "(?:0549|[5-7]\\d)\\d{6}", , , , , , , [8, 10], [6]], + [, , "0549(?:8[0157-9]|9\\d)\\d{4}", , , , "0549886377", , , [10], [6]], + [, , "6[16]\\d{6}", , , , "66661212", , , [8]], + [, , , , , , , , , [-1]], + [, , "7[178]\\d{6}", , , , "71123456", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "5[158]\\d{6}", , , , "58001110", , , [8]], + "SM", + 378, + "00", + , + , + , + "([89]\\d{5})$", + "0549$1", + , + , + [ + [, "(\\d{6})", "$1", ["[89]"]], + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], + [, "(\\d{4})(\\d{6})", "$1 $2", ["0"]], + ], + [ + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], + [, "(\\d{4})(\\d{6})", "$1 $2", ["0"]], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SN: [ + , + [, , "(?:[378]\\d|93)\\d{7}", , , , , , , [9]], + [, , "3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\d{5}", , , , "301012345"], + [, , "75(?:01|[38]3)\\d{5}|7(?:[06-8]\\d|21|5[4-7]|90)\\d{6}", , , , "701234567"], + [, , "800\\d{6}", , , , "800123456"], + [, , "88[4689]\\d{6}", , , , "884123456"], + [, , "81[02468]\\d{6}", , , , "810123456"], + [, , , , , , , , , [-1]], + [, , "(?:3(?:392|9[01]\\d)\\d|93(?:3[13]0|929))\\d{4}", , , , "933301234"], + "SN", + 221, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[379]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SO: [ + , + [, , "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}", , , , , , , [6, 7, 8, 9]], + [ + , + , + "(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\d{5}|(?:[134]\\d|8[125])\\d{4}", + , + , + , + "4012345", + , + , + [6, 7], + ], + [ + , + , + "(?:(?:15|(?:3[59]|4[89]|79|8[08])\\d|6(?:0[5-7]|[1-9]\\d)|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:6\\d|7[1-9])\\d{6}", + , + , + , + "71123456", + , + , + [7, 8, 9], + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SO", + 252, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{4})", "$1 $2", ["8[125]"]], + [, "(\\d{6})", "$1", ["[134]"]], + [, "(\\d)(\\d{6})", "$1 $2", ["[15]|2[0-79]|3[0-46-8]|4[0-7]"]], + [, "(\\d)(\\d{7})", "$1 $2", ["24|[67]"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[3478]|64|90"]], + [, "(\\d{2})(\\d{5,7})", "$1 $2", ["1|28|6(?:0[5-7]|[1-35-9])|9[2-9]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SR: [ + , + [, , "(?:[2-5]|68|[78]\\d)\\d{5}", , , , , , , [6, 7]], + [, , "(?:2[1-3]|3[0-7]|(?:4|68)\\d|5[2-58])\\d{4}", , , , "211234"], + [, , "(?:7[124-7]|8[124-9])\\d{5}", , , , "7412345", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "56\\d{4}", , , , "561234", , , [6]], + "SR", + 597, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})", "$1-$2-$3", ["56"]], + [, "(\\d{3})(\\d{3})", "$1-$2", ["[2-5]"]], + [, "(\\d{3})(\\d{4})", "$1-$2", ["[6-8]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SS: [ + , + [, , "[19]\\d{8}", , , , , , , [9]], + [, , "1[89]\\d{7}", , , , "181234567"], + [, , "(?:12|9[1257-9])\\d{7}", , , , "977123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SS", + 211, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[19]"], "0$1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + ST: [ + , + [, , "(?:22|9\\d)\\d{5}", , , , , , , [7]], + [, , "22\\d{5}", , , , "2221234"], + [, , "900[5-9]\\d{3}|9(?:0[1-9]|[89]\\d)\\d{4}", , , , "9812345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "ST", + 239, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[29]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SV: [ + , + [, , "[267]\\d{7}|[89]00\\d{4}(?:\\d{4})?", , , , , , , [7, 8, 11]], + [, , "2(?:[1-6]\\d{3}|[79]90[034]|890[0245])\\d{3}", , , , "21234567", , , [8]], + [, , "66(?:[02-9]\\d\\d|1(?:[02-9]\\d|16))\\d{3}|(?:6[0-57-9]|7\\d)\\d{6}", , , , "70123456", , , [8]], + [, , "800\\d{4}(?:\\d{4})?", , , , "8001234", , , [7, 11]], + [, , "900\\d{4}(?:\\d{4})?", , , , "9001234", , , [7, 11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SV", + 503, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[89]"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[267]"]], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[89]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SX: [ + , + [, , "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [, , "7215(?:4[2-8]|8[239]|9[056])\\d{4}", , , , "7215425678", , , , [7]], + [, , "7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}", , , , "7215205678", , , , [7]], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], + [, , "900[2-9]\\d{6}", , , , "9002123456"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "SX", + 1, + "011", + "1", + , + , + "1|(5\\d{6})$", + "721$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "721", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SY: [ + , + [, , "[1-39]\\d{8}|[1-5]\\d{7}", , , , , , , [8, 9], [6, 7]], + [ + , + , + "21\\d{6,7}|(?:1(?:[14]\\d|[2356])|2[235]|3(?:[13]\\d|4)|4[134]|5[1-3])\\d{6}", + , + , + , + "112345678", + , + , + , + [6, 7], + ], + [, , "9[1-689]\\d{7}", , , , "944567890", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "SY", + 963, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-5]"], "0$1", , 1], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1", , 1], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + SZ: [ + , + [, , "0800\\d{4}|(?:[237]\\d|900)\\d{6}", , , , , , , [8, 9]], + [, , "[23][2-5]\\d{6}", , , , "22171234", , , [8]], + [, , "7[6-9]\\d{6}", , , , "76123456", , , [8]], + [, , "0800\\d{4}", , , , "08001234", , , [8]], + [, , "900\\d{6}", , , , "900012345", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "70\\d{6}", , , , "70012345", , , [8]], + "SZ", + 268, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{4})(\\d{4})", "$1 $2", ["[0237]"]], + [, "(\\d{5})(\\d{4})", "$1 $2", ["9"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "0800\\d{4}", , , , , , , [8]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TA: [ + , + [, , "8\\d{3}", , , , , , , [4]], + [, , "8\\d{3}", , , , "8999"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TA", + 290, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "8", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TC: [ + , + [, , "(?:[58]\\d\\d|649|900)\\d{7}", , , , , , , [10], [7]], + [, , "649(?:266|712|9(?:4\\d|50))\\d{4}", , , , "6497121234", , , , [7]], + [, , "649(?:2(?:3[129]|4[1-79])|3\\d\\d|4[34][1-3])\\d{4}", , , , "6492311234", , , , [7]], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , "649(?:71[01]|966)\\d{4}", , , , "6497101234", , , , [7]], + "TC", + 1, + "011", + "1", + , + , + "1|([2-479]\\d{6})$", + "649$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "649", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TD: [ + , + [, , "(?:22|[69]\\d|77)\\d{6}", , , , , , , [8]], + [, , "22(?:[37-9]0|5[0-5]|6[89])\\d{4}", , , , "22501234"], + [, , "(?:6[023568]|77|9\\d)\\d{6}", , , , "63012345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TD", + 235, + "00|16", + , + , + , + , + , + "00", + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2679]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TG: [ + , + [, , "[279]\\d{7}", , , , , , , [8]], + [, , "2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\d{5}", , , , "22212345"], + [, , "(?:7[09]|9[0-36-9])\\d{6}", , , , "90112345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TG", + 228, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[279]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TH: [ + , + [, , "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}", , , , , , , [8, 9, 10, 13]], + [, , "(?:1[0689]|2\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}", , , , "21234567", , , [8]], + [, , "671[0-8]\\d{5}|(?:14|6[1-6]|[89]\\d)\\d{7}", , , , "812345678", , , [9]], + [, , "(?:001800\\d|1800)\\d{6}", , , , "1800123456", , , [10, 13]], + [, , "1900\\d{6}", , , , "1900123456", , , [10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "6[08]\\d{7}", , , , "601234567", , , [9]], + "TH", + 66, + "00[1-9]", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[13-9]"], "0$1"], + [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TJ: [ + , + [, , "(?:00|[1-57-9]\\d)\\d{7}", , , , , , , [9], [3, 5, 6, 7]], + [ + , + , + "(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}", + , + , + , + "372123456", + , + , + , + [3, 5, 6, 7], + ], + [, , "41[18]\\d{6}|(?:[034]0|[17][017]|2[02]|5[05]|8[08]|9\\d)\\d{7}", , , , "917123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TJ", + 992, + "810", + , + , + , + , + , + "8~10", + , + [ + [, "(\\d{6})(\\d)(\\d{2})", "$1 $2 $3", ["331", "3317"]], + [, "(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[34]7|91[78]"]], + [, "(\\d{4})(\\d)(\\d{4})", "$1 $2 $3", ["3[1-5]"]], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[0-57-9]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TK: [ + , + [, , "[2-47]\\d{3,6}", , , , , , , [4, 5, 6, 7]], + [, , "(?:2[2-4]|[34]\\d)\\d{2,5}", , , , "3101"], + [, , "7[2-4]\\d{2,5}", , , , "7290"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TK", + 690, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TL: [ + , + [, , "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}", , , , , , , [7, 8]], + [, , "(?:2[1-5]|3[1-9]|4[1-4])\\d{5}", , , , "2112345", , , [7]], + [, , "7[2-8]\\d{6}", , , , "77212345", , , [8]], + [, , "80\\d{5}", , , , "8012345", , , [7]], + [, , "90\\d{5}", , , , "9012345", , , [7]], + [, , , , , , , , , [-1]], + [, , "70\\d{5}", , , , "7012345", , , [7]], + [, , , , , , , , , [-1]], + "TL", + 670, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[2-489]|70"]], + [, "(\\d{4})(\\d{4})", "$1 $2", ["7"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TM: [ + , + [, , "[1-6]\\d{7}", , , , , , , [8]], + [ + , + , + "(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}", + , + , + , + "12345678", + ], + [, , "6\\d{7}", , , , "66123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TM", + 993, + "810", + "8", + , + , + "8", + , + "8~10", + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["12"], "(8 $1)"], + [, "(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-5]"], "(8 $1)"], + [, "(\\d{2})(\\d{6})", "$1 $2", ["6"], "8 $1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TN: [ + , + [, , "[2-57-9]\\d{7}", , , , , , , [8]], + [, , "81200\\d{3}|(?:3[0-2]|7\\d)\\d{6}", , , , "30010123"], + [, , "3(?:001|[12]40)\\d{4}|(?:(?:[259]\\d|4[0-7])\\d|3(?:1[1-35]|6[0-4]|91))\\d{5}", , , , "20123456"], + [, , "8010\\d{4}", , , , "80101234"], + [, , "88\\d{6}", , , , "88123456"], + [, , "8[12]10\\d{4}", , , , "81101234"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TN", + 216, + "00", + , + , + , + , + , + , + , + [[, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-57-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TO: [ + , + [, , "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}", , , , , , , [5, 7]], + [, , "(?:2\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\d{3}", , , , "20123", , , [5]], + [, , "(?:55[4-6]|6(?:[09]\\d|3[02]|8[15-9])|(?:7\\d|8[46-9])\\d|999)\\d{4}", , , , "7715123", , , [7]], + [, , "0800\\d{3}", , , , "0800222", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "55[0-37-9]\\d{4}", , , , "5510123", , , [7]], + "TO", + 676, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{3})", "$1-$2", ["[2-4]|50|6[09]|7[0-24-69]|8[05]"]], + [, "(\\d{4})(\\d{3})", "$1 $2", ["0"]], + [, "(\\d{3})(\\d{4})", "$1 $2", ["[5-9]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TR: [ + , + [, , "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}", , , , , , , [7, 10, 12, 13]], + [ + , + , + "(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}", + , + , + , + "2123456789", + , + , + [10], + ], + [, , "56161\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\d|5[1-59]|9[46])\\d{7}", , , , "5012345678", , , [10]], + [, , "8(?:00\\d{7}(?:\\d{2,3})?|11\\d{7})", , , , "8001234567", , , [10, 12, 13]], + [, , "(?:8[89]8|900)\\d{7}", , , , "9001234567", , , [10]], + [, , , , , , , , , [-1]], + [, , "592(?:21[12]|461)\\d{4}", , , , "5922121234", , , [10]], + [, , "850\\d{7}", , , , "8500123456", , , [10]], + "TR", + 90, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d)(\\d{3})", "$1 $2 $3", ["444"], , , 1], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["512|8[01589]|90"], "0$1", , 1], + [ + , + "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["5(?:[0-59]|61)", "5(?:[0-59]|616)", "5(?:[0-59]|6161)"], + "0$1", + , + 1, + ], + [, "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24][1-8]|3[1-9]"], "(0$1)", , 1], + [, "(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", , 1], + ], + [ + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["512|8[01589]|90"], "0$1", , 1], + [ + , + "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", + "$1 $2 $3 $4", + ["5(?:[0-59]|61)", "5(?:[0-59]|616)", "5(?:[0-59]|6161)"], + "0$1", + , + 1, + ], + [, "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24][1-8]|3[1-9]"], "(0$1)", , 1], + [, "(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", , 1], + ], + [, , "512\\d{7}", , , , "5123456789", , , [10]], + , + , + [, , "(?:444|811\\d{3})\\d{4}", , , , , , , [7, 10]], + [, , "444\\d{4}", , , , "4441444", , , [7]], + , + , + [, , , , , , , , , [-1]], + ], + TT: [ + , + [, , "(?:[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "868(?:2(?:0[13]|1[5-9]|[23]\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\d|7[0-79])|82[124])\\d{4}", + , + , + , + "8682211234", + , + , + , + [7], + ], + [ + , + , + "868(?:(?:2[5-9]|3\\d)\\d|4(?:3[0-6]|[6-9]\\d)|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}", + , + , + , + "8682911234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "TT", + 1, + "011", + "1", + , + , + "1|([2-46-8]\\d{6})$", + "868$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "868", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , "868619\\d{4}", , , , "8686191234", , , , [7]], + ], + TV: [ + , + [, , "(?:2|7\\d\\d|90)\\d{4}", , , , , , , [5, 6, 7]], + [, , "2[02-9]\\d{3}", , , , "20123", , , [5]], + [, , "(?:7[01]\\d|90)\\d{4}", , , , "901234", , , [6, 7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "TV", + 688, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{3})", "$1 $2", ["2"]], + [, "(\\d{2})(\\d{4})", "$1 $2", ["90"]], + [, "(\\d{2})(\\d{5})", "$1 $2", ["7"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + TW: [ + , + [, , "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}", , , , , , , [7, 8, 9, 10, 11]], + [ + , + , + "(?:2[2-8]\\d|370|55[01]|7[1-9])\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\d)|1[023]\\d)\\d{4,5}|(?:[239]\\d\\d|4(?:0[56]|12|49))\\d{5})|6(?:[01]\\d{7}|4(?:0[56]|12|24|4[09])\\d{4,5})|8(?:(?:2(?:3\\d|4[0-269]|[578]0|66)|36[24-9]|90\\d\\d)\\d{4}|4(?:0[56]|12|24|4[09])\\d{4,5})|(?:2(?:2(?:0\\d\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\d|1[0-4])|(?:4\\d|5[0-49]|6[0-29]|7[0-5])\\d)\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\d\\d|4(?:2(?:[089]\\d|7[1-9])|(?:3[0-4]|[78]\\d|9[01])\\d))\\d)\\d{3}", + , + , + , + "221234567", + , + , + [8, 9], + ], + [, , "(?:40001[0-2]|9[0-8]\\d{4})\\d{3}", , , , "912345678", , , [9]], + [, , "80[0-79]\\d{6}|800\\d{5}", , , , "800123456", , , [8, 9]], + [, , "20(?:[013-9]\\d\\d|2)\\d{4}", , , , "203123456", , , [7, 9]], + [, , , , , , , , , [-1]], + [, , "99\\d{7}", , , , "990123456", , , [9]], + [, , "7010(?:[0-2679]\\d|3[0-7]|8[0-5])\\d{5}|70\\d{8}", , , , "7012345678", , , [10, 11]], + "TW", + 886, + "0(?:0[25-79]|19)", + "0", + "#", + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d)(\\d{4})", "$1 $2 $3", ["202"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[258]0"], "0$1"], + [ + , + "(\\d)(\\d{3,4})(\\d{4})", + "$1 $2 $3", + ["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]", "[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"], + "0$1", + ], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"], "0$1"], + [, "(\\d{2})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["7"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "50[0-46-9]\\d{6}", , , , "500123456", , , [9]], + , + , + [, , , , , , , , , [-1]], + ], + TZ: [ + , + [, , "(?:[26-8]\\d|41|90)\\d{7}", , , , , , , [9]], + [, , "2[2-8]\\d{7}", , , , "222345678"], + [, , "77[2-9]\\d{6}|(?:6[1-9]|7[1-689])\\d{7}", , , , "621234567"], + [, , "80[08]\\d{6}", , , , "800123456"], + [, , "90\\d{7}", , , , "900123456"], + [, , "8(?:40|6[01])\\d{6}", , , , "840123456"], + [, , , , , , , , , [-1]], + [, , "41\\d{7}", , , , "412345678"], + "TZ", + 255, + "00[056]", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[24]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[67]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , "(?:8(?:[04]0|6[01])|90\\d)\\d{6}"], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + UA: [ + , + [, , "[89]\\d{9}|[3-9]\\d{8}", , , , , , , [9, 10], [5, 6, 7]], + [, , "(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}", , , , "311234567", , , [9], [5, 6, 7]], + [, , "(?:39|50|6[36-8]|7[1-3]|9[1-9])\\d{7}", , , , "501234567", , , [9]], + [, , "800[1-8]\\d{5,6}", , , , "800123456"], + [, , "900[239]\\d{5,6}", , , , "900212345"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "89[1-579]\\d{6}", , , , "891234567", , , [9]], + "UA", + 380, + "00", + "0", + , + , + "0", + , + "0~0", + , + [ + [ + , + "(\\d{3})(\\d{3})(\\d{3})", + "$1 $2 $3", + [ + "6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]", + "6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]", + ], + "0$1", + ], + [ + , + "(\\d{4})(\\d{5})", + "$1 $2", + [ + "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])", + "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])", + ], + "0$1", + ], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|89|9[1-9]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + UG: [ + , + [, , "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}", , , , , , , [9], [5, 6, 7]], + [ + , + , + "20(?:(?:240|30[67])\\d|6(?:00[0-2]|30[0-4]))\\d{3}|(?:20(?:[017]\\d|2[5-9]|32|5[0-4]|6[15-9])|[34]\\d{3})\\d{5}", + , + , + , + "312345678", + , + , + , + [5, 6, 7], + ], + [, , "726[01]\\d{5}|7(?:[01578]\\d|20|36|[46][0-4]|9[89])\\d{6}", , , , "712345678"], + [, , "800[1-3]\\d{5}", , , , "800123456"], + [, , "90[1-3]\\d{6}", , , , "901123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "UG", + 256, + "00[057]", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{4})(\\d{5})", "$1 $2", ["202", "2024"], "0$1"], + [, "(\\d{3})(\\d{6})", "$1 $2", ["[27-9]|4(?:6[45]|[7-9])"], "0$1"], + [, "(\\d{2})(\\d{7})", "$1 $2", ["[34]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + US: [ + , + [, , "[2-9]\\d{9}|3\\d{6}", , , , , , , [10], [7]], + [ + , + , + "5(?:05(?:[2-57-9]\\d\\d|6(?:[0-35-9]\\d|44))|82(?:2(?:0[0-3]|[268]2)|3(?:0[02]|22|33)|4(?:00|4[24]|65|82)|5(?:00|29|58|83)|6(?:00|66|82)|7(?:58|77)|8(?:00|42|5[25]|88)|9(?:00|9[89])))\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}", + , + , + , + "2015550123", + , + , + , + [7], + ], + [ + , + , + "5(?:05(?:[2-57-9]\\d\\d|6(?:[0-35-9]\\d|44))|82(?:2(?:0[0-3]|[268]2)|3(?:0[02]|22|33)|4(?:00|4[24]|65|82)|5(?:00|29|58|83)|6(?:00|66|82)|7(?:58|77)|8(?:00|42|5[25]|88)|9(?:00|9[89])))\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}", + , + , + , + "2015550123", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "US", + 1, + "011", + "1", + , + , + "1", + , + , + 1, + [ + [, "(\\d{3})(\\d{4})", "$1-$2", ["310"], , , 1], + [, "(\\d{3})(\\d{4})", "$1-$2", ["[24-9]|3(?:[02-9]|1[1-9])"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3", ["[2-9]"], , , 1], + ], + [ + [, "(\\d{3})(\\d{4})", "$1-$2", ["310"], , , 1], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-9]"]], + ], + [, , , , , , , , , [-1]], + 1, + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + UY: [ + , + [, , "4\\d{9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}", , , , , , , [7, 8, 10]], + [, , "(?:1(?:770|987)|(?:2\\d|4[2-7])\\d\\d)\\d{4}", , , , "21231234", , , [8], [7]], + [, , "9[1-9]\\d{6}", , , , "94231234", , , [8]], + [, , "(?:4\\d{5}|80[05])\\d{4}|405\\d{4}", , , , "8001234", , , [7, 10]], + [, , "90[0-8]\\d{4}", , , , "9001234", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "UY", + 598, + "0(?:0|1[3-9]\\d)", + "0", + " int. ", + , + "0", + , + "00", + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["405|8|90"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], + [, "(\\d{4})(\\d{4})", "$1 $2", ["[124]"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["4"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + UZ: [ + , + [, , "(?:33|55|[679]\\d|88)\\d{7}", , , , , , , [9]], + [ + , + , + "(?:6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d\\d|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|(?:1[12]|8\\d)\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}", + , + , + , + "669050123", + ], + [ + , + , + "(?:(?:33|88|9[0-57-9])\\d{3}|55(?:50[013]|90\\d)|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\d|7[0-4])|(?:5[67]|7\\d)\\d|6(?:2[0-26]|8\\d)))|7(?:[07]\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}", + , + , + , + "912345678", + ], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "UZ", + 998, + "810", + "8", + , + , + "8", + , + "8~10", + , + [[, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[35-9]"], "8 $1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + VA: [ + , + [ + , + , + "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}", + , + , + , + , + , + , + [6, 7, 8, 9, 10, 11, 12], + ], + [, , "06698\\d{1,6}", , , , "0669812345", , , [6, 7, 8, 9, 10, 11]], + [, , "3[1-9]\\d{8}|3[2-9]\\d{7}", , , , "3123456789", , , [9, 10]], + [, , "80(?:0\\d{3}|3)\\d{3}", , , , "800123456", , , [6, 9]], + [ + , + , + "(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", + , + , + , + "899123456", + , + , + [6, 8, 9, 10], + ], + [, , "84(?:[08]\\d{3}|[17])\\d{3}", , , , "848123456", , , [6, 9]], + [, , "1(?:78\\d|99)\\d{6}", , , , "1781234567", , , [9, 10]], + [, , "55\\d{8}", , , , "5512345678", , , [10]], + "VA", + 39, + "00", + , + , + , + , + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "06698", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , "3[2-8]\\d{9,10}", , , , "33101234501", , , [11, 12]], + ], + VC: [ + , + [, , "(?:[58]\\d\\d|784|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "784(?:266|3(?:6[6-9]|7\\d|8[0-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\d{4}", + , + , + , + "7842661234", + , + , + , + [7], + ], + [, , "784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\d{4}", , , , "7844301234", , , , [7]], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , "78451[0-2]\\d{4}", , , , "7845101234", , , , [7]], + "VC", + 1, + "011", + "1", + , + , + "1|([2-7]\\d{6})$", + "784$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "784", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + VE: [ + , + [, , "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}", , , , , , , [10], [7]], + [, , "(?:2(?:12|3[457-9]|[467]\\d|[58][1-9]|9[1-6])|[4-6]00)\\d{7}", , , , "2121234567", , , , [7]], + [, , "4(?:1[24-8]|2[46])\\d{7}", , , , "4121234567"], + [, , "800\\d{7}", , , , "8001234567"], + [, , "90[01]\\d{7}", , , , "9001234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "VE", + 58, + "00", + "0", + , + , + "0", + , + , + , + [[, "(\\d{3})(\\d{7})", "$1-$2", ["[24-689]"], "0$1", "$CC $1"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "501\\d{7}", , , , "5010123456", , , , [7]], + , + , + [, , , , , , , , , [-1]], + ], + VG: [ + , + [, , "(?:284|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], + [ + , + , + "284496[0-5]\\d{3}|284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}", + , + , + , + "2842291234", + , + , + , + [7], + ], + [ + , + , + "284496[6-9]\\d{3}|284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|5(?:4[0-7]|68|9[69]))\\d{4}", + , + , + , + "2843001234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "VG", + 1, + "011", + "1", + , + , + "1|([2-578]\\d{6})$", + "284$1", + , + , + , + , + [, , , , , , , , , [-1]], + , + "284", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + VI: [ + , + [, , "[58]\\d{9}|(?:34|90)0\\d{7}", , , , , , , [10], [7]], + [ + , + , + "340(?:2(?:0[0-38]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}", + , + , + , + "3406421234", + , + , + , + [7], + ], + [ + , + , + "340(?:2(?:0[0-38]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}", + , + , + , + "3406421234", + , + , + , + [7], + ], + [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], + [, , "900[2-9]\\d{6}", , , , "9002345678"], + [, , , , , , , , , [-1]], + [ + , + , + "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", + , + , + , + "5002345678", + ], + [, , , , , , , , , [-1]], + "VI", + 1, + "011", + "1", + , + , + "1|([2-9]\\d{6})$", + "340$1", + , + 1, + , + , + [, , , , , , , , , [-1]], + , + "340", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + VN: [ + , + [, , "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}", , , , , , , [7, 8, 9, 10]], + [ + , + , + "2(?:0[3-9]|1[0-689]|2[0-25-9]|3[2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|8[2-79]|9[0-4679])\\d{7}", + , + , + , + "2101234567", + , + , + [10], + ], + [ + , + , + "(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\d{6}|(?:3\\d|5[689]|7[06-9]|8[1-8]|9[0-8])\\d{7}", + , + , + , + "912345678", + , + , + [9], + ], + [, , "1800\\d{4,6}|12(?:0[13]|28)\\d{4}", , , , "1800123456", , , [8, 9, 10]], + [, , "1900\\d{4,6}", , , , "1900123456", , , [8, 9, 10]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "672\\d{6}", , , , "672012345", , , [9]], + "VN", + 84, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{4})", "$1 $2", ["[17]99"], "0$1", , 1], + [, "(\\d{2})(\\d{5})", "$1 $2", ["80"], "0$1", , 1], + [, "(\\d{3})(\\d{4,5})", "$1 $2", ["69"], "0$1", , 1], + [, "(\\d{4})(\\d{4,6})", "$1 $2", ["1"], , , 1], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[69]"], "0$1", , 1], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[3578]"], "0$1", , 1], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", , 1], + [, "(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", , 1], + ], + [ + [, "(\\d{2})(\\d{5})", "$1 $2", ["80"], "0$1", , 1], + [, "(\\d{4})(\\d{4,6})", "$1 $2", ["1"], , , 1], + [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[69]"], "0$1", , 1], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[3578]"], "0$1", , 1], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", , 1], + [, "(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", , 1], + ], + [, , , , , , , , , [-1]], + , + , + [, , "[17]99\\d{4}|69\\d{5,6}", , , , , , , [7, 8]], + [, , "(?:[17]99|80\\d)\\d{4}|69\\d{5,6}", , , , "1992000", , , [7, 8]], + , + , + [, , , , , , , , , [-1]], + ], + VU: [ + , + [, , "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}", , , , , , , [5, 7]], + [, , "(?:38[0-8]|48[4-9])\\d\\d|(?:2[02-9]|3[4-7]|88)\\d{3}", , , , "22123", , , [5]], + [, , "(?:[58]\\d|7[013-7])\\d{5}", , , , "5912345", , , [7]], + [, , "81[18]\\d\\d", , , , "81123", , , [5]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "9(?:0[1-9]|1[01])\\d{4}", , , , "9010123", , , [7]], + "VU", + 678, + "00", + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{4})", "$1 $2", ["[57-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "(?:3[03]|900\\d)\\d{3}", , , , "30123"], + , + , + [, , , , , , , , , [-1]], + ], + WF: [ + , + [, , "(?:40|72)\\d{4}|8\\d{5}(?:\\d{3})?", , , , , , , [6, 9]], + [, , "72\\d{4}", , , , "721234", , , [6]], + [, , "(?:72|8[23])\\d{4}", , , , "821234", , , [6]], + [, , "80[0-5]\\d{6}", , , , "800012345", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "WF", + 681, + "00", + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[478]"]], + [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , "[48]0\\d{4}", , , , "401234", , , [6]], + ], + WS: [ + , + [, , "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}", , , , , , , [5, 6, 7, 10]], + [, , "6[1-9]\\d{3}|(?:[2-5]|60)\\d{4}", , , , "22123", , , [5, 6]], + [, , "(?:7[1-35-7]|8(?:[3-7]|9\\d{3}))\\d{5}", , , , "7212345", , , [7, 10]], + [, , "800\\d{3}", , , , "800123", , , [6]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "WS", + 685, + "0", + , + , + , + , + , + , + , + [ + [, "(\\d{5})", "$1", ["[2-5]|6[1-9]"]], + [, "(\\d{3})(\\d{3,7})", "$1 $2", ["[68]"]], + [, "(\\d{2})(\\d{5})", "$1 $2", ["7"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + XK: [ + , + [, , "[23]\\d{7,8}|(?:4\\d\\d|[89]00)\\d{5}", , , , , , , [8, 9]], + [, , "(?:2[89]|39)0\\d{6}|[23][89]\\d{6}", , , , "28012345"], + [, , "4[3-9]\\d{6}", , , , "43201234", , , [8]], + [, , "800\\d{5}", , , , "80001234", , , [8]], + [, , "900\\d{5}", , , , "90001234", , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "XK", + 383, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-4]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[23]"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + YE: [ + , + [, , "(?:1|7\\d)\\d{7}|[1-7]\\d{6}", , , , , , , [7, 8, 9], [6]], + [ + , + , + "78[0-7]\\d{4}|17\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\d{5}", + , + , + , + "1234567", + , + , + [7, 8], + [6], + ], + [, , "7[0137]\\d{7}", , , , "712345678", , , [9]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "YE", + 967, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-6]|7[24-68]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + YT: [ + , + [, , "80\\d{7}|(?:26|63)9\\d{6}", , , , , , , [9]], + [, , "269(?:0[0-367]|5[0-3]|6\\d|[78]0)\\d{4}", , , , "269601234"], + [, , "639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])\\d{4}", , , , "639012345"], + [, , "80\\d{7}", , , , "801234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "YT", + 262, + "00", + "0", + , + , + "0", + , + , + , + , + , + [, , , , , , , , , [-1]], + , + "269|63", + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + ZA: [ + , + [, , "[1-79]\\d{8}|8\\d{4,9}", , , , , , , [5, 6, 7, 8, 9, 10]], + [ + , + , + "(?:2(?:0330|4302)|52087)0\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\d|5[1346-8])\\d{7}", + , + , + , + "101234567", + , + , + [9], + ], + [ + , + , + "(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:6\\d|7[0-46-9])\\d{3}|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}", + , + , + , + "711234567", + , + , + [5, 6, 7, 8, 9], + ], + [, , "80\\d{7}", , , , "801234567", , , [9]], + [, , "(?:86[2-9]|9[0-2]\\d)\\d{6}", , , , "862345678", , , [9]], + [, , "860\\d{6}", , , , "860123456", , , [9]], + [, , , , , , , , , [-1]], + [ + , + , + "87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\d)\\d{5}", + , + , + , + "871234567", + , + , + [9], + ], + "ZA", + 27, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{2})(\\d{3,4})", "$1 $2", ["8[1-4]"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["8[1-4]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["860"], "0$1"], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-9]"], "0$1"], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "861\\d{6,7}", , , , "861123456", , , [9, 10]], + , + , + [, , , , , , , , , [-1]], + ], + ZM: [ + , + [, , "800\\d{6}|(?:21|63|[79]\\d)\\d{7}", , , , , , , [9], [6]], + [, , "21[1-8]\\d{6}", , , , "211234567", , , , [6]], + [, , "(?:7[679]|9[5-8])\\d{7}", , , , "955123456"], + [, , "800\\d{6}", , , , "800123456"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "63\\d{7}", , , , "630123456"], + "ZM", + 260, + "00", + "0", + , + , + "0", + , + , + , + [ + [, "(\\d{3})(\\d{3})", "$1 $2", ["[1-9]"]], + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], + [, "(\\d{2})(\\d{7})", "$1 $2", ["[79]"], "0$1"], + ], + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], + [, "(\\d{2})(\\d{7})", "$1 $2", ["[79]"], "0$1"], + ], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + ZW: [ + , + [ + , + , + "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}", + , + , + , + , + , + , + [5, 6, 7, 8, 9, 10], + [3, 4], + ], + [ + , + , + "(?:1(?:(?:3\\d|9)\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\d\\d|[56](?:[14]\\d\\d|20)|7(?:[089]|2[03]|[35]\\d\\d))\\d|4(?:2\\d\\d|8))\\d|1(?:2|[39]\\d{4}))|3(?:(?:123|(?:29\\d|92)\\d)\\d\\d|7(?:[19]|[56]\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\d{3}|83)|5(?:25\\d\\d|[78])|[689]\\d)|6(?:(?:[16-8]21|28|52[013])\\d\\d|[39])|8(?:[1349]28|523)\\d\\d)\\d{3}|(?:4\\d\\d|9[2-9])\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\d|7[1-7])\\d|2(?:[278]\\d|92)|58(?:2\\d|3))|3(?:[26]|9\\d{3})|5(?:4\\d|5)\\d\\d)\\d|6(?:(?:(?:[0-246]|[78]\\d)\\d|37)\\d|5[2-8]))\\d\\d|(?:2(?:[569]\\d|8[2-57-9])|3(?:[013-59]\\d|8[37])|6[89]8)\\d{3}", + , + , + , + "1312345", + , + , + , + [3, 4], + ], + [, , "7(?:[178]\\d|3[1-9])\\d{6}", , , , "712345678", , , [9]], + [, , "80(?:[01]\\d|20|8[0-8])\\d{3}", , , , "8001234", , , [7]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "86(?:1[12]|22|30|44|55|77|8[368])\\d{6}", , , , "8686123456", , , [10]], + "ZW", + 263, + "00", + "0", + , + , + "0", + , + , + , + [ + [ + , + "(\\d{3})(\\d{3,5})", + "$1 $2", + ["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"], + "0$1", + ], + [, "(\\d)(\\d{3})(\\d{2,4})", "$1 $2 $3", ["[49]"], "0$1"], + [, "(\\d{3})(\\d{4})", "$1 $2", ["80"], "0$1"], + [ + , + "(\\d{2})(\\d{7})", + "$1 $2", + [ + "24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2", + "2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]", + ], + "(0$1)", + ], + [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], + [ + , + "(\\d{3})(\\d{3})(\\d{3,4})", + "$1 $2 $3", + [ + "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)", + "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)", + ], + "0$1", + ], + [, "(\\d{4})(\\d{6})", "$1 $2", ["8"], "0$1"], + [ + , + "(\\d{2})(\\d{3,5})", + "$1 $2", + [ + "1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]", + ], + "0$1", + ], + [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["29[013-9]|39|54"], "0$1"], + [, "(\\d{4})(\\d{3,5})", "$1 $2", ["(?:25|54)8", "258|5483"], "0$1"], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 800: [ + , + [, , "(?:00|[1-9]\\d)\\d{6}", , , , , , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:00|[1-9]\\d)\\d{6}", , , , "12345678"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "001", + 800, + , + , + , + , + , + , + , + 1, + [[, "(\\d{4})(\\d{4})", "$1 $2", ["\\d"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 808: [ + , + [, , "[1-9]\\d{7}", , , , , , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "[1-9]\\d{7}", , , , "12345678"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "001", + 808, + , + , + , + , + , + , + , + 1, + [[, "(\\d{4})(\\d{4})", "$1 $2", ["[1-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 870: [ + , + [, , "7\\d{11}|[35-7]\\d{8}", , , , , , , [9, 12]], + [, , , , , , , , , [-1]], + [, , "(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}", , , , "301234567"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "001", + 870, + , + , + , + , + , + , + , + , + [[, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[35-7]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 878: [ + , + [, , "10\\d{10}", , , , , , , [12]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "10\\d{10}", , , , "101234567890"], + "001", + 878, + , + , + , + , + , + , + , + 1, + [[, "(\\d{2})(\\d{5})(\\d{5})", "$1 $2 $3", ["1"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 881: [ + , + [, , "[0-36-9]\\d{8}", , , , , , , [9]], + [, , , , , , , , , [-1]], + [, , "[0-36-9]\\d{8}", , , , "612345678"], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "001", + 881, + , + , + , + , + , + , + , + , + [[, "(\\d)(\\d{3})(\\d{5})", "$1 $2 $3", ["[0-36-9]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 882: [ + , + [, , "[13]\\d{6}(?:\\d{2,5})?|285\\d{9}|(?:[19]\\d|49)\\d{6}", , , , , , , [7, 8, 9, 10, 11, 12]], + [, , , , , , , , , [-1]], + [, , "342\\d{4}|(?:337|49)\\d{6}|3(?:2|47|7\\d{3})\\d{7}", , , , "3421234", , , [7, 8, 9, 10, 12]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [ + , + , + "1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:(?:285\\d\\d|3(?:45|[69]\\d{3}))\\d|9[89])\\d{6}", + , + , + , + "390123456789", + ], + "001", + 882, + , + , + , + , + , + , + , + , + [ + [, "(\\d{2})(\\d{5})", "$1 $2", ["16|342"]], + [, "(\\d{2})(\\d{6})", "$1 $2", ["4"]], + [, "(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[19]"]], + [, "(\\d{2})(\\d{4})(\\d{3})", "$1 $2 $3", ["3[23]"]], + [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"]], + [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["34[57]"]], + [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["34"]], + [, "(\\d{2})(\\d{4,5})(\\d{5})", "$1 $2 $3", ["[1-3]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , "348[57]\\d{7}", , , , "34851234567", , , [11]], + ], + 883: [ + , + [, , "(?:210|370\\d\\d)\\d{7}|51\\d{7}(?:\\d{3})?", , , , , , , [9, 10, 12]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "(?:210|(?:370[1-9]|51[013]0)\\d)\\d{7}|5100\\d{5}", , , , "510012345"], + "001", + 883, + , + , + , + , + , + , + , + 1, + [ + [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["510"]], + [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["2"]], + [, "(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["51[13]"]], + [, "(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[35]"]], + ], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + 888: [ + , + [, , "\\d{11}", , , , , , , [11]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "001", + 888, + , + , + , + , + , + , + , + 1, + [[, "(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3"]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , "\\d{11}", , , , "12345678901"], + , + , + [, , , , , , , , , [-1]], + ], + 979: [ + , + [, , "[1359]\\d{8}", , , , , , , [9], [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , "[1359]\\d{8}", , , , "123456789", , , , [8]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + "001", + 979, + , + , + , + , + , + , + , + 1, + [[, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[1359]"]]], + , + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + [, , , , , , , , , [-1]], + , + , + [, , , , , , , , , [-1]], + ], + }; /* -function __extends(d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { - this.constructor = d; - } - d.prototype = b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()); -} + Copyright (C) 2010 The Libphonenumber Authors. -exports.__assign = function () { - exports.__assign = - Object.assign || - function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return exports.__assign.apply(this, arguments); -}; + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -function __rest(s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; - } - return t; -} + http://www.apache.org/licenses/LICENSE-2.0 -function __awaiter(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + function K() { + this.g = {}; + } + K.i = void 0; + K.g = function () { + return K.i ? K.i : (K.i = new K()); + }; + var wa = { + 0: "0", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + "\uff10": "0", + "\uff11": "1", + "\uff12": "2", + "\uff13": "3", + "\uff14": "4", + "\uff15": "5", + "\uff16": "6", + "\uff17": "7", + "\uff18": "8", + "\uff19": "9", + "\u0660": "0", + "\u0661": "1", + "\u0662": "2", + "\u0663": "3", + "\u0664": "4", + "\u0665": "5", + "\u0666": "6", + "\u0667": "7", + "\u0668": "8", + "\u0669": "9", + "\u06f0": "0", + "\u06f1": "1", + "\u06f2": "2", + "\u06f3": "3", + "\u06f4": "4", + "\u06f5": "5", + "\u06f6": "6", + "\u06f7": "7", + "\u06f8": "8", + "\u06f9": "9", + }, + xa = { + 0: "0", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + "\uff10": "0", + "\uff11": "1", + "\uff12": "2", + "\uff13": "3", + "\uff14": "4", + "\uff15": "5", + "\uff16": "6", + "\uff17": "7", + "\uff18": "8", + "\uff19": "9", + "\u0660": "0", + "\u0661": "1", + "\u0662": "2", + "\u0663": "3", + "\u0664": "4", + "\u0665": "5", + "\u0666": "6", + "\u0667": "7", + "\u0668": "8", + "\u0669": "9", + "\u06f0": "0", + "\u06f1": "1", + "\u06f2": "2", + "\u06f3": "3", + "\u06f4": "4", + "\u06f5": "5", + "\u06f6": "6", + "\u06f7": "7", + "\u06f8": "8", + "\u06f9": "9", + A: "2", + B: "2", + C: "2", + D: "3", + E: "3", + F: "3", + G: "4", + H: "4", + I: "4", + J: "5", + K: "5", + L: "5", + M: "6", + N: "6", + O: "6", + P: "7", + Q: "7", + R: "7", + S: "7", + T: "8", + U: "8", + V: "8", + W: "9", + X: "9", + Y: "9", + Z: "9", + }, + L = /^[+\uff0b]+/, + ya = /([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9])/, + za = /[+\uff0b0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]/, + Aa = /[\\\/] *x/, + Ba = /[^0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9A-Za-z#]+$/, + Ca = /(?:.*?[A-Za-z]){3}.*/; + function N(a) { + return "([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1," + a + "})"; + } + function Da() { + return ( + ";ext=" + + N("20") + + "|[ \u00a0\\t,]*(?:e?xt(?:ensi(?:o\u0301?|\u00f3))?n?|\uff45?\uff58\uff54\uff4e?|\u0434\u043e\u0431|anexo)[:\\.\uff0e]?[ \u00a0\\t,-]*" + + (N("20") + + "#?|[ \u00a0\\t,]*(?:[x\uff58#\uff03~\uff5e]|int|\uff49\uff4e\uff54)[:\\.\uff0e]?[ \u00a0\\t,-]*") + + (N("9") + "#?|[- ]+") + + (N("6") + "#|[ \u00a0\\t]*(?:,{2}|;)[:\\.\uff0e]?[ \u00a0\\t,-]*") + + (N("15") + "#?|[ \u00a0\\t]*(?:,)+[:\\.\uff0e]?[ \u00a0\\t,-]*") + + (N("9") + "#?") + ); + } + var Ea = new RegExp("(?:" + Da() + ")$", "i"), + Fa = new RegExp( + "^[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{2}$|^[+\uff0b]*(?:[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*]*[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]){3,}[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*A-Za-z0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]*(?:" + + Da() + + ")?$", + "i" + ), + Ga = /(\$\d)/; + function Ha(a) { + return 2 > a.length ? !1 : O(Fa, a); + } + function Ia(a) { + return O(Ca, a) ? P(a, xa) : P(a, wa); + } + function Ja(a) { + var b = Ia(a.toString()); + a.i = ""; + a.g(b); + } + function Ka(a) { + return null != a && (1 != x(a, 9) || -1 != u(a, 9)[0]); + } + function P(a, b) { + for (var c = new E(), d, e = a.length, g = 0; g < e; ++g) + (d = a.charAt(g)), (d = b[d.toUpperCase()]), null != d && c.g(d); + return c.toString(); + } + function Q(a) { + return null != a && isNaN(a) && a.toUpperCase() in va; + } + function La(a, b, c) { + if (0 == p(b, 2) && null != b.g[5]) { + var d = w(b, 5); + if (0 < d.length) return d; } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); + d = w(b, 1); + var e = R(b); + if (0 == c) return Ma(d, 0, e, ""); + if (!(d in J)) return e; + a = S(a, d, T(d)); + b = + null != b.g[3] && 0 != p(b, 3).length + ? 3 == c + ? ";ext=" + p(b, 3) + : null != a.g[13] + ? p(a, 13) + w(b, 3) + : " ext. " + w(b, 3) + : ""; + a: { + a = 0 == u(a, 20).length || 2 == c ? u(a, 19) : u(a, 20); + for (var g, f = a.length, h = 0; h < f; ++h) { + g = a[h]; + var l = x(g, 3); + if (0 == l || 0 == e.search(p(g, 3, l - 1))) + if (((l = new RegExp(p(g, 1))), O(l, e))) { + a = g; + break a; + } } + a = null; } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + null != a && + ((f = a), + (a = w(f, 2)), + (g = new RegExp(p(f, 1))), + w(f, 5), + (f = w(f, 4)), + (e = 2 == c && null != f && 0 < f.length ? e.replace(g, a.replace(Ga, f)) : e.replace(g, a)), + 3 == c && + ((e = e.replace( + /^[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\[\]/~\u2053\u223c\uff5e]+/, + "" + )), + (e = e.replace( + /[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\[\]/~\u2053\u223c\uff5e]+/g, + "-" + )))); + return Ma(d, c, e, b); + } + function S(a, b, c) { + return "001" == c ? U(a, "" + b) : U(a, c); + } + function R(a) { + if (null == a.g[2]) return ""; + var b = "" + p(a, 2); + return null != a.g[4] && p(a, 4) && 0 < w(a, 8) ? Array(w(a, 8) + 1).join("0") + b : b; + } + function Ma(a, b, c, d) { + switch (b) { + case 0: + return "+" + a + c + d; + case 1: + return "+" + a + " " + c + d; + case 3: + return "tel:+" + a + "-" + c + d; + default: + return c + d; } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -} - -function __generator(thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [], - }, - f, - y, - t, - g; - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === "function" && - (g[Symbol.iterator] = function () { - return this; - }), - g - ); - function verb(n) { - return function (v) { - return step([n, v]); - }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while ((g && ((g = 0), op[0] && (_ = 0)), _)) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y["return"] - : op[0] - ? y["throw"] || ((t = y["return"]) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t; - if (((y = 0), t)) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: - case 1: - t = op; - break; - case 4: - _.label++; - return { value: op[1], done: false }; - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; - case 7: - op = _.ops.pop(); - _.trys.pop(); - continue; - default: - if (!((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1]; - break; - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } - if (t && _.label < t[2]) { - _.label = t[2]; - _.ops.push(op); - break; + function V(a, b) { + switch (b) { + case 4: + return p(a, 5); + case 3: + return p(a, 4); + case 1: + return p(a, 3); + case 0: + case 2: + return p(a, 2); + case 5: + return p(a, 6); + case 6: + return p(a, 8); + case 7: + return p(a, 7); + case 8: + return p(a, 21); + case 9: + return p(a, 25); + case 10: + return p(a, 28); + default: + return p(a, 1); + } + } + function W(a, b) { + return X(a, p(b, 1)) + ? X(a, p(b, 5)) + ? 4 + : X(a, p(b, 4)) + ? 3 + : X(a, p(b, 6)) + ? 5 + : X(a, p(b, 8)) + ? 6 + : X(a, p(b, 7)) + ? 7 + : X(a, p(b, 21)) + ? 8 + : X(a, p(b, 25)) + ? 9 + : X(a, p(b, 28)) + ? 10 + : X(a, p(b, 2)) + ? p(b, 18) || X(a, p(b, 3)) + ? 2 + : 0 + : !p(b, 18) && X(a, p(b, 3)) + ? 1 + : -1 + : -1; + } + function U(a, b) { + if (null == b) return null; + b = b.toUpperCase(); + var c = a.g[b]; + if (null == c) { + c = va[b]; + if (null == c) return null; + c = new D().g(H.j(), c); + a.g[b] = c; + } + return c; + } + function X(a, b) { + var c = a.length; + return 0 < x(b, 9) && -1 == u(b, 9).indexOf(c) ? !1 : O(w(b, 2), a); + } + function Na(a, b) { + if (null == b) return null; + var c = w(b, 1); + c = J[c]; + if (null == c) a = null; + else if (1 == c.length) a = c[0]; + else + a: { + b = R(b); + for (var d, e = c.length, g = 0; g < e; g++) { + d = c[g]; + var f = U(a, d); + if (null != f.g[23]) { + if (0 == b.search(p(f, 23))) { + a = d; + break a; } - if (t[2]) _.ops.pop(); - _.trys.pop(); - continue; + } else if (-1 != W(b, f)) { + a = d; + break a; + } } - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; + a = null; } - if (op[0] & 5) throw op[1]; - return { value: op[0] ? op[1] : void 0, done: true }; + return a; } -} - -function __spreadArray(to, from, pack) { - if (pack || arguments.length === 2) - for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; + function T(a) { + a = J[a]; + return null == a ? "ZZ" : a[0]; + } + function Y(a, b, c, d) { + var e = V(c, d), + g = 0 == x(e, 9) ? u(p(c, 1), 9) : u(e, 9); + e = u(e, 10); + if (2 == d) + if (Ka(V(c, 0))) + (a = V(c, 1)), + Ka(a) && + ((g = g.concat(0 == x(a, 9) ? u(p(c, 1), 9) : u(a, 9))), + g.sort(), + 0 == e.length ? (e = u(a, 10)) : ((e = e.concat(u(a, 10))), e.sort())); + else return Y(a, b, c, 1); + if (-1 == g[0]) return 5; + b = b.length; + if (-1 < e.indexOf(b)) return 4; + c = g[0]; + return c == b ? 0 : c > b ? 2 : g[g.length - 1] < b ? 3 : -1 < g.indexOf(b, 1) ? 0 : 5; + } + function Oa(a, b) { + var c = R(b); + b = w(b, 1); + if (!(b in J)) return 1; + b = S(a, b, T(b)); + return Y(a, c, b, -1); + } + function Pa(a, b, c, d, e, g) { + if (0 == b.length) return 0; + b = new E(b); + var f; + null != c && (f = p(c, 11)); + null == f && (f = "NonMatch"); + var h = b.toString(); + if (0 == h.length) f = 20; + else if (L.test(h)) (h = h.replace(L, "")), (b.i = ""), b.g(Ia(h)), (f = 1); + else { + h = new RegExp(f); + Ja(b); + f = b.toString(); + if (0 == f.search(h)) { + h = f.match(h)[0].length; + var l = f.substring(h).match(ya); + l && null != l[1] && 0 < l[1].length && "0" == P(l[1], wa) + ? (f = !1) + : ((b.i = ""), b.g(f.substring(h)), (f = !0)); + } else f = !1; + f = f ? 5 : 20; + } + e && q(g, 6, f); + if (20 != f) { + if (2 >= b.i.length) throw Error("Phone number too short after IDD"); + a: { + a = b.toString(); + if (0 != a.length && "0" != a.charAt(0)) + for (e = a.length, b = 1; 3 >= b && b <= e; ++b) + if (((c = parseInt(a.substring(0, b), 10)), c in J)) { + d.g(a.substring(b)); + d = c; + break a; + } + d = 0; } + if (0 != d) return q(g, 1, d), d; + throw Error("Invalid country calling code"); } - return to.concat(ar || Array.prototype.slice.call(from)); -} - -/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. - * - * This software is licensed under the Apache License, Version 2.0 (the - * "License") as published by the Apache Software Foundation. - * - * You may not use this file except in compliance with the License. You may - * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - */ -/* - * Consts. - */ -var RECIPE_ID_QUERY_PARAM = "rid"; -var DEFAULT_API_BASE_PATH = "/auth"; -var DEFAULT_WEBSITE_BASE_PATH = "/auth"; -var ST_ROOT_ID = "supertokens-root"; -var SSR_ERROR = - "\nIf you are trying to use this method doing server-side-rendering, please make sure you move this method inside a componentDidMount method or useEffect hook."; - -/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. - * - * This software is licensed under the Apache License, Version 2.0 (the - * "License") as published by the Apache Software Foundation. - * - * You may not use this file except in compliance with the License. You may - * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - */ -/* - * getRecipeIdFromPath - * Input: - * Output: The "rid" query param if present, null otherwise. - */ -function getRecipeIdFromSearch(search) { - var urlParams = new URLSearchParams(search); - return urlParams.get(RECIPE_ID_QUERY_PARAM); -} -function clearQueryParams(paramNames) { - var newURL = new URL(windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getHref()); - for (var _i = 0, paramNames_1 = paramNames; _i < paramNames_1.length; _i++) { - var param = paramNames_1[_i]; - newURL.searchParams.delete(param); - } - windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.history.replaceState( - windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.history.getState(), - "", - windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getHref() - ); -} -function clearErrorQueryParam() { - clearQueryParams(["error", "message"]); -} -function getQueryParams(param) { - var urlParams = new URLSearchParams( - windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getSearch() - ); - return urlParams.get(param); -} -function getURLHash() { - // By default it is returined with the "#" at the beginning, we cut that off here. - return windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getHash().substr(1); -} -function getRedirectToPathFromURL() { - var param = getQueryParams("redirectToPath"); - if (param === null) { - return undefined; - } else { - // Prevent Open redirects by normalising path. - try { - var normalisedURLPath = new NormalisedURLPath__default.default(param).getAsStringDangerous(); - var pathQueryParams = param.split("?")[1] !== undefined ? "?".concat(param.split("?")[1]) : ""; - return normalisedURLPath + pathQueryParams; - } catch (_a) { - return undefined; + if ( + null != c && + ((f = w(c, 10)), + (h = "" + f), + (l = b.toString()), + 0 == l.lastIndexOf(h, 0) && + ((h = new E(l.substring(h.length))), + (l = p(c, 1)), + (l = new RegExp(w(l, 2))), + Qa(h, c, null), + (h = h.toString()), + (!O(l, b.toString()) && O(l, h)) || 3 == Y(a, b.toString(), c, -1))) + ) + return d.g(h), e && q(g, 6, 10), q(g, 1, f), f; + q(g, 1, 0); + return 0; + } + function Qa(a, b, c) { + var d = a.toString(), + e = d.length, + g = p(b, 15); + if (0 != e && null != g && 0 != g.length) { + var f = new RegExp("^(?:" + g + ")"); + if ((e = f.exec(d))) { + g = new RegExp(w(p(b, 1), 2)); + var h = O(g, d), + l = e.length - 1; + b = p(b, 16); + if (null == b || 0 == b.length || null == e[l] || 0 == e[l].length) { + if (!h || O(g, d.substring(e[0].length))) + null != c && 0 < l && null != e[l] && c.g(e[1]), a.set(d.substring(e[0].length)); + } else if (((d = d.replace(f, b)), !h || O(g, d))) null != c && 0 < l && c.g(e[1]), a.set(d); + } } } -} -/* - * isTest - */ -function isTest() { - try { - return process.env.TEST_MODE === "testing"; - } catch (err) { - // can get Uncaught ReferenceError: process is not defined error - return false; - } -} -function normaliseInputAppInfoOrThrowError(appInfo) { - if (appInfo === undefined) { - throw new Error("Please provide the appInfo object when calling supertokens.init"); - } - if (appInfo.apiDomain === undefined) { - throw new Error("Please provide your apiDomain inside the appInfo object when calling supertokens.init"); - } - if (appInfo.appName === undefined) { - throw new Error("Please provide your appName inside the appInfo object when calling supertokens.init"); - } - if (appInfo.websiteDomain === undefined) { - throw new Error("Please provide your websiteDomain inside the appInfo object when calling supertokens.init"); - } - var apiGatewayPath = new NormalisedURLPath__default.default(""); - if (appInfo.apiGatewayPath !== undefined) { - apiGatewayPath = new NormalisedURLPath__default.default(appInfo.apiGatewayPath); - } - return { - appName: appInfo.appName, - apiDomain: new NormalisedURLDomain__default.default(appInfo.apiDomain), - websiteDomain: new NormalisedURLDomain__default.default(appInfo.websiteDomain), - apiBasePath: apiGatewayPath.appendPath( - getNormalisedURLPathOrDefault(DEFAULT_API_BASE_PATH, appInfo.apiBasePath) - ), - websiteBasePath: getNormalisedURLPathOrDefault(DEFAULT_WEBSITE_BASE_PATH, appInfo.websiteBasePath), - }; -} -function getNormalisedURLPathOrDefault(defaultPath, path) { - if (path !== undefined) { - return new NormalisedURLPath__default.default(path); - } else { - return new NormalisedURLPath__default.default(defaultPath); - } -} -/* - * validateForm - */ -// We check that the number of fields in input and config form field is the same. -// We check that each item in the config form field is also present in the input form field -function validateForm(inputs, configFormFields) { - return __awaiter(this, void 0, void 0, function () { - var validationErrors, _loop_1, i; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - validationErrors = []; - if (configFormFields.length !== inputs.length) { - throw Error("Are you sending too many / too few formFields?"); + function Z(a, b, c) { + if (!Q(c) && 0 < b.length && "+" != b.charAt(0)) throw Error("Invalid country calling code"); + return Ra(a, b, c, !0); + } + function Ra(a, b, c, d) { + if (null == b) throw Error("The string supplied did not seem to be a phone number"); + if (250 < b.length) throw Error("The string supplied is too long to be a phone number"); + var e = new E(), + g = b.indexOf(";phone-context="); + if (0 <= g) { + var f = g + 15; + if ("+" == b.charAt(f)) { + var h = b.indexOf(";", f); + 0 < h ? e.g(b.substring(f, h)) : e.g(b.substring(f)); + } + f = b.indexOf("tel:"); + e.g(b.substring(0 <= f ? f + 4 : 0, g)); + } else + (g = e.g), + (f = b.search(za)), + 0 <= f + ? ((f = b.substring(f)), + (f = f.replace(Ba, "")), + (h = f.search(Aa)), + 0 <= h && (f = f.substring(0, h))) + : (f = ""), + g.call(e, f); + g = e.toString(); + f = g.indexOf(";isub="); + 0 < f && ((e.i = ""), e.g(g.substring(0, f))); + if (!Ha(e.toString())) throw Error("The string supplied did not seem to be a phone number"); + g = e.toString(); + if (!(Q(c) || (null != g && 0 < g.length && L.test(g)))) throw Error("Invalid country calling code"); + g = new I(); + d && q(g, 5, b); + a: { + b = e.toString(); + f = b.search(Ea); + if (0 <= f && Ha(b.substring(0, f))) { + h = b.match(Ea); + for (var l = h.length, z = 1; z < l; ++z) + if (null != h[z] && 0 < h[z].length) { + e.i = ""; + e.g(b.substring(0, f)); + b = h[z]; + break a; } - _loop_1 = function (i) { - var field, input, value, error; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - field = configFormFields[i]; - input = inputs.find(function (i) { - return i.id === field.id; - }); - value = input.value; - if (input.id === "email") { - value = value.trim(); - } - return [4 /*yield*/, field.validate(value)]; - case 1: - error = _b.sent(); - // If error, add it. - if (error !== undefined) { - validationErrors.push({ - error: error, - id: field.id, - }); - } - return [2 /*return*/]; - } - }); - }; - i = 0; - _a.label = 1; - case 1: - if (!(i < configFormFields.length)) return [3 /*break*/, 4]; - return [5 /*yield**/, _loop_1(i)]; - case 2: - _a.sent(); - _a.label = 3; - case 3: - i++; - return [3 /*break*/, 1]; - case 4: - return [2 /*return*/, validationErrors]; } - }); + b = ""; + } + 0 < b.length && q(g, 3, b); + f = U(a, c); + b = new E(); + h = 0; + l = e.toString(); + try { + h = Pa(a, l, f, b, d, g); + } catch (M) { + if ("Invalid country calling code" == M.message && L.test(l)) { + if (((l = l.replace(L, "")), (h = Pa(a, l, f, b, d, g)), 0 == h)) throw M; + } else throw M; + } + 0 != h + ? ((e = T(h)), e != c && (f = S(a, h, e))) + : (Ja(e), + b.g(e.toString()), + null != c ? ((h = w(f, 10)), q(g, 1, h)) : d && (delete g.g[6], g.i && delete g.i[6])); + if (2 > b.i.length) throw Error("The string supplied is too short to be a phone number"); + null != f && + ((c = new E()), + (e = new E(b.toString())), + Qa(e, f, c), + (a = Y(a, e.toString(), f, -1)), + 2 != a && 4 != a && 5 != a && ((b = e), d && 0 < c.toString().length && q(g, 7, c.toString()))); + d = b.toString(); + a = d.length; + if (2 > a) throw Error("The string supplied is too short to be a phone number"); + if (17 < a) throw Error("The string supplied is too long to be a phone number"); + if (1 < d.length && "0" == d.charAt(0)) { + q(g, 4, !0); + for (a = 1; a < d.length - 1 && "0" == d.charAt(a); ) a++; + 1 != a && q(g, 8, a); + } + q(g, 2, parseInt(d, 10)); + return g; + } + function O(a, b) { + return (a = "string" == typeof a ? b.match("^(?:" + a + ")$") : b.match(a)) && a[0].length == b.length + ? !0 + : !1; + } + k("intlTelInputUtils", {}); + k("intlTelInputUtils.formatNumber", function (a, b, c) { + try { + var d = K.g(), + e = Z(d, a, b), + g = Oa(d, e); + return 0 == g || 4 == g ? La(d, e, "undefined" == typeof c ? 0 : c) : a; + } catch (f) { + return a; + } }); -} -/* - * getCurrentNormalisedUrlPath - */ -function getCurrentNormalisedUrlPath() { - return new NormalisedURLPath__default.default( - windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getPathName() - ); -} -function appendQueryParamsToURL(stringUrl, queryParams) { - if (queryParams === undefined) { - return stringUrl; - } - try { - var url_1 = new URL(stringUrl); - Object.entries(queryParams).forEach(function (_a) { - var key = _a[0], - value = _a[1]; - url_1.searchParams.set(key, value); - }); - return url_1.href; - } catch (e) { - var fakeDomain = stringUrl.startsWith("/") ? "http:localhost" : "http://localhost/"; - var url_2 = new URL("".concat(fakeDomain).concat(stringUrl)); - Object.entries(queryParams).forEach(function (_a) { - var key = _a[0], - value = _a[1]; - url_2.searchParams.set(key, value); - }); - return "".concat(url_2.pathname).concat(url_2.search); - } -} -function appendTrailingSlashToURL(stringUrl) { - return stringUrl.endsWith("/") ? stringUrl : stringUrl + "/"; -} -/* - * Default method for matching recipe route based on query params. - */ -function matchRecipeIdUsingQueryParams(recipeId) { - return function () { - var recipeIdFromSearch = getRecipeIdFromSearch( - windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getSearch() - ); - return recipeIdFromSearch === recipeId; - }; -} -function redirectWithFullPageReload(to) { - if (to.trim() === "") { - to = "/"; - } - windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.setHref(to); -} -function redirectWithHistory(to, history) { - if (to.trim() === "") { - to = "/"; - } - if (history.push !== undefined) { - // we are using react-router-dom that is before v6 - history.push(to); - } else { - // in react-router-dom v6, it is just navigate(to), and we are renaming - // naviagte to history, so it becomes history(to). - history(to); - } -} -function getOriginOfPage() { - return new NormalisedURLDomain__default.default( - windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getOrigin() - ); -} -function getLocalStorage(key) { - return __awaiter(this, void 0, void 0, function () { - var res; - return __generator(this, function (_a) { - res = windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.localStorage.getItem(key); - if (res === null || res === undefined) { - return [2 /*return*/, null]; + k("intlTelInputUtils.getExampleNumber", function (a, b, c) { + try { + var d = K.g(); + a: { + if (Q(a)) { + var e = V(U(d, a), c); + try { + if (null != e.g[6]) { + var g = p(e, 6); + var f = Ra(d, g, a, !1); + break a; + } + } catch (h) {} + } + f = null; } - return [2 /*return*/, res]; - }); + return La(d, f, b ? 2 : 1); + } catch (h) { + return ""; + } }); -} -function setLocalStorage(key, value) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4 /*yield*/, - windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.localStorage.setItem( - key, - value - ), - ]; - case 1: - _a.sent(); - return [2 /*return*/]; - } - }); + k("intlTelInputUtils.getExtension", function (a, b) { + try { + return p(Z(K.g(), a, b), 3); + } catch (c) { + return ""; + } }); -} -function removeFromLocalStorage(key) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4 /*yield*/, - windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.localStorage.removeItem( - key - ), - ]; - case 1: - _a.sent(); - return [2 /*return*/]; + k("intlTelInputUtils.getNumberType", function (a, b) { + try { + var c = K.g(); + var d = Z(c, a, b), + e = Na(c, d), + g = S(c, w(d, 1), e); + if (null == g) var f = -1; + else { + var h = R(d); + f = W(h, g); } - }); - }); -} -function mergeObjects(obj1, obj2) { - var res = exports.__assign({}, obj1); - for (var key in obj2) { - if (typeof res[key] === "object" && typeof obj2[key] === "object") { - res[key] = mergeObjects(res[key], obj2[key]); - } else { - res[key] = obj2[key]; - } - } - return res; -} -function normaliseCookieScopeOrThrowError(cookieScope) { - function helper(cookieScope) { - cookieScope = cookieScope.trim().toLowerCase(); - // first we convert it to a URL so that we can use the URL class - if (cookieScope.startsWith(".")) { - cookieScope = cookieScope.substr(1); + return f; + } catch (l) { + return -99; } - if (!cookieScope.startsWith("http://") && !cookieScope.startsWith("https://")) { - cookieScope = "http://" + cookieScope; + }); + k("intlTelInputUtils.getValidationError", function (a, b) { + try { + var c = K.g(), + d = Z(c, a, b); + return Oa(c, d); + } catch (e) { + return "Invalid country calling code" == e.message + ? 1 + : "Phone number too short after IDD" == e.message || + "The string supplied is too short to be a phone number" == e.message + ? 2 + : "The string supplied is too long to be a phone number" == e.message + ? 3 + : -99; } + }); + k("intlTelInputUtils.isValidNumber", function (a, b) { try { - var urlObj = new URL(cookieScope); - cookieScope = urlObj.hostname; - // remove leading dot - if (cookieScope.startsWith(".")) { - cookieScope = cookieScope.substr(1); + var c = K.g(), + d = Z(c, a, b); + var e = Na(c, d), + g = w(d, 1), + f = S(c, g, e), + h; + if (!(h = null == f)) { + var l; + if ((l = "001" != e)) { + var z = U(c, e); + if (null == z) throw Error("Invalid region code: " + e); + var M = w(z, 10); + l = g != M; + } + h = l; } - return cookieScope; - } catch (err) { - throw new Error("Please provide a valid cookie scope"); - } - } - function isAnIpAddress(ipaddress) { - return /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test( - ipaddress - ); - } - var noDotNormalised = helper(cookieScope); - if (noDotNormalised === "localhost" || isAnIpAddress(noDotNormalised)) { - return noDotNormalised; - } - if (cookieScope.startsWith(".")) { - return "." + noDotNormalised; - } - return noDotNormalised; -} -function getDefaultCookieScope() { - try { - return normaliseCookieScopeOrThrowError( - windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getHostName() - ); - } catch (_a) { - return undefined; - } -} -function getCookieValue(name) { - return __awaiter(this, void 0, void 0, function () { - var value, _a, parts, last, temp; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = "; "; - return [ - 4 /*yield*/, - cookieHandler.CookieHandlerReference.getReferenceOrThrow().cookieHandler.getCookie(), - ]; - case 1: - value = _a + _b.sent(); - parts = value.split("; " + name + "="); - if (parts.length >= 2) { - last = parts.pop(); - if (last !== undefined) { - temp = last.split(";").shift(); - if (temp === undefined) { - return [2 /*return*/, null]; - } - return [2 /*return*/, temp]; - } - } - return [2 /*return*/, null]; + if (h) var ua = !1; + else { + var Sa = R(d); + ua = -1 != W(Sa, f); } - }); + return ua; + } catch (Ta) { + return !1; + } }); -} -// undefined value will remove the cookie -function setFrontendCookie(name, value, scope) { - return __awaiter(this, void 0, void 0, function () { - var expires, cookieVal; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - expires = "Thu, 01 Jan 1970 00:00:01 GMT"; - cookieVal = ""; - if (value !== undefined) { - cookieVal = value; - expires = undefined; // set cookie without expiry - } - if ( - !( - scope === "localhost" || - scope === - windowHandler.WindowHandlerReference.getReferenceOrThrow().windowHandler.location.getHostName() || - scope === undefined - ) - ) - return [3 /*break*/, 5]; - if (!(expires !== undefined)) return [3 /*break*/, 2]; - return [ - 4 /*yield*/, - cookieHandler.CookieHandlerReference.getReferenceOrThrow().cookieHandler.setCookie( - "".concat(name, "=").concat(cookieVal, ";expires=").concat(expires, ";path=/;samesite=lax") - ), - ]; - case 1: - _a.sent(); - return [3 /*break*/, 4]; - case 2: - return [ - 4 /*yield*/, - cookieHandler.CookieHandlerReference.getReferenceOrThrow().cookieHandler.setCookie( - "" - .concat(name, "=") - .concat(cookieVal, ";expires=Fri, 31 Dec 9999 23:59:59 GMT;path=/;samesite=lax") - ), - ]; - case 3: - _a.sent(); - _a.label = 4; - case 4: - return [3 /*break*/, 9]; - case 5: - if (!(expires !== undefined)) return [3 /*break*/, 7]; - return [ - 4 /*yield*/, - cookieHandler.CookieHandlerReference.getReferenceOrThrow().cookieHandler.setCookie( - "" - .concat(name, "=") - .concat(cookieVal, ";expires=") - .concat(expires, ";domain=") - .concat(scope, ";path=/;samesite=lax") - ), - ]; - case 6: - _a.sent(); - return [3 /*break*/, 9]; - case 7: - return [ - 4 /*yield*/, - cookieHandler.CookieHandlerReference.getReferenceOrThrow().cookieHandler.setCookie( - "" - .concat(name, "=") - .concat(cookieVal, ";domain=") - .concat(scope, ";expires=Fri, 31 Dec 9999 23:59:59 GMT;path=/;samesite=lax") - ), - ]; - case 8: - _a.sent(); - _a.label = 9; - case 9: - return [2 /*return*/]; - } - }); + k("intlTelInputUtils.numberFormat", { E164: 0, INTERNATIONAL: 1, NATIONAL: 2, RFC3966: 3 }); + k("intlTelInputUtils.numberType", { + FIXED_LINE: 0, + MOBILE: 1, + FIXED_LINE_OR_MOBILE: 2, + TOLL_FREE: 3, + PREMIUM_RATE: 4, + SHARED_COST: 5, + VOIP: 6, + PERSONAL_NUMBER: 7, + PAGER: 8, + UAN: 9, + VOICEMAIL: 10, + UNKNOWN: -1, }); -} -function getNormalisedUserContext(userContext) { - return userContext === undefined ? {} : userContext; -} -/** - * This function handles calling APIs that should only be called once during mount (mostly on mount of a route/feature component). - * It's split into multiple callbacks (fetch + handleResponse/handleError) because we expect fetch to take longer and - * and the component may be unmounted during the first fetch, in which case we want to avoid updating state/redirecting. - * This is especially relevant for development in strict mode with React 18 (and in the future for concurrent rendering). - * - * @param fetch This is a callback that is only called once on mount. Mostly it's for consuming tokens/doing one time only API calls - * @param handleResponse This is called with the result of the first (fetch) call if it succeeds. - * @param handleError This is called with the error of the first (fetch) call if it rejects. - * @param startLoading Will start the whole process if this is set to true (or omitted). Mostly used to wait for session loading. - */ -var useOnMountAPICall = function (fetch, handleResponse, handleError, startLoading) { - if (startLoading === void 0) { - startLoading = true; - } - var consumeReq = React.useRef(); - var _a = React.useState(undefined), - error = _a[0], - setError = _a[1]; - React.useEffect( - function () { - var effect = function (signal) { - return __awaiter(void 0, void 0, void 0, function () { - var resp, err_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - if (consumeReq.current === undefined) { - consumeReq.current = fetch(); - } - return [4 /*yield*/, consumeReq.current]; - case 1: - resp = _a.sent(); - if (!signal.aborted) { - void handleResponse(resp); - } - return [3 /*break*/, 3]; - case 2: - err_1 = _a.sent(); - if (!signal.aborted) { - if (handleError !== undefined) { - handleError(err_1, resp); - } else { - setError(err_1); - } - } - return [3 /*break*/, 3]; - case 3: - return [2 /*return*/]; - } - }); - }); - }; - if (startLoading) { - var ctrl_1 = new AbortController(); - void effect(ctrl_1.signal); - return function () { - ctrl_1.abort(); - }; - } - return; - }, - [setError, consumeReq, fetch, handleResponse, handleError, startLoading] - ); - if (error) { - throw error; - } -}; - -exports.SSR_ERROR = SSR_ERROR; -exports.ST_ROOT_ID = ST_ROOT_ID; -exports.__awaiter = __awaiter; -exports.__extends = __extends; -exports.__generator = __generator; -exports.__rest = __rest; -exports.__spreadArray = __spreadArray; -exports.appendQueryParamsToURL = appendQueryParamsToURL; -exports.appendTrailingSlashToURL = appendTrailingSlashToURL; -exports.clearErrorQueryParam = clearErrorQueryParam; -exports.clearQueryParams = clearQueryParams; -exports.getCookieValue = getCookieValue; -exports.getCurrentNormalisedUrlPath = getCurrentNormalisedUrlPath; -exports.getDefaultCookieScope = getDefaultCookieScope; -exports.getLocalStorage = getLocalStorage; -exports.getNormalisedUserContext = getNormalisedUserContext; -exports.getOriginOfPage = getOriginOfPage; -exports.getQueryParams = getQueryParams; -exports.getRedirectToPathFromURL = getRedirectToPathFromURL; -exports.getURLHash = getURLHash; -exports.isTest = isTest; -exports.matchRecipeIdUsingQueryParams = matchRecipeIdUsingQueryParams; -exports.mergeObjects = mergeObjects; -exports.normaliseCookieScopeOrThrowError = normaliseCookieScopeOrThrowError; -exports.normaliseInputAppInfoOrThrowError = normaliseInputAppInfoOrThrowError; -exports.redirectWithFullPageReload = redirectWithFullPageReload; -exports.redirectWithHistory = redirectWithHistory; -exports.removeFromLocalStorage = removeFromLocalStorage; -exports.setFrontendCookie = setFrontendCookie; -exports.setLocalStorage = setLocalStorage; -exports.useOnMountAPICall = useOnMountAPICall; -exports.validateForm = validateForm; + k("intlTelInputUtils.validationError", { + IS_POSSIBLE: 0, + INVALID_COUNTRY_CODE: 1, + TOO_SHORT: 2, + TOO_LONG: 3, + IS_POSSIBLE_LOCAL_ONLY: 4, + INVALID_LENGTH: 5, + }); +})(); diff --git a/lib/build/utils2.js b/lib/build/utils2.js deleted file mode 100644 index 57af5b688..000000000 --- a/lib/build/utils2.js +++ /dev/null @@ -1,13566 +0,0 @@ -"use strict"; - -(function () { - /* - - Copyright The Closure Library Authors. - SPDX-License-Identifier: Apache-2.0 -*/ - var aa = this || self; - function k(a, b) { - a = a.split("."); - var c = aa; - a[0] in c || "undefined" == typeof c.execScript || c.execScript("var " + a[0]); - for (var d; a.length && (d = a.shift()); ) - a.length || void 0 === b - ? c[d] && c[d] !== Object.prototype[d] - ? (c = c[d]) - : (c = c[d] = {}) - : (c[d] = b); - } - function m(a, b) { - function c() {} - c.prototype = b.prototype; - a.$ = b.prototype; - a.prototype = new c(); - a.prototype.constructor = a; - a.fa = function (d, e, g) { - for (var f = Array(arguments.length - 2), h = 2; h < arguments.length; h++) f[h - 2] = arguments[h]; - return b.prototype[e].apply(d, f); - }; - } - function ba(a) { - var b = [], - c = 0, - d; - for (d in a) b[c++] = a[d]; - return b; - } - function ca(a, b) { - a.sort(b || da); - } - function da(a, b) { - return a > b ? 1 : a < b ? -1 : 0; - } - function ea(a, b) { - this.g = a; - this.m = !!b.o; - this.i = b.h; - this.v = b.type; - this.u = !1; - switch (this.i) { - case fa: - case ha: - case ia: - case ja: - case ka: - case la: - case ma: - this.u = !0; - } - this.l = b.defaultValue; - } - var ma = 1, - la = 2, - fa = 3, - ha = 4, - ia = 6, - ja = 16, - ka = 18; - function na(a, b) { - this.i = a; - this.g = {}; - for (a = 0; a < b.length; a++) { - var c = b[a]; - this.g[c.g] = c; - } - } - function oa(a) { - a = ba(a.g); - ca(a, function (b, c) { - return b.g - c.g; - }); - return a; - } - function n() { - this.g = {}; - this.l = this.j().g; - this.i = this.m = null; - } - n.prototype.has = function (a) { - return null != this.g[a.g]; - }; - n.prototype.get = function (a, b) { - return p(this, a.g, b); - }; - n.prototype.set = function (a, b) { - q(this, a.g, b); - }; - n.prototype.add = function (a, b) { - r(this, a.g, b); - }; - function t(a, b) { - for (var c = oa(a.j()), d = 0; d < c.length; d++) { - var e = c[d], - g = e.g; - if (null != b.g[g]) { - a.i && delete a.i[e.g]; - var f = 11 == e.i || 10 == e.i; - if (e.m) { - e = u(b, g); - for (var h = 0; h < e.length; h++) r(a, g, f ? e[h].clone() : e[h]); - } else (e = v(b, g)), f ? ((f = v(a, g)) ? t(f, e) : q(a, g, e.clone())) : q(a, g, e); - } - } - } - n.prototype.clone = function () { - var a = new this.constructor(); - a != this && ((a.g = {}), a.i && (a.i = {}), t(a, this)); - return a; - }; - function v(a, b) { - var c = a.g[b]; - if (null == c) return null; - if (a.m) { - if (!(b in a.i)) { - var d = a.m, - e = a.l[b]; - if (null != c) - if (e.m) { - for (var g = [], f = 0; f < c.length; f++) g[f] = d.i(e, c[f]); - c = g; - } else c = d.i(e, c); - return (a.i[b] = c); - } - return a.i[b]; - } - return c; - } - function p(a, b, c) { - var d = v(a, b); - return a.l[b].m ? d[c || 0] : d; - } - function w(a, b) { - if (null != a.g[b]) a = p(a, b, void 0); - else - a: { - a = a.l[b]; - if (void 0 === a.l) - if (((b = a.v), b === Boolean)) a.l = !1; - else if (b === Number) a.l = 0; - else if (b === String) a.l = a.u ? "0" : ""; - else { - a = new b(); - break a; - } - a = a.l; - } - return a; - } - function u(a, b) { - return v(a, b) || []; - } - function x(a, b) { - return a.l[b].m ? (null != a.g[b] ? a.g[b].length : 0) : null != a.g[b] ? 1 : 0; - } - function q(a, b, c) { - a.g[b] = c; - a.i && (a.i[b] = c); - } - function r(a, b, c) { - a.g[b] || (a.g[b] = []); - a.g[b].push(c); - a.i && delete a.i[b]; - } - function y(a, b) { - var c = [], - d; - for (d in b) 0 != d && c.push(new ea(d, b[d])); - return new na(a, c); - } - function A() {} - A.prototype.g = function (a) { - new a.i(); - throw Error("Unimplemented"); - }; - A.prototype.i = function (a, b) { - if (11 == a.i || 10 == a.i) return b instanceof n ? b : this.g(a.v.prototype.j(), b); - if (14 == a.i) return "string" === typeof b && B.test(b) && ((a = Number(b)), 0 < a) ? a : b; - if (!a.u) return b; - a = a.v; - if (a === String) { - if ("number" === typeof b) return String(b); - } else if ( - a === Number && - "string" === typeof b && - ("Infinity" === b || "-Infinity" === b || "NaN" === b || B.test(b)) - ) - return Number(b); - return b; - }; - var B = /^-?[0-9]+$/; - function C() {} - m(C, A); - C.prototype.g = function (a, b) { - a = new a.i(); - a.m = this; - a.g = b; - a.i = {}; - return a; - }; - function D() {} - m(D, C); - D.prototype.i = function (a, b) { - return 8 == a.i ? !!b : A.prototype.i.apply(this, arguments); - }; - D.prototype.g = function (a, b) { - return D.$.g.call(this, a, b); - }; - function E(a, b) { - null != a && this.g.apply(this, arguments); - } - E.prototype.i = ""; - E.prototype.set = function (a) { - this.i = "" + a; - }; - E.prototype.g = function (a, b, c) { - this.i += String(a); - if (null != b) for (var d = 1; d < arguments.length; d++) this.i += arguments[d]; - return this; - }; - E.prototype.toString = function () { - return this.i; - }; /* - - Protocol Buffer 2 Copyright 2008 Google Inc. - All other code copyright its respective owners. - Copyright (C) 2010 The Libphonenumber Authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - function F() { - n.call(this); - } - m(F, n); - var pa = null; - function G() { - n.call(this); - } - m(G, n); - var qa = null; - function H() { - n.call(this); - } - m(H, n); - var ra = null; - F.prototype.j = function () { - var a = pa; - a || - (pa = a = - y(F, { - 0: { name: "NumberFormat", s: "i18n.phonenumbers.NumberFormat" }, - 1: { name: "pattern", required: !0, h: 9, type: String }, - 2: { name: "format", required: !0, h: 9, type: String }, - 3: { name: "leading_digits_pattern", o: !0, h: 9, type: String }, - 4: { name: "national_prefix_formatting_rule", h: 9, type: String }, - 6: { name: "national_prefix_optional_when_formatting", h: 8, defaultValue: !1, type: Boolean }, - 5: { name: "domestic_carrier_code_formatting_rule", h: 9, type: String }, - })); - return a; - }; - F.j = F.prototype.j; - G.prototype.j = function () { - var a = qa; - a || - (qa = a = - y(G, { - 0: { name: "PhoneNumberDesc", s: "i18n.phonenumbers.PhoneNumberDesc" }, - 2: { name: "national_number_pattern", h: 9, type: String }, - 9: { name: "possible_length", o: !0, h: 5, type: Number }, - 10: { name: "possible_length_local_only", o: !0, h: 5, type: Number }, - 6: { name: "example_number", h: 9, type: String }, - })); - return a; - }; - G.j = G.prototype.j; - H.prototype.j = function () { - var a = ra; - a || - (ra = a = - y(H, { - 0: { name: "PhoneMetadata", s: "i18n.phonenumbers.PhoneMetadata" }, - 1: { name: "general_desc", h: 11, type: G }, - 2: { name: "fixed_line", h: 11, type: G }, - 3: { name: "mobile", h: 11, type: G }, - 4: { name: "toll_free", h: 11, type: G }, - 5: { name: "premium_rate", h: 11, type: G }, - 6: { name: "shared_cost", h: 11, type: G }, - 7: { name: "personal_number", h: 11, type: G }, - 8: { name: "voip", h: 11, type: G }, - 21: { name: "pager", h: 11, type: G }, - 25: { name: "uan", h: 11, type: G }, - 27: { name: "emergency", h: 11, type: G }, - 28: { name: "voicemail", h: 11, type: G }, - 29: { name: "short_code", h: 11, type: G }, - 30: { name: "standard_rate", h: 11, type: G }, - 31: { name: "carrier_specific", h: 11, type: G }, - 33: { name: "sms_services", h: 11, type: G }, - 24: { name: "no_international_dialling", h: 11, type: G }, - 9: { name: "id", required: !0, h: 9, type: String }, - 10: { name: "country_code", h: 5, type: Number }, - 11: { name: "international_prefix", h: 9, type: String }, - 17: { name: "preferred_international_prefix", h: 9, type: String }, - 12: { name: "national_prefix", h: 9, type: String }, - 13: { name: "preferred_extn_prefix", h: 9, type: String }, - 15: { name: "national_prefix_for_parsing", h: 9, type: String }, - 16: { name: "national_prefix_transform_rule", h: 9, type: String }, - 18: { name: "same_mobile_and_fixed_line_pattern", h: 8, defaultValue: !1, type: Boolean }, - 19: { name: "number_format", o: !0, h: 11, type: F }, - 20: { name: "intl_number_format", o: !0, h: 11, type: F }, - 22: { name: "main_country_for_code", h: 8, defaultValue: !1, type: Boolean }, - 23: { name: "leading_digits", h: 9, type: String }, - 26: { name: "leading_zero_possible", h: 8, defaultValue: !1, type: Boolean }, - })); - return a; - }; - H.j = H.prototype.j; - function I() { - n.call(this); - } - m(I, n); - var sa = null, - ta = { ea: 0, da: 1, ca: 5, ba: 10, aa: 20 }; - I.prototype.j = function () { - var a = sa; - a || - (sa = a = - y(I, { - 0: { name: "PhoneNumber", s: "i18n.phonenumbers.PhoneNumber" }, - 1: { name: "country_code", required: !0, h: 5, type: Number }, - 2: { name: "national_number", required: !0, h: 4, type: Number }, - 3: { name: "extension", h: 9, type: String }, - 4: { name: "italian_leading_zero", h: 8, type: Boolean }, - 8: { name: "number_of_leading_zeros", h: 5, defaultValue: 1, type: Number }, - 5: { name: "raw_input", h: 9, type: String }, - 6: { name: "country_code_source", h: 14, defaultValue: 0, type: ta }, - 7: { name: "preferred_domestic_carrier_code", h: 9, type: String }, - })); - return a; - }; - I.ctor = I; - I.ctor.j = I.prototype.j; /* - - Copyright (C) 2010 The Libphonenumber Authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - var J = { - 1: "US AG AI AS BB BM BS CA DM DO GD GU JM KN KY LC MP MS PR SX TC TT VC VG VI".split(" "), - 7: ["RU", "KZ"], - 20: ["EG"], - 27: ["ZA"], - 30: ["GR"], - 31: ["NL"], - 32: ["BE"], - 33: ["FR"], - 34: ["ES"], - 36: ["HU"], - 39: ["IT", "VA"], - 40: ["RO"], - 41: ["CH"], - 43: ["AT"], - 44: ["GB", "GG", "IM", "JE"], - 45: ["DK"], - 46: ["SE"], - 47: ["NO", "SJ"], - 48: ["PL"], - 49: ["DE"], - 51: ["PE"], - 52: ["MX"], - 53: ["CU"], - 54: ["AR"], - 55: ["BR"], - 56: ["CL"], - 57: ["CO"], - 58: ["VE"], - 60: ["MY"], - 61: ["AU", "CC", "CX"], - 62: ["ID"], - 63: ["PH"], - 64: ["NZ"], - 65: ["SG"], - 66: ["TH"], - 81: ["JP"], - 82: ["KR"], - 84: ["VN"], - 86: ["CN"], - 90: ["TR"], - 91: ["IN"], - 92: ["PK"], - 93: ["AF"], - 94: ["LK"], - 95: ["MM"], - 98: ["IR"], - 211: ["SS"], - 212: ["MA", "EH"], - 213: ["DZ"], - 216: ["TN"], - 218: ["LY"], - 220: ["GM"], - 221: ["SN"], - 222: ["MR"], - 223: ["ML"], - 224: ["GN"], - 225: ["CI"], - 226: ["BF"], - 227: ["NE"], - 228: ["TG"], - 229: ["BJ"], - 230: ["MU"], - 231: ["LR"], - 232: ["SL"], - 233: ["GH"], - 234: ["NG"], - 235: ["TD"], - 236: ["CF"], - 237: ["CM"], - 238: ["CV"], - 239: ["ST"], - 240: ["GQ"], - 241: ["GA"], - 242: ["CG"], - 243: ["CD"], - 244: ["AO"], - 245: ["GW"], - 246: ["IO"], - 247: ["AC"], - 248: ["SC"], - 249: ["SD"], - 250: ["RW"], - 251: ["ET"], - 252: ["SO"], - 253: ["DJ"], - 254: ["KE"], - 255: ["TZ"], - 256: ["UG"], - 257: ["BI"], - 258: ["MZ"], - 260: ["ZM"], - 261: ["MG"], - 262: ["RE", "YT"], - 263: ["ZW"], - 264: ["NA"], - 265: ["MW"], - 266: ["LS"], - 267: ["BW"], - 268: ["SZ"], - 269: ["KM"], - 290: ["SH", "TA"], - 291: ["ER"], - 297: ["AW"], - 298: ["FO"], - 299: ["GL"], - 350: ["GI"], - 351: ["PT"], - 352: ["LU"], - 353: ["IE"], - 354: ["IS"], - 355: ["AL"], - 356: ["MT"], - 357: ["CY"], - 358: ["FI", "AX"], - 359: ["BG"], - 370: ["LT"], - 371: ["LV"], - 372: ["EE"], - 373: ["MD"], - 374: ["AM"], - 375: ["BY"], - 376: ["AD"], - 377: ["MC"], - 378: ["SM"], - 380: ["UA"], - 381: ["RS"], - 382: ["ME"], - 383: ["XK"], - 385: ["HR"], - 386: ["SI"], - 387: ["BA"], - 389: ["MK"], - 420: ["CZ"], - 421: ["SK"], - 423: ["LI"], - 500: ["FK"], - 501: ["BZ"], - 502: ["GT"], - 503: ["SV"], - 504: ["HN"], - 505: ["NI"], - 506: ["CR"], - 507: ["PA"], - 508: ["PM"], - 509: ["HT"], - 590: ["GP", "BL", "MF"], - 591: ["BO"], - 592: ["GY"], - 593: ["EC"], - 594: ["GF"], - 595: ["PY"], - 596: ["MQ"], - 597: ["SR"], - 598: ["UY"], - 599: ["CW", "BQ"], - 670: ["TL"], - 672: ["NF"], - 673: ["BN"], - 674: ["NR"], - 675: ["PG"], - 676: ["TO"], - 677: ["SB"], - 678: ["VU"], - 679: ["FJ"], - 680: ["PW"], - 681: ["WF"], - 682: ["CK"], - 683: ["NU"], - 685: ["WS"], - 686: ["KI"], - 687: ["NC"], - 688: ["TV"], - 689: ["PF"], - 690: ["TK"], - 691: ["FM"], - 692: ["MH"], - 800: ["001"], - 808: ["001"], - 850: ["KP"], - 852: ["HK"], - 853: ["MO"], - 855: ["KH"], - 856: ["LA"], - 870: ["001"], - 878: ["001"], - 880: ["BD"], - 881: ["001"], - 882: ["001"], - 883: ["001"], - 886: ["TW"], - 888: ["001"], - 960: ["MV"], - 961: ["LB"], - 962: ["JO"], - 963: ["SY"], - 964: ["IQ"], - 965: ["KW"], - 966: ["SA"], - 967: ["YE"], - 968: ["OM"], - 970: ["PS"], - 971: ["AE"], - 972: ["IL"], - 973: ["BH"], - 974: ["QA"], - 975: ["BT"], - 976: ["MN"], - 977: ["NP"], - 979: ["001"], - 992: ["TJ"], - 993: ["TM"], - 994: ["AZ"], - 995: ["GE"], - 996: ["KG"], - 998: ["UZ"], - }, - va = { - AC: [ - , - [, , "(?:[01589]\\d|[46])\\d{4}", , , , , , , [5, 6]], - [, , "6[2-467]\\d{3}", , , , "62889", , , [5]], - [, , "4\\d{4}", , , , "40123", , , [5]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "AC", - 247, - "00", - , - , - , - , - , - , - , - , - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "(?:0[1-9]|[1589]\\d)\\d{4}", , , , "542011", , , [6]], - , - , - [, , , , , , , , , [-1]], - ], - AD: [ - , - [, , "(?:1|6\\d)\\d{7}|[135-9]\\d{5}", , , , , , , [6, 8, 9]], - [, , "[78]\\d{5}", , , , "712345", , , [6]], - [, , "690\\d{6}|[356]\\d{5}", , , , "312345", , , [6, 9]], - [, , "180[02]\\d{4}", , , , "18001234", , , [8]], - [, , "[19]\\d{5}", , , , "912345", , , [6]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "AD", - 376, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{3})", "$1 $2", ["[135-9]"]], - [, "(\\d{4})(\\d{4})", "$1 $2", ["1"]], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , "1800\\d{4}", , , , , , , [8]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - AE: [ - , - [, , "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}", , , , , , , [5, 6, 7, 8, 9, 10, 11, 12]], - [, , "[2-4679][2-8]\\d{6}", , , , "22345678", , , [8], [7]], - [, , "5[024-68]\\d{7}", , , , "501234567", , , [9]], - [, , "400\\d{6}|800\\d{2,9}", , , , "800123456"], - [, , "900[02]\\d{5}", , , , "900234567", , , [9]], - [, , "700[05]\\d{5}", , , , "700012345", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "AE", - 971, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{2,9})", "$1 $2", ["60|8"]], - [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[236]|[479][2-8]"], "0$1"], - [, "(\\d{3})(\\d)(\\d{5})", "$1 $2 $3", ["[479]"]], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "600[25]\\d{5}", , , , "600212345", , , [9]], - , - , - [, , , , , , , , , [-1]], - ], - AF: [ - , - [, , "[2-7]\\d{8}", , , , , , , [9], [7]], - [, , "(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}", , , , "234567890", , , , [7]], - [, , "7\\d{8}", , , , "701234567", , , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "AF", - 93, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["[1-9]"]], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"], - ], - [[, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - AG: [ - , - [, , "(?:268|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], - [, , "268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}", , , , "2684601234", , , , [7]], - [, , "268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}", , , , "2684641234", , , , [7]], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , "26848[01]\\d{4}", , , , "2684801234", , , , [7]], - "AG", - 1, - "011", - "1", - , - , - "1|([457]\\d{6})$", - "268$1", - , - , - , - , - [, , "26840[69]\\d{4}", , , , "2684061234", , , , [7]], - , - "268", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - AI: [ - , - [, , "(?:264|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], - [, , "264(?:292|4(?:6[12]|9[78]))\\d{4}", , , , "2644612345", , , , [7]], - [, , "264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}", , , , "2642351234", , , , [7]], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "AI", - 1, - "011", - "1", - , - , - "1|([2457]\\d{6})$", - "264$1", - , - , - , - , - [, , "264724\\d{4}", , , , "2647241234", , , , [7]], - , - "264", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - AL: [ - , - [, , "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}", , , , , , , [6, 7, 8, 9], [5]], - [ - , - , - "4505[0-2]\\d{3}|(?:[2358][16-9]\\d[2-9]|4410)\\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\\d))\\d{5}", - , - , - , - "22345678", - , - , - [8], - [5, 6, 7], - ], - [, , "6(?:[78][2-9]|9\\d)\\d{6}", , , , "672123456", , , [9]], - [, , "800\\d{4}", , , , "8001234", , , [7]], - [, , "900[1-9]\\d\\d", , , , "900123", , , [6]], - [, , "808[1-9]\\d\\d", , , , "808123", , , [6]], - [, , "700[2-9]\\d{4}", , , , "70021234", , , [8]], - [, , , , , , , , , [-1]], - "AL", - 355, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{3,4})", "$1 $2", ["80|9"], "0$1"], - [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["4[2-6]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2358][2-5]|4"], "0$1"], - [, "(\\d{3})(\\d{5})", "$1 $2", ["[23578]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["6"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - AM: [ - , - [, , "(?:[1-489]\\d|55|60|77)\\d{6}", , , , , , , [8], [5, 6]], - [ - , - , - "(?:(?:1[0-25]|47)\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}", - , - , - , - "10123456", - , - , - , - [5, 6], - ], - [, , "(?:33|4[1349]|55|77|88|9[13-9])\\d{6}", , , , "77123456"], - [, , "800\\d{5}", , , , "80012345"], - [, , "90[016]\\d{5}", , , , "90012345"], - [, , "80[1-4]\\d{5}", , , , "80112345"], - [, , , , , , , , , [-1]], - [, , "60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\d|9[01])\\d{4}", , , , "60271234"], - "AM", - 374, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[89]0"], "0 $1"], - [, "(\\d{3})(\\d{5})", "$1 $2", ["2|3[12]"], "(0$1)"], - [, "(\\d{2})(\\d{6})", "$1 $2", ["1|47"], "(0$1)"], - [, "(\\d{2})(\\d{6})", "$1 $2", ["[3-9]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - AO: [ - , - [, , "[29]\\d{8}", , , , , , , [9]], - [, , "2\\d(?:[0134][25-9]|[25-9]\\d)\\d{5}", , , , "222123456"], - [, , "9[1-59]\\d{7}", , , , "923123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "AO", - 244, - "00", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[29]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - AR: [ - , - [, , "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}", , , , , , , [10, 11], [6, 7, 8]], - [ - , - , - "3888[013-9]\\d{5}|3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|(?:29(?:54|66)|3(?:7(?:55|77)|865))[2-8]\\d{5}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|(?:2(?:284|3(?:02|23)|657|920)|3(?:4(?:8[27]|92)|541|878))[2-7]\\d{5}|(?:2(?:(?:26|62)2|320|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\d{5}|(?:(?:11[1-8]|670)\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|[17][2-6]|3[4-6]|[58][3-6])))\\d{6}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}", - , - , - , - "1123456789", - , - , - [10], - [6, 7, 8], - ], - [ - , - , - "93(?:7(?:1[15]|81)[46]|8(?:(?:21|4[16]|69|9[12])[46]|88[013-9]))\\d{5}|9(?:29(?:54|66)|3(?:7(?:55|77)|865))[2-8]\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|9(?:2(?:284|3(?:02|23)|657|920)|3(?:4(?:8[27]|92)|541|878))[2-7]\\d{5}|9(?:2(?:(?:26|62)2|320|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\d{5}|(?:675\\d|9(?:11[1-8]\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|[17][2-6]|3[4-6]|[58][3-6]))))\\d{6}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}", - , - , - , - "91123456789", - , - , - , - [6, 7, 8], - ], - [, , "800\\d{7,8}", , , , "8001234567"], - [, , "60[04579]\\d{7}", , , , "6001234567", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "AR", - 54, - "00", - "0", - , - , - "0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?", - "9$1", - , - , - [ - [, "(\\d{3})", "$1", ["0|1(?:0[0-35-7]|1[02-5]|2[015]|3[47]|4[478])|911"]], - [, "(\\d{2})(\\d{4})", "$1-$2", ["[1-9]"]], - [, "(\\d{3})(\\d{4})", "$1-$2", ["[2-9]"]], - [, "(\\d{4})(\\d{4})", "$1-$2", ["[1-8]"]], - [ - , - "(\\d{4})(\\d{2})(\\d{4})", - "$1 $2-$3", - [ - "2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])", - "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)", - "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", - "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]", - ], - "0$1", - , - 1, - ], - [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", , 1], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", , 1], - [ - , - "(\\d)(\\d{4})(\\d{2})(\\d{4})", - "$2 15-$3-$4", - [ - "9(?:2[2-469]|3[3-578])", - "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))", - "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)", - "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", - "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]", - ], - "0$1", - ], - [, "(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 15-$3-$4", ["91"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], - [, "(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 15-$3-$4", ["9"], "0$1"], - ], - [ - [ - , - "(\\d{4})(\\d{2})(\\d{4})", - "$1 $2-$3", - [ - "2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])", - "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)", - "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", - "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]", - ], - "0$1", - , - 1, - ], - [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", , 1], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", , 1], - [ - , - "(\\d)(\\d{4})(\\d{2})(\\d{4})", - "$1 $2 $3-$4", - [ - "9(?:2[2-469]|3[3-578])", - "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))", - "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)", - "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", - "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]", - ], - ], - [, "(\\d)(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3-$4", ["91"]], - [, "(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], - [, "(\\d)(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3-$4", ["9"]], - ], - [, , , , , , , , , [-1]], - , - , - [, , "810\\d{7}", , , , , , , [10]], - [, , "810\\d{7}", , , , "8101234567", , , [10]], - , - , - [, , , , , , , , , [-1]], - ], - AS: [ - , - [, , "(?:[58]\\d\\d|684|900)\\d{7}", , , , , , , [10], [7]], - [, , "6846(?:22|33|44|55|77|88|9[19])\\d{4}", , , , "6846221234", , , , [7]], - [, , "684(?:2(?:48|5[2468]|72)|7(?:3[13]|70|82))\\d{4}", , , , "6847331234", , , , [7]], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "AS", - 1, - "011", - "1", - , - , - "1|([267]\\d{6})$", - "684$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "684", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - AT: [ - , - [ - , - , - "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}", - , - , - , - , - , - , - [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], - [3], - ], - [ - , - , - "1(?:11\\d|[2-9]\\d{3,11})|(?:316|463|(?:51|66|73)2)\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-8]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{4,10}", - , - , - , - "1234567890", - , - , - , - [3], - ], - [, , "6(?:5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}", , , , "664123456", , , [7, 8, 9, 10, 11, 12, 13]], - [, , "800\\d{6,10}", , , , "800123456", , , [9, 10, 11, 12, 13]], - [, , "(?:8[69][2-68]|9(?:0[01]|3[019]))\\d{6,10}", , , , "900123456", , , [9, 10, 11, 12, 13]], - [, , "8(?:10|2[018])\\d{6,10}|828\\d{5}", , , , "810123456", , , [8, 9, 10, 11, 12, 13]], - [, , , , , , , , , [-1]], - [ - , - , - "5(?:0[1-9]|17|[79]\\d)\\d{2,10}|7[28]0\\d{6,10}", - , - , - , - "780123456", - , - , - [5, 6, 7, 8, 9, 10, 11, 12, 13], - ], - "AT", - 43, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"], - [, "(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"], - [, "(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"], - [, "(\\d{6})", "$1", ["[18]"]], - [, "(\\d{3})(\\d{3,10})", "$1 $2", ["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"], "0$1"], - [, "(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"], - [, "(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"], - ], - [ - [, "(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"], - [, "(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"], - [, "(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"], - [, "(\\d{3})(\\d{3,10})", "$1 $2", ["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"], "0$1"], - [, "(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"], - [, "(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - AU: [ - , - [ - , - , - "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}", - , - , - , - , - , - , - [5, 6, 7, 8, 9, 10, 12], - ], - [ - , - , - "(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\d|2[0-8]))\\d{3}|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4]))|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}", - , - , - , - "212345678", - , - , - [9], - [8], - ], - [ - , - , - "4(?:83[0-38]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}", - , - , - , - "412345678", - , - , - [9], - ], - [, , "180(?:0\\d{3}|2)\\d{3}", , , , "1800123456", , , [7, 10]], - [, , "190[0-26]\\d{6}", , , , "1900123456", , , [10]], - [, , "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", , , , "1300123456", , , [6, 8, 10, 12]], - [, , , , , , , , , [-1]], - [, , "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", , , , "147101234", , , [9]], - "AU", - 61, - "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", - "0", - , - , - "0|(183[12])", - , - "0011", - , - [ - [, "(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"], - [, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["13"]], - [, "(\\d{3})(\\d{3})", "$1 $2", ["19"]], - [, "(\\d{3})(\\d{4})", "$1 $2", ["180", "1802"]], - [, "(\\d{4})(\\d{3,4})", "$1 $2", ["19"]], - [, "(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"], - [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[2378]"], "(0$1)", "$CC ($1)"], - [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]], - [, "(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["130"]], - ], - [ - [, "(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"], - [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[2378]"], "(0$1)", "$CC ($1)"], - [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]], - ], - [, , "163\\d{2,6}", , , , "1631234", , , [5, 6, 7, 8, 9]], - 1, - , - [, , "1(?:3(?:00\\d{5}|45[0-4])|802)\\d{3}|1[38]00\\d{6}|13\\d{4}", , , , , , , [6, 7, 8, 10, 12]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - AW: [ - , - [, , "(?:[25-79]\\d\\d|800)\\d{4}", , , , , , , [7]], - [, , "5(?:2\\d|8[1-9])\\d{4}", , , , "5212345"], - [ - , - , - "(?:290|5[69]\\d|6(?:[03]0|22|4[0-2]|[69]\\d)|7(?:[34]\\d|7[07])|9(?:6[45]|9[4-8]))\\d{4}", - , - , - , - "5601234", - ], - [, , "800\\d{4}", , , , "8001234"], - [, , "900\\d{4}", , , , "9001234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "(?:28\\d|501)\\d{4}", , , , "5011234"], - "AW", - 297, - "00", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{4})", "$1 $2", ["[25-9]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - AX: [ - , - [ - , - , - "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}", - , - , - , - , - , - , - [5, 6, 7, 8, 9, 10, 11, 12], - ], - [, , "18[1-8]\\d{3,6}", , , , "181234567", , , [6, 7, 8, 9]], - [, , "4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}", , , , "412345678", , , [6, 7, 8, 9, 10]], - [, , "800\\d{4,6}", , , , "800123456", , , [7, 8, 9]], - [, , "[67]00\\d{5,6}", , , , "600123456", , , [8, 9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "AX", - 358, - "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", - "0", - , - , - "0", - , - "00", - , - , - , - [, , , , , , , , , [-1]], - , - "18", - [, , , , , , , , , [-1]], - [ - , - , - "20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}", - , - , - , - "10112345", - ], - , - , - [, , , , , , , , , [-1]], - ], - AZ: [ - , - [, , "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}", , , , , , , [9], [7]], - [ - , - , - "(?:2[12]428|3655[02])\\d{4}|(?:2(?:22[0-79]|63[0-28])|3654)\\d{5}|(?:(?:1[28]|46)\\d|2(?:[014-6]2|[23]3))\\d{6}", - , - , - , - "123123456", - , - , - , - [7], - ], - [, , "36554\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\d{7}", , , , "401234567"], - [, , "88\\d{7}", , , , "881234567"], - [, , "900200\\d{3}", , , , "900200123"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "AZ", - 994, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[1-9]"]], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["90"], "0$1"], - [ - , - "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", - "$1 $2 $3 $4", - ["1[28]|2|365|46", "1[28]|2|365[45]|46", "1[28]|2|365(?:4|5[02])|46"], - "(0$1)", - ], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[13-9]"], "0$1"], - ], - [ - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["90"], "0$1"], - [ - , - "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", - "$1 $2 $3 $4", - ["1[28]|2|365|46", "1[28]|2|365[45]|46", "1[28]|2|365(?:4|5[02])|46"], - "(0$1)", - ], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[13-9]"], "0$1"], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BA: [ - , - [, , "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}", , , , , , , [8, 9], [6]], - [ - , - , - "(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\d{5}", - , - , - , - "30212345", - , - , - [8], - [6], - ], - [, , "6040\\d{5}|6(?:03|[1-356]|44|7\\d)\\d{6}", , , , "61123456"], - [, , "8[08]\\d{6}", , , , "80123456", , , [8]], - [, , "9[0246]\\d{6}", , , , "90123456", , , [8]], - [, , "8[12]\\d{6}", , , , "82123456", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "BA", - 387, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{3})", "$1-$2", ["[2-9]"]], - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"], - ], - [ - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "703[235]0\\d{3}|70(?:2[0-5]|3[0146]|[56]0)\\d{4}", , , , "70341234", , , [8]], - , - , - [, , , , , , , , , [-1]], - ], - BB: [ - , - [, , "(?:246|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], - [ - , - , - "246521[0369]\\d{3}|246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\d|3[2-9])|5(?:20|[34]\\d|54|7[1-3])|6(?:2\\d|38)|7[35]7|9(?:1[89]|63))\\d{4}", - , - , - , - "2464123456", - , - , - , - [7], - ], - [ - , - , - "246(?:(?:2(?:[3568]\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\d)|69[5-7]|8(?:[2-5]\\d|83))\\d|52(?:1[147]|20))\\d{3}", - , - , - , - "2462501234", - , - , - , - [7], - ], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "(?:246976|900[2-9]\\d\\d)\\d{4}", , , , "9002123456", , , , [7]], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , "24631\\d{5}", , , , "2463101234", , , , [7]], - "BB", - 1, - "011", - "1", - , - , - "1|([2-9]\\d{6})$", - "246$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "246", - [, , , , , , , , , [-1]], - [ - , - , - "246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\\d|3[016]|53))\\d{4}", - , - , - , - "2464301234", - , - , - , - [7], - ], - , - , - [, , , , , , , , , [-1]], - ], - BD: [ - , - [ - , - , - "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}", - , - , - , - , - , - , - [6, 7, 8, 9, 10], - ], - [ - , - , - "(?:4(?:31\\d\\d|423)|5222)\\d{3}(?:\\d{2})?|8332[6-9]\\d\\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\\d{4}|(?:2(?:222|[45]\\d)\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\d{5}|[59]1\\d{5}", - , - , - , - "27111234", - ], - [, , "(?:1[13-9]\\d|644)\\d{7}|(?:3[78]|44|66)[02-9]\\d{7}", , , , "1812345678", , , [10]], - [, , "80[03]\\d{7}", , , , "8001234567", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "96(?:0[469]|1[0-47]|3[389]|6[69]|7[78])\\d{6}", , , , "9604123456", , , [10]], - "BD", - 880, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{4,6})", "$1-$2", ["31[5-8]|[459]1"], "0$1"], - [ - , - "(\\d{3})(\\d{3,7})", - "$1-$2", - [ - "3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]", - ], - "0$1", - ], - [, "(\\d{4})(\\d{3,6})", "$1-$2", ["[13-9]|22"], "0$1"], - [, "(\\d)(\\d{7,8})", "$1-$2", ["2"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BE: [ - , - [, , "4\\d{8}|[1-9]\\d{7}", , , , , , , [8, 9]], - [ - , - , - "80[2-8]\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\d{6}", - , - , - , - "12345678", - , - , - [8], - ], - [, , "4[5-9]\\d{7}", , , , "470123456", , , [9]], - [, , "800[1-9]\\d{4}", , , , "80012345", , , [8]], - [ - , - , - "(?:70(?:2[0-57]|3[04-7]|44|6[569]|7[0579])|90(?:0[0-8]|1[36]|2[0-3568]|3[0-689]|[47][2-68]|5[1-68]|6[0-378]|9[34679]))\\d{4}", - , - , - , - "90012345", - , - , - [8], - ], - [, , "7879\\d{4}", , , , "78791234", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "BE", - 32, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:80|9)0"], "0$1"], - [, "(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[239]|4[23]"], "0$1"], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[15-8]"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "78(?:0[57]|1[014-8]|2[25]|3[15-8]|48|[56]0|7[06-8]|9\\d)\\d{4}", , , , "78102345", , , [8]], - , - , - [, , , , , , , , , [-1]], - ], - BF: [ - , - [, , "[025-7]\\d{7}", , , , , , , [8]], - [ - , - , - "2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\d|50|6[5-7]))\\d{4}", - , - , - , - "20491234", - ], - [, , "(?:0[1-35-7]|5[1-8]|[67]\\d)\\d{6}", , , , "70123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "BF", - 226, - "00", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[025-7]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BG: [ - , - [, , "[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}", , , , , , , [6, 7, 8, 9], [4, 5]], - [ - , - , - "2\\d{5,7}|(?:43[1-6]|70[1-9])\\d{4,5}|(?:[36]\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\d{5,6}", - , - , - , - "2123456", - , - , - [6, 7, 8], - [4, 5], - ], - [, , "(?:43[07-9]|99[69]\\d)\\d{5}|(?:8[7-9]|98)\\d{7}", , , , "43012345", , , [8, 9]], - [, , "800\\d{5}", , , , "80012345", , , [8]], - [, , "90\\d{6}", , , , "90123456", , , [8]], - [, , "700\\d{5}", , , , "70012345", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "BG", - 359, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{6})", "$1", ["1"]], - [, "(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], - [, "(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"], - [, "(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], - ], - [ - [, "(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], - [, "(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"], - [, "(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BH: [ - , - [, , "[136-9]\\d{7}", , , , , , , [8]], - [ - , - , - "(?:1(?:3[1356]|6[0156]|7\\d)\\d|6(?:1[16]\\d|500|6(?:0\\d|3[12]|44|7[7-9]|88)|9[69][69])|7(?:1(?:11|78)|7\\d\\d))\\d{4}", - , - , - , - "17001234", - ], - [ - , - , - "(?:3(?:[1-79]\\d|8[0-47-9])\\d|6(?:3(?:00|33|6[16])|6(?:3[03-9]|[69]\\d|7[0-6])))\\d{4}", - , - , - , - "36001234", - ], - [, , "80\\d{6}", , , , "80123456"], - [, , "(?:87|9[014578])\\d{6}", , , , "90123456"], - [, , "84\\d{6}", , , , "84123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "BH", - 973, - "00", - , - , - , - , - , - , - , - [[, "(\\d{4})(\\d{4})", "$1 $2", ["[13679]|8[047]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BI: [ - , - [, , "(?:[267]\\d|31)\\d{6}", , , , , , , [8]], - [, , "(?:22|31)\\d{6}", , , , "22201234"], - [, , "(?:29|6[1257-9]|7[125-9])\\d{6}", , , , "79561234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "BI", - 257, - "00", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2367]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BJ: [ - , - [, , "(?:[25689]\\d|40)\\d{6}", , , , , , , [8]], - [, , "2(?:02|1[037]|2[45]|3[68])\\d{5}", , , , "20211234"], - [, , "(?:40|5[1-9]|6\\d|9[013-9])\\d{6}", , , , "90011234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "857[58]\\d{4}", , , , "85751234"], - "BJ", - 229, - "00", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-689]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "81\\d{6}", , , , "81123456"], - , - , - [, , , , , , , , , [-1]], - ], - BL: [ - , - [, , "(?:590|(?:69|80)\\d|976)\\d{6}", , , , , , , [9]], - [, , "590(?:2[7-9]|5[12]|87)\\d{4}", , , , "590271234"], - [, , "69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}", , , , "690001234"], - [, , "80[0-5]\\d{6}", , , , "800012345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "976[01]\\d{5}", , , , "976012345"], - "BL", - 590, - "00", - "0", - , - , - "0", - , - , - , - , - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BM: [ - , - [, , "(?:441|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], - [, , "441(?:[46]\\d\\d|5(?:4\\d|60|89))\\d{4}", , , , "4414123456", , , , [7]], - [, , "441(?:[2378]\\d|5[0-39])\\d{5}", , , , "4413701234", , , , [7]], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "BM", - 1, - "011", - "1", - , - , - "1|([2-8]\\d{6})$", - "441$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "441", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BN: [ - , - [, , "[2-578]\\d{6}", , , , , , , [7]], - [, , "22[0-7]\\d{4}|(?:2[013-9]|[34]\\d|5[0-25-9])\\d{5}", , , , "2345678"], - [, , "(?:22[89]|[78]\\d\\d)\\d{4}", , , , "7123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "5[34]\\d{5}", , , , "5345678"], - "BN", - 673, - "00", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{4})", "$1 $2", ["[2-578]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BO: [ - , - [, , "(?:[2-467]\\d\\d|8001)\\d{5}", , , , , , , [8, 9], [7]], - [ - , - , - "(?:2(?:2\\d\\d|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d\\d|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\d\\d|6(?:11|[24689]\\d|72)))\\d{4}", - , - , - , - "22123456", - , - , - [8], - [7], - ], - [, , "[67]\\d{7}", , , , "71234567", , , [8]], - [, , "8001[07]\\d{4}", , , , "800171234", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "BO", - 591, - "00(?:1\\d)?", - "0", - , - , - "0(1\\d)?", - , - , - , - [ - [, "(\\d)(\\d{7})", "$1 $2", ["[23]|4[46]"], , "0$CC $1"], - [, "(\\d{8})", "$1", ["[67]"], , "0$CC $1"], - [, "(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["8"], , "0$CC $1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , "8001[07]\\d{4}", , , , , , , [9]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BQ: [ - , - [, , "(?:[34]1|7\\d)\\d{5}", , , , , , , [7]], - [, , "(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\d)\\d{3}", , , , "7151234"], - [, , "(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\d|9[056])\\d)\\d{3}", , , , "3181234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "BQ", - 599, - "00", - , - , - , - , - , - , - , - , - , - [, , , , , , , , , [-1]], - , - "[347]", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BR: [ - , - [ - , - , - "(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}", - , - , - , - , - , - , - [8, 9, 10, 11], - ], - [ - , - , - "(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}", - , - , - , - "1123456789", - , - , - [10], - [8], - ], - [ - , - , - "(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\d)\\d{7}", - , - , - , - "11961234567", - , - , - [10, 11], - [8, 9], - ], - [, , "800\\d{6,7}", , , , "800123456", , , [9, 10]], - [, , "300\\d{6}|[59]00\\d{6,7}", , , , "300123456", , , [9, 10]], - [, , "(?:30[03]\\d{3}|4(?:0(?:0\\d|20)|370))\\d{4}|300\\d{5}", , , , "40041234", , , [8, 10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "BR", - 55, - "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)", - "0", - , - , - "(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?", - "$2", - , - , - [ - [ - , - "(\\d{3,6})", - "$1", - ["1(?:1[25-8]|2[357-9]|3[02-68]|4[12568]|5|6[0-8]|8[015]|9[0-47-9])|321|610"], - ], - [, "(\\d{4})(\\d{4})", "$1-$2", ["300|4(?:0[02]|37)", "4(?:02|37)0|[34]00"]], - [, "(\\d{4})(\\d{4})", "$1-$2", ["[2-57]", "[2357]|4(?:[0-24-9]|3(?:[0-689]|7[1-9]))"]], - [, "(\\d{3})(\\d{2,3})(\\d{4})", "$1 $2 $3", ["(?:[358]|90)0"], "0$1"], - [, "(\\d{5})(\\d{4})", "$1-$2", ["9"]], - [ - , - "(\\d{2})(\\d{4})(\\d{4})", - "$1 $2-$3", - ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"], - "($1)", - "0 $CC ($1)", - ], - [, "(\\d{2})(\\d{5})(\\d{4})", "$1 $2-$3", ["[16][1-9]|[2-57-9]"], "($1)", "0 $CC ($1)"], - ], - [ - [, "(\\d{4})(\\d{4})", "$1-$2", ["300|4(?:0[02]|37)", "4(?:02|37)0|[34]00"]], - [, "(\\d{3})(\\d{2,3})(\\d{4})", "$1 $2 $3", ["(?:[358]|90)0"], "0$1"], - [ - , - "(\\d{2})(\\d{4})(\\d{4})", - "$1 $2-$3", - ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"], - "($1)", - "0 $CC ($1)", - ], - [, "(\\d{2})(\\d{5})(\\d{4})", "$1 $2-$3", ["[16][1-9]|[2-57-9]"], "($1)", "0 $CC ($1)"], - ], - [, , , , , , , , , [-1]], - , - , - [, , "30(?:0\\d{5,7}|3\\d{7})|40(?:0\\d|20)\\d{4}|800\\d{6,7}", , , , , , , [8, 9, 10]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BS: [ - , - [, , "(?:242|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], - [ - , - , - "242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-4]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}", - , - , - , - "2423456789", - , - , - , - [7], - ], - [ - , - , - "242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|[89]9))\\d{4}", - , - , - , - "2423591234", - , - , - , - [7], - ], - [, , "242300\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456", , , , [7]], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "BS", - 1, - "011", - "1", - , - , - "1|([3-8]\\d{6})$", - "242$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "242", - [, , , , , , , , , [-1]], - [, , "242225\\d{4}", , , , "2422250123"], - , - , - [, , , , , , , , , [-1]], - ], - BT: [ - , - [, , "[17]\\d{7}|[2-8]\\d{6}", , , , , , , [7, 8], [6]], - [, , "(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}", , , , "2345678", , , [7], [6]], - [, , "(?:1[67]|77)\\d{6}", , , , "17123456", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "BT", - 975, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{3})", "$1 $2", ["[2-7]"]], - [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-68]|7[246]"]], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|7"]], - ], - [ - [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-68]|7[246]"]], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|7"]], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BW: [ - , - [, , "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}", , , , , , , [7, 8, 10]], - [ - , - , - "(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[013])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\d{4}", - , - , - , - "2401234", - , - , - [7], - ], - [, , "(?:321|7(?:[1-7]\\d|8[01]))\\d{5}", , , , "71123456", , , [8]], - [, , "(?:0800|800\\d)\\d{6}", , , , "0800012345", , , [10]], - [, , "90\\d{5}", , , , "9012345", , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "79(?:1(?:[01]\\d|2[0-7])|2[0-7]\\d)\\d{3}", , , , "79101234", , , [8]], - "BW", - 267, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{5})", "$1 $2", ["90"]], - [, "(\\d{3})(\\d{4})", "$1 $2", ["[24-6]|3[15-79]"]], - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37]"]], - [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["0"]], - [, "(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["8"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BY: [ - , - [ - , - , - "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}", - , - , - , - , - , - , - [6, 7, 8, 9, 10, 11], - [5], - ], - [ - , - , - "(?:1(?:5(?:1[1-5]|[24]\\d|6[2-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d\\d)|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:[26]\\d|3[02-79]|4[024-7]|5[03-7])))\\d{5}", - , - , - , - "152450911", - , - , - [9], - [5, 6, 7], - ], - [, , "(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\d)\\d{6}", , , , "294911911", , , [9]], - [, , "800\\d{3,7}|8(?:0[13]|20\\d)\\d{7}", , , , "8011234567"], - [, , "(?:810|902)\\d{7}", , , , "9021234567", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "249\\d{6}", , , , "249123456", , , [9]], - "BY", - 375, - "810", - "8", - , - , - "0|80?", - , - "8~10", - , - [ - [, "(\\d{3})(\\d{3})", "$1 $2", ["800"], "8 $1"], - [, "(\\d{3})(\\d{2})(\\d{2,4})", "$1 $2 $3", ["800"], "8 $1"], - [ - , - "(\\d{4})(\\d{2})(\\d{3})", - "$1 $2-$3", - [ - "1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])", - "1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])", - ], - "8 0$1", - ], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["1(?:[56]|7[467])|2[1-3]"], "8 0$1"], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-4]"], "8 0$1"], - [, "(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[89]"], "8 $1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , "800\\d{3,7}|(?:8(?:0[13]|10|20\\d)|902)\\d{7}"], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - BZ: [ - , - [, , "(?:0800\\d|[2-8])\\d{6}", , , , , , , [7, 11]], - [ - , - , - "(?:2(?:[02]\\d|36|[68]0)|[3-58](?:[02]\\d|[68]0)|7(?:[02]\\d|32|[68]0))\\d{4}", - , - , - , - "2221234", - , - , - [7], - ], - [, , "6[0-35-7]\\d{5}", , , , "6221234", , , [7]], - [, , "0800\\d{7}", , , , "08001234123", , , [11]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "BZ", - 501, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{4})", "$1-$2", ["[2-8]"]], - [, "(\\d)(\\d{3})(\\d{4})(\\d{3})", "$1-$2-$3-$4", ["0"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CA: [ - , - [, , "(?:[2-8]\\d|90)\\d{8}|3\\d{6}", , , , , , , [7, 10]], - [ - , - , - "(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}", - , - , - , - "5062345678", - , - , - [10], - [7], - ], - [ - , - , - "(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}", - , - , - , - "5062345678", - , - , - [10], - [7], - ], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456", , , [10]], - [, , "900[2-9]\\d{6}", , , , "9002123456", , , [10]], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-7]|33|44|66|77|88)|622)[2-9]\\d{6}", - , - , - , - "5002345678", - , - , - [10], - ], - [, , "600[2-9]\\d{6}", , , , "6002012345", , , [10]], - "CA", - 1, - "011", - "1", - , - , - "1", - , - , - 1, - , - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "310\\d{4}", , , , "3101234", , , [7]], - , - , - [, , , , , , , , , [-1]], - ], - CC: [ - , - [ - , - , - "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", - , - , - , - , - , - , - [6, 7, 8, 9, 10, 12], - ], - [ - , - , - "8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}", - , - , - , - "891621234", - , - , - [9], - [8], - ], - [ - , - , - "4(?:83[0-38]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}", - , - , - , - "412345678", - , - , - [9], - ], - [, , "180(?:0\\d{3}|2)\\d{3}", , , , "1800123456", , , [7, 10]], - [, , "190[0-26]\\d{6}", , , , "1900123456", , , [10]], - [, , "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", , , , "1300123456", , , [6, 8, 10, 12]], - [, , , , , , , , , [-1]], - [, , "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", , , , "147101234", , , [9]], - "CC", - 61, - "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", - "0", - , - , - "0|([59]\\d{7})$", - "8$1", - "0011", - , - , - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CD: [ - , - [, , "[189]\\d{8}|[1-68]\\d{6}", , , , , , , [7, 9]], - [, , "12\\d{7}|[1-6]\\d{6}", , , , "1234567"], - [, , "88\\d{5}|(?:8[0-59]|9[017-9])\\d{7}", , , , "991234567"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "CD", - 243, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], - [, "(\\d{2})(\\d{5})", "$1 $2", ["[1-6]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CF: [ - , - [, , "(?:[27]\\d{3}|8776)\\d{4}", , , , , , , [8]], - [, , "2[12]\\d{6}", , , , "21612345"], - [, , "7[02457]\\d{6}", , , , "70012345"], - [, , , , , , , , , [-1]], - [, , "8776\\d{4}", , , , "87761234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "CF", - 236, - "00", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[278]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CG: [ - , - [, , "222\\d{6}|(?:0\\d|80)\\d{7}", , , , , , , [9]], - [, , "222[1-589]\\d{5}", , , , "222123456"], - [, , "026(?:1[0-5]|6[6-9])\\d{4}|0(?:[14-6]\\d\\d|2(?:40|5[5-8]|6[07-9]))\\d{5}", , , , "061234567"], - [, , , , , , , , , [-1]], - [, , "80(?:0\\d\\d|120)\\d{4}", , , , "800123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "CG", - 242, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[02]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CH: [ - , - [, , "8\\d{11}|[2-9]\\d{8}", , , , , , , [9, 12]], - [, , "(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\d{7}", , , , "212345678", , , [9]], - [, , "7[35-9]\\d{7}", , , , "781234567", , , [9]], - [, , "800\\d{6}", , , , "800123456", , , [9]], - [, , "90[016]\\d{6}", , , , "900123456", , , [9]], - [, , "84[0248]\\d{6}", , , , "840123456", , , [9]], - [, , "878\\d{6}", , , , "878123456", , , [9]], - [, , , , , , , , , [-1]], - "CH", - 41, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8[047]|90"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]|81"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["8"], "0$1"], - ], - , - [, , "74[0248]\\d{6}", , , , "740123456", , , [9]], - , - , - [, , , , , , , , , [-1]], - [, , "5[18]\\d{7}", , , , "581234567", , , [9]], - , - , - [, , "860\\d{9}", , , , "860123456789", , , [12]], - ], - CI: [ - , - [, , "[02]\\d{9}", , , , , , , [10]], - [ - , - , - "2(?:[15]\\d{3}|7(?:2(?:0[23]|1[2357]|[23][45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\d{5}", - , - , - , - "2123456789", - ], - [, , "0704[0-7]\\d{5}|0(?:[15]\\d\\d|7(?:0[0-37-9]|[4-9][7-9]))\\d{6}", , , , "0123456789"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "CI", - 225, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{2})(\\d)(\\d{5})", "$1 $2 $3 $4", ["2"]], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3 $4", ["0"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CK: [ - , - [, , "[2-578]\\d{4}", , , , , , , [5]], - [, , "(?:2\\d|3[13-7]|4[1-5])\\d{3}", , , , "21234"], - [, , "[578]\\d{4}", , , , "71234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "CK", - 682, - "00", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{3})", "$1 $2", ["[2-578]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CL: [ - , - [, , "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}", , , , , , , [9, 10, 11]], - [ - , - , - "2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[0346]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|7[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}", - , - , - , - "221234567", - , - , - [9], - ], - [ - , - , - "2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[0346]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|7[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}", - , - , - , - "221234567", - , - , - [9], - ], - [, , "(?:123|8)00\\d{6}", , , , "800123456", , , [9, 11]], - [, , , , , , , , , [-1]], - [, , "600\\d{7,8}", , , , "6001234567", , , [10, 11]], - [, , , , , , , , , [-1]], - [, , "44\\d{7}", , , , "441234567", , , [9]], - "CL", - 56, - "(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0", - , - , - , - , - , - , - 1, - [ - [, "(\\d{4})", "$1", ["1(?:[03-589]|21)|[29]0|78"]], - [, "(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], - [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], - [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9[2-9]"]], - [ - , - "(\\d{2})(\\d{3})(\\d{4})", - "$1 $2 $3", - ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"], - "($1)", - ], - [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]], - [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], - [, "(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]], - ], - [ - [, "(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], - [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], - [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9[2-9]"]], - [ - , - "(\\d{2})(\\d{3})(\\d{4})", - "$1 $2 $3", - ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"], - "($1)", - ], - [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]], - [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], - [, "(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]], - ], - [, , , , , , , , , [-1]], - , - , - [, , "600\\d{7,8}", , , , , , , [10, 11]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CM: [ - , - [, , "[26]\\d{8}|88\\d{6,7}", , , , , , , [8, 9]], - [, , "2(?:22|33)\\d{6}", , , , "222123456", , , [9]], - [, , "(?:24[23]|6[25-9]\\d)\\d{6}", , , , "671234567", , , [9]], - [, , "88\\d{6,7}", , , , "88012345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "CM", - 237, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["88"]], - [, "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[26]|88"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CN: [ - , - [ - , - , - "1[127]\\d{8,9}|2\\d{9}(?:\\d{2})?|[12]\\d{6,7}|86\\d{6}|(?:1[03-689]\\d|6)\\d{7,9}|(?:[3-579]\\d|8[0-57-9])\\d{6,9}", - , - , - , - , - , - , - [7, 8, 9, 10, 11, 12], - [5, 6], - ], - [ - , - , - "(?:10(?:[02-79]\\d\\d|[18](?:0[1-9]|[1-9]\\d))|21(?:[18](?:0[1-9]|[1-9]\\d)|[2-79]\\d\\d))\\d{5}|(?:43[35]|754)\\d{7,8}|8(?:078\\d{7}|51\\d{7,8})|(?:10|(?:2|85)1|43[35]|754)(?:100\\d\\d|95\\d{3,4})|(?:2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\d{7}|1(?:0(?:0\\d\\d(?:\\d{3})?|[1-9]\\d{5})|[1-9]\\d{6})|9(?:[0-46-9]\\d{6}|5\\d{3}(?:\\d(?:\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]\\d{6}|1(?:0(?:0\\d\\d(?:\\d{2})?|[1-9]\\d{4})|[1-9]\\d{5})|9(?:[0-46-9]\\d{5}|5\\d{3,5}))", - , - , - , - "1012345678", - , - , - [7, 8, 9, 10, 11], - [5, 6], - ], - [ - , - , - "1740[0-5]\\d{6}|1(?:[38]\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\d{8}", - , - , - , - "13123456789", - , - , - [11], - ], - [, , "(?:(?:10|21)8|8)00\\d{7}", , , , "8001234567", , , [10, 12]], - [, , "16[08]\\d{5}", , , , "16812345", , , [8]], - [ - , - , - "400\\d{7}|950\\d{7,8}|(?:10|2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}", - , - , - , - "4001234567", - , - , - [7, 8, 9, 10, 11], - [5, 6], - ], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "CN", - 86, - "00|1(?:[12]\\d|79)\\d\\d00", - "0", - , - , - "0|(1(?:[12]\\d|79)\\d\\d)", - , - "00", - , - [ - [, "(\\d{5,6})", "$1", ["96"]], - [ - , - "(\\d{2})(\\d{5,6})", - "$1 $2", - ["(?:10|2[0-57-9])[19]", "(?:10|2[0-57-9])(?:10|9[56])", "(?:10|2[0-57-9])(?:100|9[56])"], - "0$1", - "$CC $1", - ], - [ - , - "(\\d{3})(\\d{4})", - "$1 $2", - [ - "[1-9]", - "1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])", - "1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])", - ], - ], - [, "(\\d{4})(\\d{4})", "$1 $2", ["16[08]"]], - [ - , - "(\\d{3})(\\d{5,6})", - "$1 $2", - [ - "3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]", - "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]", - "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])", - "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])", - ], - "0$1", - "$CC $1", - ], - [ - , - "(\\d{4})(\\d{4})", - "$1 $2", - [ - "[1-9]", - "1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])", - "26|3(?:[0268]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9])|(?:34|85[23])[0-8]|(?:1|58)[1-9]|(?:63|95)[06-9]|(?:33|85[23]9)[0-46-9]|(?:10|2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])", - "26|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:1|58|85[23]10)[1-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])", - ], - ], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]], - [ - , - "(\\d{2})(\\d{4})(\\d{4})", - "$1 $2 $3", - [ - "10|2(?:[02-57-9]|1[1-9])", - "10|2(?:[02-57-9]|1[1-9])", - "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])", - ], - "0$1", - "$CC $1", - 1, - ], - [ - , - "(\\d{3})(\\d{3})(\\d{4})", - "$1 $2 $3", - [ - "3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]", - ], - "0$1", - "$CC $1", - 1, - ], - [, "(\\d{3})(\\d{7,8})", "$1 $2", ["9"]], - [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["80"], "0$1", "$CC $1", 1], - [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[3-578]"], "0$1", "$CC $1", 1], - [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"], , "$CC $1"], - [, "(\\d{2})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["[12]"], "0$1", , 1], - ], - [ - [ - , - "(\\d{2})(\\d{5,6})", - "$1 $2", - ["(?:10|2[0-57-9])[19]", "(?:10|2[0-57-9])(?:10|9[56])", "(?:10|2[0-57-9])(?:100|9[56])"], - "0$1", - "$CC $1", - ], - [ - , - "(\\d{3})(\\d{5,6})", - "$1 $2", - [ - "3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]", - "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]", - "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])", - "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])", - ], - "0$1", - "$CC $1", - ], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]], - [ - , - "(\\d{2})(\\d{4})(\\d{4})", - "$1 $2 $3", - [ - "10|2(?:[02-57-9]|1[1-9])", - "10|2(?:[02-57-9]|1[1-9])", - "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])", - ], - "0$1", - "$CC $1", - 1, - ], - [ - , - "(\\d{3})(\\d{3})(\\d{4})", - "$1 $2 $3", - [ - "3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]", - ], - "0$1", - "$CC $1", - 1, - ], - [, "(\\d{3})(\\d{7,8})", "$1 $2", ["9"]], - [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["80"], "0$1", "$CC $1", 1], - [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[3-578]"], "0$1", "$CC $1", 1], - [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"], , "$CC $1"], - [, "(\\d{2})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["[12]"], "0$1", , 1], - ], - [, , , , , , , , , [-1]], - , - , - [, , "(?:(?:10|21)8|[48])00\\d{7}|950\\d{7,8}", , , , , , , [10, 11, 12]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CO: [ - , - [, , "(?:60\\d\\d|9101)\\d{6}|(?:1\\d|3)\\d{9}", , , , , , , [10, 11], [7]], - [, , "60[124-8][2-9]\\d{6}", , , , "6012345678", , , [10], [7]], - [ - , - , - "3333(?:0(?:0\\d|1[0-5])|[4-9]\\d\\d)\\d{3}|(?:3(?:24[1-9]|3(?:00|3[0-24-9]))|9101)\\d{6}|3(?:0[0-5]|1\\d|2[0-3]|5[01]|70)\\d{7}", - , - , - , - "3211234567", - , - , - [10], - ], - [, , "1800\\d{7}", , , , "18001234567", , , [11]], - [, , "19(?:0[01]|4[78])\\d{7}", , , , "19001234567", , , [11]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "CO", - 57, - "00(?:4(?:[14]4|56)|[579])", - "0", - , - , - "0(4(?:[14]4|56)|[579])?", - , - , - , - [ - [, "(\\d{3})(\\d{7})", "$1 $2", ["6"], "($1)", "0$CC $1"], - [, "(\\d{3})(\\d{7})", "$1 $2", ["[39]"], , "0$CC $1"], - [, "(\\d)(\\d{3})(\\d{7})", "$1-$2-$3", ["1"], "0$1"], - ], - [ - [, "(\\d{3})(\\d{7})", "$1 $2", ["6"], "($1)", "0$CC $1"], - [, "(\\d{3})(\\d{7})", "$1 $2", ["[39]"], , "0$CC $1"], - [, "(\\d)(\\d{3})(\\d{7})", "$1 $2 $3", ["1"]], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CR: [ - , - [, , "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}", , , , , , , [8, 10]], - [, , "210[7-9]\\d{4}|2(?:[024-7]\\d|1[1-9])\\d{5}", , , , "22123456", , , [8]], - [, , "(?:3005\\d|6500[01])\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\d{6}", , , , "83123456", , , [8]], - [, , "800\\d{7}", , , , "8001234567", , , [10]], - [, , "90[059]\\d{7}", , , , "9001234567", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "(?:210[0-6]|4\\d{3}|5100)\\d{4}", , , , "40001234", , , [8]], - "CR", - 506, - "00", - , - , - , - "(19(?:0[0-2468]|1[09]|20|66|77|99))", - , - , - , - [ - [, "(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[3-9]"], , "$CC $1"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[89]"], , "$CC $1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CU: [ - , - [, , "[27]\\d{6,7}|[34]\\d{5,7}|(?:5|8\\d\\d)\\d{7}", , , , , , , [6, 7, 8, 10], [4, 5]], - [ - , - , - "(?:3[23]|48)\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\d)\\d{6}|(?:2[1-4]|4[1257]|7\\d)\\d{5,6}", - , - , - , - "71234567", - , - , - , - [4, 5], - ], - [, , "5\\d{7}", , , , "51234567", , , [8]], - [, , "800\\d{7}", , , , "8001234567", , , [10]], - [, , , , , , , , , [-1]], - [, , "807\\d{7}", , , , "8071234567", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "CU", - 53, - "119", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{4,6})", "$1 $2", ["2[1-4]|[34]"], "(0$1)"], - [, "(\\d)(\\d{6,7})", "$1 $2", ["7"], "(0$1)"], - [, "(\\d)(\\d{7})", "$1 $2", ["5"], "0$1"], - [, "(\\d{3})(\\d{7})", "$1 $2", ["8"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CV: [ - , - [, , "(?:[2-59]\\d\\d|800)\\d{4}", , , , , , , [7]], - [, , "2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}", , , , "2211234"], - [, , "(?:36|5[1-389]|9\\d)\\d{5}", , , , "9911234"], - [, , "800\\d{4}", , , , "8001234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "(?:3[3-5]|4[356])\\d{5}", , , , "3401234"], - "CV", - 238, - "0", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2-589]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CW: [ - , - [, , "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}", , , , , , , [7, 8]], - [ - , - , - "9(?:4(?:3[0-5]|4[14]|6\\d)|50\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\d|7[01]|8[57-9]))\\d{4}", - , - , - , - "94351234", - ], - [, , "953[01]\\d{4}|9(?:5[12467]|6[5-9])\\d{5}", , , , "95181234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "60[0-2]\\d{4}", , , , "6001234", , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "CW", - 599, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["[3467]"]], - [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["9[4-8]"]], - ], - , - [, , "955\\d{5}", , , , "95581234", , , [8]], - 1, - "[69]", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CX: [ - , - [ - , - , - "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", - , - , - , - , - , - , - [6, 7, 8, 9, 10, 12], - ], - [ - , - , - "8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}", - , - , - , - "891641234", - , - , - [9], - [8], - ], - [ - , - , - "4(?:83[0-38]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}", - , - , - , - "412345678", - , - , - [9], - ], - [, , "180(?:0\\d{3}|2)\\d{3}", , , , "1800123456", , , [7, 10]], - [, , "190[0-26]\\d{6}", , , , "1900123456", , , [10]], - [, , "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", , , , "1300123456", , , [6, 8, 10, 12]], - [, , , , , , , , , [-1]], - [, , "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", , , , "147101234", , , [9]], - "CX", - 61, - "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", - "0", - , - , - "0|([59]\\d{7})$", - "8$1", - "0011", - , - , - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - CY: [ - , - [, , "(?:[279]\\d|[58]0)\\d{6}", , , , , , , [8]], - [, , "2[2-6]\\d{6}", , , , "22345678"], - [, , "9[4-79]\\d{6}", , , , "96123456"], - [, , "800\\d{5}", , , , "80001234"], - [, , "90[09]\\d{5}", , , , "90012345"], - [, , "80[1-9]\\d{5}", , , , "80112345"], - [, , "700\\d{5}", , , , "70012345"], - [, , , , , , , , , [-1]], - "CY", - 357, - "00", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{6})", "$1 $2", ["[257-9]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "(?:50|77)\\d{6}", , , , "77123456"], - , - , - [, , , , , , , , , [-1]], - ], - CZ: [ - , - [, , "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}", , , , , , , [9, 10, 11, 12]], - [, , "(?:2\\d|3[1257-9]|4[16-9]|5[13-9])\\d{7}", , , , "212345678", , , [9]], - [, , "(?:60[1-8]|7(?:0[2-5]|[2379]\\d))\\d{6}", , , , "601123456", , , [9]], - [, , "800\\d{6}", , , , "800123456", , , [9]], - [, , "9(?:0[05689]|76)\\d{6}", , , , "900123456", , , [9]], - [, , "8[134]\\d{7}", , , , "811234567", , , [9]], - [, , "70[01]\\d{6}", , , , "700123456", , , [9]], - [, , "9[17]0\\d{6}", , , , "910123456", , , [9]], - "CZ", - 420, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]], - [, "(\\d{2})(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["96"]], - [, "(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], - [, "(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "9(?:5\\d|7[2-4])\\d{6}", , , , "972123456", , , [9]], - , - , - [, , "9(?:3\\d{9}|6\\d{7,10})", , , , "93123456789"], - ], - DE: [ - , - [ - , - , - "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[02-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|[23]1|[46][1-8])\\d{1,9}", - , - , - , - , - , - , - [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], - [2, 3], - ], - [ - , - , - "32\\d{9,11}|49[1-6]\\d{10}|322\\d{6}|49[0-7]\\d{3,9}|(?:[34]0|[68]9)\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\d|[589][0-7]|6[0-8]|7[0-467]))\\d{3,12}", - , - , - , - "30123456", - , - , - [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], - [2, 3, 4], - ], - [, , "15[0-25-9]\\d{8}|1(?:6[023]|7\\d)\\d{7,8}", , , , "15123456789", , , [10, 11]], - [, , "800\\d{7,12}", , , , "8001234567890", , , [10, 11, 12, 13, 14, 15]], - [, , "(?:137[7-9]|900(?:[135]|9\\d))\\d{6}", , , , "9001234567", , , [10, 11]], - [, , "180\\d{5,11}|13(?:7[1-6]\\d\\d|8)\\d{4}", , , , "18012345", , , [7, 8, 9, 10, 11, 12, 13, 14]], - [, , "700\\d{8}", , , , "70012345678", , , [11]], - [, , , , , , , , , [-1]], - "DE", - 49, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{3,13})", "$1 $2", ["3[02]|40|[68]9"], "0$1"], - [ - , - "(\\d{3})(\\d{3,12})", - "$1 $2", - [ - "2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", - "2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", - ], - "0$1", - ], - [ - , - "(\\d{4})(\\d{2,11})", - "$1 $2", - [ - "[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]", - "[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]", - ], - "0$1", - ], - [, "(\\d{3})(\\d{4})", "$1 $2", ["138"], "0$1"], - [, "(\\d{5})(\\d{2,10})", "$1 $2", ["3"], "0$1"], - [, "(\\d{3})(\\d{5,11})", "$1 $2", ["181"], "0$1"], - [, "(\\d{3})(\\d)(\\d{4,10})", "$1 $2 $3", ["1(?:3|80)|9"], "0$1"], - [, "(\\d{3})(\\d{7,8})", "$1 $2", ["1[67]"], "0$1"], - [, "(\\d{3})(\\d{7,12})", "$1 $2", ["8"], "0$1"], - [, "(\\d{5})(\\d{6})", "$1 $2", ["185", "1850", "18500"], "0$1"], - [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], - [, "(\\d{4})(\\d{7})", "$1 $2", ["18[68]"], "0$1"], - [, "(\\d{5})(\\d{6})", "$1 $2", ["15[0568]"], "0$1"], - [, "(\\d{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"], - [, "(\\d{3})(\\d{8})", "$1 $2", ["18"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"], - [, "(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"], - ], - , - [, , "16(?:4\\d{1,10}|[89]\\d{1,11})", , , , "16412345", , , [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]], - , - , - [, , , , , , , , , [-1]], - [, , "18(?:1\\d{5,11}|[2-9]\\d{8})", , , , "18500123456", , , [8, 9, 10, 11, 12, 13, 14]], - , - , - [ - , - , - "1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\d{7,8}|15(?:(?:[03-68]00|113)\\d|2\\d55|7\\d99|9\\d33)\\d{7}", - , - , - , - "177991234567", - , - , - [12, 13], - ], - ], - DJ: [ - , - [, , "(?:2\\d|77)\\d{6}", , , , , , , [8]], - [, , "2(?:1[2-5]|7[45])\\d{5}", , , , "21360003"], - [, , "77\\d{6}", , , , "77831001"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "DJ", - 253, - "00", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[27]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - DK: [ - , - [, , "[2-9]\\d{7}", , , , , , , [8]], - [, , "(?:[2-7]\\d|8[126-9]|9[1-46-9])\\d{6}", , , , "32123456"], - [, , "(?:[2-7]\\d|8[126-9]|9[1-46-9])\\d{6}", , , , "32123456"], - [, , "80\\d{6}", , , , "80123456"], - [, , "90\\d{6}", , , , "90123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "DK", - 45, - "00", - , - , - , - , - , - , - 1, - [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-9]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - DM: [ - , - [, , "(?:[58]\\d\\d|767|900)\\d{7}", , , , , , , [10], [7]], - [, , "767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\d{4}", , , , "7674201234", , , , [7]], - [, , "767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\d{4}", , , , "7672251234", , , , [7]], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "DM", - 1, - "011", - "1", - , - , - "1|([2-7]\\d{6})$", - "767$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "767", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - DO: [ - , - [, , "(?:[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], - [ - , - , - "8(?:[04]9[2-9]\\d\\d|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d\\d|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\d{4}", - , - , - , - "8092345678", - , - , - , - [7], - ], - [, , "8[024]9[2-9]\\d{6}", , , , "8092345678", , , , [7]], - [, , "8(?:00(?:14|[2-9]\\d)|(?:33|44|55|66|77|88)[2-9]\\d)\\d{5}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "DO", - 1, - "011", - "1", - , - , - "1", - , - , - , - , - , - [, , , , , , , , , [-1]], - , - "8001|8[024]9", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - DZ: [ - , - [, , "(?:[1-4]|[5-79]\\d|80)\\d{7}", , , , , , , [8, 9]], - [, , "9619\\d{5}|(?:1\\d|2[013-79]|3[0-8]|4[013-689])\\d{6}", , , , "12345678"], - [, , "(?:5(?:4[0-29]|5\\d|6[0-2])|6(?:[569]\\d|7[0-6])|7[7-9]\\d)\\d{6}", , , , "551234567", , , [9]], - [, , "800\\d{6}", , , , "800123456", , , [9]], - [, , "80[3-689]1\\d{5}", , , , "808123456", , , [9]], - [, , "80[12]1\\d{5}", , , , "801123456", , , [9]], - [, , , , , , , , , [-1]], - [, , "98[23]\\d{6}", , , , "983123456", , , [9]], - "DZ", - 213, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-4]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["9"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-8]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - EC: [ - , - [, , "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}", , , , , , , [8, 9, 10, 11], [7]], - [, , "[2-7][2-7]\\d{6}", , , , "22123456", , , [8], [7]], - [, , "964[0-2]\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\d)\\d{6}", , , , "991234567", , , [9]], - [, , "1800\\d{7}|1[78]00\\d{6}", , , , "18001234567", , , [10, 11]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "[2-7]890\\d{4}", , , , "28901234", , , [8]], - "EC", - 593, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{4})", "$1-$2", ["[2-7]"]], - [, "(\\d)(\\d{3})(\\d{4})", "$1 $2-$3", ["[2-7]"], "(0$1)"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], - [, "(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]], - ], - [ - [, "(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-7]"]], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], - [, "(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - EE: [ - , - [, , "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}", , , , , , , [7, 8, 10]], - [, , "(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}", , , , "3212345", , , [7]], - [ - , - , - "(?:5\\d{5}|8(?:1(?:0(?:000|[3-9]\\d\\d)|(?:1(?:0[236]|1\\d)|(?:23|[3-79]\\d)\\d)\\d)|2(?:0(?:000|(?:19|[2-7]\\d)\\d)|(?:(?:[124-6]\\d|3[5-9])\\d|7(?:[3679]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}", - , - , - , - "51234567", - , - , - [7, 8], - ], - [, , "800(?:(?:0\\d\\d|1)\\d|[2-9])\\d{3}", , , , "80012345"], - [, , "(?:40\\d\\d|900)\\d{4}", , , , "9001234", , , [7, 8]], - [, , , , , , , , , [-1]], - [, , "70[0-2]\\d{5}", , , , "70012345", , , [8]], - [, , , , , , , , , [-1]], - "EE", - 372, - "00", - , - , - , - , - , - , - , - [ - [ - , - "(\\d{3})(\\d{4})", - "$1 $2", - [ - "[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88", - "[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88", - ], - ], - [, "(\\d{4})(\\d{3,4})", "$1 $2", ["[45]|8(?:00|[1-49])", "[45]|8(?:00[1-9]|[1-49])"]], - [, "(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["7"]], - [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , "800[2-9]\\d{3}", , , , , , , [7]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - EG: [ - , - [, , "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}", , , , , , , [8, 9, 10], [6, 7]], - [ - , - , - "13[23]\\d{6}|(?:15|57)\\d{6,7}|(?:2[2-4]|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\d{7}", - , - , - , - "234567890", - , - , - [8, 9], - [6, 7], - ], - [, , "1[0-25]\\d{8}", , , , "1001234567", , , [10]], - [, , "800\\d{7}", , , , "8001234567", , , [10]], - [, , "900\\d{7}", , , , "9001234567", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "EG", - 20, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{7,8})", "$1 $2", ["[23]"], "0$1"], - [, "(\\d{2})(\\d{6,7})", "$1 $2", ["1[35]|[4-6]|8[2468]|9[235-7]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[189]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - EH: [ - , - [, , "[5-8]\\d{8}", , , , , , , [9]], - [, , "528[89]\\d{5}", , , , "528812345"], - [, , "(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]))\\d{6}", , , , "650123456"], - [, , "80\\d{7}", , , , "801234567"], - [, , "89\\d{7}", , , , "891234567"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "592(?:4[0-2]|93)\\d{4}", , , , "592401234"], - "EH", - 212, - "00", - "0", - , - , - "0", - , - , - , - , - , - [, , , , , , , , , [-1]], - , - "528[89]", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - ER: [ - , - [, , "[178]\\d{6}", , , , , , , [7], [6]], - [, , "(?:1(?:1[12568]|[24]0|55|6[146])|8\\d\\d)\\d{4}", , , , "8370362", , , , [6]], - [, , "(?:17[1-3]|7\\d\\d)\\d{4}", , , , "7123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "ER", - 291, - "00", - "0", - , - , - "0", - , - , - , - [[, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[178]"], "0$1"]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - ES: [ - , - [, , "[5-9]\\d{8}", , , , , , , [9]], - [ - , - , - "96906(?:0[0-8]|1[1-9]|[2-9]\\d)\\d\\d|9(?:69(?:0[0-57-9]|[1-9]\\d)|73(?:[0-8]\\d|9[1-9]))\\d{4}|(?:8(?:[1356]\\d|[28][0-8]|[47][1-9])|9(?:[135]\\d|[268][0-8]|4[1-9]|7[124-9]))\\d{6}", - , - , - , - "810123456", - ], - [, , "(?:590[16]00\\d|9(?:6906(?:09|10)|7390\\d\\d))\\d\\d|(?:6\\d|7[1-48])\\d{7}", , , , "612345678"], - [, , "[89]00\\d{6}", , , , "800123456"], - [, , "80[367]\\d{6}", , , , "803123456"], - [, , "90[12]\\d{6}", , , , "901123456"], - [, , "70\\d{7}", , , , "701234567"], - [, , , , , , , , , [-1]], - "ES", - 34, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{4})", "$1", ["905"]], - [, "(\\d{6})", "$1", ["[79]9"]], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]00"]], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-9]"]], - ], - [ - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]00"]], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-9]"]], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "51\\d{7}", , , , "511234567"], - , - , - [, , , , , , , , , [-1]], - ], - ET: [ - , - [, , "(?:11|[2-579]\\d)\\d{7}", , , , , , , [9], [7]], - [ - , - , - "11667[01]\\d{3}|(?:11(?:1(?:1[124]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:1[78]|2[69]|39|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}", - , - , - , - "111112345", - , - , - , - [7], - ], - [, , "7001\\d{5}|(?:7(?:0[1-9]|1[01]|77|86|99)|9\\d\\d)\\d{6}", , , , "911234567"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "ET", - 251, - "00", - "0", - , - , - "0", - , - , - , - [[, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-579]"], "0$1"]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - FI: [ - , - [ - , - , - "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}", - , - , - , - , - , - , - [5, 6, 7, 8, 9, 10, 11, 12], - ], - [, , "(?:1[3-79][1-8]|[235689][1-8]\\d)\\d{2,6}", , , , "131234567", , , [5, 6, 7, 8, 9]], - [, , "4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}", , , , "412345678", , , [6, 7, 8, 9, 10]], - [, , "800\\d{4,6}", , , , "800123456", , , [7, 8, 9]], - [, , "[67]00\\d{5,6}", , , , "600123456", , , [8, 9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "FI", - 358, - "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", - "0", - , - , - "0", - , - "00", - , - [ - [, "(\\d{5})", "$1", ["75[12]"], "0$1"], - [, "(\\d)(\\d{4,9})", "$1 $2", ["[2568][1-8]|3(?:0[1-9]|[1-9])|9"], "0$1"], - [, "(\\d{6})", "$1", ["11"]], - [, "(\\d{3})(\\d{3,7})", "$1 $2", ["[12]00|[368]|70[07-9]"], "0$1"], - [, "(\\d{2})(\\d{4,8})", "$1 $2", ["[1245]|7[135]"], "0$1"], - [, "(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], - ], - [ - [, "(\\d)(\\d{4,9})", "$1 $2", ["[2568][1-8]|3(?:0[1-9]|[1-9])|9"], "0$1"], - [, "(\\d{3})(\\d{3,7})", "$1 $2", ["[12]00|[368]|70[07-9]"], "0$1"], - [, "(\\d{2})(\\d{4,8})", "$1 $2", ["[1245]|7[135]"], "0$1"], - [, "(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], - ], - [, , , , , , , , , [-1]], - 1, - "1[03-79]|[2-9]", - [ - , - , - "20(?:2[023]|9[89])\\d{1,6}|(?:60[12]\\d|7099)\\d{4,5}|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:[1-3]00|7(?:0[1-5]\\d\\d|5[03-9]))\\d{3,7}", - ], - [ - , - , - "20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}", - , - , - , - "10112345", - ], - , - , - [, , , , , , , , , [-1]], - ], - FJ: [ - , - [, , "45\\d{5}|(?:0800\\d|[235-9])\\d{6}", , , , , , , [7, 11]], - [, , "603\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\d{5}", , , , "3212345", , , [7]], - [, , "(?:[279]\\d|45|5[01568]|8[034679])\\d{5}", , , , "7012345", , , [7]], - [, , "0800\\d{7}", , , , "08001234567", , , [11]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "FJ", - 679, - "0(?:0|52)", - , - , - , - , - , - "00", - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["[235-9]|45"]], - [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - FK: [ - , - [, , "[2-7]\\d{4}", , , , , , , [5]], - [, , "[2-47]\\d{4}", , , , "31234"], - [, , "[56]\\d{4}", , , , "51234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "FK", - 500, - "00", - , - , - , - , - , - , - , - , - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - FM: [ - , - [, , "(?:[39]\\d\\d|820)\\d{4}", , , , , , , [7]], - [ - , - , - "31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\d)\\d)\\d{3}", - , - , - , - "3201234", - ], - [ - , - , - "31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\d)\\d)\\d{3}", - , - , - , - "3501234", - ], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "FM", - 691, - "00", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{4})", "$1 $2", ["[389]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - FO: [ - , - [, , "[2-9]\\d{5}", , , , , , , [6]], - [, , "(?:20|[34]\\d|8[19])\\d{4}", , , , "201234"], - [, , "(?:[27][1-9]|5\\d|9[16])\\d{4}", , , , "211234"], - [, , "80[257-9]\\d{3}", , , , "802123"], - [, , "90(?:[13-5][15-7]|2[125-7]|9\\d)\\d\\d", , , , "901123"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "(?:6[0-36]|88)\\d{4}", , , , "601234"], - "FO", - 298, - "00", - , - , - , - "(10(?:01|[12]0|88))", - , - , - , - [[, "(\\d{6})", "$1", ["[2-9]"], , "$CC $1"]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - FR: [ - , - [, , "[1-9]\\d{8}", , , , , , , [9]], - [, , "(?:[1-35]\\d|4[1-9])\\d{7}", , , , "123456789"], - [, , "(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7(?:00|[3-9]\\d))\\d{6}", , , , "612345678"], - [, , "80[0-5]\\d{6}", , , , "801234567"], - [ - , - , - "836(?:0[0-36-9]|[1-9]\\d)\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\d|8[0-35-9])\\d{6}", - , - , - , - "891123456", - ], - [, , "8(?:1[01]|2[0156]|4[02]|84)\\d{6}", , , , "884012345"], - [, , , , , , , , , [-1]], - [, , "9\\d{8}", , , , "912345678"], - "FR", - 33, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{4})", "$1", ["10"]], - [, "(\\d{3})(\\d{3})", "$1 $2", ["1"]], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0 $1"], - [, "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[1-79]"], "0$1"], - ], - [ - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0 $1"], - [, "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[1-79]"], "0$1"], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "80[6-9]\\d{6}", , , , "806123456"], - , - , - [, , , , , , , , , [-1]], - ], - GA: [ - , - [, , "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}", , , , , , , [7, 8]], - [, , "[01]1\\d{6}", , , , "01441234", , , [8]], - [, , "(?:(?:0[2-7]|7[467])\\d|6(?:0[0-4]|10|[256]\\d))\\d{5}|[2-7]\\d{6}", , , , "06031234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "GA", - 241, - "00", - , - , - , - "0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})", - "$1", - , - , - [ - [, "(\\d)(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-7]"], "0$1"], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["11|[67]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GB: [ - , - [, , "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}", , , , , , , [7, 9, 10], [4, 5, 6, 8]], - [ - , - , - "(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0235])|4(?:[0-5]\\d\\d|69[7-9]|70[01359])|(?:5[0-26-9]|[78][0-49])\\d\\d|6(?:[0-4]\\d\\d|50[0-79]))|2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d\\d|1(?:[0-7]\\d\\d|8(?:[02]\\d|1[0-26-9])))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}", - , - , - , - "1212345678", - , - , - [9, 10], - [4, 5, 6, 7, 8], - ], - [ - , - , - "7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}", - , - , - , - "7400123456", - , - , - [10], - ], - [, , "80[08]\\d{7}|800\\d{6}|8001111", , , , "8001234567"], - [, , "(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d", , , , "9012345678", , , [7, 10]], - [, , , , , , , , , [-1]], - [, , "70\\d{8}", , , , "7012345678", , , [10]], - [, , "56\\d{8}", , , , "5612345678", , , [10]], - "GB", - 44, - "00", - "0", - " x", - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["800", "8001", "80011", "800111", "8001111"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["845", "8454", "84546", "845464"], "0$1"], - [, "(\\d{3})(\\d{6})", "$1 $2", ["800"], "0$1"], - [ - , - "(\\d{5})(\\d{4,5})", - "$1 $2", - [ - "1(?:38|5[23]|69|76|94)", - "1(?:(?:38|69)7|5(?:24|39)|768|946)", - "1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)", - ], - "0$1", - ], - [, "(\\d{4})(\\d{5,6})", "$1 $2", ["1(?:[2-69][02-9]|[78])"], "0$1"], - [ - , - "(\\d{2})(\\d{4})(\\d{4})", - "$1 $2 $3", - ["[25]|7(?:0|6[02-9])", "[25]|7(?:0|6(?:[03-9]|2[356]))"], - "0$1", - ], - [, "(\\d{4})(\\d{6})", "$1 $2", ["7"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1389]"], "0$1"], - ], - , - [ - , - , - "76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", - , - , - , - "7640123456", - , - , - [10], - ], - 1, - , - [, , , , , , , , , [-1]], - [, , "(?:3[0347]|55)\\d{8}", , , , "5512345678", , , [10]], - , - , - [, , , , , , , , , [-1]], - ], - GD: [ - , - [, , "(?:473|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], - [ - , - , - "473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|73|90)|63[68]|7(?:58|84)|800|938)\\d{4}", - , - , - , - "4732691234", - , - , - , - [7], - ], - [ - , - , - "473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\d{4}", - , - , - , - "4734031234", - , - , - , - [7], - ], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "GD", - 1, - "011", - "1", - , - , - "1|([2-9]\\d{6})$", - "473$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "473", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GE: [ - , - [, , "(?:[3-57]\\d\\d|800)\\d{6}", , , , , , , [9], [6, 7]], - [ - , - , - "(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}", - , - , - , - "322123456", - , - , - , - [6, 7], - ], - [ - , - , - "5(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d{3}|5(?:0070|11(?:33|51)|[25]222|3333)[0-4]\\d{3}|5(?:00(?:0\\d|5[05])|11(?:00|[124]\\d|3[01])|5200|75(?:00|[57]5)|8(?:0(?:[01]\\d|2[0-4])|58[89]|8(?:55|88)))\\d{4}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\d{6}", - , - , - , - "555123456", - ], - [, , "800\\d{6}", , , , "800123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "70[67]\\d{6}", , , , "706123456"], - "GE", - 995, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["32"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[57]"]], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[348]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , "70[67]\\d{6}"], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GF: [ - , - [, , "(?:[56]94|80\\d|976)\\d{6}", , , , , , , [9]], - [, , "594(?:[023]\\d|1[0-2]|4[03-9]|5[6-9]|6[0-3]|80|9[0-8])\\d{4}", , , , "594101234"], - [, , "694(?:[0-249]\\d|3[0-48])\\d{4}", , , , "694201234"], - [, , "80[0-5]\\d{6}", , , , "800012345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "976\\d{6}", , , , "976012345"], - "GF", - 594, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GG: [ - , - [, , "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?", , , , , , , [7, 9, 10], [6]], - [, , "1481[25-9]\\d{5}", , , , "1481256789", , , [10], [6]], - [, , "7(?:(?:781|839)\\d|911[17])\\d{5}", , , , "7781123456", , , [10]], - [, , "80[08]\\d{7}|800\\d{6}|8001111", , , , "8001234567"], - [, , "(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d", , , , "9012345678", , , [7, 10]], - [, , , , , , , , , [-1]], - [, , "70\\d{8}", , , , "7012345678", , , [10]], - [, , "56\\d{8}", , , , "5612345678", , , [10]], - "GG", - 44, - "00", - "0", - , - , - "0|([25-9]\\d{5})$", - "1481$1", - , - , - , - , - [ - , - , - "76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", - , - , - , - "7640123456", - , - , - [10], - ], - , - , - [, , , , , , , , , [-1]], - [, , "(?:3[0347]|55)\\d{8}", , , , "5512345678", , , [10]], - , - , - [, , , , , , , , , [-1]], - ], - GH: [ - , - [, , "(?:[235]\\d{3}|800)\\d{5}", , , , , , , [8, 9], [7]], - [ - , - , - "3082[0-5]\\d{4}|3(?:0(?:[237]\\d|8[01])|[167](?:2[0-6]|7\\d|80)|2(?:2[0-5]|7\\d|80)|3(?:2[0-3]|7\\d|80)|4(?:2[013-9]|3[01]|7\\d|80)|5(?:2[0-7]|7\\d|80)|8(?:2[0-2]|7\\d|80)|9(?:[28]0|7\\d))\\d{5}", - , - , - , - "302345678", - , - , - [9], - [7], - ], - [, , "(?:2(?:[0346-9]\\d|5[67])|5(?:[0457]\\d|6[01]|9[1-9]))\\d{6}", , , , "231234567", , , [9]], - [, , "800\\d{5}", , , , "80012345", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "GH", - 233, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["[237]|8[0-2]"]], - [, "(\\d{3})(\\d{5})", "$1 $2", ["8"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[235]"], "0$1"], - ], - [ - [, "(\\d{3})(\\d{5})", "$1 $2", ["8"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[235]"], "0$1"], - ], - [, , , , , , , , , [-1]], - , - , - [, , "800\\d{5}", , , , , , , [8]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GI: [ - , - [, , "(?:[25]\\d\\d|606)\\d{5}", , , , , , , [8]], - [, , "21(?:6[24-7]\\d|90[0-2])\\d{3}|2(?:00|2[25])\\d{5}", , , , "20012345"], - [, , "(?:5[146-8]\\d|606)\\d{5}", , , , "57123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "GI", - 350, - "00", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{5})", "$1 $2", ["2"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GL: [ - , - [, , "(?:19|[2-689]\\d|70)\\d{4}", , , , , , , [6]], - [, , "(?:19|3[1-7]|6[14689]|70|8[14-79]|9\\d)\\d{4}", , , , "321000"], - [, , "[245]\\d{5}", , , , "221234"], - [, , "80\\d{4}", , , , "801234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "3[89]\\d{4}", , , , "381234"], - "GL", - 299, - "00", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["19|[2-9]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GM: [ - , - [, , "[2-9]\\d{6}", , , , , , , [7]], - [ - , - , - "(?:4(?:[23]\\d\\d|4(?:1[024679]|[6-9]\\d))|5(?:5(?:3\\d|4[0-7])|6[67]\\d|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}", - , - , - , - "5661234", - ], - [, , "(?:[23679]\\d|5[0-389])\\d{5}", , , , "3012345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "GM", - 220, - "00", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GN: [ - , - [, , "722\\d{6}|(?:3|6\\d)\\d{7}", , , , , , , [8, 9]], - [ - , - , - "3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\d\\d)\\d{4}", - , - , - , - "30241234", - , - , - [8], - ], - [, , "6[0-356]\\d{7}", , , , "601123456", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "722\\d{6}", , , , "722123456", , , [9]], - "GN", - 224, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["3"]], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[67]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GP: [ - , - [, , "(?:590|(?:69|80)\\d|976)\\d{6}", , , , , , , [9]], - [ - , - , - "590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1289]|5[3-579]|6[0-289]|7[08]|8[0-689]|9\\d)\\d{4}", - , - , - , - "590201234", - ], - [, , "69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}", , , , "690001234"], - [, , "80[0-5]\\d{6}", , , , "800012345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "976[01]\\d{5}", , , , "976012345"], - "GP", - 590, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - 1, - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GQ: [ - , - [, , "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}", , , , , , , [9]], - [, , "33[0-24-9]\\d[46]\\d{4}|3(?:33|5\\d)\\d[7-9]\\d{4}", , , , "333091234"], - [, , "(?:222|55\\d)\\d{6}", , , , "222123456"], - [, , "80\\d[1-9]\\d{5}", , , , "800123456"], - [, , "90\\d[1-9]\\d{5}", , , , "900123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "GQ", - 240, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235]"]], - [, "(\\d{3})(\\d{6})", "$1 $2", ["[89]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GR: [ - , - [, , "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}", , , , , , , [10, 11, 12]], - [ - , - , - "2(?:1\\d\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-57]))\\d{6}", - , - , - , - "2123456789", - , - , - [10], - ], - [, , "68[57-9]\\d{7}|(?:69|94)\\d{8}", , , , "6912345678", , , [10]], - [, , "800\\d{7,9}", , , , "8001234567"], - [, , "90[19]\\d{7}", , , , "9091234567", , , [10]], - [, , "8(?:0[16]|12|[27]5|50)\\d{7}", , , , "8011234567", , , [10]], - [, , "70\\d{8}", , , , "7012345678", , , [10]], - [, , , , , , , , , [-1]], - "GR", - 30, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["21|7"]], - [, "(\\d{4})(\\d{6})", "$1 $2", ["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2689]"]], - [, "(\\d{3})(\\d{3,4})(\\d{5})", "$1 $2 $3", ["8"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "5005000\\d{3}", , , , "5005000123", , , [10]], - , - , - [, , , , , , , , , [-1]], - ], - GT: [ - , - [, , "(?:1\\d{3}|[2-7])\\d{7}", , , , , , , [8, 11]], - [, , "[267][2-9]\\d{6}", , , , "22456789", , , [8]], - [, , "[3-5]\\d{7}", , , , "51234567", , , [8]], - [, , "18[01]\\d{8}", , , , "18001112222", , , [11]], - [, , "19\\d{9}", , , , "19001112222", , , [11]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "GT", - 502, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{4})(\\d{4})", "$1 $2", ["[2-7]"]], - [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GU: [ - , - [, , "(?:[58]\\d\\d|671|900)\\d{7}", , , , , , , [10], [7]], - [ - , - , - "671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}", - , - , - , - "6713001234", - , - , - , - [7], - ], - [ - , - , - "671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}", - , - , - , - "6713001234", - , - , - , - [7], - ], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "GU", - 1, - "011", - "1", - , - , - "1|([3-9]\\d{6})$", - "671$1", - , - 1, - , - , - [, , , , , , , , , [-1]], - , - "671", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GW: [ - , - [, , "[49]\\d{8}|4\\d{6}", , , , , , , [7, 9]], - [, , "443\\d{6}", , , , "443201234", , , [9]], - [, , "9(?:5\\d|6[569]|77)\\d{6}", , , , "955012345", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "40\\d{5}", , , , "4012345", , , [7]], - "GW", - 245, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["40"]], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - GY: [ - , - [, , "9008\\d{3}|(?:[2-467]\\d\\d|862)\\d{4}", , , , , , , [7]], - [ - , - , - "(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-24-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|77[1-57])\\d{4}", - , - , - , - "2201234", - ], - [, , "(?:6\\d\\d|70[015-7])\\d{4}", , , , "6091234"], - [, , "(?:289|862)\\d{4}", , , , "2891234"], - [, , "9008\\d{3}", , , , "9008123"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "GY", - 592, - "001", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{4})", "$1 $2", ["[2-46-9]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - HK: [ - , - [, , "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}", , , , , , , [5, 6, 7, 8, 9, 11]], - [ - , - , - "(?:38[45][0-8]|58(?:0[1-8]|1[2-9]))\\d{4}|(?:2(?:[13-9]\\d|2[013-9])|3(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69]|89))\\d{5}", - , - , - , - "21234567", - , - , - [8], - ], - [ - , - , - "(?:4(?:44[5-9]|6(?:0[0-7]|1[0-6]|4[0-57-9]|6[0-4]|7[0-8]))|573[0-6]|6(?:26[013-8]|66[0-3])|70(?:7[1-5]|8[0-4])|848[015-9]|9(?:29[013-9]|59[0-4]))\\d{4}|(?:4(?:4[01]|6[2358])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\d|[268][0-57-9]|7[0-79])|84[09]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}", - , - , - , - "51234567", - , - , - [8], - ], - [, , "800\\d{6}", , , , "800123456", , , [9]], - [, , "900(?:[0-24-9]\\d{7}|3\\d{1,4})", , , , "90012345678", , , [5, 6, 7, 8, 11]], - [, , , , , , , , , [-1]], - [, , "8(?:1[0-4679]\\d|2(?:[0-36]\\d|7[0-4])|3(?:[034]\\d|2[09]|70))\\d{4}", , , , "81123456", , , [8]], - [, , , , , , , , , [-1]], - "HK", - 852, - "00(?:30|5[09]|[126-9]?)", - , - , - , - , - , - "00", - , - [ - [, "(\\d{3})(\\d{2,5})", "$1 $2", ["900", "9003"]], - [, "(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], - [, "(\\d{3})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], - ], - , - [ - , - , - "7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[0136])|2(?:[02389]\\d|1[18]|7[27-9])|3(?:[0-38]\\d|7[0-369]|9[2357-9])|47\\d|5(?:[178]\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\d)|7(?:[27]\\d|8[7-9])|8(?:[23689]\\d|7[1-9])|9(?:[025]\\d|6[0-246-8]|7[0-36-9]|8[238]))\\d{4}", - , - , - , - "71123456", - , - , - [8], - ], - , - , - [, , , , , , , , , [-1]], - [, , "30(?:0[1-9]|[15-7]\\d|2[047]|89)\\d{4}", , , , "30161234", , , [8]], - , - , - [, , , , , , , , , [-1]], - ], - HN: [ - , - [, , "8\\d{10}|[237-9]\\d{7}", , , , , , , [8, 11]], - [ - , - , - "2(?:2(?:0[0-359]|1[1-367]|[23]\\d|4[03-6]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[78]|2[3-59]|3[13-9]|4[0-68]|5[1-35])|5(?:0[7-9]|16|4[03-5]|5\\d|6[014-6]|7[04]|80)|6(?:[056]\\d|17|2[067]|3[04]|4[0-378]|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\d{4}", - , - , - , - "22123456", - , - , - [8], - ], - [, , "[37-9]\\d{7}", , , , "91234567", , , [8]], - [, , "8002\\d{7}", , , , "80021234567", , , [11]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "HN", - 504, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]], - [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], - ], - [[, "(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]]], - [, , , , , , , , , [-1]], - , - , - [, , "8002\\d{7}", , , , , , , [11]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - HR: [ - , - [, , "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}", , , , , , , [6, 7, 8, 9]], - [, , "1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6,7}", , , , "12345678", , , [8, 9], [6, 7]], - [ - , - , - "98\\d{6,7}|975(?:1\\d|9[67])\\d{4}|9(?:0[1-9]|[1259]\\d|7[0679])\\d{6}", - , - , - , - "921234567", - , - , - [8, 9], - ], - [, , "80[01]\\d{4,6}", , , , "800123456", , , [7, 8, 9]], - [, , "6[01459]\\d{6}|6[01]\\d{4,5}", , , , "611234", , , [6, 7, 8]], - [, , , , , , , , , [-1]], - [, , "7[45]\\d{6}", , , , "74123456", , , [8]], - [, , , , , , , , , [-1]], - "HR", - 385, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["6[01]"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["8"], "0$1"], - [, "(\\d)(\\d{4})(\\d{3})", "$1 $2 $3", ["1"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[67]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-5]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "62\\d{6,7}|72\\d{6}", , , , "62123456", , , [8, 9]], - , - , - [, , , , , , , , , [-1]], - ], - HT: [ - , - [, , "[2-489]\\d{7}", , , , , , , [8]], - [, , "2(?:2\\d|5[1-5]|81|9[149])\\d{5}", , , , "22453300"], - [, , "[34]\\d{7}", , , , "34101234"], - [, , "8\\d{7}", , , , "80012345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "9(?:[67][0-4]|8[0-3589]|9\\d)\\d{5}", , , , "98901234"], - "HT", - 509, - "00", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[2-489]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - HU: [ - , - [, , "[235-7]\\d{8}|[1-9]\\d{7}", , , , , , , [8, 9], [6, 7]], - [ - , - , - "(?:1\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\d{6}", - , - , - , - "12345678", - , - , - [8], - [6, 7], - ], - [, , "(?:[257]0|3[01])\\d{7}", , , , "201234567", , , [9]], - [, , "(?:[48]0\\d|680[29])\\d{5}", , , , "80123456"], - [, , "9[01]\\d{6}", , , , "90123456", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "21\\d{7}", , , , "211234567", , , [9]], - "HU", - 36, - "00", - "06", - , - , - "06", - , - , - , - [ - [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "(06 $1)"], - [ - , - "(\\d{2})(\\d{3})(\\d{3})", - "$1 $2 $3", - ["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"], - "(06 $1)", - ], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "06 $1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , "(?:[48]0\\d|680[29])\\d{5}"], - [, , "38\\d{7}", , , , "381234567", , , [9]], - , - , - [, , , , , , , , , [-1]], - ], - ID: [ - , - [ - , - , - "(?:(?:00[1-9]|8\\d)\\d{4}|[1-36])\\d{6}|00\\d{10}|[1-9]\\d{8,10}|[2-9]\\d{7}", - , - , - , - , - , - , - [7, 8, 9, 10, 11, 12, 13], - [5, 6], - ], - [ - , - , - "2[124]\\d{7,8}|619\\d{8}|2(?:1(?:14|500)|2\\d{3})\\d{3}|61\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}", - , - , - , - "218350123", - , - , - [7, 8, 9, 10, 11], - [5, 6], - ], - [, , "8[1-35-9]\\d{7,10}", , , , "812345678", , , [9, 10, 11, 12]], - [ - , - , - "00[17]803\\d{7}|(?:177\\d|800)\\d{5,7}|001803\\d{6}", - , - , - , - "8001234567", - , - , - [8, 9, 10, 11, 12, 13], - ], - [, , "809\\d{7}", , , , "8091234567", , , [10]], - [, , "804\\d{7}", , , , "8041234567", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "ID", - 62, - "00[89]", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]], - [, "(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"], - [, "(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"], - [, "(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"], - [, "(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"], - [, "(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"], - [, "(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"], - [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["001"]], - [, "(\\d{2})(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["0"]], - ], - [ - [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]], - [, "(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"], - [, "(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"], - [, "(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"], - [, "(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"], - [, "(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"], - [, "(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"], - [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"], - ], - [, , , , , , , , , [-1]], - , - , - [, , "001803\\d{6,7}|(?:007803\\d|8071)\\d{6}", , , , , , , [10, 12, 13]], - [, , "(?:1500|8071\\d{3})\\d{3}", , , , "8071123456", , , [7, 10]], - , - , - [, , , , , , , , , [-1]], - ], - IE: [ - , - [, , "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}", , , , , , , [7, 8, 9, 10], [5, 6]], - [ - , - , - "(?:1\\d|21)\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\d|7)|5(?:0[45]|1\\d|8)|6(?:1\\d|[237-9])|9(?:1\\d|[35-9]))\\d{5}|(?:23|4(?:[1-469]|8\\d)|5[23679]|6[4-6]|7[14]|9[04])\\d{7}", - , - , - , - "2212345", - , - , - , - [5, 6], - ], - [, , "8(?:22|[35-9]\\d)\\d{6}", , , , "850123456", , , [9]], - [, , "1800\\d{6}", , , , "1800123456", , , [10]], - [, , "15(?:1[2-8]|[2-8]0|9[089])\\d{6}", , , , "1520123456", , , [10]], - [, , "18[59]0\\d{6}", , , , "1850123456", , , [10]], - [, , "700\\d{6}", , , , "700123456", , , [9]], - [, , "76\\d{7}", , , , "761234567", , , [9]], - "IE", - 353, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{5})", "$1 $2", ["2[24-9]|47|58|6[237-9]|9[35-9]"], "(0$1)"], - [, "(\\d{3})(\\d{5})", "$1 $2", ["[45]0"], "(0$1)"], - [, "(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"], "(0$1)"], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2569]|4[1-69]|7[14]"], "(0$1)"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["81"], "(0$1)"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[78]"], "0$1"], - [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], - [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["4"], "(0$1)"], - [, "(\\d{2})(\\d)(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["8"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , "18[59]0\\d{6}", , , , , , , [10]], - [, , "818\\d{6}", , , , "818123456", , , [9]], - , - , - [ - , - , - "88210[1-9]\\d{4}|8(?:[35-79]5\\d\\d|8(?:[013-9]\\d\\d|2(?:[01][1-9]|[2-9]\\d)))\\d{5}", - , - , - , - "8551234567", - , - , - [10], - ], - ], - IL: [ - , - [, , "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}", , , , , , , [7, 8, 9, 10, 11, 12]], - [, , "153\\d{8,9}|29[1-9]\\d{5}|(?:2[0-8]|[3489]\\d)\\d{6}", , , , "21234567", , , [8, 11, 12], [7]], - [ - , - , - "5(?:(?:[02368]\\d|[19][2-9]|4[1-9])\\d|5(?:01|1[79]|2[2-9]|3[0-3]|4[34]|5[015689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}", - , - , - , - "502345678", - , - , - [9], - ], - [, , "1(?:255|80[019]\\d{3})\\d{3}", , , , "1800123456", , , [7, 10]], - [, , "1212\\d{4}|1(?:200|9(?:0[0-2]|19))\\d{6}", , , , "1919123456", , , [8, 10]], - [, , "1700\\d{6}", , , , "1700123456", , , [10]], - [, , , , , , , , , [-1]], - [ - , - , - "7(?:380|8(?:33|55|77|81))\\d{5}|7(?:18|2[23]|3[237]|47|6[258]|7\\d|82|9[2-9])\\d{6}", - , - , - , - "771234567", - , - , - [9], - ], - "IL", - 972, - "0(?:0|1[2-9])", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{4})(\\d{3})", "$1-$2", ["125"]], - [, "(\\d{4})(\\d{2})(\\d{2})", "$1-$2-$3", ["121"]], - [, "(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-489]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], - [, "(\\d{4})(\\d{3})(\\d{3})", "$1-$2-$3", ["12"]], - [, "(\\d{4})(\\d{6})", "$1-$2", ["159"]], - [, "(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3-$4", ["1[7-9]"]], - [, "(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})", "$1-$2 $3-$4", ["15"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , "1700\\d{6}", , , , , , , [10]], - [, , "1599\\d{6}", , , , "1599123456", , , [10]], - , - , - [, , "151\\d{8,9}", , , , "15112340000", , , [11, 12]], - ], - IM: [ - , - [, , "1624\\d{6}|(?:[3578]\\d|90)\\d{8}", , , , , , , [10], [6]], - [, , "1624(?:230|[5-8]\\d\\d)\\d{3}", , , , "1624756789", , , , [6]], - [, , "76245[06]\\d{4}|7(?:4576|[59]24\\d|624[0-4689])\\d{5}", , , , "7924123456"], - [, , "808162\\d{4}", , , , "8081624567"], - [, , "8(?:440[49]06|72299\\d)\\d{3}|(?:8(?:45|70)|90[0167])624\\d{4}", , , , "9016247890"], - [, , , , , , , , , [-1]], - [, , "70\\d{8}", , , , "7012345678"], - [, , "56\\d{8}", , , , "5612345678"], - "IM", - 44, - "00", - "0", - , - , - "0|([25-8]\\d{5})$", - "1624$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "74576|(?:16|7[56])24", - [, , , , , , , , , [-1]], - [, , "3440[49]06\\d{3}|(?:3(?:08162|3\\d{4}|45624|7(?:0624|2299))|55\\d{4})\\d{4}", , , , "5512345678"], - , - , - [, , , , , , , , , [-1]], - ], - IN: [ - , - [, , "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}", , , , , , , [8, 9, 10, 11, 12, 13], [6, 7]], - [ - , - , - "2717(?:[2-7]\\d|95)\\d{4}|(?:271[0-689]|782[0-6])[2-7]\\d{5}|(?:170[24]|2(?:(?:[02][2-79]|90)\\d|80[13468])|(?:3(?:23|80)|683|79[1-7])\\d|4(?:20[24]|72[2-8])|552[1-7])\\d{6}|(?:11|33|4[04]|80)[2-7]\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\d)\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d[2-7]\\d{5}", - , - , - , - "7410410123", - , - , - [10], - [6, 7, 8], - ], - [ - , - , - "(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\d|7[02-8])\\d{5}|(?:6(?:[09]\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\d\\d)\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\d|7(?:[235689]\\d|4[0189]))|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]|881))[0189]\\d{5}", - , - , - , - "8123456789", - , - , - [10], - ], - [, , "000800\\d{7}|1(?:600\\d{6}|80(?:0\\d{4,9}|3\\d{9}))", , , , "1800123456"], - [, , "186[12]\\d{9}", , , , "1861123456789", , , [13]], - [, , "1860\\d{7}", , , , "18603451234", , , [11]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "IN", - 91, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{7})", "$1", ["575"]], - [ - , - "(\\d{8})", - "$1", - [ - "5(?:0|2[23]|3[03]|[67]1|88)", - "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)", - "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)", - ], - , - , - 1, - ], - [, "(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], , , 1], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], , , 1], - [ - , - "(\\d{2})(\\d{4})(\\d{4})", - "$1 $2 $3", - [ - "11|2[02]|33|4[04]|79[1-7]|80[2-46]", - "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])", - "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])", - ], - "0$1", - , - 1, - ], - [ - , - "(\\d{3})(\\d{3})(\\d{4})", - "$1 $2 $3", - [ - "1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]", - "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]", - "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]", - ], - "0$1", - , - 1, - ], - [ - , - "(\\d{4})(\\d{3})(\\d{3})", - "$1 $2 $3", - [ - "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807", - "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]", - "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]", - ], - "0$1", - , - 1, - ], - [, "(\\d{5})(\\d{5})", "$1 $2", ["[6-9]"], "0$1", , 1], - [, "(\\d{4})(\\d{2,4})(\\d{4})", "$1 $2 $3", ["1(?:6|8[06])", "1(?:6|8[06]0)"], , , 1], - [, "(\\d{3})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["0"]], - [, "(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], , , 1], - ], - [ - [ - , - "(\\d{8})", - "$1", - [ - "5(?:0|2[23]|3[03]|[67]1|88)", - "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)", - "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)", - ], - , - , - 1, - ], - [, "(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], , , 1], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], , , 1], - [ - , - "(\\d{2})(\\d{4})(\\d{4})", - "$1 $2 $3", - [ - "11|2[02]|33|4[04]|79[1-7]|80[2-46]", - "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])", - "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])", - ], - "0$1", - , - 1, - ], - [ - , - "(\\d{3})(\\d{3})(\\d{4})", - "$1 $2 $3", - [ - "1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]", - "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]", - "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]", - ], - "0$1", - , - 1, - ], - [ - , - "(\\d{4})(\\d{3})(\\d{3})", - "$1 $2 $3", - [ - "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807", - "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]", - "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]", - ], - "0$1", - , - 1, - ], - [, "(\\d{5})(\\d{5})", "$1 $2", ["[6-9]"], "0$1", , 1], - [, "(\\d{4})(\\d{2,4})(\\d{4})", "$1 $2 $3", ["1(?:6|8[06])", "1(?:6|8[06]0)"], , , 1], - [, "(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], , , 1], - ], - [, , , , , , , , , [-1]], - , - , - [, , "1(?:600\\d{6}|800\\d{4,9})|(?:000800|18(?:03\\d\\d|6(?:0|[12]\\d\\d)))\\d{7}"], - [, , "140\\d{7}", , , , "1409305260", , , [10]], - , - , - [, , , , , , , , , [-1]], - ], - IO: [ - , - [, , "3\\d{6}", , , , , , , [7]], - [, , "37\\d{5}", , , , "3709100"], - [, , "38\\d{5}", , , , "3801234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "IO", - 246, - "00", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{4})", "$1 $2", ["3"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - IQ: [ - , - [, , "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}", , , , , , , [8, 9, 10], [6, 7]], - [, , "1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}", , , , "12345678", , , [8, 9], [6, 7]], - [, , "7[3-9]\\d{8}", , , , "7912345678", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "IQ", - 964, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-6]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - IR: [ - , - [, , "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}", , , , , , , [4, 5, 6, 7, 10], [8]], - [ - , - , - "(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\d{7}|[16]\\d{3}(?:\\d{4})?|[289]\\d{3}(?:\\d(?:\\d{3})?)?)|94(?:000[09]|2(?:121|[2689]0\\d)|30[0-2]\\d|4(?:111|40\\d))\\d{4}", - , - , - , - "2123456789", - , - , - [6, 7, 10], - [4, 5, 8], - ], - [ - , - , - "9(?:(?:0(?:[0-35]\\d|4[4-6])|(?:[13]\\d|2[0-3])\\d)\\d|9(?:[0-46]\\d\\d|5[15]0|8(?:1\\d|88)|9(?:0[0-3]|[19]\\d|21|77|8[7-9])))\\d{5}", - , - , - , - "9123456789", - , - , - [10], - ], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "IR", - 98, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{4,5})", "$1", ["96"], "0$1"], - [ - , - "(\\d{2})(\\d{4,5})", - "$1 $2", - ["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"], - "0$1", - ], - [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], - [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[1-8]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [ - , - , - "9(?:4440\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))", - , - , - , - , - , - , - [4, 5, 10], - ], - [ - , - , - "96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])", - , - , - , - "9601", - , - , - [4, 5], - ], - , - , - [, , , , , , , , , [-1]], - ], - IS: [ - , - [, , "(?:38\\d|[4-9])\\d{6}", , , , , , , [7, 9]], - [ - , - , - "(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-24589]|5[0-68]|6\\d|8[0-36-8])|5(?:05|[156]\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\d{4}", - , - , - , - "4101234", - , - , - [7], - ], - [ - , - , - "(?:38[589]\\d\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\d)|7(?:5[057]|[6-9]\\d)|8(?:2[0-59]|[3-69]\\d|8[238]))\\d{4}", - , - , - , - "6111234", - ], - [, , "80[0-8]\\d{4}", , , , "8001234", , , [7]], - [ - , - , - "90(?:0\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\d{3}", - , - , - , - "9001234", - , - , - [7], - ], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "49[0-24-79]\\d{4}", , , , "4921234", , , [7]], - "IS", - 354, - "00|1(?:0(?:01|[12]0)|100)", - , - , - , - , - , - "00", - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["[4-9]"]], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["3"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "809\\d{4}", , , , "8091234", , , [7]], - , - , - [, , "(?:689|8(?:7[18]|80)|95[48])\\d{4}", , , , "6891234", , , [7]], - ], - IT: [ - , - [ - , - , - "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", - , - , - , - , - , - , - [6, 7, 8, 9, 10, 11, 12], - ], - [ - , - , - "0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}", - , - , - , - "0212345678", - , - , - [6, 7, 8, 9, 10, 11], - ], - [, , "3[1-9]\\d{8}|3[2-9]\\d{7}", , , , "3123456789", , , [9, 10]], - [, , "80(?:0\\d{3}|3)\\d{3}", , , , "800123456", , , [6, 9]], - [ - , - , - "(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", - , - , - , - "899123456", - , - , - [6, 8, 9, 10], - ], - [, , "84(?:[08]\\d{3}|[17])\\d{3}", , , , "848123456", , , [6, 9]], - [, , "1(?:78\\d|99)\\d{6}", , , , "1781234567", , , [9, 10]], - [, , "55\\d{8}", , , , "5512345678", , , [10]], - "IT", - 39, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{4,5})", "$1", ["1(?:0|9[246])", "1(?:0|9(?:2[2-9]|[46]))"]], - [, "(\\d{6})", "$1", ["1(?:1|92)"]], - [, "(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], - [ - , - "(\\d{3})(\\d{3,6})", - "$1 $2", - [ - "0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", - "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))", - ], - ], - [, "(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], - [, "(\\d{4})(\\d{4})", "$1 $2", ["894"]], - [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], - [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1(?:44|[679])|[378]"]], - [, "(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], - [, "(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], - [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], - [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]], - ], - [ - [, "(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], - [ - , - "(\\d{3})(\\d{3,6})", - "$1 $2", - [ - "0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", - "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))", - ], - ], - [, "(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], - [, "(\\d{4})(\\d{4})", "$1 $2", ["894"]], - [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], - [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1(?:44|[679])|[378]"]], - [, "(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], - [, "(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], - [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], - [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]], - ], - [, , , , , , , , , [-1]], - 1, - , - [, , "848\\d{6}", , , , , , , [9]], - [, , , , , , , , , [-1]], - , - , - [, , "3[2-8]\\d{9,10}", , , , "33101234501", , , [11, 12]], - ], - JE: [ - , - [, , "1534\\d{6}|(?:[3578]\\d|90)\\d{8}", , , , , , , [10], [6]], - [, , "1534[0-24-8]\\d{5}", , , , "1534456789", , , , [6]], - [, , "7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97[7-9]))\\d{5}", , , , "7797712345"], - [, , "80(?:07(?:35|81)|8901)\\d{4}", , , , "8007354567"], - [ - , - , - "(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}", - , - , - , - "9018105678", - ], - [, , , , , , , , , [-1]], - [, , "701511\\d{4}", , , , "7015115678"], - [, , "56\\d{8}", , , , "5612345678"], - "JE", - 44, - "00", - "0", - , - , - "0|([0-24-8]\\d{5})$", - "1534$1", - , - , - , - , - [ - , - , - "76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", - , - , - , - "7640123456", - ], - , - , - [, , , , , , , , , [-1]], - [ - , - , - "(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}", - , - , - , - "5512345678", - ], - , - , - [, , , , , , , , , [-1]], - ], - JM: [ - , - [, , "(?:[58]\\d\\d|658|900)\\d{7}", , , , , , , [10], [7]], - [ - , - , - "8766060\\d{3}|(?:658(?:2(?:[0-8]\\d|9[0-46-9])|[3-9]\\d\\d)|876(?:52[35]|6(?:0[1-3579]|1[02357-9]|[23]\\d|40|5[06]|6[2-589]|7[025-7]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468])))\\d{4}", - , - , - , - "8765230123", - , - , - , - [7], - ], - [ - , - , - "(?:658295|876(?:2(?:0[1-9]|[13-9]\\d|2[013-9])|[348]\\d\\d|5(?:0[1-9]|[1-9]\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\d{4}", - , - , - , - "8762101234", - , - , - , - [7], - ], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "JM", - 1, - "011", - "1", - , - , - "1", - , - , - , - , - , - [, , , , , , , , , [-1]], - , - "658|876", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - JO: [ - , - [, , "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}", , , , , , , [8, 9]], - [ - , - , - "87(?:000|90[01])\\d{3}|(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\d|4[0-3]|[5-7][023])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:20|7[078]|99))\\d{4}", - , - , - , - "62001234", - , - , - [8], - ], - [, , "7(?:[78][0-25-9]|9\\d)\\d{6}", , , , "790123456", , , [9]], - [, , "80\\d{6}", , , , "80012345", , , [8]], - [, , "9\\d{7}", , , , "90012345", , , [8]], - [, , "85\\d{6}", , , , "85012345", , , [8]], - [, , "70\\d{7}", , , , "700123456", , , [9]], - [, , , , , , , , , [-1]], - "JO", - 962, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2356]|87"], "(0$1)"], - [, "(\\d{3})(\\d{5,6})", "$1 $2", ["[89]"], "0$1"], - [, "(\\d{2})(\\d{7})", "$1 $2", ["70"], "0$1"], - [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], - ], - , - [, , "74(?:66|77)\\d{5}", , , , "746612345", , , [9]], - , - , - [, , , , , , , , , [-1]], - [, , "8(?:10|8\\d)\\d{5}", , , , "88101234", , , [8]], - , - , - [, , , , , , , , , [-1]], - ], - JP: [ - , - [ - , - , - "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}", - , - , - , - , - , - , - [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], - ], - [ - , - , - "(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\d|4(?:[2-578]\\d|6[02-8]|9[2-59])|5(?:[2-589]\\d|6[1-9]|7[2-8])|7(?:[25-9]\\d|3[4-9]|4[02-9])|8(?:[2679]\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\d|[679][1-9]))\\d{6}", - , - , - , - "312345678", - , - , - [9], - ], - [, , "[7-9]0[1-9]\\d{7}", , , , "9012345678", , , [10]], - [ - , - , - "00777(?:[01]|5\\d)\\d\\d|(?:00(?:7778|882[1245])|(?:120|800\\d)\\d\\d)\\d{4}|00(?:37|66|78)\\d{6,13}", - , - , - , - "120123456", - ], - [, , "990\\d{6}", , , , "990123456", , , [9]], - [, , , , , , , , , [-1]], - [, , "60\\d{7}", , , , "601234567", , , [9]], - [, , "50[1-9]\\d{7}", , , , "5012345678", , , [10]], - "JP", - 81, - "010", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{4})(\\d{4})", "$1-$2", ["007", "0077", "00777", "00777[01]"]], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"], - [ - , - "(\\d{4})(\\d)(\\d{4})", - "$1-$2-$3", - [ - "1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:80|9[16])", - "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", - "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", - ], - "0$1", - ], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"], - [ - , - "(\\d)(\\d{4})(\\d{4})", - "$1-$2-$3", - ["[36]|4(?:2[09]|7[01])", "[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"], - "0$1", - ], - [ - , - "(\\d{2})(\\d{3})(\\d{4})", - "$1-$2-$3", - [ - "1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])", - "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]", - "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]", - "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]", - ], - "0$1", - ], - [, "(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3", ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], "0$1"], - [, "(\\d{4})(\\d{2})(\\d{3,4})", "$1-$2-$3", ["007", "0077"]], - [, "(\\d{4})(\\d{2})(\\d{4})", "$1-$2-$3", ["008"]], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], - [, "(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[257-9]"], "0$1"], - [, "(\\d{4})(\\d{3})(\\d{3,4})", "$1-$2-$3", ["0"]], - [, "(\\d{4})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["0"]], - [, "(\\d{4})(\\d{5})(\\d{5,6})", "$1-$2-$3", ["0"]], - [, "(\\d{4})(\\d{6})(\\d{6,7})", "$1-$2-$3", ["0"]], - ], - [ - [, "(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"], - [ - , - "(\\d{4})(\\d)(\\d{4})", - "$1-$2-$3", - [ - "1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:80|9[16])", - "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", - "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", - ], - "0$1", - ], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"], - [ - , - "(\\d)(\\d{4})(\\d{4})", - "$1-$2-$3", - ["[36]|4(?:2[09]|7[01])", "[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"], - "0$1", - ], - [ - , - "(\\d{2})(\\d{3})(\\d{4})", - "$1-$2-$3", - [ - "1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])", - "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]", - "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]", - "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]", - ], - "0$1", - ], - [, "(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3", ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], - [, "(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[257-9]"], "0$1"], - ], - [, , "20\\d{8}", , , , "2012345678", , , [10]], - , - , - [, , "00(?:777(?:[01]|(?:5|8\\d)\\d)|882[1245]\\d\\d)\\d\\d|00(?:37|66|78)\\d{6,13}"], - [, , "570\\d{6}", , , , "570123456", , , [9]], - , - , - [, , , , , , , , , [-1]], - ], - KE: [ - , - [, , "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}", , , , , , , [7, 8, 9, 10]], - [ - , - , - "(?:4[245]|5[1-79]|6[01457-9])\\d{5,7}|(?:4[136]|5[08]|62)\\d{7}|(?:[24]0|66)\\d{6,7}", - , - , - , - "202012345", - , - , - [7, 8, 9], - ], - [, , "(?:1(?:0[0-6]|1[0-5]|2[014]|30)|7\\d\\d)\\d{6}", , , , "712123456", , , [9]], - [, , "800[2-8]\\d{5,6}", , , , "800223456", , , [9, 10]], - [, , "900[02-9]\\d{5}", , , , "900223456", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "KE", - 254, - "000", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{5,7})", "$1 $2", ["[24-6]"], "0$1"], - [, "(\\d{3})(\\d{6})", "$1 $2", ["[17]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - KG: [ - , - [, , "8\\d{9}|(?:[235-8]\\d|99)\\d{7}", , , , , , , [9, 10], [5, 6]], - [ - , - , - "312(?:5[0-79]\\d|9(?:[0-689]\\d|7[0-24-9]))\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}", - , - , - , - "312123456", - , - , - [9], - [5, 6], - ], - [ - , - , - "312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|7(?:[07]\\d|55)|88[08]|99[05-9])\\d{6}", - , - , - , - "700123456", - , - , - [9], - ], - [, , "800\\d{6,7}", , , , "800123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "KG", - 996, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{4})(\\d{5})", "$1 $2", ["3(?:1[346]|[24-79])"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-79]|88"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d)(\\d{2,3})", "$1 $2 $3 $4", ["8"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - KH: [ - , - [, , "1\\d{9}|[1-9]\\d{7,8}", , , , , , , [8, 9, 10], [6, 7]], - [ - , - , - "23(?:4(?:[2-4]|[56]\\d)|[568]\\d\\d)\\d{4}|23[236-9]\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\d)\\d{5}|6\\d{5,6})", - , - , - , - "23756789", - , - , - [8, 9], - [6, 7], - ], - [ - , - , - "(?:(?:1[28]|3[18]|9[67])\\d|6[016-9]|7(?:[07-9]|[16]\\d)|8(?:[013-79]|8\\d))\\d{6}|(?:1\\d|9[0-57-9])\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\d{5}", - , - , - , - "91234567", - , - , - [8, 9], - ], - [, , "1800(?:1\\d|2[019])\\d{4}", , , , "1800123456", , , [10]], - [, , "1900(?:1\\d|2[09])\\d{4}", , , , "1900123456", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "KH", - 855, - "00[14-9]", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-9]"], "0$1"], - [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - KI: [ - , - [, , "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}", , , , , , , [5, 8]], - [ - , - , - "(?:[24]\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\d\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\d{3}", - , - , - , - "31234", - ], - [, , "(?:63\\d{3}|73(?:0[0-5]\\d|140))\\d{3}|[67]200[01]\\d{3}", , , , "72001234", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "30(?:0[01]\\d\\d|12(?:11|20))\\d\\d", , , , "30010000", , , [8]], - "KI", - 686, - "00", - "0", - , - , - "0", - , - , - , - , - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - KM: [ - , - [, , "[3478]\\d{6}", , , , , , , [7], [4]], - [, , "7[4-7]\\d{5}", , , , "7712345", , , , [4]], - [, , "[34]\\d{6}", , , , "3212345"], - [, , , , , , , , , [-1]], - [, , "8\\d{6}", , , , "8001234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "KM", - 269, - "00", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[3478]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - KN: [ - , - [, , "(?:[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], - [, , "869(?:2(?:29|36)|302|4(?:6[015-9]|70)|56[5-7])\\d{4}", , , , "8692361234", , , , [7]], - [, , "869(?:48[89]|55[6-8]|66\\d|76[02-7])\\d{4}", , , , "8697652917", , , , [7]], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "KN", - 1, - "011", - "1", - , - , - "1|([2-7]\\d{6})$", - "869$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "869", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - KP: [ - , - [, , "85\\d{6}|(?:19\\d|[2-7])\\d{7}", , , , , , , [8, 10], [6, 7]], - [, , "(?:(?:195|2)\\d|3[19]|4[159]|5[37]|6[17]|7[39]|85)\\d{6}", , , , "21234567", , , , [6, 7]], - [, , "19[1-3]\\d{7}", , , , "1921234567", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "KP", - 850, - "00|99", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"], - [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , "238[02-9]\\d{4}|2(?:[0-24-9]\\d|3[0-79])\\d{5}", , , , , , , [8]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - KR: [ - , - [ - , - , - "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}", - , - , - , - , - , - , - [5, 6, 8, 9, 10, 11, 12, 13, 14], - [3, 4, 7], - ], - [ - , - , - "(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\d{2,3}", - , - , - , - "22123456", - , - , - [5, 6, 8, 9, 10], - [3, 4, 7], - ], - [ - , - , - "1(?:05(?:[0-8]\\d|9[0-6])|22[13]\\d)\\d{4,5}|1(?:0[1-46-9]|[16-9]\\d|2[013-9])\\d{6,7}", - , - , - , - "1020000000", - , - , - [9, 10], - ], - [, , "00(?:308\\d{6,7}|798\\d{7,9})|(?:00368|80)\\d{7}", , , , "801234567", , , [9, 11, 12, 13, 14]], - [, , "60[2-9]\\d{6}", , , , "602345678", , , [9]], - [, , , , , , , , , [-1]], - [, , "50\\d{8,9}", , , , "5012345678", , , [10, 11]], - [, , "70\\d{8}", , , , "7012345678", , , [10]], - "KR", - 82, - "00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))", - "0", - , - , - "0(8(?:[1-46-8]|5\\d\\d))?", - , - , - , - [ - [, "(\\d{5})", "$1", ["1[016-9]1", "1[016-9]11", "1[016-9]114"], "0$1"], - [, "(\\d{2})(\\d{3,4})", "$1-$2", ["(?:3[1-3]|[46][1-4]|5[1-5])1"], "0$1", "0$CC-$1"], - [, "(\\d{4})(\\d{4})", "$1-$2", ["1"]], - [, "(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1", "0$CC-$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60|8"], "0$1", "0$CC-$1"], - [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1-$2-$3", ["[1346]|5[1-5]"], "0$1", "0$CC-$1"], - [, "(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1", "0$CC-$1"], - [, "(\\d{5})(\\d{3})(\\d{3})", "$1 $2 $3", ["003", "0030"]], - [, "(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1", "0$CC-$1"], - [, "(\\d{5})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0"]], - [, "(\\d{5})(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["0"]], - ], - [ - [, "(\\d{2})(\\d{3,4})", "$1-$2", ["(?:3[1-3]|[46][1-4]|5[1-5])1"], "0$1", "0$CC-$1"], - [, "(\\d{4})(\\d{4})", "$1-$2", ["1"]], - [, "(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1", "0$CC-$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60|8"], "0$1", "0$CC-$1"], - [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1-$2-$3", ["[1346]|5[1-5]"], "0$1", "0$CC-$1"], - [, "(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1", "0$CC-$1"], - [, "(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1", "0$CC-$1"], - ], - [, , "15\\d{7,8}", , , , "1523456789", , , [9, 10]], - , - , - [, , "00(?:3(?:08\\d{6,7}|68\\d{7})|798\\d{7,9})", , , , , , , [11, 12, 13, 14]], - [ - , - , - "1(?:5(?:22|33|44|66|77|88|99)|6(?:[07]0|44|6[168]|88)|8(?:00|33|55|77|99))\\d{4}", - , - , - , - "15441234", - , - , - [8], - ], - , - , - [, , , , , , , , , [-1]], - ], - KW: [ - , - [, , "18\\d{5}|(?:[2569]\\d|41)\\d{6}", , , , , , , [7, 8]], - [ - , - , - "2(?:[23]\\d\\d|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7]))\\d{4}", - , - , - , - "22345678", - , - , - [8], - ], - [ - , - , - "(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|111|222|333|444|7(?:0[013-9]|[67]\\d)|888|9(?:[069]\\d|3[039]))|9(?:(?:0[09]|22|[4679]\\d|8[057-9])\\d|1(?:1[01]|99)|3(?:00|33)|5(?:00|5\\d)))\\d{4}", - , - , - , - "50012345", - , - , - [8], - ], - [, , "18\\d{5}", , , , "1801234", , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "KW", - 965, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{4})(\\d{3,4})", "$1 $2", ["[169]|2(?:[235]|4[1-35-9])|52"]], - [, "(\\d{3})(\\d{5})", "$1 $2", ["[245]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - KY: [ - , - [, , "(?:345|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], - [ - , - , - "345(?:2(?:22|3[23]|44|66)|333|444|6(?:23|38|40)|7(?:30|4[35-79]|6[6-9]|77)|8(?:00|1[45]|[48]8)|9(?:14|4[035-9]))\\d{4}", - , - , - , - "3452221234", - , - , - , - [7], - ], - [ - , - , - "345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\d{4}", - , - , - , - "3453231234", - , - , - , - [7], - ], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], - [, , "(?:345976|900[2-9]\\d\\d)\\d{4}", , , , "9002345678"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "KY", - 1, - "011", - "1", - , - , - "1|([2-9]\\d{6})$", - "345$1", - , - , - , - , - [, , "345849\\d{4}", , , , "3458491234"], - , - "345", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - KZ: [ - , - [, , "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}", , , , , , , [10, 14], [5, 6, 7]], - [ - , - , - "(?:33622|7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9])|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[2-4]\\d|5[139])|4(?:2\\d|3[1-35-9]|59)|5(?:[23]\\d|4[0-246-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))))\\d{5}", - , - , - , - "7123456789", - , - , - [10], - [5, 6, 7], - ], - [, , "7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\d{7}", , , , "7710009998", , , [10]], - [, , "8(?:00|108\\d{3})\\d{7}", , , , "8001234567"], - [, , "809\\d{7}", , , , "8091234567", , , [10]], - [, , , , , , , , , [-1]], - [, , "808\\d{7}", , , , "8081234567", , , [10]], - [, , "751\\d{7}", , , , "7511234567", , , [10]], - "KZ", - 7, - "810", - "8", - , - , - "8", - , - "8~10", - , - , - , - [, , , , , , , , , [-1]], - , - "33|7", - [, , "751\\d{7}", , , , , , , [10]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - LA: [ - , - [, , "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}", , , , , , , [8, 9, 10], [6]], - [, , "(?:2[13]|[35-7][14]|41|8[1468])\\d{6}", , , , "21212862", , , [8], [6]], - [, , "(?:20(?:[239]\\d|5[24-9]|7[6-8]|88)|302\\d)\\d{6}", , , , "2023123456", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "LA", - 856, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2[13]|3[14]|[4-8]"], "0$1"], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["30[013-9]"], "0$1"], - [, "(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[23]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "30[013-9]\\d{6}", , , , "301234567", , , [9]], - , - , - [, , , , , , , , , [-1]], - ], - LB: [ - , - [, , "[27-9]\\d{7}|[13-9]\\d{6}", , , , , , , [7, 8]], - [ - , - , - "7(?:62|8[0-7]|9[04-9])\\d{4}|(?:[14-69]\\d|2(?:[14-69]\\d|[78][1-9])|7[2-57]|8[02-9])\\d{5}", - , - , - , - "1123456", - ], - [ - , - , - "793(?:[01]\\d|2[0-4])\\d{3}|(?:(?:3|81)\\d|7(?:[01]\\d|6[013-9]|8[89]|9[12]))\\d{5}", - , - , - , - "71123456", - ], - [, , , , , , , , , [-1]], - [, , "9[01]\\d{6}", , , , "90123456", , , [8]], - [, , "80\\d{6}", , , , "80123456", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "LB", - 961, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27-9]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - LC: [ - , - [, , "(?:[58]\\d\\d|758|900)\\d{7}", , , , , , , [10], [7]], - [, , "758(?:234|4(?:30|5\\d|6[2-9]|8[0-2])|57[0-2]|(?:63|75)8)\\d{4}", , , , "7584305678", , , , [7]], - [ - , - , - "758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\d|3[0-3])|812)\\d{4}", - , - , - , - "7582845678", - , - , - , - [7], - ], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "LC", - 1, - "011", - "1", - , - , - "1|([2-8]\\d{6})$", - "758$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "758", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - LI: [ - , - [, , "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", , , , , , , [7, 9]], - [ - , - , - "(?:2(?:01|1[27]|2[02]|3\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\d{4}", - , - , - , - "2345678", - , - , - [7], - ], - [ - , - , - "(?:6(?:(?:4[5-9]|5[0-4])\\d|6(?:[0245]\\d|[17]0|3[7-9]))\\d|7(?:[37-9]\\d|42|56))\\d{4}", - , - , - , - "660234567", - ], - [, , "8002[28]\\d\\d|80(?:05\\d|9)\\d{4}", , , , "8002222"], - [, , "90(?:02[258]|1(?:23|3[14])|66[136])\\d\\d", , , , "9002222", , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "LI", - 423, - "00", - "0", - , - , - "0|(1001)", - , - , - , - [ - [ - , - "(\\d{3})(\\d{2})(\\d{2})", - "$1 $2 $3", - ["[2379]|8(?:0[09]|7)", "[2379]|8(?:0(?:02|9)|7)"], - , - "$CC $1", - ], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["69"], , "$CC $1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"], , "$CC $1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "870(?:28|87)\\d\\d", , , , "8702812", , , [7]], - , - , - [, , "697(?:42|56|[78]\\d)\\d{4}", , , , "697861234", , , [9]], - ], - LK: [ - , - [, , "[1-9]\\d{8}", , , , , , , [9], [7]], - [ - , - , - "(?:12[2-9]|602|8[12]\\d|9(?:1\\d|22|9[245]))\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}", - , - , - , - "112345678", - , - , - , - [7], - ], - [, , "7(?:[0-25-8]\\d|4[0-4])\\d{6}", , , , "712345678"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "LK", - 94, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[1-689]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "1973\\d{5}", , , , "197312345"], - , - , - [, , , , , , , , , [-1]], - ], - LR: [ - , - [, , "(?:2|33|5\\d|77|88)\\d{7}|[4-6]\\d{6}", , , , , , , [7, 8, 9]], - [, , "(?:2\\d{3}|33333)\\d{4}", , , , "21234567", , , [8, 9]], - [, , "(?:(?:330|555|(?:77|88)\\d)\\d|4[67])\\d{5}|[56]\\d{6}", , , , "770123456", , , [7, 9]], - [, , , , , , , , , [-1]], - [, , "332(?:02|[34]\\d)\\d{4}", , , , "332021234", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "LR", - 231, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[4-6]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3578]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - LS: [ - , - [, , "(?:[256]\\d\\d|800)\\d{5}", , , , , , , [8]], - [, , "2\\d{7}", , , , "22123456"], - [, , "[56]\\d{7}", , , , "50123456"], - [, , "800[256]\\d{4}", , , , "80021234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "LS", - 266, - "00", - , - , - , - , - , - , - , - [[, "(\\d{4})(\\d{4})", "$1 $2", ["[2568]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - LT: [ - , - [, , "(?:[3469]\\d|52|[78]0)\\d{6}", , , , , , , [8]], - [, , "(?:3[1478]|4[124-6]|52)\\d{6}", , , , "31234567"], - [, , "6\\d{7}", , , , "61234567"], - [, , "80[02]\\d{5}", , , , "80012345"], - [, , "9(?:0[0239]|10)\\d{5}", , , , "90012345"], - [, , "808\\d{5}", , , , "80812345"], - [, , "70[05]\\d{5}", , , , "70012345"], - [, , "[89]01\\d{5}", , , , "80123456"], - "LT", - 370, - "00", - "8", - , - , - "[08]", - , - , - , - [ - [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["52[0-7]"], "(8-$1)", , 1], - [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[7-9]"], "8 $1", , 1], - [, "(\\d{2})(\\d{6})", "$1 $2", ["37|4(?:[15]|6[1-8])"], "(8-$1)", , 1], - [, "(\\d{3})(\\d{5})", "$1 $2", ["[3-6]"], "(8-$1)", , 1], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "70[67]\\d{5}", , , , "70712345"], - , - , - [, , , , , , , , , [-1]], - ], - LU: [ - , - [ - , - , - "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}", - , - , - , - , - , - , - [4, 5, 6, 7, 8, 9, 10, 11], - ], - [ - , - , - "(?:35[013-9]|80[2-9]|90[89])\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\d|8[13-9]|9[2-579])\\d{2,9}", - , - , - , - "27123456", - ], - [, , "6(?:[269][18]|5[1568]|7[189]|81)\\d{6}", , , , "628123456", , , [9]], - [, , "800\\d{5}", , , , "80012345", , , [8]], - [, , "90[015]\\d{5}", , , , "90012345", , , [8]], - [, , "801\\d{5}", , , , "80112345", , , [8]], - [, , , , , , , , , [-1]], - [, , "20(?:1\\d{5}|[2-689]\\d{1,7})", , , , "20201234", , , [4, 5, 6, 7, 8, 9, 10]], - "LU", - 352, - "00", - , - , - , - "(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)", - , - , - , - [ - [ - , - "(\\d{2})(\\d{3})", - "$1 $2", - ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"], - , - "$CC $1", - ], - [ - , - "(\\d{2})(\\d{2})(\\d{2})", - "$1 $2 $3", - ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"], - , - "$CC $1", - ], - [, "(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["20[2-689]"], , "$CC $1"], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4", ["2(?:[0367]|4[3-8])"], , "$CC $1"], - [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["80[01]|90[015]"], , "$CC $1"], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["20"], , "$CC $1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"], , "$CC $1"], - [ - , - "(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", - "$1 $2 $3 $4 $5", - ["2(?:[0367]|4[3-8])"], - , - "$CC $1", - ], - [ - , - "(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})", - "$1 $2 $3 $4", - ["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"], - , - "$CC $1", - ], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - LV: [ - , - [, , "(?:[268]\\d|90)\\d{6}", , , , , , , [8]], - [, , "6\\d{7}", , , , "63123456"], - [, , "2\\d{7}", , , , "21234567"], - [, , "80\\d{6}", , , , "80123456"], - [, , "90\\d{6}", , , , "90123456"], - [, , "81\\d{6}", , , , "81123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "LV", - 371, - "00", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[269]|8[01]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - LY: [ - , - [, , "[2-9]\\d{8}", , , , , , , [9], [7]], - [ - , - , - "(?:2(?:0[56]|[1-6]\\d|7[124579]|8[124])|3(?:1\\d|2[2356])|4(?:[17]\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\d|5[2-57]|8[1-5])|7(?:[13]\\d|2[13-79])|8(?:[124]\\d|5[124]|84))\\d{6}", - , - , - , - "212345678", - , - , - , - [7], - ], - [, , "9[1-6]\\d{7}", , , , "912345678"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "LY", - 218, - "00", - "0", - , - , - "0", - , - , - , - [[, "(\\d{2})(\\d{7})", "$1-$2", ["[2-9]"], "0$1"]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MA: [ - , - [, , "[5-8]\\d{8}", , , , , , , [9]], - [ - , - , - "5(?:29(?:[189][05]|2[29]|3[01])|389[05])\\d{4}|5(?:2(?:[0-25-7]\\d|3[1-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[08]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}", - , - , - , - "520123456", - ], - [, , "(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]))\\d{6}", , , , "650123456"], - [, , "80\\d{7}", , , , "801234567"], - [, , "89\\d{7}", , , , "891234567"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "592(?:4[0-2]|93)\\d{4}", , , , "592401234"], - "MA", - 212, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{5})(\\d{4})", "$1-$2", ["5(?:29|38)", "5(?:29[89]|389)", "5(?:29[89]|389)0"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5[45]"], "0$1"], - [ - , - "(\\d{4})(\\d{5})", - "$1-$2", - ["5(?:2[2-489]|3[5-9]|9)|892", "5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892"], - "0$1", - ], - [, "(\\d{2})(\\d{7})", "$1-$2", ["8"], "0$1"], - [, "(\\d{3})(\\d{6})", "$1-$2", ["[5-7]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - 1, - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MC: [ - , - [, , "(?:[3489]|6\\d)\\d{7}", , , , , , , [8, 9]], - [, , "(?:870|9[2-47-9]\\d)\\d{5}", , , , "99123456", , , [8]], - [, , "4(?:[46]\\d|5[1-9])\\d{5}|(?:3|6\\d)\\d{7}", , , , "612345678"], - [, , "(?:800|90\\d)\\d{5}", , , , "90123456", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "MC", - 377, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["87"]], - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]], - [, "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["6"], "0$1"], - ], - [ - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]], - [, "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["6"], "0$1"], - ], - [, , , , , , , , , [-1]], - , - , - [, , "8[07]0\\d{5}", , , , , , , [8]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MD: [ - , - [, , "(?:[235-7]\\d|[89]0)\\d{6}", , , , , , , [8]], - [, , "(?:(?:2[1-9]|3[1-79])\\d|5(?:33|5[257]))\\d{5}", , , , "22212345"], - [, , "562\\d{5}|(?:6\\d|7[16-9])\\d{6}", , , , "62112345"], - [, , "800\\d{5}", , , , "80012345"], - [, , "90[056]\\d{5}", , , , "90012345"], - [, , "808\\d{5}", , , , "80812345"], - [, , , , , , , , , [-1]], - [, , "3[08]\\d{6}", , , , "30123456"], - "MD", - 373, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["22|3"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[25-7]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "803\\d{5}", , , , "80312345"], - , - , - [, , , , , , , , , [-1]], - ], - ME: [ - , - [, , "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}", , , , , , , [8, 9], [6]], - [ - , - , - "(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\d{5}", - , - , - , - "30234567", - , - , - [8], - [6], - ], - [, , "6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}", , , , "67622901", , , [8]], - [, , "80(?:[0-2578]|9\\d)\\d{5}", , , , "80080002"], - [, , "9(?:4[1568]|5[178])\\d{5}", , , , "94515151", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "78[1-49]\\d{5}", , , , "78108780", , , [8]], - "ME", - 382, - "00", - "0", - , - , - "0", - , - , - , - [[, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "0$1"]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "77[1-9]\\d{5}", , , , "77273012", , , [8]], - , - , - [, , , , , , , , , [-1]], - ], - MF: [ - , - [, , "(?:590|(?:69|80)\\d|976)\\d{6}", , , , , , , [9]], - [, , "590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\d{4}", , , , "590271234"], - [, , "69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}", , , , "690001234"], - [, , "80[0-5]\\d{6}", , , , "800012345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "976[01]\\d{5}", , , , "976012345"], - "MF", - 590, - "00", - "0", - , - , - "0", - , - , - , - , - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MG: [ - , - [, , "[23]\\d{8}", , , , , , , [9], [7]], - [ - , - , - "2072[29]\\d{4}|20(?:2\\d|4[47]|5[3467]|6[279]|7[35]|8[268]|9[245])\\d{5}", - , - , - , - "202123456", - , - , - , - [7], - ], - [, , "3[2-489]\\d{7}", , , , "321234567"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "22\\d{7}", , , , "221234567"], - "MG", - 261, - "00", - "0", - , - , - "0|([24-9]\\d{6})$", - "20$1", - , - , - [[, "(\\d{2})(\\d{2})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["[23]"], "0$1"]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MH: [ - , - [, , "329\\d{4}|(?:[256]\\d|45)\\d{5}", , , , , , , [7]], - [, , "(?:247|528|625)\\d{4}", , , , "2471234"], - [, , "(?:(?:23|54)5|329|45[356])\\d{4}", , , , "2351234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "635\\d{4}", , , , "6351234"], - "MH", - 692, - "011", - "1", - , - , - "1", - , - , - , - [[, "(\\d{3})(\\d{4})", "$1-$2", ["[2-6]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MK: [ - , - [, , "[2-578]\\d{7}", , , , , , , [8], [6, 7]], - [ - , - , - "(?:(?:2(?:62|77)0|3444)\\d|4[56]440)\\d{3}|(?:34|4[357])700\\d{3}|(?:2(?:[23]\\d|5[0-578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\d{5}", - , - , - , - "22012345", - , - , - , - [6, 7], - ], - [ - , - , - "7(?:3555|4(?:60\\d|747)|94(?:[01]\\d|2[0-4]))\\d{3}|7(?:[0-25-8]\\d|3[1-4]|42|9[23])\\d{5}", - , - , - , - "72345678", - ], - [, , "800\\d{5}", , , , "80012345"], - [, , "5[02-9]\\d{6}", , , , "50012345"], - [, , "8(?:0[1-9]|[1-9]\\d)\\d{5}", , , , "80123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "MK", - 389, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2|34[47]|4(?:[37]7|5[47]|64)"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[347]"], "0$1"], - [, "(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[58]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - ML: [ - , - [, , "[24-9]\\d{7}", , , , , , , [8]], - [, , "2(?:07[0-8]|12[67])\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-39]))\\d{5}", , , , "20212345"], - [, , "2(?:0(?:01|79)|17\\d)\\d{4}|(?:5[01]|[679]\\d|8[2-49])\\d{6}", , , , "65012345"], - [, , "80\\d{6}", , , , "80012345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "ML", - 223, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{4})", "$1", ["67[057-9]|74[045]", "67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)"]], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]], - ], - [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]]], - [, , , , , , , , , [-1]], - , - , - [, , "80\\d{6}"], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MM: [ - , - [ - , - , - "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}", - , - , - , - , - , - , - [6, 7, 8, 9, 10], - [5], - ], - [ - , - , - "(?:1(?:(?:2\\d|3[56]|[89][0-6])\\d|4(?:2[2-469]|39|46|6[25]|7[0-3]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\d|2[246]|39|46|62|7[0-3]|83)|51\\d\\d)|4(?:2(?:2\\d\\d|48[0-3])|3(?:20\\d|4(?:70|83)|56)|420\\d|5470)|6(?:0(?:[23]|88\\d)|(?:124|[56]2\\d)\\d|247[23]|3(?:20\\d|470)|4(?:2[04]\\d|47[23])|7(?:(?:3\\d|8[01459])\\d|4(?:39|60|7[013]))))\\d{4}|5(?:2(?:2\\d{5,6}|47[023]\\d{4})|(?:347[23]|4(?:2(?:1|86)|470)|522\\d|6(?:20\\d|483)|7(?:20\\d|48[0-2])|8(?:20\\d|47[02])|9(?:20\\d|47[01]))\\d{4})|7(?:(?:0470|4(?:25\\d|470)|5(?:202|470|96\\d))\\d{4}|1(?:20\\d{4,5}|4(?:70|83)\\d{4}))|8(?:1(?:2\\d{5,6}|4(?:10|7[01]\\d)\\d{3})|2(?:2\\d{5,6}|(?:320|490\\d)\\d{3})|(?:3(?:2\\d\\d|470)|4[24-7]|5(?:2\\d|4[1-9]|51)\\d|6[23])\\d{4})|(?:1[2-6]\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|[35]2\\d))\\d{4}|25\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\d{4}", - , - , - , - "1234567", - , - , - [6, 7, 8, 9], - [5], - ], - [ - , - , - "(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|9[4-8])\\d|7(?:3|40|[5-9]\\d)|8(?:78|[89]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}", - , - , - , - "92123456", - , - , - [7, 8, 9, 10], - ], - [, , "80080(?:[01][1-9]|2\\d)\\d{3}", , , , "8008001234", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "1333\\d{4}|[12]468\\d{4}", , , , "13331234", , , [8]], - "MM", - 95, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{2})(\\d{3})", "$1 $2 $3", ["16|2"], "0$1"], - [ - , - "(\\d{2})(\\d{2})(\\d{3})", - "$1 $2 $3", - ["[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]"], - "0$1", - ], - [, "(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[4-7]|8[1-35]"], "0$1"], - [, "(\\d)(\\d{3})(\\d{4,6})", "$1 $2 $3", ["9(?:2[0-4]|[35-9]|4[137-9])"], "0$1"], - [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], - [, "(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["92"], "0$1"], - [, "(\\d)(\\d{5})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MN: [ - , - [, , "[12]\\d{7,9}|[5-9]\\d{7}", , , , , , , [8, 9, 10], [4, 5, 6]], - [ - , - , - "[12]2[1-3]\\d{5,6}|7(?:0[0-5]\\d|128)\\d{4}|(?:[12](?:1|27)|5[368])\\d{6}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\d{6,7}", - , - , - , - "53123456", - , - , - , - [4, 5, 6], - ], - [, , "(?:83[01]|920)\\d{5}|(?:5[05]|6[06]|8[015689]|9[013-9])\\d{6}", , , , "88123456", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "712[0-79]\\d{4}|7(?:1[013-9]|[25-8]\\d)\\d{5}", , , , "75123456", , , [8]], - "MN", - 976, - "001", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[12]1"], "0$1"], - [, "(\\d{4})(\\d{4})", "$1 $2", ["[5-9]"]], - [, "(\\d{3})(\\d{5,6})", "$1 $2", ["[12]2[1-3]"], "0$1"], - [ - , - "(\\d{4})(\\d{5,6})", - "$1 $2", - ["[12](?:27|3[2-8]|4[2-68]|5[1-4689])", "[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"], - "0$1", - ], - [, "(\\d{5})(\\d{4,5})", "$1 $2", ["[12]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MO: [ - , - [, , "0800\\d{3}|(?:28|[68]\\d)\\d{6}", , , , , , , [7, 8]], - [, , "(?:28[2-9]|8(?:11|[2-57-9]\\d))\\d{5}", , , , "28212345", , , [8]], - [ - , - , - "6800[0-79]\\d{3}|6(?:[235]\\d\\d|6(?:0[0-5]|[1-9]\\d)|8(?:0[1-9]|[14-8]\\d|2[5-9]|[39][0-4]))\\d{4}", - , - , - , - "66123456", - , - , - [8], - ], - [, , "0800\\d{3}", , , , "0800501", , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "MO", - 853, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{4})(\\d{3})", "$1 $2", ["0"]], - [, "(\\d{4})(\\d{4})", "$1 $2", ["[268]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MP: [ - , - [, , "[58]\\d{9}|(?:67|90)0\\d{7}", , , , , , , [10], [7]], - [ - , - , - "670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}", - , - , - , - "6702345678", - , - , - , - [7], - ], - [ - , - , - "670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}", - , - , - , - "6702345678", - , - , - , - [7], - ], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "MP", - 1, - "011", - "1", - , - , - "1|([2-9]\\d{6})$", - "670$1", - , - 1, - , - , - [, , , , , , , , , [-1]], - , - "670", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MQ: [ - , - [, , "(?:69|80)\\d{7}|(?:59|97)6\\d{6}", , , , , , , [9]], - [, , "596(?:[03-7]\\d|10|2[7-9]|8[09]|9[4-9])\\d{4}", , , , "596301234"], - [, , "69(?:6(?:[0-46-9]\\d|5[0-6])|727)\\d{4}", , , , "696201234"], - [, , "80[0-5]\\d{6}", , , , "800012345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "976(?:6\\d|7[0-367])\\d{4}", , , , "976612345"], - "MQ", - 596, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MR: [ - , - [, , "(?:[2-4]\\d\\d|800)\\d{5}", , , , , , , [8]], - [, , "(?:25[08]|35\\d|45[1-7])\\d{5}", , , , "35123456"], - [, , "[2-4][0-46-9]\\d{6}", , , , "22123456"], - [, , "800\\d{5}", , , , "80012345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "MR", - 222, - "00", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-48]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MS: [ - , - [, , "(?:[58]\\d\\d|664|900)\\d{7}", , , , , , , [10], [7]], - [, , "6644(?:1[0-3]|91)\\d{4}", , , , "6644912345", , , , [7]], - [, , "664(?:3(?:49|9[1-6])|49[2-6])\\d{4}", , , , "6644923456", , , , [7]], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "MS", - 1, - "011", - "1", - , - , - "1|([34]\\d{6})$", - "664$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "664", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MT: [ - , - [, , "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}", , , , , , , [8]], - [, , "20(?:3[1-4]|6[059])\\d{4}|2(?:0[19]|[1-357]\\d|60)\\d{5}", , , , "21001234"], - [, , "(?:7(?:210|[79]\\d\\d)|9(?:[29]\\d\\d|69[67]|8(?:1[1-3]|89|97)))\\d{4}", , , , "96961234"], - [, , "800(?:02|[3467]\\d)\\d{3}", , , , "80071234"], - [, , "5(?:0(?:0(?:37|43)|(?:6\\d|70|9[0168])\\d)|[12]\\d0[1-5])\\d{3}", , , , "50037123"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "3550\\d{4}", , , , "35501234"], - "MT", - 356, - "00", - , - , - , - , - , - , - , - [[, "(\\d{4})(\\d{4})", "$1 $2", ["[2357-9]"]]], - , - [, , "7117\\d{4}", , , , "71171234"], - , - , - [, , , , , , , , , [-1]], - [, , "501\\d{5}", , , , "50112345"], - , - , - [, , , , , , , , , [-1]], - ], - MU: [ - , - [, , "(?:5|8\\d\\d)\\d{7}|[2-468]\\d{6}", , , , , , , [7, 8, 10]], - [ - , - , - "(?:2(?:[0346-8]\\d|1[0-7])|4(?:[013568]\\d|2[4-7])|54(?:[3-5]\\d|71)|6\\d\\d|8(?:14|3[129]))\\d{4}", - , - , - , - "54480123", - , - , - [7, 8], - ], - [ - , - , - "5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])\\d{5}", - , - , - , - "52512345", - , - , - [8], - ], - [, , "802\\d{7}|80[0-2]\\d{4}", , , , "8001234", , , [7, 10]], - [, , "30\\d{5}", , , , "3012345", , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "3(?:20|9\\d)\\d{4}", , , , "3201234", , , [7]], - "MU", - 230, - "0(?:0|[24-7]0|3[03])", - , - , - , - , - , - "020", - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["[2-46]|8[013]"]], - [, "(\\d{4})(\\d{4})", "$1 $2", ["5"]], - [, "(\\d{5})(\\d{5})", "$1 $2", ["8"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MV: [ - , - [, , "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}", , , , , , , [7, 10]], - [, , "(?:3(?:0[0-3]|3[0-59])|6(?:[57][02468]|6[024-68]|8[024689]))\\d{4}", , , , "6701234", , , [7]], - [, , "46[46]\\d{4}|(?:7\\d|9[13-9])\\d{5}", , , , "7712345", , , [7]], - [, , "800\\d{7}", , , , "8001234567", , , [10]], - [, , "900\\d{7}", , , , "9001234567", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "MV", - 960, - "0(?:0|19)", - , - , - , - , - , - "00", - , - [ - [, "(\\d{3})(\\d{4})", "$1-$2", ["[3467]|9[13-9]"]], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "4(?:0[01]|50)\\d{4}", , , , "4001234", , , [7]], - , - , - [, , , , , , , , , [-1]], - ], - MW: [ - , - [, , "(?:[129]\\d|31|77|88)\\d{7}|1\\d{6}", , , , , , , [7, 9]], - [, , "(?:1[2-9]|2[12]\\d\\d)\\d{5}", , , , "1234567"], - [, , "111\\d{6}|(?:31|77|88|9[89])\\d{7}", , , , "991234567", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "MW", - 265, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["1[2-9]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[137-9]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MX: [ - , - [ - , - , - "1(?:(?:44|99)[1-9]|65[0-689])\\d{7}|(?:1(?:[017]\\d|[235][1-9]|4[0-35-9]|6[0-46-9]|8[1-79]|9[1-8])|[2-9]\\d)\\d{8}", - , - , - , - , - , - , - [10, 11], - [7, 8], - ], - [ - , - , - "657[12]\\d{6}|(?:2(?:0[01]|2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}", - , - , - , - "2001234567", - , - , - [10], - [7, 8], - ], - [ - , - , - "657[12]\\d{6}|(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}", - , - , - , - "12221234567", - , - , - , - [7, 8], - ], - [, , "8(?:00|88)\\d{7}", , , , "8001234567", , , [10]], - [, , "900\\d{7}", , , , "9001234567", , , [10]], - [, , "300\\d{7}", , , , "3001234567", , , [10]], - [, , "500\\d{7}", , , , "5001234567", , , [10]], - [, , , , , , , , , [-1]], - "MX", - 52, - "0[09]", - "01", - , - , - "0(?:[12]|4[45])|1", - , - "00", - , - [ - [, "(\\d{5})", "$1", ["53"]], - [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"], , , 1], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"], , , 1], - [, "(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 $3 $4", ["1(?:33|5[56]|81)"], , , 1], - [, "(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 $3 $4", ["1"], , , 1], - ], - [ - [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"], , , 1], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"], , , 1], - [, "(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 $3 $4", ["1(?:33|5[56]|81)"], , , 1], - [, "(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 $3 $4", ["1"], , , 1], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MY: [ - , - [, , "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}", , , , , , , [8, 9, 10], [6, 7]], - [ - , - , - "(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\d|9[0-57])\\d|4(?:2[0-689]|[3-79]\\d|8[1-35689])|5(?:2[0-589]|[3468]\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\d|[3489][0-8]))\\d{5}", - , - , - , - "323856789", - , - , - [8, 9], - [6, 7], - ], - [ - , - , - "1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0134]\\d|2[1-9]|5[0-6]))|(?:[269]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}", - , - , - , - "123456789", - , - , - [9, 10], - ], - [, , "1[378]00\\d{6}", , , , "1300123456", , , [10]], - [, , "1600\\d{6}", , , , "1600123456", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [ - , - , - "15(?:4(?:6[0-4]\\d|8(?:0[125]|[17]\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\d))\\d{4}", - , - , - , - "1546012345", - , - , - [10], - ], - "MY", - 60, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{3})(\\d{4})", "$1-$2 $3", ["[4-79]"], "0$1"], - [ - , - "(\\d{2})(\\d{3})(\\d{3,4})", - "$1-$2 $3", - ["1(?:[02469]|[378][1-9]|53)|8", "1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"], - "0$1", - ], - [, "(\\d)(\\d{4})(\\d{4})", "$1-$2 $3", ["3"], "0$1"], - [, "(\\d)(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3-$4", ["1(?:[367]|80)"]], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2 $3", ["15"], "0$1"], - [, "(\\d{2})(\\d{4})(\\d{4})", "$1-$2 $3", ["1"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - MZ: [ - , - [, , "(?:2|8\\d)\\d{7}", , , , , , , [8, 9]], - [, , "2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}", , , , "21123456", , , [8]], - [, , "8[2-79]\\d{7}", , , , "821234567", , , [9]], - [, , "800\\d{6}", , , , "800123456", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "MZ", - 258, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2|8[2-79]"]], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - NA: [ - , - [, , "[68]\\d{7,8}", , , , , , , [8, 9]], - [ - , - , - "64426\\d{3}|6(?:1(?:2[2-7]|3[01378]|4[0-4])|254|32[0237]|4(?:27|41|5[25])|52[236-8]|626|7(?:2[2-4]|30))\\d{4,5}|6(?:1(?:(?:0\\d|2[0189]|3[24-69]|4[5-9])\\d|17|69|7[014])|2(?:17|5[0-36-8]|69|70)|3(?:17|2[14-689]|34|6[289]|7[01]|81)|4(?:17|2[0-2]|4[06]|5[0137]|69|7[01])|5(?:17|2[0459]|69|7[01])|6(?:17|25|38|42|69|7[01])|7(?:17|2[569]|3[13]|6[89]|7[01]))\\d{4}", - , - , - , - "61221234", - ], - [, , "(?:60|8[1245])\\d{7}", , , , "811234567", , , [9]], - [, , "80\\d{7}", , , , "800123456", , , [9]], - [, , "8701\\d{5}", , , , "870123456", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "8(?:3\\d\\d|86)\\d{5}", , , , "88612345"], - "NA", - 264, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["87"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - NC: [ - , - [, , "(?:050|[2-57-9]\\d\\d)\\d{3}", , , , , , , [6]], - [, , "(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}", , , , "201234"], - [, , "(?:5[0-4]|[79]\\d|8[0-79])\\d{4}", , , , "751234"], - [, , "050\\d{3}", , , , "050012"], - [, , "36\\d{4}", , , , "366711"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "NC", - 687, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})", "$1", ["5[6-8]"]], - [, "(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]], - ], - [[, "(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - NE: [ - , - [, , "[027-9]\\d{7}", , , , , , , [8]], - [ - , - , - "2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}", - , - , - , - "20201234", - ], - [, , "(?:23|7[04]|[89]\\d)\\d{6}", , , , "93123456"], - [, , "08\\d{6}", , , , "08123456"], - [, , "09\\d{6}", , , , "09123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "NE", - 227, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["08"]], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[089]|2[013]|7[04]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - NF: [ - , - [, , "[13]\\d{5}", , , , , , , [6], [5]], - [, , "(?:1(?:06|17|28|39)|3[0-2]\\d)\\d{3}", , , , "106609", , , , [5]], - [, , "(?:14|3[58])\\d{4}", , , , "381234", , , , [5]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "NF", - 672, - "00", - , - , - , - "([0-258]\\d{4})$", - "3$1", - , - , - [ - [, "(\\d{2})(\\d{4})", "$1 $2", ["1[0-3]"]], - [, "(\\d)(\\d{5})", "$1 $2", ["[13]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - NG: [ - , - [ - , - , - "(?:[124-7]|9\\d{3})\\d{6}|[1-9]\\d{7}|[78]\\d{9,13}", - , - , - , - , - , - , - [7, 8, 10, 11, 12, 13, 14], - [5, 6], - ], - [ - , - , - "(?:(?:[1-356]\\d|4[02-8]|8[2-9])\\d|9(?:0[3-9]|[1-9]\\d))\\d{5}|7(?:0(?:[013-689]\\d|2[0-24-9])\\d{3,4}|[1-79]\\d{6})|(?:[12]\\d|4[147]|5[14579]|6[1578]|7[1-3578])\\d{5}", - , - , - , - "18040123", - , - , - [7, 8], - [5, 6], - ], - [ - , - , - "(?:702[0-24-9]|8(?:01|19)[01])\\d{6}|(?:70[13-689]|8(?:0[2-9]|1[0-8])|9(?:0[1-9]|1[2356]))\\d{7}", - , - , - , - "8021234567", - , - , - [10], - ], - [, , "800\\d{7,11}", , , , "80017591759", , , [10, 11, 12, 13, 14]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "NG", - 234, - "009", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["78"], "0$1"], - [, "(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]|9(?:0[3-9]|[1-9])"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[3-7]|8[2-9]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[7-9]"], "0$1"], - [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[78]"], "0$1"], - [, "(\\d{3})(\\d{5})(\\d{5,6})", "$1 $2 $3", ["[78]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "700\\d{7,11}", , , , "7001234567", , , [10, 11, 12, 13, 14]], - , - , - [, , , , , , , , , [-1]], - ], - NI: [ - , - [, , "(?:1800|[25-8]\\d{3})\\d{4}", , , , , , , [8]], - [, , "2\\d{7}", , , , "21234567"], - [ - , - , - "(?:5(?:5[0-7]|[78]\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\d)\\d)\\d{5}", - , - , - , - "81234567", - ], - [, , "1800\\d{4}", , , , "18001234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "NI", - 505, - "00", - , - , - , - , - , - , - , - [[, "(\\d{4})(\\d{4})", "$1 $2", ["[125-8]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - NL: [ - , - [ - , - , - "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}", - , - , - , - , - , - , - [5, 6, 7, 8, 9, 10, 11], - ], - [ - , - , - "(?:1(?:[035]\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\d\\d)\\d{6}", - , - , - , - "101234567", - , - , - [9], - ], - [, , "(?:6[1-58]|970\\d)\\d{7}", , , , "612345678", , , [9, 11]], - [, , "800\\d{4,7}", , , , "8001234", , , [7, 8, 9, 10]], - [, , "90[069]\\d{4,7}", , , , "9061234", , , [7, 8, 9, 10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "(?:85|91)\\d{7}", , , , "851234567", , , [9]], - "NL", - 31, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{4})", "$1", ["1[238]|[34]"]], - [, "(\\d{2})(\\d{3,4})", "$1 $2", ["14"]], - [, "(\\d{6})", "$1", ["1"]], - [, "(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"], - [, "(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"], - [, "(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-578]|91"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"], - ], - [ - [, "(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"], - [, "(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"], - [, "(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-578]|91"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"], - ], - [, , "66\\d{7}", , , , "662345678", , , [9]], - , - , - [ - , - , - "140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)\\d", - , - , - , - , - , - , - [5, 6], - ], - [ - , - , - "140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\d{6})\\d", - , - , - , - "14020", - , - , - [5, 6, 9], - ], - , - , - [, , , , , , , , , [-1]], - ], - NO: [ - , - [, , "(?:0|[2-9]\\d{3})\\d{4}", , , , , , , [5, 8]], - [, , "(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}", , , , "21234567", , , [8]], - [, , "(?:4[015-8]|59|9\\d)\\d{6}", , , , "40612345", , , [8]], - [, , "80[01]\\d{5}", , , , "80012345", , , [8]], - [, , "82[09]\\d{5}", , , , "82012345", , , [8]], - [, , "810(?:0[0-6]|[2-8]\\d)\\d{3}", , , , "81021234", , , [8]], - [, , "880\\d{5}", , , , "88012345", , , [8]], - [, , "85[0-5]\\d{5}", , , , "85012345", , , [8]], - "NO", - 47, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[489]|59"]], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[235-7]"]], - ], - , - [, , , , , , , , , [-1]], - 1, - "[02-689]|7[0-8]", - [, , , , , , , , , [-1]], - [, , "(?:0[2-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}", , , , "02000"], - , - , - [, , "81[23]\\d{5}", , , , "81212345", , , [8]], - ], - NP: [ - , - [, , "(?:1\\d|9)\\d{9}|[1-9]\\d{7}", , , , , , , [8, 10, 11], [6, 7]], - [ - , - , - "(?:1[0-6]\\d|99[02-6])\\d{5}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-7])[2-6]\\d{5}", - , - , - , - "14567890", - , - , - [8], - [6, 7], - ], - [, , "9(?:6[0-3]|7[024-6]|8[0-24-68])\\d{7}", , , , "9841234567", , , [10]], - [, , "1(?:66001|800\\d\\d)\\d{5}", , , , "16600101234", , , [11]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "NP", - 977, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], - [, "(\\d{2})(\\d{6})", "$1-$2", ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], "0$1"], - [, "(\\d{3})(\\d{7})", "$1-$2", ["9"]], - [, "(\\d{4})(\\d{2})(\\d{5})", "$1-$2-$3", ["1"]], - ], - [ - [, "(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], - [, "(\\d{2})(\\d{6})", "$1-$2", ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], "0$1"], - [, "(\\d{3})(\\d{7})", "$1-$2", ["9"]], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - NR: [ - , - [, , "(?:444|(?:55|8\\d)\\d|666)\\d{4}", , , , , , , [7]], - [, , "444\\d{4}", , , , "4441234"], - [, , "(?:55[3-9]|666|8\\d\\d)\\d{4}", , , , "5551234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "NR", - 674, - "00", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{4})", "$1 $2", ["[4-68]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - NU: [ - , - [, , "(?:[47]|888\\d)\\d{3}", , , , , , , [4, 7]], - [, , "[47]\\d{3}", , , , "7012", , , [4]], - [, , "888[4-9]\\d{3}", , , , "8884012", , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "NU", - 683, - "00", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{4})", "$1 $2", ["8"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - NZ: [ - , - [ - , - , - "[29]\\d{7,9}|50\\d{5}(?:\\d{2,3})?|6[0-35-9]\\d{6}|7\\d{7,8}|8\\d{4,9}|(?:11\\d|[34])\\d{7}", - , - , - , - , - , - , - [5, 6, 7, 8, 9, 10], - ], - [, , "24099\\d{3}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\d{6}", , , , "32345678", , , [8], [7]], - [, , "2[0-27-9]\\d{7,8}|21\\d{6}", , , , "211234567", , , [8, 9, 10]], - [, , "508\\d{6,7}|80\\d{6,8}", , , , "800123456", , , [8, 9, 10]], - [, , "(?:11\\d{5}|50(?:0[08]|30|66|77|88))\\d{3}|90\\d{6,8}", , , , "900123456", , , [7, 8, 9, 10]], - [, , , , , , , , , [-1]], - [, , "70\\d{7}", , , , "701234567", , , [9]], - [, , , , , , , , , [-1]], - "NZ", - 64, - "0(?:0|161)", - "0", - , - , - "0", - , - "00", - , - [ - [, "(\\d{2})(\\d{3,8})", "$1 $2", ["8[1-579]"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["50[036-8]|[89]0", "50(?:[0367]|88)|[89]0"], "0$1"], - [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["24|[346]|7[2-57-9]|9[2-9]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:10|74)|[59]|80"], "0$1"], - [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1|2[028]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3,5})", "$1 $2 $3", ["2(?:[169]|7[0-35-9])|7|86"], "0$1"], - ], - , - [, , "[28]6\\d{6,7}", , , , "26123456", , , [8, 9]], - , - , - [, , , , , , , , , [-1]], - [, , "8(?:1[6-9]|22|3\\d|4[045]|5[459]|7[0-3579]|90)\\d{2,7}", , , , "83012378"], - , - , - [, , , , , , , , , [-1]], - ], - OM: [ - , - [, , "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}", , , , , , , [7, 8, 9]], - [, , "2[2-6]\\d{6}", , , , "23123456", , , [8]], - [, , "1505\\d{4}|(?:7(?:[1289]\\d|7[0-4])|9(?:0[1-9]|[1-9]\\d))\\d{5}", , , , "92123456", , , [8]], - [, , "8007\\d{4,5}|(?:500|800[05])\\d{4}", , , , "80071234"], - [, , "900\\d{5}", , , , "90012345", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "OM", - 968, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{4,6})", "$1 $2", ["[58]"]], - [, "(\\d{2})(\\d{6})", "$1 $2", ["2"]], - [, "(\\d{4})(\\d{4})", "$1 $2", ["[179]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - PA: [ - , - [, , "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}", , , , , , , [7, 8, 10, 11]], - [ - , - , - "(?:1(?:0\\d|1[479]|2[37]|3[0137]|4[17]|5[05]|6[58]|7[0167]|8[258]|9[1389])|2(?:[0235-79]\\d|1[0-7]|4[013-9]|8[02-9])|3(?:[089]\\d|1[0-7]|2[0-5]|33|4[0-79]|5[0-35]|6[068]|7[0-8])|4(?:00|3[0-579]|4\\d|7[0-57-9])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[056]|7[0-24-9]|8[5-9]|90)|8(?:09|2[89]|3\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\d))\\d{4}", - , - , - , - "2001234", - , - , - [7], - ], - [, , "(?:1[16]1|21[89]|6\\d{3}|8(?:1[01]|7[23]))\\d{4}", , , , "61234567", , , [7, 8]], - [, , "800\\d{4,5}|(?:00800|800\\d)\\d{6}", , , , "8001234"], - [, , "(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\d{4}", , , , "8601234", , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "PA", - 507, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{4})", "$1-$2", ["[1-57-9]"]], - [, "(\\d{4})(\\d{4})", "$1-$2", ["[68]"]], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - PE: [ - , - [, , "(?:[14-8]|9\\d)\\d{7}", , , , , , , [8, 9], [6, 7]], - [ - , - , - "(?:(?:4[34]|5[14])[0-8]\\d|7(?:173|3[0-8]\\d)|8(?:10[05689]|6(?:0[06-9]|1[6-9]|29)|7(?:0[569]|[56]0)))\\d{4}|(?:1[0-8]|4[12]|5[236]|6[1-7]|7[246]|8[2-4])\\d{6}", - , - , - , - "11234567", - , - , - [8], - [6, 7], - ], - [, , "9\\d{8}", , , , "912345678", , , [9]], - [, , "800\\d{5}", , , , "80012345", , , [8]], - [, , "805\\d{5}", , , , "80512345", , , [8]], - [, , "801\\d{5}", , , , "80112345", , , [8]], - [, , "80[24]\\d{5}", , , , "80212345", , , [8]], - [, , , , , , , , , [-1]], - "PE", - 51, - "00|19(?:1[124]|77|90)00", - "0", - " Anexo ", - , - "0", - , - "00", - , - [ - [, "(\\d{3})(\\d{5})", "$1 $2", ["80"], "(0$1)"], - [, "(\\d)(\\d{7})", "$1 $2", ["1"], "(0$1)"], - [, "(\\d{2})(\\d{6})", "$1 $2", ["[4-8]"], "(0$1)"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - PF: [ - , - [, , "4\\d{5}(?:\\d{2})?|8\\d{7,8}", , , , , , , [6, 8, 9]], - [, , "4(?:0[4-689]|9[4-68])\\d{5}", , , , "40412345", , , [8]], - [, , "8[7-9]\\d{6}", , , , "87123456", , , [8]], - [, , "80[0-5]\\d{6}", , , , "800012345", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "499\\d{5}", , , , "49901234", , , [8]], - "PF", - 689, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["44"]], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4|8[7-9]"]], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , "44\\d{4}", , , , , , , [6]], - [, , "44\\d{4}", , , , "440123", , , [6]], - , - , - [, , , , , , , , , [-1]], - ], - PG: [ - , - [, , "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}", , , , , , , [7, 8]], - [, , "(?:(?:3[0-2]|4[257]|5[34]|9[78])\\d|64[1-9]|85[02-46-9])\\d{4}", , , , "3123456", , , [7]], - [, , "(?:7\\d|8[128])\\d{6}", , , , "70123456", , , [8]], - [, , "180\\d{4}", , , , "1801234", , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "2(?:0[0-57]|7[568])\\d{4}", , , , "2751234", , , [7]], - "PG", - 675, - "00|140[1-3]", - , - , - , - , - , - "00", - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["18|[2-69]|85"]], - [, "(\\d{4})(\\d{4})", "$1 $2", ["[78]"]], - ], - , - [, , "27[01]\\d{4}", , , , "2700123", , , [7]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - PH: [ - , - [ - , - , - "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}", - , - , - , - , - , - , - [6, 8, 9, 10, 11, 12, 13], - [4, 5, 7], - ], - [ - , - , - "(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\d{3}|88(?:22\\d\\d|42))\\d{4}|(?:2|8[2-8]\\d\\d)\\d{5}", - , - , - , - "232345678", - , - , - [6, 8, 9, 10], - [4, 5, 7], - ], - [ - , - , - "(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\d|4[2-9]|8[135-9]|9[1-9]))\\d{7}", - , - , - , - "9051234567", - , - , - [10], - ], - [, , "1800\\d{7,9}", , , , "180012345678", , , [11, 12, 13]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "PH", - 63, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{5})", "$1 $2", ["2"], "(0$1)"], - [ - , - "(\\d{4})(\\d{4,6})", - "$1 $2", - [ - "3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2", - "3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))", - ], - "(0$1)", - ], - [ - , - "(\\d{5})(\\d{4})", - "$1 $2", - ["346|4(?:27|9[35])|883", "3469|4(?:279|9(?:30|56))|8834"], - "(0$1)", - ], - [, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "(0$1)"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|8[2-8]"], "(0$1)"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], - [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], - [, "(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["1"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - PK: [ - , - [ - , - , - "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}", - , - , - , - , - , - , - [8, 9, 10, 11, 12], - [5, 6, 7], - ], - [ - , - , - "(?:(?:21|42)[2-9]|58[126])\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6,7}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\d{5,6}", - , - , - , - "2123456789", - , - , - [9, 10], - [5, 6, 7, 8], - ], - [, , "3(?:[0-24]\\d|3[0-7]|55|64)\\d{7}", , , , "3012345678", , , [10]], - [, , "800\\d{5}(?:\\d{3})?", , , , "80012345", , , [8, 11]], - [, , "900\\d{5}", , , , "90012345", , , [8]], - [, , , , , , , , , [-1]], - [, , "122\\d{6}", , , , "122044444", , , [9]], - [, , , , , , , , , [-1]], - "PK", - 92, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{3})(\\d{2,7})", "$1 $2 $3", ["[89]0"], "0$1"], - [, "(\\d{4})(\\d{5})", "$1 $2", ["1"]], - [ - , - "(\\d{3})(\\d{6,7})", - "$1 $2", - [ - "2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])", - "9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]", - ], - "(0$1)", - ], - [ - , - "(\\d{2})(\\d{7,8})", - "$1 $2", - ["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"], - "(0$1)", - ], - [, "(\\d{5})(\\d{5})", "$1 $2", ["58"], "(0$1)"], - [, "(\\d{3})(\\d{7})", "$1 $2", ["3"], "0$1"], - [ - , - "(\\d{2})(\\d{3})(\\d{3})(\\d{3})", - "$1 $2 $3 $4", - ["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"], - "(0$1)", - ], - [, "(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[24-9]"], "(0$1)"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [ - , - , - "(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}", - , - , - , - "21111825888", - , - , - [11, 12], - ], - , - , - [, , , , , , , , , [-1]], - ], - PL: [ - , - [, , "6\\d{5}(?:\\d{2})?|8\\d{9}|[1-9]\\d{6}(?:\\d{2})?", , , , , , , [6, 7, 8, 9, 10]], - [ - , - , - "47\\d{7}|(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])(?:[02-9]\\d{6}|1(?:[0-8]\\d{5}|9\\d{3}(?:\\d{2})?))", - , - , - , - "123456789", - , - , - [7, 9], - ], - [ - , - , - "21(?:1(?:[145]\\d|3[1-5])|2[0-4]\\d)\\d{4}|(?:45|5[0137]|6[069]|7[2389]|88)\\d{7}", - , - , - , - "512345678", - , - , - [9], - ], - [, , "800\\d{6,7}", , , , "800123456", , , [9, 10]], - [, , "70[01346-8]\\d{6}", , , , "701234567", , , [9]], - [, , "801\\d{6}", , , , "801234567", , , [9]], - [, , , , , , , , , [-1]], - [, , "39\\d{7}", , , , "391234567", , , [9]], - "PL", - 48, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{5})", "$1", ["19"]], - [, "(\\d{3})(\\d{3})", "$1 $2", ["11|64"]], - [ - , - "(\\d{2})(\\d{2})(\\d{3})", - "$1 $2 $3", - [ - "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1", - "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19", - ], - ], - [, "(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["64"]], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[2-8]|[2-7]|8[1-79]|9[145]"]], - [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["8"]], - ], - , - [, , "64\\d{4,7}", , , , "641234567", , , [6, 7, 8, 9]], - , - , - [, , , , , , , , , [-1]], - [, , "804\\d{6}", , , , "804123456", , , [9]], - , - , - [, , , , , , , , , [-1]], - ], - PM: [ - , - [, , "(?:[45]|80\\d\\d)\\d{5}", , , , , , , [6, 9]], - [, , "(?:4[1-356]|50)\\d{4}", , , , "430123", , , [6]], - [, , "(?:4[02-4]|5[056])\\d{4}", , , , "551234", , , [6]], - [, , "80[0-5]\\d{6}", , , , "800012345", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "PM", - 508, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[45]"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - PR: [ - , - [, , "(?:[589]\\d\\d|787)\\d{7}", , , , , , , [10], [7]], - [, , "(?:787|939)[2-9]\\d{6}", , , , "7872345678", , , , [7]], - [, , "(?:787|939)[2-9]\\d{6}", , , , "7872345678", , , , [7]], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], - [, , "900[2-9]\\d{6}", , , , "9002345678"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "PR", - 1, - "011", - "1", - , - , - "1", - , - , - 1, - , - , - [, , , , , , , , , [-1]], - , - "787|939", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - PS: [ - , - [, , "[2489]2\\d{6}|(?:1\\d|5)\\d{8}", , , , , , , [8, 9, 10], [7]], - [, , "(?:22[2-47-9]|42[45]|82[014-68]|92[3569])\\d{5}", , , , "22234567", , , [8], [7]], - [, , "5[69]\\d{7}", , , , "599123456", , , [9]], - [, , "1800\\d{6}", , , , "1800123456", , , [10]], - [, , , , , , , , , [-1]], - [, , "1700\\d{6}", , , , "1700123456", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "PS", - 970, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2489]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["5"], "0$1"], - [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - PT: [ - , - [, , "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}", , , , , , , [9]], - [, , "2(?:[12]\\d|3[1-689]|4[1-59]|[57][1-9]|6[1-35689]|8[1-69]|9[1256])\\d{6}", , , , "212345678"], - [ - , - , - "6(?:[06]92(?:30|9\\d)|[35]92(?:3[03]|9\\d))\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\d\\d|480))\\d{5}", - , - , - , - "912345678", - ], - [, , "80[02]\\d{6}", , , , "800123456"], - [, , "(?:6(?:0[178]|4[68])\\d|76(?:0[1-57]|1[2-47]|2[237]))\\d{5}", , , , "760123456"], - [, , "80(?:8\\d|9[1579])\\d{5}", , , , "808123456"], - [, , "884[0-4689]\\d{5}", , , , "884123456"], - [, , "30\\d{7}", , , , "301234567"], - "PT", - 351, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["2[12]"]], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["16|[236-9]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "70(?:7\\d|8[17])\\d{5}", , , , "707123456"], - , - , - [, , "600\\d{6}|6[06]9233\\d{3}", , , , "600110000"], - ], - PW: [ - , - [, , "(?:[24-8]\\d\\d|345|900)\\d{4}", , , , , , , [7]], - [ - , - , - "(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\d{4}", - , - , - , - "2771234", - ], - [, , "(?:(?:46|83)[0-5]|6[2-4689]0)\\d{4}|(?:45|77|88)\\d{5}", , , , "6201234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "PW", - 680, - "01[12]", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - PY: [ - , - [, , "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}", , , , , , , [6, 7, 8, 9, 10, 11], [5]], - [ - , - , - "(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\d|6[1-578]|75|8[0-8])|858)\\d{5,6}", - , - , - , - "212345678", - , - , - [7, 8, 9], - [5, 6], - ], - [, , "9(?:51|6[129]|[78][1-6]|9[1-5])\\d{6}", , , , "961456789", , , [9]], - [, , "9800\\d{5,7}", , , , "98000123456", , , [9, 10, 11]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "8700[0-4]\\d{4}", , , , "870012345", , , [9]], - "PY", - 595, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{3,6})", "$1 $2", ["[2-9]0"], "0$1"], - [, "(\\d{2})(\\d{5})", "$1 $2", ["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"], "(0$1)"], - [ - , - "(\\d{3})(\\d{4,5})", - "$1 $2", - ["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"], - "(0$1)", - ], - [ - , - "(\\d{2})(\\d{3})(\\d{3,4})", - "$1 $2 $3", - ["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"], - "(0$1)", - ], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["87"]], - [, "(\\d{3})(\\d{6})", "$1 $2", ["9(?:[5-79]|8[1-6])"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]"], "0$1"], - [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "[2-9]0\\d{4,7}", , , , "201234567", , , [6, 7, 8, 9]], - , - , - [, , , , , , , , , [-1]], - ], - QA: [ - , - [, , "[2-7]\\d{7}|800\\d{4}(?:\\d{2})?|2\\d{6}", , , , , , , [7, 8, 9]], - [, , "414[1-4]\\d{4}|(?:23|4[04])\\d{6}", , , , "44123456", , , [8]], - [, , "(?:2[89]|[35-7]\\d)\\d{6}", , , , "33123456", , , [8]], - [, , "800\\d{4}(?:\\d{2})?", , , , "8001234", , , [7, 9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "QA", - 974, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["2[126]|8"]], - [, "(\\d{4})(\\d{4})", "$1 $2", ["[2-7]"]], - ], - , - [, , "2(?:[12]\\d|61)\\d{4}", , , , "2123456", , , [7]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - RE: [ - , - [, , "976\\d{6}|(?:26|[68]\\d)\\d{7}", , , , , , , [9]], - [, , "26(?:2\\d\\d|3(?:0\\d|1[01]))\\d{4}", , , , "262161234"], - [ - , - , - "(?:69(?:2\\d\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|6[0-6]|7[0-27]|8[0-8]|9[0-479]))|976(?:2[27]|3[0-37]|9\\d))\\d{4}", - , - , - , - "692123456", - ], - [, , "80\\d{7}", , , , "801234567"], - [, , "89[1-37-9]\\d{6}", , , , "891123456"], - [, , "8(?:1[019]|2[0156]|84|90)\\d{6}", , , , "810123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "RE", - 262, - "00", - "0", - , - , - "0", - , - , - , - [[, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2689]"], "0$1"]], - , - [, , , , , , , , , [-1]], - 1, - "26[23]|69|[89]", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - RO: [ - , - [, , "(?:[2378]\\d|90)\\d{7}|[23]\\d{5}", , , , , , , [6, 9]], - [, , "[23][13-6]\\d{7}|(?:2(?:19\\d|[3-6]\\d9)|31\\d\\d)\\d\\d", , , , "211234567"], - [, , "7020\\d{5}|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[019])\\d{6}", , , , "712034567", , , [9]], - [, , "800\\d{6}", , , , "800123456", , , [9]], - [, , "90[0136]\\d{6}", , , , "900123456", , , [9]], - [, , "801\\d{6}", , , , "801123456", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "RO", - 40, - "00", - "0", - " int ", - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{3})", "$1 $2", ["2[3-6]", "2[3-6]\\d9"], "0$1"], - [, "(\\d{2})(\\d{4})", "$1 $2", ["219|31"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[23]1"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[237-9]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "(?:37\\d|80[578])\\d{6}", , , , "372123456", , , [9]], - , - , - [, , , , , , , , , [-1]], - ], - RS: [ - , - [ - , - , - "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}", - , - , - , - , - , - , - [6, 7, 8, 9, 10, 11, 12], - [4, 5], - ], - [ - , - , - "(?:11[1-9]\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\d))\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\d{4,9}", - , - , - , - "10234567", - , - , - [7, 8, 9, 10, 11, 12], - [4, 5, 6], - ], - [, , "6(?:[0-689]|7\\d)\\d{6,7}", , , , "601234567", , , [8, 9, 10]], - [, , "800\\d{3,9}", , , , "80012345"], - [, , "(?:78\\d|90[0169])\\d{3,7}", , , , "90012345", , , [6, 7, 8, 9, 10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "RS", - 381, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{3,9})", "$1 $2", ["(?:2[389]|39)0|[7-9]"], "0$1"], - [, "(\\d{2})(\\d{5,10})", "$1 $2", ["[1-36]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "7[06]\\d{4,10}", , , , "700123456"], - , - , - [, , , , , , , , , [-1]], - ], - RU: [ - , - [, , "8\\d{13}|[347-9]\\d{9}", , , , , , , [10, 14], [7]], - [ - , - , - "(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-79]|7[1-37-9]))\\d{7}", - , - , - , - "3011234567", - , - , - [10], - [7], - ], - [, , "9\\d{9}", , , , "9123456789", , , [10]], - [, , "8(?:0[04]|108\\d{3})\\d{7}", , , , "8001234567"], - [, , "80[39]\\d{7}", , , , "8091234567", , , [10]], - [, , , , , , , , , [-1]], - [, , "808\\d{7}", , , , "8081234567", , , [10]], - [, , , , , , , , , [-1]], - "RU", - 7, - "810", - "8", - , - , - "8", - , - "8~10", - , - [ - [, "(\\d{3})(\\d{2})(\\d{2})", "$1-$2-$3", ["[0-79]"]], - [ - , - "(\\d{4})(\\d{2})(\\d{2})(\\d{2})", - "$1 $2 $3 $4", - [ - "7(?:1[0-8]|2[1-9])", - "7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))", - "7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2", - ], - "8 ($1)", - , - 1, - ], - [ - , - "(\\d{5})(\\d)(\\d{2})(\\d{2})", - "$1 $2 $3 $4", - [ - "7(?:1[0-68]|2[1-9])", - "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))", - "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]", - ], - "8 ($1)", - , - 1, - ], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", , 1], - [, "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[349]|8(?:[02-7]|1[1-8])"], "8 ($1)", , 1], - [, "(\\d{4})(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["8"], "8 ($1)"], - ], - [ - [ - , - "(\\d{4})(\\d{2})(\\d{2})(\\d{2})", - "$1 $2 $3 $4", - [ - "7(?:1[0-8]|2[1-9])", - "7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))", - "7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2", - ], - "8 ($1)", - , - 1, - ], - [ - , - "(\\d{5})(\\d)(\\d{2})(\\d{2})", - "$1 $2 $3 $4", - [ - "7(?:1[0-68]|2[1-9])", - "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))", - "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]", - ], - "8 ($1)", - , - 1, - ], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", , 1], - [, "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[349]|8(?:[02-7]|1[1-8])"], "8 ($1)", , 1], - [, "(\\d{4})(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["8"], "8 ($1)"], - ], - [, , , , , , , , , [-1]], - 1, - "3[04-689]|[489]", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - RW: [ - , - [, , "(?:06|[27]\\d\\d|[89]00)\\d{6}", , , , , , , [8, 9]], - [, , "(?:06|2[23568]\\d)\\d{6}", , , , "250123456"], - [, , "7[2389]\\d{7}", , , , "720123456", , , [9]], - [, , "800\\d{6}", , , , "800123456", , , [9]], - [, , "900\\d{6}", , , , "900123456", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "RW", - 250, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SA: [ - , - [, , "92\\d{7}|(?:[15]|8\\d)\\d{8}", , , , , , , [9, 10], [7]], - [, , "1(?:1\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\d{6}", , , , "112345678", , , [9], [7]], - [, , "579[01]\\d{5}|5(?:[013-689]\\d|7[0-35-8])\\d{6}", , , , "512345678", , , [9]], - [, , "800\\d{7}", , , , "8001234567", , , [10]], - [, , "925\\d{6}", , , , "925012345", , , [9]], - [, , "920\\d{6}", , , , "920012345", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "SA", - 966, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{4})(\\d{5})", "$1 $2", ["9"]], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["81"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "811\\d{7}", , , , "8110123456", , , [10]], - , - , - [, , , , , , , , , [-1]], - ], - SB: [ - , - [, , "(?:[1-6]|[7-9]\\d\\d)\\d{4}", , , , , , , [5, 7]], - [, , "(?:1[4-79]|[23]\\d|4[0-2]|5[03]|6[0-37])\\d{3}", , , , "40123", , , [5]], - [ - , - , - "48\\d{3}|(?:(?:7[1-9]|8[4-9])\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\d{4}", - , - , - , - "7421234", - ], - [, , "1[38]\\d{3}", , , , "18123", , , [5]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "5[12]\\d{3}", , , , "51123", , , [5]], - "SB", - 677, - "0[01]", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{5})", "$1 $2", ["7|8[4-9]|9(?:[1-8]|9[0-8])"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SC: [ - , - [, , "800\\d{4}|(?:[249]\\d|64)\\d{5}", , , , , , , [7]], - [, , "4[2-46]\\d{5}", , , , "4217123"], - [, , "2[125-8]\\d{5}", , , , "2510123"], - [, , "800[08]\\d{3}", , , , "8000000"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "971\\d{4}|(?:64|95)\\d{5}", , , , "6412345"], - "SC", - 248, - "010|0[0-2]", - , - , - , - , - , - "00", - , - [[, "(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[246]|9[57]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SD: [ - , - [, , "[19]\\d{8}", , , , , , , [9]], - [, , "1(?:5\\d|8[35-7])\\d{6}", , , , "153123456"], - [, , "(?:1[0-2]|9[0-3569])\\d{7}", , , , "911231234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "SD", - 249, - "00", - "0", - , - , - "0", - , - , - , - [[, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[19]"], "0$1"]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SE: [ - , - [ - , - , - "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}", - , - , - , - , - , - , - [6, 7, 8, 9, 10, 12], - ], - [ - , - , - "(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\d)\\d|90[1-9])\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\d{5,6}", - , - , - , - "8123456", - , - , - [7, 8, 9], - ], - [, , "7[02369]\\d{7}", , , , "701234567", , , [9]], - [, , "20\\d{4,7}", , , , "20123456", , , [6, 7, 8, 9]], - [ - , - , - "649\\d{6}|99[1-59]\\d{4}(?:\\d{3})?|9(?:00|39|44)[1-8]\\d{3,6}", - , - , - , - "9001234567", - , - , - [7, 8, 9, 10], - ], - [, , "77[0-7]\\d{6}", , , , "771234567", , , [9]], - [, , "75[1-8]\\d{6}", , , , "751234567", , , [9]], - [, , , , , , , , , [-1]], - "SE", - 46, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["20"], "0$1"], - [, "(\\d{3})(\\d{4})", "$1-$2", ["9(?:00|39|44|9)"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{2})", "$1-$2 $3", ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"], "0$1"], - [, "(\\d)(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1"], - [ - , - "(\\d{3})(\\d{2,3})(\\d{2})", - "$1-$2 $3", - [ - "1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])", - ], - "0$1", - ], - [, "(\\d{3})(\\d{2,3})(\\d{3})", "$1-$2 $3", ["9(?:00|39|44)"], "0$1"], - [ - , - "(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})", - "$1-$2 $3 $4", - ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"], - "0$1", - ], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["10|7"], "0$1"], - [, "(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1"], - [ - , - "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", - "$1-$2 $3 $4", - ["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], - "0$1", - ], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{3})", "$1-$2 $3 $4", ["9"], "0$1"], - [, "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4 $5", ["[26]"], "0$1"], - ], - [ - [, "(\\d{2})(\\d{2,3})(\\d{2})", "$1 $2 $3", ["20"]], - [, "(\\d{3})(\\d{4})", "$1 $2", ["9(?:00|39|44|9)"]], - [, "(\\d{2})(\\d{3})(\\d{2})", "$1 $2 $3", ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"]], - [, "(\\d)(\\d{2,3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], - [ - , - "(\\d{3})(\\d{2,3})(\\d{2})", - "$1 $2 $3", - [ - "1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])", - ], - ], - [, "(\\d{3})(\\d{2,3})(\\d{3})", "$1 $2 $3", ["9(?:00|39|44)"]], - [ - , - "(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})", - "$1 $2 $3 $4", - ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"], - ], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["10|7"]], - [, "(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["8"]], - [ - , - "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", - "$1 $2 $3 $4", - ["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], - ], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["9"]], - [, "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[26]"]], - ], - [, , "74[02-9]\\d{6}", , , , "740123456", , , [9]], - , - , - [, , , , , , , , , [-1]], - [, , "10[1-8]\\d{6}", , , , "102345678", , , [9]], - , - , - [, , "(?:25[245]|67[3-68])\\d{9}", , , , "254123456789", , , [12]], - ], - SG: [ - , - [, , "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}", , , , , , , [8, 10, 11]], - [, , "662[0-24-9]\\d{4}|6(?:[0-578]\\d|6[013-57-9]|9[0-35-9])\\d{5}", , , , "61234567", , , [8]], - [ - , - , - "8(?:05[0-3]|95[0-2])\\d{4}|(?:8(?:0[1-4]|[1-8]\\d|9[0-4])|9[0-8]\\d)\\d{5}", - , - , - , - "81234567", - , - , - [8], - ], - [, , "(?:18|8)00\\d{7}", , , , "18001234567", , , [10, 11]], - [, , "1900\\d{7}", , , , "19001234567", , , [11]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "(?:3[12]\\d|666)\\d{5}", , , , "31234567", , , [8]], - "SG", - 65, - "0[0-3]\\d", - , - , - , - , - , - , - , - [ - [, "(\\d{4,5})", "$1", ["1[013-9]|77", "1(?:[013-8]|9(?:0[1-9]|[1-9]))|77"]], - [, "(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-5]|[1-9])"]], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], - [, "(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]], - [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], - ], - [ - [, "(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-5]|[1-9])"]], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], - [, "(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]], - [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "7000\\d{7}", , , , "70001234567", , , [11]], - , - , - [, , , , , , , , , [-1]], - ], - SH: [ - , - [, , "(?:[256]\\d|8)\\d{3}", , , , , , , [4, 5]], - [, , "2(?:[0-57-9]\\d|6[4-9])\\d\\d", , , , "22158"], - [, , "[56]\\d{4}", , , , "51234", , , [5]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "262\\d\\d", , , , "26212", , , [5]], - "SH", - 290, - "00", - , - , - , - , - , - , - , - , - , - [, , , , , , , , , [-1]], - 1, - "[256]", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SI: [ - , - [, , "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}", , , , , , , [5, 6, 7, 8]], - [, , "(?:[1-357][2-8]|4[24-8])\\d{6}", , , , "12345678", , , [8], [7]], - [, , "65(?:1\\d|55|6[01]|70)\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}", , , , "31234567", , , [8]], - [, , "80\\d{4,6}", , , , "80123456", , , [6, 7, 8]], - [, , "89[1-3]\\d{2,5}|90\\d{4,6}", , , , "90123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [ - , - , - "(?:59\\d\\d|8(?:1(?:[67]\\d|8[0-589])|2(?:0\\d|2[0-37-9]|8[0-2489])|3[389]\\d))\\d{4}", - , - , - , - "59012345", - , - , - [8], - ], - "SI", - 386, - "00|10(?:22|66|88|99)", - "0", - , - , - "0", - , - "00", - , - [ - [, "(\\d{2})(\\d{3,6})", "$1 $2", ["8[09]|9"], "0$1"], - [, "(\\d{3})(\\d{5})", "$1 $2", ["59|8"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37][01]|4[0139]|51|6"], "0$1"], - [, "(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-57]"], "(0$1)"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SJ: [ - , - [, , "0\\d{4}|(?:[489]\\d|[57]9)\\d{6}", , , , , , , [5, 8]], - [, , "79\\d{6}", , , , "79123456", , , [8]], - [, , "(?:4[015-8]|59|9\\d)\\d{6}", , , , "41234567", , , [8]], - [, , "80[01]\\d{5}", , , , "80012345", , , [8]], - [, , "82[09]\\d{5}", , , , "82012345", , , [8]], - [, , "810(?:0[0-6]|[2-8]\\d)\\d{3}", , , , "81021234", , , [8]], - [, , "880\\d{5}", , , , "88012345", , , [8]], - [, , "85[0-5]\\d{5}", , , , "85012345", , , [8]], - "SJ", - 47, - "00", - , - , - , - , - , - , - , - , - , - [, , , , , , , , , [-1]], - , - "79", - [, , , , , , , , , [-1]], - [, , "(?:0[2-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}", , , , "02000"], - , - , - [, , "81[23]\\d{5}", , , , "81212345", , , [8]], - ], - SK: [ - , - [, , "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}", , , , , , , [6, 7, 9]], - [ - , - , - "(?:2(?:16|[2-9]\\d{3})|(?:(?:[3-5][1-8]\\d|819)\\d|601[1-5])\\d)\\d{4}|(?:2|[3-5][1-8])1[67]\\d{3}|[3-5][1-8]16\\d\\d", - , - , - , - "221234567", - ], - [, , "909[1-9]\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\d)\\d{6}", , , , "912123456", , , [9]], - [, , "800\\d{6}", , , , "800123456", , , [9]], - [, , "9(?:00|[78]\\d)\\d{6}", , , , "900123456", , , [9]], - [, , "8[5-9]\\d{7}", , , , "850123456", , , [9]], - [, , , , , , , , , [-1]], - [, , "6(?:02|5[0-4]|9[0-6])\\d{6}", , , , "690123456", , , [9]], - "SK", - 421, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"], - [, "(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["[3-5][1-8]1", "[3-5][1-8]1[67]"], "0$1"], - [, "(\\d{4})(\\d{3})", "$1 $2", ["909", "9090"], "0$1"], - [, "(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1/$2 $3 $4", ["2"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1/$2 $3 $4", ["[3-5]"], "0$1"], - ], - [ - [, "(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"], - [, "(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["[3-5][1-8]1", "[3-5][1-8]1[67]"], "0$1"], - [, "(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1/$2 $3 $4", ["2"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1/$2 $3 $4", ["[3-5]"], "0$1"], - ], - [, , "9090\\d{3}", , , , "9090123", , , [7]], - , - , - [, , "9090\\d{3}|(?:602|8(?:00|[5-9]\\d)|9(?:00|[78]\\d))\\d{6}", , , , , , , [7, 9]], - [, , "96\\d{7}", , , , "961234567", , , [9]], - , - , - [, , , , , , , , , [-1]], - ], - SL: [ - , - [, , "(?:[237-9]\\d|66)\\d{6}", , , , , , , [8], [6]], - [, , "22[2-4][2-9]\\d{4}", , , , "22221234", , , , [6]], - [, , "(?:25|3[0-5]|66|7[2-9]|8[08]|9[09])\\d{6}", , , , "25123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "SL", - 232, - "00", - "0", - , - , - "0", - , - , - , - [[, "(\\d{2})(\\d{6})", "$1 $2", ["[236-9]"], "(0$1)"]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SM: [ - , - [, , "(?:0549|[5-7]\\d)\\d{6}", , , , , , , [8, 10], [6]], - [, , "0549(?:8[0157-9]|9\\d)\\d{4}", , , , "0549886377", , , [10], [6]], - [, , "6[16]\\d{6}", , , , "66661212", , , [8]], - [, , , , , , , , , [-1]], - [, , "7[178]\\d{6}", , , , "71123456", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "5[158]\\d{6}", , , , "58001110", , , [8]], - "SM", - 378, - "00", - , - , - , - "([89]\\d{5})$", - "0549$1", - , - , - [ - [, "(\\d{6})", "$1", ["[89]"]], - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], - [, "(\\d{4})(\\d{6})", "$1 $2", ["0"]], - ], - [ - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], - [, "(\\d{4})(\\d{6})", "$1 $2", ["0"]], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SN: [ - , - [, , "(?:[378]\\d|93)\\d{7}", , , , , , , [9]], - [, , "3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\d{5}", , , , "301012345"], - [, , "75(?:01|[38]3)\\d{5}|7(?:[06-8]\\d|21|5[4-7]|90)\\d{6}", , , , "701234567"], - [, , "800\\d{6}", , , , "800123456"], - [, , "88[4689]\\d{6}", , , , "884123456"], - [, , "81[02468]\\d{6}", , , , "810123456"], - [, , , , , , , , , [-1]], - [, , "(?:3(?:392|9[01]\\d)\\d|93(?:3[13]0|929))\\d{4}", , , , "933301234"], - "SN", - 221, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[379]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SO: [ - , - [, , "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}", , , , , , , [6, 7, 8, 9]], - [ - , - , - "(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\d{5}|(?:[134]\\d|8[125])\\d{4}", - , - , - , - "4012345", - , - , - [6, 7], - ], - [ - , - , - "(?:(?:15|(?:3[59]|4[89]|79|8[08])\\d|6(?:0[5-7]|[1-9]\\d)|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:6\\d|7[1-9])\\d{6}", - , - , - , - "71123456", - , - , - [7, 8, 9], - ], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "SO", - 252, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{4})", "$1 $2", ["8[125]"]], - [, "(\\d{6})", "$1", ["[134]"]], - [, "(\\d)(\\d{6})", "$1 $2", ["[15]|2[0-79]|3[0-46-8]|4[0-7]"]], - [, "(\\d)(\\d{7})", "$1 $2", ["24|[67]"]], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[3478]|64|90"]], - [, "(\\d{2})(\\d{5,7})", "$1 $2", ["1|28|6(?:0[5-7]|[1-35-9])|9[2-9]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SR: [ - , - [, , "(?:[2-5]|68|[78]\\d)\\d{5}", , , , , , , [6, 7]], - [, , "(?:2[1-3]|3[0-7]|(?:4|68)\\d|5[2-58])\\d{4}", , , , "211234"], - [, , "(?:7[124-7]|8[124-9])\\d{5}", , , , "7412345", , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "56\\d{4}", , , , "561234", , , [6]], - "SR", - 597, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{2})(\\d{2})", "$1-$2-$3", ["56"]], - [, "(\\d{3})(\\d{3})", "$1-$2", ["[2-5]"]], - [, "(\\d{3})(\\d{4})", "$1-$2", ["[6-8]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SS: [ - , - [, , "[19]\\d{8}", , , , , , , [9]], - [, , "1[89]\\d{7}", , , , "181234567"], - [, , "(?:12|9[1257-9])\\d{7}", , , , "977123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "SS", - 211, - "00", - "0", - , - , - "0", - , - , - , - [[, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[19]"], "0$1"]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - ST: [ - , - [, , "(?:22|9\\d)\\d{5}", , , , , , , [7]], - [, , "22\\d{5}", , , , "2221234"], - [, , "900[5-9]\\d{3}|9(?:0[1-9]|[89]\\d)\\d{4}", , , , "9812345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "ST", - 239, - "00", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{4})", "$1 $2", ["[29]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SV: [ - , - [, , "[267]\\d{7}|[89]00\\d{4}(?:\\d{4})?", , , , , , , [7, 8, 11]], - [, , "2(?:[1-6]\\d{3}|[79]90[034]|890[0245])\\d{3}", , , , "21234567", , , [8]], - [, , "66(?:[02-9]\\d\\d|1(?:[02-9]\\d|16))\\d{3}|(?:6[0-57-9]|7\\d)\\d{6}", , , , "70123456", , , [8]], - [, , "800\\d{4}(?:\\d{4})?", , , , "8001234", , , [7, 11]], - [, , "900\\d{4}(?:\\d{4})?", , , , "9001234", , , [7, 11]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "SV", - 503, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["[89]"]], - [, "(\\d{4})(\\d{4})", "$1 $2", ["[267]"]], - [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[89]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SX: [ - , - [, , "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], - [, , "7215(?:4[2-8]|8[239]|9[056])\\d{4}", , , , "7215425678", , , , [7]], - [, , "7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}", , , , "7215205678", , , , [7]], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002123456"], - [, , "900[2-9]\\d{6}", , , , "9002123456"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "SX", - 1, - "011", - "1", - , - , - "1|(5\\d{6})$", - "721$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "721", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SY: [ - , - [, , "[1-39]\\d{8}|[1-5]\\d{7}", , , , , , , [8, 9], [6, 7]], - [ - , - , - "21\\d{6,7}|(?:1(?:[14]\\d|[2356])|2[235]|3(?:[13]\\d|4)|4[134]|5[1-3])\\d{6}", - , - , - , - "112345678", - , - , - , - [6, 7], - ], - [, , "9[1-689]\\d{7}", , , , "944567890", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "SY", - 963, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-5]"], "0$1", , 1], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1", , 1], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - SZ: [ - , - [, , "0800\\d{4}|(?:[237]\\d|900)\\d{6}", , , , , , , [8, 9]], - [, , "[23][2-5]\\d{6}", , , , "22171234", , , [8]], - [, , "7[6-9]\\d{6}", , , , "76123456", , , [8]], - [, , "0800\\d{4}", , , , "08001234", , , [8]], - [, , "900\\d{6}", , , , "900012345", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "70\\d{6}", , , , "70012345", , , [8]], - "SZ", - 268, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{4})(\\d{4})", "$1 $2", ["[0237]"]], - [, "(\\d{5})(\\d{4})", "$1 $2", ["9"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , "0800\\d{4}", , , , , , , [8]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - TA: [ - , - [, , "8\\d{3}", , , , , , , [4]], - [, , "8\\d{3}", , , , "8999"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "TA", - 290, - "00", - , - , - , - , - , - , - , - , - , - [, , , , , , , , , [-1]], - , - "8", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - TC: [ - , - [, , "(?:[58]\\d\\d|649|900)\\d{7}", , , , , , , [10], [7]], - [, , "649(?:266|712|9(?:4\\d|50))\\d{4}", , , , "6497121234", , , , [7]], - [, , "649(?:2(?:3[129]|4[1-79])|3\\d\\d|4[34][1-3])\\d{4}", , , , "6492311234", , , , [7]], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], - [, , "900[2-9]\\d{6}", , , , "9002345678"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , "649(?:71[01]|966)\\d{4}", , , , "6497101234", , , , [7]], - "TC", - 1, - "011", - "1", - , - , - "1|([2-479]\\d{6})$", - "649$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "649", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - TD: [ - , - [, , "(?:22|[69]\\d|77)\\d{6}", , , , , , , [8]], - [, , "22(?:[37-9]0|5[0-5]|6[89])\\d{4}", , , , "22501234"], - [, , "(?:6[023568]|77|9\\d)\\d{6}", , , , "63012345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "TD", - 235, - "00|16", - , - , - , - , - , - "00", - , - [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2679]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - TG: [ - , - [, , "[279]\\d{7}", , , , , , , [8]], - [, , "2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\d{5}", , , , "22212345"], - [, , "(?:7[09]|9[0-36-9])\\d{6}", , , , "90112345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "TG", - 228, - "00", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[279]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - TH: [ - , - [, , "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}", , , , , , , [8, 9, 10, 13]], - [, , "(?:1[0689]|2\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}", , , , "21234567", , , [8]], - [, , "671[0-8]\\d{5}|(?:14|6[1-6]|[89]\\d)\\d{7}", , , , "812345678", , , [9]], - [, , "(?:001800\\d|1800)\\d{6}", , , , "1800123456", , , [10, 13]], - [, , "1900\\d{6}", , , , "1900123456", , , [10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "6[08]\\d{7}", , , , "601234567", , , [9]], - "TH", - 66, - "00[1-9]", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[13-9]"], "0$1"], - [, "(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - TJ: [ - , - [, , "(?:00|[1-57-9]\\d)\\d{7}", , , , , , , [9], [3, 5, 6, 7]], - [ - , - , - "(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}", - , - , - , - "372123456", - , - , - , - [3, 5, 6, 7], - ], - [, , "41[18]\\d{6}|(?:[034]0|[17][017]|2[02]|5[05]|8[08]|9\\d)\\d{7}", , , , "917123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "TJ", - 992, - "810", - , - , - , - , - , - "8~10", - , - [ - [, "(\\d{6})(\\d)(\\d{2})", "$1 $2 $3", ["331", "3317"]], - [, "(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[34]7|91[78]"]], - [, "(\\d{4})(\\d)(\\d{4})", "$1 $2 $3", ["3[1-5]"]], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[0-57-9]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - TK: [ - , - [, , "[2-47]\\d{3,6}", , , , , , , [4, 5, 6, 7]], - [, , "(?:2[2-4]|[34]\\d)\\d{2,5}", , , , "3101"], - [, , "7[2-4]\\d{2,5}", , , , "7290"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "TK", - 690, - "00", - , - , - , - , - , - , - , - , - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - TL: [ - , - [, , "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}", , , , , , , [7, 8]], - [, , "(?:2[1-5]|3[1-9]|4[1-4])\\d{5}", , , , "2112345", , , [7]], - [, , "7[2-8]\\d{6}", , , , "77212345", , , [8]], - [, , "80\\d{5}", , , , "8012345", , , [7]], - [, , "90\\d{5}", , , , "9012345", , , [7]], - [, , , , , , , , , [-1]], - [, , "70\\d{5}", , , , "7012345", , , [7]], - [, , , , , , , , , [-1]], - "TL", - 670, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["[2-489]|70"]], - [, "(\\d{4})(\\d{4})", "$1 $2", ["7"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - TM: [ - , - [, , "[1-6]\\d{7}", , , , , , , [8]], - [ - , - , - "(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}", - , - , - , - "12345678", - ], - [, , "6\\d{7}", , , , "66123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "TM", - 993, - "810", - "8", - , - , - "8", - , - "8~10", - , - [ - [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["12"], "(8 $1)"], - [, "(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-5]"], "(8 $1)"], - [, "(\\d{2})(\\d{6})", "$1 $2", ["6"], "8 $1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - TN: [ - , - [, , "[2-57-9]\\d{7}", , , , , , , [8]], - [, , "81200\\d{3}|(?:3[0-2]|7\\d)\\d{6}", , , , "30010123"], - [, , "3(?:001|[12]40)\\d{4}|(?:(?:[259]\\d|4[0-7])\\d|3(?:1[1-35]|6[0-4]|91))\\d{5}", , , , "20123456"], - [, , "8010\\d{4}", , , , "80101234"], - [, , "88\\d{6}", , , , "88123456"], - [, , "8[12]10\\d{4}", , , , "81101234"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "TN", - 216, - "00", - , - , - , - , - , - , - , - [[, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-57-9]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - TO: [ - , - [, , "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}", , , , , , , [5, 7]], - [, , "(?:2\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\d{3}", , , , "20123", , , [5]], - [, , "(?:55[4-6]|6(?:[09]\\d|3[02]|8[15-9])|(?:7\\d|8[46-9])\\d|999)\\d{4}", , , , "7715123", , , [7]], - [, , "0800\\d{3}", , , , "0800222", , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "55[0-37-9]\\d{4}", , , , "5510123", , , [7]], - "TO", - 676, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{3})", "$1-$2", ["[2-4]|50|6[09]|7[0-24-69]|8[05]"]], - [, "(\\d{4})(\\d{3})", "$1 $2", ["0"]], - [, "(\\d{3})(\\d{4})", "$1 $2", ["[5-9]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - TR: [ - , - [, , "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}", , , , , , , [7, 10, 12, 13]], - [ - , - , - "(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}", - , - , - , - "2123456789", - , - , - [10], - ], - [, , "56161\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\d|5[1-59]|9[46])\\d{7}", , , , "5012345678", , , [10]], - [, , "8(?:00\\d{7}(?:\\d{2,3})?|11\\d{7})", , , , "8001234567", , , [10, 12, 13]], - [, , "(?:8[89]8|900)\\d{7}", , , , "9001234567", , , [10]], - [, , , , , , , , , [-1]], - [, , "592(?:21[12]|461)\\d{4}", , , , "5922121234", , , [10]], - [, , "850\\d{7}", , , , "8500123456", , , [10]], - "TR", - 90, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d)(\\d{3})", "$1 $2 $3", ["444"], , , 1], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["512|8[01589]|90"], "0$1", , 1], - [ - , - "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", - "$1 $2 $3 $4", - ["5(?:[0-59]|61)", "5(?:[0-59]|616)", "5(?:[0-59]|6161)"], - "0$1", - , - 1, - ], - [, "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24][1-8]|3[1-9]"], "(0$1)", , 1], - [, "(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", , 1], - ], - [ - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["512|8[01589]|90"], "0$1", , 1], - [ - , - "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", - "$1 $2 $3 $4", - ["5(?:[0-59]|61)", "5(?:[0-59]|616)", "5(?:[0-59]|6161)"], - "0$1", - , - 1, - ], - [, "(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24][1-8]|3[1-9]"], "(0$1)", , 1], - [, "(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", , 1], - ], - [, , "512\\d{7}", , , , "5123456789", , , [10]], - , - , - [, , "(?:444|811\\d{3})\\d{4}", , , , , , , [7, 10]], - [, , "444\\d{4}", , , , "4441444", , , [7]], - , - , - [, , , , , , , , , [-1]], - ], - TT: [ - , - [, , "(?:[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], - [ - , - , - "868(?:2(?:0[13]|1[5-9]|[23]\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\d|7[0-79])|82[124])\\d{4}", - , - , - , - "8682211234", - , - , - , - [7], - ], - [ - , - , - "868(?:(?:2[5-9]|3\\d)\\d|4(?:3[0-6]|[6-9]\\d)|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}", - , - , - , - "8682911234", - , - , - , - [7], - ], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], - [, , "900[2-9]\\d{6}", , , , "9002345678"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "TT", - 1, - "011", - "1", - , - , - "1|([2-46-8]\\d{6})$", - "868$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "868", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , "868619\\d{4}", , , , "8686191234", , , , [7]], - ], - TV: [ - , - [, , "(?:2|7\\d\\d|90)\\d{4}", , , , , , , [5, 6, 7]], - [, , "2[02-9]\\d{3}", , , , "20123", , , [5]], - [, , "(?:7[01]\\d|90)\\d{4}", , , , "901234", , , [6, 7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "TV", - 688, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{3})", "$1 $2", ["2"]], - [, "(\\d{2})(\\d{4})", "$1 $2", ["90"]], - [, "(\\d{2})(\\d{5})", "$1 $2", ["7"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - TW: [ - , - [, , "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}", , , , , , , [7, 8, 9, 10, 11]], - [ - , - , - "(?:2[2-8]\\d|370|55[01]|7[1-9])\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\d)|1[023]\\d)\\d{4,5}|(?:[239]\\d\\d|4(?:0[56]|12|49))\\d{5})|6(?:[01]\\d{7}|4(?:0[56]|12|24|4[09])\\d{4,5})|8(?:(?:2(?:3\\d|4[0-269]|[578]0|66)|36[24-9]|90\\d\\d)\\d{4}|4(?:0[56]|12|24|4[09])\\d{4,5})|(?:2(?:2(?:0\\d\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\d|1[0-4])|(?:4\\d|5[0-49]|6[0-29]|7[0-5])\\d)\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\d\\d|4(?:2(?:[089]\\d|7[1-9])|(?:3[0-4]|[78]\\d|9[01])\\d))\\d)\\d{3}", - , - , - , - "221234567", - , - , - [8, 9], - ], - [, , "(?:40001[0-2]|9[0-8]\\d{4})\\d{3}", , , , "912345678", , , [9]], - [, , "80[0-79]\\d{6}|800\\d{5}", , , , "800123456", , , [8, 9]], - [, , "20(?:[013-9]\\d\\d|2)\\d{4}", , , , "203123456", , , [7, 9]], - [, , , , , , , , , [-1]], - [, , "99\\d{7}", , , , "990123456", , , [9]], - [, , "7010(?:[0-2679]\\d|3[0-7]|8[0-5])\\d{5}|70\\d{8}", , , , "7012345678", , , [10, 11]], - "TW", - 886, - "0(?:0[25-79]|19)", - "0", - "#", - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d)(\\d{4})", "$1 $2 $3", ["202"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[258]0"], "0$1"], - [ - , - "(\\d)(\\d{3,4})(\\d{4})", - "$1 $2 $3", - ["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]", "[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"], - "0$1", - ], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"], "0$1"], - [, "(\\d{2})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["7"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "50[0-46-9]\\d{6}", , , , "500123456", , , [9]], - , - , - [, , , , , , , , , [-1]], - ], - TZ: [ - , - [, , "(?:[26-8]\\d|41|90)\\d{7}", , , , , , , [9]], - [, , "2[2-8]\\d{7}", , , , "222345678"], - [, , "77[2-9]\\d{6}|(?:6[1-9]|7[1-689])\\d{7}", , , , "621234567"], - [, , "80[08]\\d{6}", , , , "800123456"], - [, , "90\\d{7}", , , , "900123456"], - [, , "8(?:40|6[01])\\d{6}", , , , "840123456"], - [, , , , , , , , , [-1]], - [, , "41\\d{7}", , , , "412345678"], - "TZ", - 255, - "00[056]", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[24]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[67]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , "(?:8(?:[04]0|6[01])|90\\d)\\d{6}"], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - UA: [ - , - [, , "[89]\\d{9}|[3-9]\\d{8}", , , , , , , [9, 10], [5, 6, 7]], - [, , "(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}", , , , "311234567", , , [9], [5, 6, 7]], - [, , "(?:39|50|6[36-8]|7[1-3]|9[1-9])\\d{7}", , , , "501234567", , , [9]], - [, , "800[1-8]\\d{5,6}", , , , "800123456"], - [, , "900[239]\\d{5,6}", , , , "900212345"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "89[1-579]\\d{6}", , , , "891234567", , , [9]], - "UA", - 380, - "00", - "0", - , - , - "0", - , - "0~0", - , - [ - [ - , - "(\\d{3})(\\d{3})(\\d{3})", - "$1 $2 $3", - [ - "6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]", - "6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]", - ], - "0$1", - ], - [ - , - "(\\d{4})(\\d{5})", - "$1 $2", - [ - "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])", - "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])", - ], - "0$1", - ], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|89|9[1-9]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - UG: [ - , - [, , "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}", , , , , , , [9], [5, 6, 7]], - [ - , - , - "20(?:(?:240|30[67])\\d|6(?:00[0-2]|30[0-4]))\\d{3}|(?:20(?:[017]\\d|2[5-9]|32|5[0-4]|6[15-9])|[34]\\d{3})\\d{5}", - , - , - , - "312345678", - , - , - , - [5, 6, 7], - ], - [, , "726[01]\\d{5}|7(?:[01578]\\d|20|36|[46][0-4]|9[89])\\d{6}", , , , "712345678"], - [, , "800[1-3]\\d{5}", , , , "800123456"], - [, , "90[1-3]\\d{6}", , , , "901123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "UG", - 256, - "00[057]", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{4})(\\d{5})", "$1 $2", ["202", "2024"], "0$1"], - [, "(\\d{3})(\\d{6})", "$1 $2", ["[27-9]|4(?:6[45]|[7-9])"], "0$1"], - [, "(\\d{2})(\\d{7})", "$1 $2", ["[34]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - US: [ - , - [, , "[2-9]\\d{9}|3\\d{6}", , , , , , , [10], [7]], - [ - , - , - "5(?:05(?:[2-57-9]\\d\\d|6(?:[0-35-9]\\d|44))|82(?:2(?:0[0-3]|[268]2)|3(?:0[02]|22|33)|4(?:00|4[24]|65|82)|5(?:00|29|58|83)|6(?:00|66|82)|7(?:58|77)|8(?:00|42|5[25]|88)|9(?:00|9[89])))\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}", - , - , - , - "2015550123", - , - , - , - [7], - ], - [ - , - , - "5(?:05(?:[2-57-9]\\d\\d|6(?:[0-35-9]\\d|44))|82(?:2(?:0[0-3]|[268]2)|3(?:0[02]|22|33)|4(?:00|4[24]|65|82)|5(?:00|29|58|83)|6(?:00|66|82)|7(?:58|77)|8(?:00|42|5[25]|88)|9(?:00|9[89])))\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}", - , - , - , - "2015550123", - , - , - , - [7], - ], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], - [, , "900[2-9]\\d{6}", , , , "9002345678"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "US", - 1, - "011", - "1", - , - , - "1", - , - , - 1, - [ - [, "(\\d{3})(\\d{4})", "$1-$2", ["310"], , , 1], - [, "(\\d{3})(\\d{4})", "$1-$2", ["[24-9]|3(?:[02-9]|1[1-9])"]], - [, "(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3", ["[2-9]"], , , 1], - ], - [ - [, "(\\d{3})(\\d{4})", "$1-$2", ["310"], , , 1], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-9]"]], - ], - [, , , , , , , , , [-1]], - 1, - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - UY: [ - , - [, , "4\\d{9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}", , , , , , , [7, 8, 10]], - [, , "(?:1(?:770|987)|(?:2\\d|4[2-7])\\d\\d)\\d{4}", , , , "21231234", , , [8], [7]], - [, , "9[1-9]\\d{6}", , , , "94231234", , , [8]], - [, , "(?:4\\d{5}|80[05])\\d{4}|405\\d{4}", , , , "8001234", , , [7, 10]], - [, , "90[0-8]\\d{4}", , , , "9001234", , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "UY", - 598, - "0(?:0|1[3-9]\\d)", - "0", - " int. ", - , - "0", - , - "00", - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["405|8|90"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], - [, "(\\d{4})(\\d{4})", "$1 $2", ["[124]"]], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["4"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - UZ: [ - , - [, , "(?:33|55|[679]\\d|88)\\d{7}", , , , , , , [9]], - [ - , - , - "(?:6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d\\d|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|(?:1[12]|8\\d)\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}", - , - , - , - "669050123", - ], - [ - , - , - "(?:(?:33|88|9[0-57-9])\\d{3}|55(?:50[013]|90\\d)|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\d|7[0-4])|(?:5[67]|7\\d)\\d|6(?:2[0-26]|8\\d)))|7(?:[07]\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}", - , - , - , - "912345678", - ], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "UZ", - 998, - "810", - "8", - , - , - "8", - , - "8~10", - , - [[, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[35-9]"], "8 $1"]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - VA: [ - , - [ - , - , - "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}", - , - , - , - , - , - , - [6, 7, 8, 9, 10, 11, 12], - ], - [, , "06698\\d{1,6}", , , , "0669812345", , , [6, 7, 8, 9, 10, 11]], - [, , "3[1-9]\\d{8}|3[2-9]\\d{7}", , , , "3123456789", , , [9, 10]], - [, , "80(?:0\\d{3}|3)\\d{3}", , , , "800123456", , , [6, 9]], - [ - , - , - "(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", - , - , - , - "899123456", - , - , - [6, 8, 9, 10], - ], - [, , "84(?:[08]\\d{3}|[17])\\d{3}", , , , "848123456", , , [6, 9]], - [, , "1(?:78\\d|99)\\d{6}", , , , "1781234567", , , [9, 10]], - [, , "55\\d{8}", , , , "5512345678", , , [10]], - "VA", - 39, - "00", - , - , - , - , - , - , - , - , - , - [, , , , , , , , , [-1]], - , - "06698", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , "3[2-8]\\d{9,10}", , , , "33101234501", , , [11, 12]], - ], - VC: [ - , - [, , "(?:[58]\\d\\d|784|900)\\d{7}", , , , , , , [10], [7]], - [ - , - , - "784(?:266|3(?:6[6-9]|7\\d|8[0-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\d{4}", - , - , - , - "7842661234", - , - , - , - [7], - ], - [, , "784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\d{4}", , , , "7844301234", , , , [7]], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], - [, , "900[2-9]\\d{6}", , , , "9002345678"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , "78451[0-2]\\d{4}", , , , "7845101234", , , , [7]], - "VC", - 1, - "011", - "1", - , - , - "1|([2-7]\\d{6})$", - "784$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "784", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - VE: [ - , - [, , "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}", , , , , , , [10], [7]], - [, , "(?:2(?:12|3[457-9]|[467]\\d|[58][1-9]|9[1-6])|[4-6]00)\\d{7}", , , , "2121234567", , , , [7]], - [, , "4(?:1[24-8]|2[46])\\d{7}", , , , "4121234567"], - [, , "800\\d{7}", , , , "8001234567"], - [, , "90[01]\\d{7}", , , , "9001234567"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "VE", - 58, - "00", - "0", - , - , - "0", - , - , - , - [[, "(\\d{3})(\\d{7})", "$1-$2", ["[24-689]"], "0$1", "$CC $1"]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "501\\d{7}", , , , "5010123456", , , , [7]], - , - , - [, , , , , , , , , [-1]], - ], - VG: [ - , - [, , "(?:284|[58]\\d\\d|900)\\d{7}", , , , , , , [10], [7]], - [ - , - , - "284496[0-5]\\d{3}|284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}", - , - , - , - "2842291234", - , - , - , - [7], - ], - [ - , - , - "284496[6-9]\\d{3}|284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|5(?:4[0-7]|68|9[69]))\\d{4}", - , - , - , - "2843001234", - , - , - , - [7], - ], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], - [, , "900[2-9]\\d{6}", , , , "9002345678"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "VG", - 1, - "011", - "1", - , - , - "1|([2-578]\\d{6})$", - "284$1", - , - , - , - , - [, , , , , , , , , [-1]], - , - "284", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - VI: [ - , - [, , "[58]\\d{9}|(?:34|90)0\\d{7}", , , , , , , [10], [7]], - [ - , - , - "340(?:2(?:0[0-38]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}", - , - , - , - "3406421234", - , - , - , - [7], - ], - [ - , - , - "340(?:2(?:0[0-38]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}", - , - , - , - "3406421234", - , - , - , - [7], - ], - [, , "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", , , , "8002345678"], - [, , "900[2-9]\\d{6}", , , , "9002345678"], - [, , , , , , , , , [-1]], - [ - , - , - "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}", - , - , - , - "5002345678", - ], - [, , , , , , , , , [-1]], - "VI", - 1, - "011", - "1", - , - , - "1|([2-9]\\d{6})$", - "340$1", - , - 1, - , - , - [, , , , , , , , , [-1]], - , - "340", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - VN: [ - , - [, , "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}", , , , , , , [7, 8, 9, 10]], - [ - , - , - "2(?:0[3-9]|1[0-689]|2[0-25-9]|3[2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|8[2-79]|9[0-4679])\\d{7}", - , - , - , - "2101234567", - , - , - [10], - ], - [ - , - , - "(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\d{6}|(?:3\\d|5[689]|7[06-9]|8[1-8]|9[0-8])\\d{7}", - , - , - , - "912345678", - , - , - [9], - ], - [, , "1800\\d{4,6}|12(?:0[13]|28)\\d{4}", , , , "1800123456", , , [8, 9, 10]], - [, , "1900\\d{4,6}", , , , "1900123456", , , [8, 9, 10]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "672\\d{6}", , , , "672012345", , , [9]], - "VN", - 84, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{4})", "$1 $2", ["[17]99"], "0$1", , 1], - [, "(\\d{2})(\\d{5})", "$1 $2", ["80"], "0$1", , 1], - [, "(\\d{3})(\\d{4,5})", "$1 $2", ["69"], "0$1", , 1], - [, "(\\d{4})(\\d{4,6})", "$1 $2", ["1"], , , 1], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[69]"], "0$1", , 1], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[3578]"], "0$1", , 1], - [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", , 1], - [, "(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", , 1], - ], - [ - [, "(\\d{2})(\\d{5})", "$1 $2", ["80"], "0$1", , 1], - [, "(\\d{4})(\\d{4,6})", "$1 $2", ["1"], , , 1], - [, "(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[69]"], "0$1", , 1], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[3578]"], "0$1", , 1], - [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", , 1], - [, "(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", , 1], - ], - [, , , , , , , , , [-1]], - , - , - [, , "[17]99\\d{4}|69\\d{5,6}", , , , , , , [7, 8]], - [, , "(?:[17]99|80\\d)\\d{4}|69\\d{5,6}", , , , "1992000", , , [7, 8]], - , - , - [, , , , , , , , , [-1]], - ], - VU: [ - , - [, , "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}", , , , , , , [5, 7]], - [, , "(?:38[0-8]|48[4-9])\\d\\d|(?:2[02-9]|3[4-7]|88)\\d{3}", , , , "22123", , , [5]], - [, , "(?:[58]\\d|7[013-7])\\d{5}", , , , "5912345", , , [7]], - [, , "81[18]\\d\\d", , , , "81123", , , [5]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "9(?:0[1-9]|1[01])\\d{4}", , , , "9010123", , , [7]], - "VU", - 678, - "00", - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{4})", "$1 $2", ["[57-9]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "(?:3[03]|900\\d)\\d{3}", , , , "30123"], - , - , - [, , , , , , , , , [-1]], - ], - WF: [ - , - [, , "(?:40|72)\\d{4}|8\\d{5}(?:\\d{3})?", , , , , , , [6, 9]], - [, , "72\\d{4}", , , , "721234", , , [6]], - [, , "(?:72|8[23])\\d{4}", , , , "821234", , , [6]], - [, , "80[0-5]\\d{6}", , , , "800012345", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "WF", - 681, - "00", - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[478]"]], - [, "(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , "[48]0\\d{4}", , , , "401234", , , [6]], - ], - WS: [ - , - [, , "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}", , , , , , , [5, 6, 7, 10]], - [, , "6[1-9]\\d{3}|(?:[2-5]|60)\\d{4}", , , , "22123", , , [5, 6]], - [, , "(?:7[1-35-7]|8(?:[3-7]|9\\d{3}))\\d{5}", , , , "7212345", , , [7, 10]], - [, , "800\\d{3}", , , , "800123", , , [6]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "WS", - 685, - "0", - , - , - , - , - , - , - , - [ - [, "(\\d{5})", "$1", ["[2-5]|6[1-9]"]], - [, "(\\d{3})(\\d{3,7})", "$1 $2", ["[68]"]], - [, "(\\d{2})(\\d{5})", "$1 $2", ["7"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - XK: [ - , - [, , "[23]\\d{7,8}|(?:4\\d\\d|[89]00)\\d{5}", , , , , , , [8, 9]], - [, , "(?:2[89]|39)0\\d{6}|[23][89]\\d{6}", , , , "28012345"], - [, , "4[3-9]\\d{6}", , , , "43201234", , , [8]], - [, , "800\\d{5}", , , , "80001234", , , [8]], - [, , "900\\d{5}", , , , "90001234", , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "XK", - 383, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-4]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[23]"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - YE: [ - , - [, , "(?:1|7\\d)\\d{7}|[1-7]\\d{6}", , , , , , , [7, 8, 9], [6]], - [ - , - , - "78[0-7]\\d{4}|17\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\d{5}", - , - , - , - "1234567", - , - , - [7, 8], - [6], - ], - [, , "7[0137]\\d{7}", , , , "712345678", , , [9]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "YE", - 967, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-6]|7[24-68]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - YT: [ - , - [, , "80\\d{7}|(?:26|63)9\\d{6}", , , , , , , [9]], - [, , "269(?:0[0-367]|5[0-3]|6\\d|[78]0)\\d{4}", , , , "269601234"], - [, , "639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])\\d{4}", , , , "639012345"], - [, , "80\\d{7}", , , , "801234567"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "YT", - 262, - "00", - "0", - , - , - "0", - , - , - , - , - , - [, , , , , , , , , [-1]], - , - "269|63", - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - ZA: [ - , - [, , "[1-79]\\d{8}|8\\d{4,9}", , , , , , , [5, 6, 7, 8, 9, 10]], - [ - , - , - "(?:2(?:0330|4302)|52087)0\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\d|5[1346-8])\\d{7}", - , - , - , - "101234567", - , - , - [9], - ], - [ - , - , - "(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:6\\d|7[0-46-9])\\d{3}|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}", - , - , - , - "711234567", - , - , - [5, 6, 7, 8, 9], - ], - [, , "80\\d{7}", , , , "801234567", , , [9]], - [, , "(?:86[2-9]|9[0-2]\\d)\\d{6}", , , , "862345678", , , [9]], - [, , "860\\d{6}", , , , "860123456", , , [9]], - [, , , , , , , , , [-1]], - [ - , - , - "87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\d)\\d{5}", - , - , - , - "871234567", - , - , - [9], - ], - "ZA", - 27, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{2})(\\d{3,4})", "$1 $2", ["8[1-4]"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["8[1-4]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["860"], "0$1"], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-9]"], "0$1"], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "861\\d{6,7}", , , , "861123456", , , [9, 10]], - , - , - [, , , , , , , , , [-1]], - ], - ZM: [ - , - [, , "800\\d{6}|(?:21|63|[79]\\d)\\d{7}", , , , , , , [9], [6]], - [, , "21[1-8]\\d{6}", , , , "211234567", , , , [6]], - [, , "(?:7[679]|9[5-8])\\d{7}", , , , "955123456"], - [, , "800\\d{6}", , , , "800123456"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "63\\d{7}", , , , "630123456"], - "ZM", - 260, - "00", - "0", - , - , - "0", - , - , - , - [ - [, "(\\d{3})(\\d{3})", "$1 $2", ["[1-9]"]], - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], - [, "(\\d{2})(\\d{7})", "$1 $2", ["[79]"], "0$1"], - ], - [ - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], - [, "(\\d{2})(\\d{7})", "$1 $2", ["[79]"], "0$1"], - ], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - ZW: [ - , - [ - , - , - "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}", - , - , - , - , - , - , - [5, 6, 7, 8, 9, 10], - [3, 4], - ], - [ - , - , - "(?:1(?:(?:3\\d|9)\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\d\\d|[56](?:[14]\\d\\d|20)|7(?:[089]|2[03]|[35]\\d\\d))\\d|4(?:2\\d\\d|8))\\d|1(?:2|[39]\\d{4}))|3(?:(?:123|(?:29\\d|92)\\d)\\d\\d|7(?:[19]|[56]\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\d{3}|83)|5(?:25\\d\\d|[78])|[689]\\d)|6(?:(?:[16-8]21|28|52[013])\\d\\d|[39])|8(?:[1349]28|523)\\d\\d)\\d{3}|(?:4\\d\\d|9[2-9])\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\d|7[1-7])\\d|2(?:[278]\\d|92)|58(?:2\\d|3))|3(?:[26]|9\\d{3})|5(?:4\\d|5)\\d\\d)\\d|6(?:(?:(?:[0-246]|[78]\\d)\\d|37)\\d|5[2-8]))\\d\\d|(?:2(?:[569]\\d|8[2-57-9])|3(?:[013-59]\\d|8[37])|6[89]8)\\d{3}", - , - , - , - "1312345", - , - , - , - [3, 4], - ], - [, , "7(?:[178]\\d|3[1-9])\\d{6}", , , , "712345678", , , [9]], - [, , "80(?:[01]\\d|20|8[0-8])\\d{3}", , , , "8001234", , , [7]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "86(?:1[12]|22|30|44|55|77|8[368])\\d{6}", , , , "8686123456", , , [10]], - "ZW", - 263, - "00", - "0", - , - , - "0", - , - , - , - [ - [ - , - "(\\d{3})(\\d{3,5})", - "$1 $2", - ["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"], - "0$1", - ], - [, "(\\d)(\\d{3})(\\d{2,4})", "$1 $2 $3", ["[49]"], "0$1"], - [, "(\\d{3})(\\d{4})", "$1 $2", ["80"], "0$1"], - [ - , - "(\\d{2})(\\d{7})", - "$1 $2", - [ - "24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2", - "2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]", - ], - "(0$1)", - ], - [, "(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], - [ - , - "(\\d{3})(\\d{3})(\\d{3,4})", - "$1 $2 $3", - [ - "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)", - "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)", - ], - "0$1", - ], - [, "(\\d{4})(\\d{6})", "$1 $2", ["8"], "0$1"], - [ - , - "(\\d{2})(\\d{3,5})", - "$1 $2", - [ - "1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]", - ], - "0$1", - ], - [, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["29[013-9]|39|54"], "0$1"], - [, "(\\d{4})(\\d{3,5})", "$1 $2", ["(?:25|54)8", "258|5483"], "0$1"], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - 800: [ - , - [, , "(?:00|[1-9]\\d)\\d{6}", , , , , , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "(?:00|[1-9]\\d)\\d{6}", , , , "12345678"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "001", - 800, - , - , - , - , - , - , - , - 1, - [[, "(\\d{4})(\\d{4})", "$1 $2", ["\\d"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - 808: [ - , - [, , "[1-9]\\d{7}", , , , , , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "[1-9]\\d{7}", , , , "12345678"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "001", - 808, - , - , - , - , - , - , - , - 1, - [[, "(\\d{4})(\\d{4})", "$1 $2", ["[1-9]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - 870: [ - , - [, , "7\\d{11}|[35-7]\\d{8}", , , , , , , [9, 12]], - [, , , , , , , , , [-1]], - [, , "(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}", , , , "301234567"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "001", - 870, - , - , - , - , - , - , - , - , - [[, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[35-7]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - 878: [ - , - [, , "10\\d{10}", , , , , , , [12]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "10\\d{10}", , , , "101234567890"], - "001", - 878, - , - , - , - , - , - , - , - 1, - [[, "(\\d{2})(\\d{5})(\\d{5})", "$1 $2 $3", ["1"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - 881: [ - , - [, , "[0-36-9]\\d{8}", , , , , , , [9]], - [, , , , , , , , , [-1]], - [, , "[0-36-9]\\d{8}", , , , "612345678"], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "001", - 881, - , - , - , - , - , - , - , - , - [[, "(\\d)(\\d{3})(\\d{5})", "$1 $2 $3", ["[0-36-9]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - 882: [ - , - [, , "[13]\\d{6}(?:\\d{2,5})?|285\\d{9}|(?:[19]\\d|49)\\d{6}", , , , , , , [7, 8, 9, 10, 11, 12]], - [, , , , , , , , , [-1]], - [, , "342\\d{4}|(?:337|49)\\d{6}|3(?:2|47|7\\d{3})\\d{7}", , , , "3421234", , , [7, 8, 9, 10, 12]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [ - , - , - "1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:(?:285\\d\\d|3(?:45|[69]\\d{3}))\\d|9[89])\\d{6}", - , - , - , - "390123456789", - ], - "001", - 882, - , - , - , - , - , - , - , - , - [ - [, "(\\d{2})(\\d{5})", "$1 $2", ["16|342"]], - [, "(\\d{2})(\\d{6})", "$1 $2", ["4"]], - [, "(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[19]"]], - [, "(\\d{2})(\\d{4})(\\d{3})", "$1 $2 $3", ["3[23]"]], - [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"]], - [, "(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["34[57]"]], - [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["34"]], - [, "(\\d{2})(\\d{4,5})(\\d{5})", "$1 $2 $3", ["[1-3]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , "348[57]\\d{7}", , , , "34851234567", , , [11]], - ], - 883: [ - , - [, , "(?:210|370\\d\\d)\\d{7}|51\\d{7}(?:\\d{3})?", , , , , , , [9, 10, 12]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "(?:210|(?:370[1-9]|51[013]0)\\d)\\d{7}|5100\\d{5}", , , , "510012345"], - "001", - 883, - , - , - , - , - , - , - , - 1, - [ - [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["510"]], - [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["2"]], - [, "(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["51[13]"]], - [, "(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[35]"]], - ], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - 888: [ - , - [, , "\\d{11}", , , , , , , [11]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "001", - 888, - , - , - , - , - , - , - , - 1, - [[, "(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3"]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , "\\d{11}", , , , "12345678901"], - , - , - [, , , , , , , , , [-1]], - ], - 979: [ - , - [, , "[1359]\\d{8}", , , , , , , [9], [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , "[1359]\\d{8}", , , , "123456789", , , , [8]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - "001", - 979, - , - , - , - , - , - , - , - 1, - [[, "(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[1359]"]]], - , - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - [, , , , , , , , , [-1]], - , - , - [, , , , , , , , , [-1]], - ], - }; /* - - Copyright (C) 2010 The Libphonenumber Authors. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - function K() { - this.g = {}; - } - K.i = void 0; - K.g = function () { - return K.i ? K.i : (K.i = new K()); - }; - var wa = { - 0: "0", - 1: "1", - 2: "2", - 3: "3", - 4: "4", - 5: "5", - 6: "6", - 7: "7", - 8: "8", - 9: "9", - "\uff10": "0", - "\uff11": "1", - "\uff12": "2", - "\uff13": "3", - "\uff14": "4", - "\uff15": "5", - "\uff16": "6", - "\uff17": "7", - "\uff18": "8", - "\uff19": "9", - "\u0660": "0", - "\u0661": "1", - "\u0662": "2", - "\u0663": "3", - "\u0664": "4", - "\u0665": "5", - "\u0666": "6", - "\u0667": "7", - "\u0668": "8", - "\u0669": "9", - "\u06f0": "0", - "\u06f1": "1", - "\u06f2": "2", - "\u06f3": "3", - "\u06f4": "4", - "\u06f5": "5", - "\u06f6": "6", - "\u06f7": "7", - "\u06f8": "8", - "\u06f9": "9", - }, - xa = { - 0: "0", - 1: "1", - 2: "2", - 3: "3", - 4: "4", - 5: "5", - 6: "6", - 7: "7", - 8: "8", - 9: "9", - "\uff10": "0", - "\uff11": "1", - "\uff12": "2", - "\uff13": "3", - "\uff14": "4", - "\uff15": "5", - "\uff16": "6", - "\uff17": "7", - "\uff18": "8", - "\uff19": "9", - "\u0660": "0", - "\u0661": "1", - "\u0662": "2", - "\u0663": "3", - "\u0664": "4", - "\u0665": "5", - "\u0666": "6", - "\u0667": "7", - "\u0668": "8", - "\u0669": "9", - "\u06f0": "0", - "\u06f1": "1", - "\u06f2": "2", - "\u06f3": "3", - "\u06f4": "4", - "\u06f5": "5", - "\u06f6": "6", - "\u06f7": "7", - "\u06f8": "8", - "\u06f9": "9", - A: "2", - B: "2", - C: "2", - D: "3", - E: "3", - F: "3", - G: "4", - H: "4", - I: "4", - J: "5", - K: "5", - L: "5", - M: "6", - N: "6", - O: "6", - P: "7", - Q: "7", - R: "7", - S: "7", - T: "8", - U: "8", - V: "8", - W: "9", - X: "9", - Y: "9", - Z: "9", - }, - L = /^[+\uff0b]+/, - ya = /([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9])/, - za = /[+\uff0b0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]/, - Aa = /[\\\/] *x/, - Ba = /[^0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9A-Za-z#]+$/, - Ca = /(?:.*?[A-Za-z]){3}.*/; - function N(a) { - return "([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1," + a + "})"; - } - function Da() { - return ( - ";ext=" + - N("20") + - "|[ \u00a0\\t,]*(?:e?xt(?:ensi(?:o\u0301?|\u00f3))?n?|\uff45?\uff58\uff54\uff4e?|\u0434\u043e\u0431|anexo)[:\\.\uff0e]?[ \u00a0\\t,-]*" + - (N("20") + - "#?|[ \u00a0\\t,]*(?:[x\uff58#\uff03~\uff5e]|int|\uff49\uff4e\uff54)[:\\.\uff0e]?[ \u00a0\\t,-]*") + - (N("9") + "#?|[- ]+") + - (N("6") + "#|[ \u00a0\\t]*(?:,{2}|;)[:\\.\uff0e]?[ \u00a0\\t,-]*") + - (N("15") + "#?|[ \u00a0\\t]*(?:,)+[:\\.\uff0e]?[ \u00a0\\t,-]*") + - (N("9") + "#?") - ); - } - var Ea = new RegExp("(?:" + Da() + ")$", "i"), - Fa = new RegExp( - "^[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{2}$|^[+\uff0b]*(?:[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*]*[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]){3,}[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*A-Za-z0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]*(?:" + - Da() + - ")?$", - "i" - ), - Ga = /(\$\d)/; - function Ha(a) { - return 2 > a.length ? !1 : O(Fa, a); - } - function Ia(a) { - return O(Ca, a) ? P(a, xa) : P(a, wa); - } - function Ja(a) { - var b = Ia(a.toString()); - a.i = ""; - a.g(b); - } - function Ka(a) { - return null != a && (1 != x(a, 9) || -1 != u(a, 9)[0]); - } - function P(a, b) { - for (var c = new E(), d, e = a.length, g = 0; g < e; ++g) - (d = a.charAt(g)), (d = b[d.toUpperCase()]), null != d && c.g(d); - return c.toString(); - } - function Q(a) { - return null != a && isNaN(a) && a.toUpperCase() in va; - } - function La(a, b, c) { - if (0 == p(b, 2) && null != b.g[5]) { - var d = w(b, 5); - if (0 < d.length) return d; - } - d = w(b, 1); - var e = R(b); - if (0 == c) return Ma(d, 0, e, ""); - if (!(d in J)) return e; - a = S(a, d, T(d)); - b = - null != b.g[3] && 0 != p(b, 3).length - ? 3 == c - ? ";ext=" + p(b, 3) - : null != a.g[13] - ? p(a, 13) + w(b, 3) - : " ext. " + w(b, 3) - : ""; - a: { - a = 0 == u(a, 20).length || 2 == c ? u(a, 19) : u(a, 20); - for (var g, f = a.length, h = 0; h < f; ++h) { - g = a[h]; - var l = x(g, 3); - if (0 == l || 0 == e.search(p(g, 3, l - 1))) - if (((l = new RegExp(p(g, 1))), O(l, e))) { - a = g; - break a; - } - } - a = null; - } - null != a && - ((f = a), - (a = w(f, 2)), - (g = new RegExp(p(f, 1))), - w(f, 5), - (f = w(f, 4)), - (e = 2 == c && null != f && 0 < f.length ? e.replace(g, a.replace(Ga, f)) : e.replace(g, a)), - 3 == c && - ((e = e.replace( - /^[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\[\]/~\u2053\u223c\uff5e]+/, - "" - )), - (e = e.replace( - /[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\[\]/~\u2053\u223c\uff5e]+/g, - "-" - )))); - return Ma(d, c, e, b); - } - function S(a, b, c) { - return "001" == c ? U(a, "" + b) : U(a, c); - } - function R(a) { - if (null == a.g[2]) return ""; - var b = "" + p(a, 2); - return null != a.g[4] && p(a, 4) && 0 < w(a, 8) ? Array(w(a, 8) + 1).join("0") + b : b; - } - function Ma(a, b, c, d) { - switch (b) { - case 0: - return "+" + a + c + d; - case 1: - return "+" + a + " " + c + d; - case 3: - return "tel:+" + a + "-" + c + d; - default: - return c + d; - } - } - function V(a, b) { - switch (b) { - case 4: - return p(a, 5); - case 3: - return p(a, 4); - case 1: - return p(a, 3); - case 0: - case 2: - return p(a, 2); - case 5: - return p(a, 6); - case 6: - return p(a, 8); - case 7: - return p(a, 7); - case 8: - return p(a, 21); - case 9: - return p(a, 25); - case 10: - return p(a, 28); - default: - return p(a, 1); - } - } - function W(a, b) { - return X(a, p(b, 1)) - ? X(a, p(b, 5)) - ? 4 - : X(a, p(b, 4)) - ? 3 - : X(a, p(b, 6)) - ? 5 - : X(a, p(b, 8)) - ? 6 - : X(a, p(b, 7)) - ? 7 - : X(a, p(b, 21)) - ? 8 - : X(a, p(b, 25)) - ? 9 - : X(a, p(b, 28)) - ? 10 - : X(a, p(b, 2)) - ? p(b, 18) || X(a, p(b, 3)) - ? 2 - : 0 - : !p(b, 18) && X(a, p(b, 3)) - ? 1 - : -1 - : -1; - } - function U(a, b) { - if (null == b) return null; - b = b.toUpperCase(); - var c = a.g[b]; - if (null == c) { - c = va[b]; - if (null == c) return null; - c = new D().g(H.j(), c); - a.g[b] = c; - } - return c; - } - function X(a, b) { - var c = a.length; - return 0 < x(b, 9) && -1 == u(b, 9).indexOf(c) ? !1 : O(w(b, 2), a); - } - function Na(a, b) { - if (null == b) return null; - var c = w(b, 1); - c = J[c]; - if (null == c) a = null; - else if (1 == c.length) a = c[0]; - else - a: { - b = R(b); - for (var d, e = c.length, g = 0; g < e; g++) { - d = c[g]; - var f = U(a, d); - if (null != f.g[23]) { - if (0 == b.search(p(f, 23))) { - a = d; - break a; - } - } else if (-1 != W(b, f)) { - a = d; - break a; - } - } - a = null; - } - return a; - } - function T(a) { - a = J[a]; - return null == a ? "ZZ" : a[0]; - } - function Y(a, b, c, d) { - var e = V(c, d), - g = 0 == x(e, 9) ? u(p(c, 1), 9) : u(e, 9); - e = u(e, 10); - if (2 == d) - if (Ka(V(c, 0))) - (a = V(c, 1)), - Ka(a) && - ((g = g.concat(0 == x(a, 9) ? u(p(c, 1), 9) : u(a, 9))), - g.sort(), - 0 == e.length ? (e = u(a, 10)) : ((e = e.concat(u(a, 10))), e.sort())); - else return Y(a, b, c, 1); - if (-1 == g[0]) return 5; - b = b.length; - if (-1 < e.indexOf(b)) return 4; - c = g[0]; - return c == b ? 0 : c > b ? 2 : g[g.length - 1] < b ? 3 : -1 < g.indexOf(b, 1) ? 0 : 5; - } - function Oa(a, b) { - var c = R(b); - b = w(b, 1); - if (!(b in J)) return 1; - b = S(a, b, T(b)); - return Y(a, c, b, -1); - } - function Pa(a, b, c, d, e, g) { - if (0 == b.length) return 0; - b = new E(b); - var f; - null != c && (f = p(c, 11)); - null == f && (f = "NonMatch"); - var h = b.toString(); - if (0 == h.length) f = 20; - else if (L.test(h)) (h = h.replace(L, "")), (b.i = ""), b.g(Ia(h)), (f = 1); - else { - h = new RegExp(f); - Ja(b); - f = b.toString(); - if (0 == f.search(h)) { - h = f.match(h)[0].length; - var l = f.substring(h).match(ya); - l && null != l[1] && 0 < l[1].length && "0" == P(l[1], wa) - ? (f = !1) - : ((b.i = ""), b.g(f.substring(h)), (f = !0)); - } else f = !1; - f = f ? 5 : 20; - } - e && q(g, 6, f); - if (20 != f) { - if (2 >= b.i.length) throw Error("Phone number too short after IDD"); - a: { - a = b.toString(); - if (0 != a.length && "0" != a.charAt(0)) - for (e = a.length, b = 1; 3 >= b && b <= e; ++b) - if (((c = parseInt(a.substring(0, b), 10)), c in J)) { - d.g(a.substring(b)); - d = c; - break a; - } - d = 0; - } - if (0 != d) return q(g, 1, d), d; - throw Error("Invalid country calling code"); - } - if ( - null != c && - ((f = w(c, 10)), - (h = "" + f), - (l = b.toString()), - 0 == l.lastIndexOf(h, 0) && - ((h = new E(l.substring(h.length))), - (l = p(c, 1)), - (l = new RegExp(w(l, 2))), - Qa(h, c, null), - (h = h.toString()), - (!O(l, b.toString()) && O(l, h)) || 3 == Y(a, b.toString(), c, -1))) - ) - return d.g(h), e && q(g, 6, 10), q(g, 1, f), f; - q(g, 1, 0); - return 0; - } - function Qa(a, b, c) { - var d = a.toString(), - e = d.length, - g = p(b, 15); - if (0 != e && null != g && 0 != g.length) { - var f = new RegExp("^(?:" + g + ")"); - if ((e = f.exec(d))) { - g = new RegExp(w(p(b, 1), 2)); - var h = O(g, d), - l = e.length - 1; - b = p(b, 16); - if (null == b || 0 == b.length || null == e[l] || 0 == e[l].length) { - if (!h || O(g, d.substring(e[0].length))) - null != c && 0 < l && null != e[l] && c.g(e[1]), a.set(d.substring(e[0].length)); - } else if (((d = d.replace(f, b)), !h || O(g, d))) null != c && 0 < l && c.g(e[1]), a.set(d); - } - } - } - function Z(a, b, c) { - if (!Q(c) && 0 < b.length && "+" != b.charAt(0)) throw Error("Invalid country calling code"); - return Ra(a, b, c, !0); - } - function Ra(a, b, c, d) { - if (null == b) throw Error("The string supplied did not seem to be a phone number"); - if (250 < b.length) throw Error("The string supplied is too long to be a phone number"); - var e = new E(), - g = b.indexOf(";phone-context="); - if (0 <= g) { - var f = g + 15; - if ("+" == b.charAt(f)) { - var h = b.indexOf(";", f); - 0 < h ? e.g(b.substring(f, h)) : e.g(b.substring(f)); - } - f = b.indexOf("tel:"); - e.g(b.substring(0 <= f ? f + 4 : 0, g)); - } else - (g = e.g), - (f = b.search(za)), - 0 <= f - ? ((f = b.substring(f)), - (f = f.replace(Ba, "")), - (h = f.search(Aa)), - 0 <= h && (f = f.substring(0, h))) - : (f = ""), - g.call(e, f); - g = e.toString(); - f = g.indexOf(";isub="); - 0 < f && ((e.i = ""), e.g(g.substring(0, f))); - if (!Ha(e.toString())) throw Error("The string supplied did not seem to be a phone number"); - g = e.toString(); - if (!(Q(c) || (null != g && 0 < g.length && L.test(g)))) throw Error("Invalid country calling code"); - g = new I(); - d && q(g, 5, b); - a: { - b = e.toString(); - f = b.search(Ea); - if (0 <= f && Ha(b.substring(0, f))) { - h = b.match(Ea); - for (var l = h.length, z = 1; z < l; ++z) - if (null != h[z] && 0 < h[z].length) { - e.i = ""; - e.g(b.substring(0, f)); - b = h[z]; - break a; - } - } - b = ""; - } - 0 < b.length && q(g, 3, b); - f = U(a, c); - b = new E(); - h = 0; - l = e.toString(); - try { - h = Pa(a, l, f, b, d, g); - } catch (M) { - if ("Invalid country calling code" == M.message && L.test(l)) { - if (((l = l.replace(L, "")), (h = Pa(a, l, f, b, d, g)), 0 == h)) throw M; - } else throw M; - } - 0 != h - ? ((e = T(h)), e != c && (f = S(a, h, e))) - : (Ja(e), - b.g(e.toString()), - null != c ? ((h = w(f, 10)), q(g, 1, h)) : d && (delete g.g[6], g.i && delete g.i[6])); - if (2 > b.i.length) throw Error("The string supplied is too short to be a phone number"); - null != f && - ((c = new E()), - (e = new E(b.toString())), - Qa(e, f, c), - (a = Y(a, e.toString(), f, -1)), - 2 != a && 4 != a && 5 != a && ((b = e), d && 0 < c.toString().length && q(g, 7, c.toString()))); - d = b.toString(); - a = d.length; - if (2 > a) throw Error("The string supplied is too short to be a phone number"); - if (17 < a) throw Error("The string supplied is too long to be a phone number"); - if (1 < d.length && "0" == d.charAt(0)) { - q(g, 4, !0); - for (a = 1; a < d.length - 1 && "0" == d.charAt(a); ) a++; - 1 != a && q(g, 8, a); - } - q(g, 2, parseInt(d, 10)); - return g; - } - function O(a, b) { - return (a = "string" == typeof a ? b.match("^(?:" + a + ")$") : b.match(a)) && a[0].length == b.length - ? !0 - : !1; - } - k("intlTelInputUtils", {}); - k("intlTelInputUtils.formatNumber", function (a, b, c) { - try { - var d = K.g(), - e = Z(d, a, b), - g = Oa(d, e); - return 0 == g || 4 == g ? La(d, e, "undefined" == typeof c ? 0 : c) : a; - } catch (f) { - return a; - } - }); - k("intlTelInputUtils.getExampleNumber", function (a, b, c) { - try { - var d = K.g(); - a: { - if (Q(a)) { - var e = V(U(d, a), c); - try { - if (null != e.g[6]) { - var g = p(e, 6); - var f = Ra(d, g, a, !1); - break a; - } - } catch (h) {} - } - f = null; - } - return La(d, f, b ? 2 : 1); - } catch (h) { - return ""; - } - }); - k("intlTelInputUtils.getExtension", function (a, b) { - try { - return p(Z(K.g(), a, b), 3); - } catch (c) { - return ""; - } - }); - k("intlTelInputUtils.getNumberType", function (a, b) { - try { - var c = K.g(); - var d = Z(c, a, b), - e = Na(c, d), - g = S(c, w(d, 1), e); - if (null == g) var f = -1; - else { - var h = R(d); - f = W(h, g); - } - return f; - } catch (l) { - return -99; - } - }); - k("intlTelInputUtils.getValidationError", function (a, b) { - try { - var c = K.g(), - d = Z(c, a, b); - return Oa(c, d); - } catch (e) { - return "Invalid country calling code" == e.message - ? 1 - : "Phone number too short after IDD" == e.message || - "The string supplied is too short to be a phone number" == e.message - ? 2 - : "The string supplied is too long to be a phone number" == e.message - ? 3 - : -99; - } - }); - k("intlTelInputUtils.isValidNumber", function (a, b) { - try { - var c = K.g(), - d = Z(c, a, b); - var e = Na(c, d), - g = w(d, 1), - f = S(c, g, e), - h; - if (!(h = null == f)) { - var l; - if ((l = "001" != e)) { - var z = U(c, e); - if (null == z) throw Error("Invalid region code: " + e); - var M = w(z, 10); - l = g != M; - } - h = l; - } - if (h) var ua = !1; - else { - var Sa = R(d); - ua = -1 != W(Sa, f); - } - return ua; - } catch (Ta) { - return !1; - } - }); - k("intlTelInputUtils.numberFormat", { E164: 0, INTERNATIONAL: 1, NATIONAL: 2, RFC3966: 3 }); - k("intlTelInputUtils.numberType", { - FIXED_LINE: 0, - MOBILE: 1, - FIXED_LINE_OR_MOBILE: 2, - TOLL_FREE: 3, - PREMIUM_RATE: 4, - SHARED_COST: 5, - VOIP: 6, - PERSONAL_NUMBER: 7, - PAGER: 8, - UAN: 9, - VOICEMAIL: 10, - UNKNOWN: -1, - }); - k("intlTelInputUtils.validationError", { - IS_POSSIBLE: 0, - INVALID_COUNTRY_CODE: 1, - TOO_SHORT: 2, - TOO_LONG: 3, - IS_POSSIBLE_LOCAL_ONLY: 4, - INVALID_LENGTH: 5, - }); -})(); diff --git a/lib/build/version.d.ts b/lib/build/version.d.ts index e0760ea73..b7a0caf97 100644 --- a/lib/build/version.d.ts +++ b/lib/build/version.d.ts @@ -1 +1 @@ -export declare const package_version = "0.33.1"; +export declare const package_version = "0.34.0"; diff --git a/lib/ts/components/featureWrapper.tsx b/lib/ts/components/featureWrapper.tsx index 90fb91c39..e5ce0b12f 100644 --- a/lib/ts/components/featureWrapper.tsx +++ b/lib/ts/components/featureWrapper.tsx @@ -21,6 +21,7 @@ import { useEffect, useRef, useState } from "react"; import { createPortal } from "react-dom"; import { ST_ROOT_ID } from "../constants"; +import Multitenancy from "../recipe/multitenancy/recipe"; import SuperTokens from "../superTokens"; import { TranslationContextProvider } from "../translation/translationContext"; import { mergeObjects } from "../utils"; @@ -39,8 +40,22 @@ export default function FeatureWrapper({ children, useShadowDom, defaultStore, -}: PropsWithChildren): JSX.Element { +}: PropsWithChildren): JSX.Element | null { + const [loadedDynamicLoginMethods, setLoadedDynamicLoginMethods] = useState( + SuperTokens.usesDynamicLoginMethods === false || + Multitenancy.getInstanceOrThrow().getLoadedDynamicLoginMethods() !== undefined + ); const st = SuperTokens.getInstanceOrThrow(); + useEffect(() => { + const handler = () => setLoadedDynamicLoginMethods(true); + SuperTokens.uiController.on("LoginMethodsLoaded", handler); + + () => SuperTokens.uiController.off("LoginMethodsLoaded", handler); + }, []); + + if (loadedDynamicLoginMethods === false) { + return null; + } return ( { @@ -17,15 +23,30 @@ export function RoutingComponent(props: { // During development, this runs twice so as to warn devs of if there // are any side effects that happen here. So in tests, it will result in // the console log twice - return RecipeRouter.getMatchingComponentForRouteAndRecipeIdFromPreBuiltUIList( - normalizedPath, - props.preBuiltUIList - ); - }, [path, location]); // location dependency needs to be kept in order to get new component on url change + if (loadedDynamicLoginMethods) { + return RecipeRouter.getMatchingComponentForRouteAndRecipeIdFromPreBuiltUIList( + normalizedPath, + props.preBuiltUIList, + false + ); + } + return undefined; + // location dependency needs to be kept in order to get new component on url change + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [path, location, loadedDynamicLoginMethods, props.preBuiltUIList]); + + useEffect(() => { + const handler = () => { + setLoadedDynamicLoginMethods(true); + }; + SuperTokens.uiController.on("LoginMethodsLoaded", handler); + + () => SuperTokens.uiController.off("LoginMethodsLoaded", handler); + }, []); const history = props.getReactRouterDomWithCustomHistory()?.useHistoryCustom(); - if (componentToRender === undefined) { + if (componentToRender === undefined || loadedDynamicLoginMethods === false) { return null; } diff --git a/lib/ts/recipe/emailpassword/prebuiltui.tsx b/lib/ts/recipe/emailpassword/prebuiltui.tsx index 1ea60d533..00bc040bc 100644 --- a/lib/ts/recipe/emailpassword/prebuiltui.tsx +++ b/lib/ts/recipe/emailpassword/prebuiltui.tsx @@ -25,7 +25,8 @@ import type { PropsWithChildren } from "react"; export class EmailPasswordPreBuiltUI extends RecipeRouter { static instance?: EmailPasswordPreBuiltUI; - constructor(private readonly recipeInstance: EmailPassword) { + + constructor(public readonly recipeInstance: EmailPassword) { super(); } @@ -67,6 +68,7 @@ export class EmailPasswordPreBuiltUI extends RecipeRouter { features[normalisedFullPath.getAsStringDangerous()] = { matches: matchRecipeIdUsingQueryParams(this.recipeInstance.config.recipeId), component: (props) => this.getFeatureComponent("signinup", props as any, useComponentOverrides), + recipeID: EmailPassword.RECIPE_ID, }; } @@ -77,6 +79,7 @@ export class EmailPasswordPreBuiltUI extends RecipeRouter { features[normalisedFullPath.getAsStringDangerous()] = { matches: matchRecipeIdUsingQueryParams(this.recipeInstance.config.recipeId), component: (props) => this.getFeatureComponent("resetpassword", props as any, useComponentOverrides), + recipeID: EmailPassword.RECIPE_ID, }; } diff --git a/lib/ts/recipe/emailpassword/recipe.tsx b/lib/ts/recipe/emailpassword/recipe.tsx index b0c48b439..e48caf6d1 100644 --- a/lib/ts/recipe/emailpassword/recipe.tsx +++ b/lib/ts/recipe/emailpassword/recipe.tsx @@ -51,6 +51,8 @@ export default class EmailPassword extends AuthRecipe< static instance?: EmailPassword; static RECIPE_ID = "emailpassword"; + recipeID = EmailPassword.RECIPE_ID; + constructor( config: NormalisedConfigWithAppInfoAndRecipeID, public readonly webJSRecipe: WebJSRecipeInterface = EmailPasswordWebJS @@ -75,6 +77,7 @@ export default class EmailPassword extends AuthRecipe< const normalisedConfig = normaliseEmailPasswordConfig(config); return { + recipeID: EmailPassword.RECIPE_ID, authReact: ( appInfo: NormalisedAppInfo ): RecipeModule< diff --git a/lib/ts/recipe/emailverification/prebuiltui.tsx b/lib/ts/recipe/emailverification/prebuiltui.tsx index 884f25c51..569db8330 100644 --- a/lib/ts/recipe/emailverification/prebuiltui.tsx +++ b/lib/ts/recipe/emailverification/prebuiltui.tsx @@ -17,7 +17,7 @@ import type { RecipeFeatureComponentMap } from "../../types"; export class EmailVerificationPreBuiltUI extends RecipeRouter { static instance?: EmailVerificationPreBuiltUI; - constructor(private readonly recipeInstance: EmailVerificationRecipe) { + constructor(public readonly recipeInstance: EmailVerificationRecipe) { super(); } @@ -59,6 +59,7 @@ export class EmailVerificationPreBuiltUI extends RecipeRouter { features[normalisedFullPath.getAsStringDangerous()] = { matches: matchRecipeIdUsingQueryParams(this.recipeInstance.config.recipeId), component: (props: any) => this.getFeatureComponent("emailverification", props, useComponentOverrides), + recipeID: EmailVerificationRecipe.RECIPE_ID, }; } return features; diff --git a/lib/ts/recipe/emailverification/recipe.tsx b/lib/ts/recipe/emailverification/recipe.tsx index 4d53df14d..8d2acc62e 100644 --- a/lib/ts/recipe/emailverification/recipe.tsx +++ b/lib/ts/recipe/emailverification/recipe.tsx @@ -53,6 +53,8 @@ export default class EmailVerification extends RecipeModule< () => EmailVerification.getInstanceOrThrow().webJSRecipe ); + public recipeID = EmailVerification.RECIPE_ID; + constructor( config: NormalisedConfigWithAppInfoAndRecipeID, public readonly webJSRecipe: WebJSRecipeInterface = EmailVerificationWebJS @@ -71,6 +73,7 @@ export default class EmailVerification extends RecipeModule< const normalisedConfig = normaliseEmailVerificationFeature(config); return { + recipeID: EmailVerification.RECIPE_ID, authReact: ( appInfo: NormalisedAppInfo ): RecipeModule< diff --git a/lib/ts/recipe/multitenancy/index.ts b/lib/ts/recipe/multitenancy/index.ts new file mode 100644 index 000000000..864b3a81c --- /dev/null +++ b/lib/ts/recipe/multitenancy/index.ts @@ -0,0 +1,33 @@ +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +import { AllowedDomainsClaim } from "supertokens-web-js/recipe/multitenancy"; + +import Multitenancy from "./recipe"; +import { UserInput } from "./types"; + +import type { RecipeInterface } from "supertokens-web-js/recipe/multitenancy"; + +export default class Wrapper { + static init(config?: UserInput) { + return Multitenancy.init(config); + } + + static AllowedDomainsClaim = AllowedDomainsClaim; +} + +const init = Wrapper.init; + +export { init, UserInput, RecipeInterface, AllowedDomainsClaim }; diff --git a/lib/ts/recipe/multitenancy/recipe.ts b/lib/ts/recipe/multitenancy/recipe.ts new file mode 100644 index 000000000..a4eef6a70 --- /dev/null +++ b/lib/ts/recipe/multitenancy/recipe.ts @@ -0,0 +1,136 @@ +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +/* + * Imports. + */ + +import MultitenancyWebJS from "supertokens-web-js/recipe/multitenancy"; +import { PostSuperTokensInitCallbacks } from "supertokens-web-js/utils/postSuperTokensInitCallbacks"; + +import { SSR_ERROR } from "../../constants"; +import SuperTokens from "../../superTokens"; +import { isTest } from "../../utils"; +import { BaseRecipeModule } from "../recipeModule/baseRecipeModule"; + +import { hasIntersectingRecipes } from "./utils"; +import { normaliseMultitenancyConfig } from "./utils"; + +import type { NormalisedConfig, UserInput, GetLoginMethodsResponseNormalized } from "./types"; +import type { RecipeInitResult, NormalisedConfigWithAppInfoAndRecipeID, WebJSRecipeInterface } from "../../types"; +import type { NormalisedAppInfo } from "../../types"; + +/* + * Class. + */ +export default class Multitenancy extends BaseRecipeModule { + static instance?: Multitenancy; + static readonly RECIPE_ID = "multitenancy"; + + private dynamicLoginMethods?: GetLoginMethodsResponseNormalized; + private hasIntersection?: boolean; + public readonly recipeID = Multitenancy.RECIPE_ID; + + constructor( + config: NormalisedConfigWithAppInfoAndRecipeID, + public readonly webJSRecipe: WebJSRecipeInterface = MultitenancyWebJS + ) { + super(config); + PostSuperTokensInitCallbacks.addPostInitCallback(() => { + if (SuperTokens.usesDynamicLoginMethods === true) { + void Multitenancy.getInstanceOrThrow().initMultitenancyWithDynamicLoginMethods().catch(); + } + }); + } + + public async initMultitenancyWithDynamicLoginMethods(): Promise { + const tenantId = await Multitenancy.getInstanceOrThrow().webJSRecipe.getTenantId(); + + const tenantMethods = await Multitenancy.getDynamicLoginMethods({ tenantId }); + this.hasIntersection = hasIntersectingRecipes(tenantMethods, SuperTokens.getInstanceOrThrow().recipeList); + + SuperTokens.uiController.emit("LoginMethodsLoaded"); + } + + public getLoadedDynamicLoginMethods(): GetLoginMethodsResponseNormalized | undefined { + if (this.hasIntersection === false) { + throw new Error("Initialized recipes have no overlap with core recipes or could not load login methods"); + } + return this.dynamicLoginMethods; + } + + static async getDynamicLoginMethods( + ...options: Parameters + ): Promise { + const instance = Multitenancy.getInstanceOrThrow(); + if (instance.dynamicLoginMethods !== undefined) { + return instance.dynamicLoginMethods; + } + const { emailPassword, passwordless, thirdParty } = await MultitenancyWebJS.getLoginMethods(...options); + + instance.dynamicLoginMethods = { + passwordless: passwordless, + emailpassword: emailPassword, + thirdparty: thirdParty, + }; + return instance.dynamicLoginMethods; + } + + static init(config?: UserInput): RecipeInitResult { + const normalisedConfig = normaliseMultitenancyConfig(config); + return { + recipeID: Multitenancy.RECIPE_ID, + authReact: (appInfo: NormalisedAppInfo): BaseRecipeModule => { + Multitenancy.instance = new Multitenancy({ + ...normalisedConfig, + appInfo, + recipeId: Multitenancy.RECIPE_ID, + }); + return Multitenancy.instance; + }, + webJS: MultitenancyWebJS.init({ + ...normalisedConfig, + }), + }; + } + + static getInstanceOrThrow(): Multitenancy { + if (Multitenancy.instance === undefined) { + let error = + "No instance of Multitenancy found. Make sure to call the Multitenancy.init method." + + "See https://supertokens.io/docs/multitenancy/quick-setup/frontend"; + + // eslint-disable-next-line supertokens-auth-react/no-direct-window-object + if (typeof window === "undefined") { + error = error + SSR_ERROR; + } + throw Error(error); + } + + return Multitenancy.instance; + } + + /* + * Tests methods. + */ + static reset(): void { + if (!isTest()) { + return; + } + + Multitenancy.instance = undefined; + return; + } +} diff --git a/lib/ts/recipe/multitenancy/types.ts b/lib/ts/recipe/multitenancy/types.ts new file mode 100644 index 000000000..cb8aa761d --- /dev/null +++ b/lib/ts/recipe/multitenancy/types.ts @@ -0,0 +1,39 @@ +import type { UserInput as RecipeModuleUserInput } from "../recipeModule/types"; +import type OverrideableBuilder from "supertokens-js-override"; +import type { RecipeInterface } from "supertokens-web-js/recipe/multitenancy/types"; + +export type PreAndPostAPIHookAction = "GET_LOGIN_METHODS"; + +export type UserInput = { + override?: { + functions?: ( + originalImplementation: RecipeInterface, + builder: OverrideableBuilder + ) => RecipeInterface; + }; +} & RecipeModuleUserInput; + +export type NormalisedConfig = UserInput & { + override: { + functions?: ( + originalImplementation: RecipeInterface, + builder: OverrideableBuilder + ) => RecipeInterface; + }; +}; + +export type GetLoginMethodsResponseNormalized = { + passwordless: { + enabled: boolean; + }; + emailpassword: { + enabled: boolean; + }; + thirdparty: { + enabled: boolean; + providers: { + id: string; + name: string; + }[]; + }; +}; diff --git a/lib/ts/recipe/multitenancy/utils.ts b/lib/ts/recipe/multitenancy/utils.ts new file mode 100644 index 000000000..8b6310bff --- /dev/null +++ b/lib/ts/recipe/multitenancy/utils.ts @@ -0,0 +1,32 @@ +import { normaliseRecipeModuleConfig } from "../recipeModule/utils"; + +import type { UserInput, NormalisedConfig, GetLoginMethodsResponseNormalized } from "./types"; +import type { BaseRecipeModule } from "../recipeModule/baseRecipeModule"; + +export function normaliseMultitenancyConfig(config?: UserInput): NormalisedConfig { + return { + ...normaliseRecipeModuleConfig(config), + override: { + functions: (originalImplementation) => originalImplementation, + ...config?.override, + }, + }; +} + +export function hasIntersectingRecipes( + tenantMethods: GetLoginMethodsResponseNormalized, + recipeList: BaseRecipeModule[] +): boolean { + for (const key in tenantMethods) { + const hasIntersection = recipeList.some((recipe) => { + if (tenantMethods[key as keyof GetLoginMethodsResponseNormalized].enabled) { + return recipe.recipeID === key || recipe.recipeID.includes(key); + } + return false; + }); + if (hasIntersection === true) { + return true; + } + } + return false; +} diff --git a/lib/ts/recipe/passwordless/components/features/linkClickedScreen/index.tsx b/lib/ts/recipe/passwordless/components/features/linkClickedScreen/index.tsx index 5cdd8c466..d79c2991c 100644 --- a/lib/ts/recipe/passwordless/components/features/linkClickedScreen/index.tsx +++ b/lib/ts/recipe/passwordless/components/features/linkClickedScreen/index.tsx @@ -25,14 +25,13 @@ import SuperTokens from "../../../../../superTokens"; import { useUserContext } from "../../../../../usercontext"; import { getQueryParams, getURLHash, useOnMountAPICall } from "../../../../../utils"; import Session from "../../../../session/recipe"; -import { getLoginAttemptInfo } from "../../../utils"; import { LinkClickedScreen as LinkClickedScreenTheme } from "../../themes/linkClickedScreen"; import { defaultTranslationsPasswordless } from "../../themes/translations"; import type { Awaited } from "../../../../../types"; import type { FeatureBaseProps } from "../../../../../types"; import type Recipe from "../../../recipe"; -import type { ComponentOverrideMap } from "../../../types"; +import type { AdditionalLoginAttemptInfoProperties, ComponentOverrideMap } from "../../../types"; type PropType = FeatureBaseProps & { recipe: Recipe; useComponentOverrides: () => ComponentOverrideMap }; @@ -88,10 +87,10 @@ const LinkClickedScreen: React.FC = (props) => { } if (response.status === "OK") { - const loginAttemptInfo = await getLoginAttemptInfo({ - recipeImplementation: props.recipe.webJSRecipe, - userContext, - }); + const loginAttemptInfo = + await props.recipe.webJSRecipe.getLoginAttemptInfo({ + userContext, + }); await props.recipe.webJSRecipe.clearLoginAttemptInfo({ userContext, }); diff --git a/lib/ts/recipe/passwordless/components/features/signInAndUp/index.tsx b/lib/ts/recipe/passwordless/components/features/signInAndUp/index.tsx index 0e9ca79cf..831b70a13 100644 --- a/lib/ts/recipe/passwordless/components/features/signInAndUp/index.tsx +++ b/lib/ts/recipe/passwordless/components/features/signInAndUp/index.tsx @@ -28,13 +28,12 @@ import { clearErrorQueryParam, getQueryParams, getRedirectToPathFromURL } from " import Session from "../../../../session"; import SessionRecipe from "../../../../session/recipe"; import { getPhoneNumberUtils } from "../../../phoneNumberUtils"; -import { getLoginAttemptInfo, setLoginAttemptInfo } from "../../../utils"; import SignInUpThemeWrapper from "../../themes/signInUp"; import { defaultTranslationsPasswordless } from "../../themes/translations"; import type { FeatureBaseProps } from "../../../../../types"; import type Recipe from "../../../recipe"; -import type { ComponentOverrideMap } from "../../../types"; +import type { AdditionalLoginAttemptInfoProperties, ComponentOverrideMap } from "../../../types"; import type { PasswordlessSignInUpAction, SignInUpState, SignInUpChildProps, NormalisedConfig } from "../../../types"; import type { RecipeInterface, PasswordlessUser } from "supertokens-web-js/recipe/passwordless"; @@ -164,8 +163,7 @@ export const useFeatureReducer = ( error = messageQueryParam; } } - const loginAttemptInfo = await getLoginAttemptInfo({ - recipeImplementation: recipeImpl!, + const loginAttemptInfo = await recipeImpl?.getLoginAttemptInfo({ userContext, }); // No need to check if the component is unmounting, since this has no effect then. @@ -315,8 +313,7 @@ function getModifiedRecipeImplementation( userContext: { ...input.userContext, additionalAttemptInfo }, }); if (res.status === "OK") { - const loginAttemptInfo = (await getLoginAttemptInfo({ - recipeImplementation: originalImpl, + const loginAttemptInfo = (await originalImpl.getLoginAttemptInfo({ userContext: input.userContext, }))!; dispatch({ type: "startLogin", loginAttemptInfo }); @@ -331,17 +328,14 @@ function getModifiedRecipeImplementation( const res = await originalImpl.resendCode(input); if (res.status === "OK") { - const loginAttemptInfo = await getLoginAttemptInfo({ - recipeImplementation: originalImpl, + const loginAttemptInfo = await originalImpl.getLoginAttemptInfo({ userContext: input.userContext, }); - // If it was cleared or overwritten we don't want to save this. - // TODO: extend session checker to check for this case as well - if (loginAttemptInfo !== undefined && loginAttemptInfo.deviceId === input.deviceId) { + + if (loginAttemptInfo !== undefined) { const timestamp = Date.now(); - await setLoginAttemptInfo({ - recipeImplementation: originalImpl, + await originalImpl.setLoginAttemptInfo({ userContext: input.userContext, attemptInfo: { ...loginAttemptInfo, diff --git a/lib/ts/recipe/passwordless/components/themes/signInUp/linkSent.tsx b/lib/ts/recipe/passwordless/components/themes/signInUp/linkSent.tsx index dc6138ef5..2896e6a3d 100644 --- a/lib/ts/recipe/passwordless/components/themes/signInUp/linkSent.tsx +++ b/lib/ts/recipe/passwordless/components/themes/signInUp/linkSent.tsx @@ -56,8 +56,6 @@ const PasswordlessLinkSent: React.FC = (props) => { try { response = await props.recipeImplementation.resendCode({ - deviceId: props.loginAttemptInfo.deviceId, - preAuthSessionId: props.loginAttemptInfo.preAuthSessionId, userContext, }); } catch (e) { diff --git a/lib/ts/recipe/passwordless/components/themes/signInUp/userInputCodeForm.tsx b/lib/ts/recipe/passwordless/components/themes/signInUp/userInputCodeForm.tsx index c5ee1c860..57c772e06 100644 --- a/lib/ts/recipe/passwordless/components/themes/signInUp/userInputCodeForm.tsx +++ b/lib/ts/recipe/passwordless/components/themes/signInUp/userInputCodeForm.tsx @@ -56,8 +56,6 @@ export const UserInputCodeForm = withOverride( try { response = await props.recipeImplementation.resendCode({ - deviceId: props.loginAttemptInfo.deviceId, - preAuthSessionId: props.loginAttemptInfo.preAuthSessionId, userContext, }); } catch (e) { @@ -135,8 +133,6 @@ export const UserInputCodeForm = withOverride( throw new STGeneralError("GENERAL_ERROR_OTP_UNDEFINED"); } const response = await props.recipeImplementation.consumeCode({ - deviceId: props.loginAttemptInfo.deviceId, - preAuthSessionId: props.loginAttemptInfo.preAuthSessionId, userInputCode, userContext, }); diff --git a/lib/ts/recipe/passwordless/index.ts b/lib/ts/recipe/passwordless/index.ts index fc868ef19..93f5c8e8c 100644 --- a/lib/ts/recipe/passwordless/index.ts +++ b/lib/ts/recipe/passwordless/index.ts @@ -21,7 +21,6 @@ import { RecipeComponentsOverrideContextProvider } from "./componentOverrideCont import Passwordless from "./recipe"; import { UserInput } from "./types"; import { GetRedirectionURLContext, PreAPIHookContext, OnHandleEventContext } from "./types"; -import * as UtilFunctions from "./utils"; import type { RecipeFunctionOptions } from "supertokens-web-js/recipe/passwordless"; import type { PasswordlessFlowType, PasswordlessUser } from "supertokens-web-js/recipe/passwordless/types"; @@ -48,9 +47,9 @@ export default class Wrapper { flowType: PasswordlessFlowType; fetchResponse: Response; }> { - return UtilFunctions.createCode({ + return Passwordless.getInstanceOrThrow().webJSRecipe.createCode({ ...input, - recipeImplementation: Passwordless.getInstanceOrThrow().webJSRecipe, + userContext: getNormalisedUserContext(input?.userContext), }); } @@ -58,9 +57,9 @@ export default class Wrapper { status: "OK" | "RESTART_FLOW_ERROR"; fetchResponse: Response; }> { - return UtilFunctions.resendCode({ + return Passwordless.getInstanceOrThrow().webJSRecipe.resendCode({ ...input, - recipeImplementation: Passwordless.getInstanceOrThrow().webJSRecipe, + userContext: getNormalisedUserContext(input?.userContext), }); } @@ -90,9 +89,9 @@ export default class Wrapper { } | { status: "RESTART_FLOW_ERROR"; fetchResponse: Response } > { - return UtilFunctions.consumeCode({ + return Passwordless.getInstanceOrThrow().webJSRecipe.consumeCode({ ...input, - recipeImplementation: Passwordless.getInstanceOrThrow().webJSRecipe, + userContext: getNormalisedUserContext(input?.userContext), }); } diff --git a/lib/ts/recipe/passwordless/prebuiltui.tsx b/lib/ts/recipe/passwordless/prebuiltui.tsx index 641e6ec8b..06e7315b9 100644 --- a/lib/ts/recipe/passwordless/prebuiltui.tsx +++ b/lib/ts/recipe/passwordless/prebuiltui.tsx @@ -23,7 +23,7 @@ import type { PropsWithChildren } from "react"; export class PasswordlessPreBuiltUI extends RecipeRouter { static instance?: PasswordlessPreBuiltUI; - constructor(private readonly recipeInstance: Passwordless) { + constructor(public readonly recipeInstance: Passwordless) { super(); } @@ -65,6 +65,7 @@ export class PasswordlessPreBuiltUI extends RecipeRouter { features[normalisedFullPath.getAsStringDangerous()] = { matches: matchRecipeIdUsingQueryParams(this.recipeInstance.config.recipeId), component: (props) => this.getFeatureComponent("signInUp", props as any, useComponentOverrides), + recipeID: Passwordless.RECIPE_ID, }; } if (this.recipeInstance.config.linkClickedScreenFeature.disableDefaultUI !== true) { @@ -75,6 +76,7 @@ export class PasswordlessPreBuiltUI extends RecipeRouter { matches: matchRecipeIdUsingQueryParams(this.recipeInstance.config.recipeId), component: (props) => this.getFeatureComponent("linkClickedScreen", props as any, useComponentOverrides), + recipeID: Passwordless.RECIPE_ID, }; } diff --git a/lib/ts/recipe/passwordless/recipe.tsx b/lib/ts/recipe/passwordless/recipe.tsx index 42b1862ea..6a2fe6ac6 100644 --- a/lib/ts/recipe/passwordless/recipe.tsx +++ b/lib/ts/recipe/passwordless/recipe.tsx @@ -49,6 +49,8 @@ export default class Passwordless extends AuthRecipe< static instance?: Passwordless; static RECIPE_ID = "passwordless"; + recipeID = Passwordless.RECIPE_ID; + constructor( config: NormalisedConfigWithAppInfoAndRecipeID, public readonly webJSRecipe: WebJSRecipeInterface = PasswordlessWebJS @@ -66,6 +68,7 @@ export default class Passwordless extends AuthRecipe< const normalisedConfig = normalisePasswordlessConfig(config); return { + recipeID: Passwordless.RECIPE_ID, authReact: ( appInfo: NormalisedAppInfo ): RecipeModule< diff --git a/lib/ts/recipe/passwordless/types.ts b/lib/ts/recipe/passwordless/types.ts index 82e010689..5598ff13b 100644 --- a/lib/ts/recipe/passwordless/types.ts +++ b/lib/ts/recipe/passwordless/types.ts @@ -25,7 +25,7 @@ import type { UserInputCodeForm } from "./components/themes/signInUp/userInputCo import type { UserInputCodeFormFooter } from "./components/themes/signInUp/userInputCodeFormFooter"; import type { UserInputCodeFormHeader } from "./components/themes/signInUp/userInputCodeFormHeader"; import type { ComponentOverride } from "../../components/componentOverride/componentOverride"; -import type { FeatureBaseConfig, NormalisedBaseConfig } from "../../types"; +import type { FeatureBaseConfig, NormalisedBaseConfig, WebJSRecipeInterface } from "../../types"; import type { GetRedirectionURLContext as AuthRecipeModuleGetRedirectionURLContext, OnHandleEventContext as AuthRecipeModuleOnHandleEventContext, @@ -34,6 +34,7 @@ import type { UserInput as AuthRecipeModuleUserInput, } from "../authRecipe/types"; import type { Dispatch } from "react"; +import type WebJSRecipe from "supertokens-web-js/recipe/passwordless"; import type { RecipeInterface, PasswordlessUser } from "supertokens-web-js/recipe/passwordless"; export type PreAndPostAPIHookAction = @@ -184,7 +185,7 @@ export type UserInput = ( } & AuthRecipeModuleUserInput; export type SignInUpProps = { - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; onSuccess?: (result: { createdNewUser: boolean; user: PasswordlessUser }) => void; dispatch: Dispatch; @@ -220,11 +221,13 @@ export type AdditionalLoginAttemptInfoProperties = { redirectToPath?: string; }; +export type RecipeImplementation = WebJSRecipeInterface; + export type SignInUpEmailFormProps = { clearError: () => void; onError: (error: string) => void; error: string | undefined; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; onSuccess?: () => void; }; @@ -233,7 +236,7 @@ export type SignInUpPhoneFormProps = { clearError: () => void; onError: (error: string) => void; error: string | undefined; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; onSuccess?: () => void; }; @@ -242,7 +245,7 @@ export type SignInUpEmailOrPhoneFormProps = { clearError: () => void; onError: (error: string) => void; error: string | undefined; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; onSuccess?: () => void; }; @@ -251,14 +254,14 @@ export type SignInUpUserInputCodeFormProps = { clearError: () => void; onError: (error: string) => void; error: string | undefined; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; loginAttemptInfo: LoginAttemptInfo; onSuccess?: (result: { createdNewUser: boolean; user: PasswordlessUser }) => void; }; export type LinkClickedScreenProps = { - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; requireUserInteraction: boolean; consumeCode: () => void; @@ -266,7 +269,7 @@ export type LinkClickedScreenProps = { }; export type CloseTabScreenProps = { - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; }; @@ -310,19 +313,19 @@ export type LinkSentThemeProps = { onError: (error: string) => void; error: string | undefined; loginAttemptInfo: LoginAttemptInfo; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; }; export type UserInputCodeFormFooterProps = { loginAttemptInfo: LoginAttemptInfo; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; }; export type UserInputCodeFormHeaderProps = { loginAttemptInfo: LoginAttemptInfo; - recipeImplementation: RecipeInterface; + recipeImplementation: RecipeImplementation; config: NormalisedConfig; }; diff --git a/lib/ts/recipe/passwordless/utils.ts b/lib/ts/recipe/passwordless/utils.ts index 23a1ac83d..d1bc38892 100644 --- a/lib/ts/recipe/passwordless/utils.ts +++ b/lib/ts/recipe/passwordless/utils.ts @@ -13,8 +13,6 @@ * under the License. */ -import WebJSUtils from "supertokens-web-js/recipe/passwordless/utils"; - import { normaliseAuthRecipe } from "../authRecipe/utils"; import { @@ -25,16 +23,9 @@ import { defaultGuessInternationPhoneNumberFromInputPhoneNumber, } from "./validators"; -import type { - AdditionalLoginAttemptInfoProperties, - Config, - LoginAttemptInfo, - NormalisedConfig, - SignInUpFeatureConfigInput, -} from "./types"; +import type { Config, NormalisedConfig, SignInUpFeatureConfigInput } from "./types"; import type { FeatureBaseConfig, NormalisedBaseConfig } from "../../types"; -import type { RecipeFunctionOptions, RecipeInterface } from "supertokens-web-js/recipe/passwordless"; -import type { PasswordlessFlowType, PasswordlessUser } from "supertokens-web-js/recipe/passwordless/types"; +import type { RecipeInterface } from "supertokens-web-js/recipe/passwordless"; export function normalisePasswordlessConfig(config: Config): NormalisedConfig { if (config === undefined) { @@ -145,89 +136,3 @@ function normalisePasswordlessBaseConfig(config?: T & FeatureBaseConfig): T & style, }; } - -export async function getLoginAttemptInfo(input: { - recipeImplementation: RecipeInterface; - userContext: any; -}): Promise { - return await input.recipeImplementation.getLoginAttemptInfo({ - userContext: input.userContext, - }); -} - -export async function setLoginAttemptInfo(input: { - recipeImplementation: RecipeInterface; - userContext: any; - attemptInfo: LoginAttemptInfo; -}): Promise { - return await input.recipeImplementation.setLoginAttemptInfo({ - userContext: input.userContext, - attemptInfo: input.attemptInfo, - }); -} - -/** - * These functions are helper functions so that the logic can be exposed from both - * passwordless and thirdpartypasswordless recipes without having to duplicate code - */ - -export async function createCode( - input: - | { email: string; userContext?: any; options?: RecipeFunctionOptions; recipeImplementation: RecipeInterface } - | { - phoneNumber: string; - userContext?: any; - options?: RecipeFunctionOptions; - recipeImplementation: RecipeInterface; - } -): Promise<{ - status: "OK"; - deviceId: string; - preAuthSessionId: string; - flowType: PasswordlessFlowType; - fetchResponse: Response; -}> { - return WebJSUtils.createCode(input); -} - -export async function resendCode(input: { - userContext?: any; - options?: RecipeFunctionOptions; - recipeImplementation: RecipeInterface; -}): Promise<{ - status: "OK" | "RESTART_FLOW_ERROR"; - fetchResponse: Response; -}> { - return WebJSUtils.resendCode(input); -} - -export async function consumeCode( - input: - | { - userInputCode: string; - userContext?: any; - options?: RecipeFunctionOptions; - recipeImplementation: RecipeInterface; - } - | { - userContext?: any; - options?: RecipeFunctionOptions; - recipeImplementation: RecipeInterface; - } -): Promise< - | { - status: "OK"; - createdNewUser: boolean; - user: PasswordlessUser; - fetchResponse: Response; - } - | { - status: "INCORRECT_USER_INPUT_CODE_ERROR" | "EXPIRED_USER_INPUT_CODE_ERROR"; - failedCodeInputAttemptCount: number; - maximumCodeInputAttempts: number; - fetchResponse: Response; - } - | { status: "RESTART_FLOW_ERROR"; fetchResponse: Response } -> { - return WebJSUtils.consumeCode(input); -} diff --git a/lib/ts/recipe/recipeModule/baseRecipeModule.ts b/lib/ts/recipe/recipeModule/baseRecipeModule.ts new file mode 100644 index 000000000..1a2e3e7eb --- /dev/null +++ b/lib/ts/recipe/recipeModule/baseRecipeModule.ts @@ -0,0 +1,18 @@ +import type { NormalisedConfig } from "./types"; +import type { NormalisedConfigWithAppInfoAndRecipeID } from "../../types"; + +export abstract class BaseRecipeModule< + GetRedirectionURLContextType, + Action, + OnHandleEventContextType, + N extends NormalisedConfig +> { + config: NormalisedConfigWithAppInfoAndRecipeID; + public abstract recipeID: string; + /* + * Constructor. + */ + constructor(config: NormalisedConfigWithAppInfoAndRecipeID) { + this.config = config; + } +} diff --git a/lib/ts/recipe/recipeModule/index.ts b/lib/ts/recipe/recipeModule/index.ts index 3292010ba..28eb247db 100644 --- a/lib/ts/recipe/recipeModule/index.ts +++ b/lib/ts/recipe/recipeModule/index.ts @@ -16,27 +16,16 @@ import SuperTokens from "../../superTokens"; import { appendQueryParamsToURL } from "../../utils"; +import { BaseRecipeModule } from "./baseRecipeModule"; + import type { NormalisedConfig } from "./types"; -import type { NormalisedConfigWithAppInfoAndRecipeID } from "../../types"; -/* - * Class. - */ export default abstract class RecipeModule< GetRedirectionURLContextType, Action, OnHandleEventContextType, N extends NormalisedConfig -> { - config: NormalisedConfigWithAppInfoAndRecipeID; - - /* - * Constructor. - */ - constructor(config: NormalisedConfigWithAppInfoAndRecipeID) { - this.config = config; - } - +> extends BaseRecipeModule { redirect = async ( context: GetRedirectionURLContextType, history?: any, diff --git a/lib/ts/recipe/recipeRouter/index.tsx b/lib/ts/recipe/recipeRouter/index.tsx index 2afd52513..1d6b5d2e1 100644 --- a/lib/ts/recipe/recipeRouter/index.tsx +++ b/lib/ts/recipe/recipeRouter/index.tsx @@ -1,31 +1,109 @@ +import SuperTokens from "../../superTokens"; +import Multitenancy from "../multitenancy/recipe"; + import type { RecipeFeatureComponentMap } from "../../types"; import type { BaseFeatureComponentMap, ComponentWithRecipeAndMatchingMethod } from "../../types"; +import type { GetLoginMethodsResponseNormalized } from "../multitenancy/types"; +import type RecipeModule from "../recipeModule"; import type NormalisedURLPath from "supertokens-web-js/lib/build/normalisedURLPath"; export abstract class RecipeRouter { private pathsToFeatureComponentWithRecipeIdMap?: BaseFeatureComponentMap; - + public abstract recipeInstance: RecipeModule; static getMatchingComponentForRouteAndRecipeIdFromPreBuiltUIList( normalisedUrl: NormalisedURLPath, - preBuiltUIList: RecipeRouter[] + preBuiltUIList: RecipeRouter[], + defaultToStaticList: boolean ): ComponentWithRecipeAndMatchingMethod | undefined { const path = normalisedUrl.getAsStringDangerous(); const routeComponents = preBuiltUIList.reduce((components, c) => { - const routes = c.getPathsToFeatureComponentWithRecipeIdMap?.()[path]; - return routes !== undefined ? components.concat(routes) : components; + const routes = c.getPathsToFeatureComponentWithRecipeIdMap(); + for (const [routePath, routeComps] of Object.entries(routes)) { + if ( + routePath === path || + new RegExp("^" + routePath.replace(/:\w+/g, "[^/]+").replace(/\/\*/g, "/[^/]+") + "$").test(path) + ) { + components = components.concat(routeComps); + } + } + return components; }, [] as ComponentWithRecipeAndMatchingMethod[]); - if (routeComponents.length === 0) { - return undefined; + const dynamicLoginMethods = Multitenancy.getInstanceOrThrow().getLoadedDynamicLoginMethods(); + const componentMatchingRid = routeComponents.find((c) => c.matches()); + if ( + SuperTokens.usesDynamicLoginMethods === false || + (dynamicLoginMethods === undefined && defaultToStaticList) + ) { + if (routeComponents.length === 0) { + return undefined; + } else if (componentMatchingRid !== undefined) { + return componentMatchingRid; + } else { + return routeComponents[0]; + } } - const component = routeComponents.find((c) => c.matches()); - if (component !== undefined) { - return component; + if (dynamicLoginMethods === undefined) { + throw new Error( + "Should never come here: dynamic login methods info has not been loaded but recipeRouter rendered" + ); } - // Otherwise, If no recipe Id provided, or if no recipe id matches, return the first matching component. - return routeComponents[0]; + + // The related ADR: https://supertokens.com/docs/contribute/decisions/multitenancy/0006 + const priorityOrder: { rid: string; includes: (keyof GetLoginMethodsResponseNormalized)[] }[] = [ + { rid: "thirdpartyemailpassword", includes: ["thirdparty", "emailpassword"] }, + { rid: "thirdpartypasswordless", includes: ["thirdparty", "passwordless"] }, + { rid: "emailpassword", includes: ["emailpassword"] }, + { rid: "passwordless", includes: ["passwordless"] }, + { rid: "thirdparty", includes: ["thirdparty"] }, + ]; + + if ( + componentMatchingRid && // if we find a component matching by rid + (!priorityOrder.map((a) => a.rid).includes(componentMatchingRid.recipeID) || // from a non-auth recipe + dynamicLoginMethods[componentMatchingRid.recipeID as keyof GetLoginMethodsResponseNormalized] + ?.enabled === true) // or an enabled auth recipe + ) { + return componentMatchingRid; + } + + const matchingNonAuthComponent = routeComponents.find( + (comp) => !priorityOrder.map((a) => a.rid).includes(comp.recipeID) + ); + + if (matchingNonAuthComponent) { + return matchingNonAuthComponent; + } + + const enabledRecipeCount = Object.keys(dynamicLoginMethods).filter( + (key) => (dynamicLoginMethods as any)[key].enabled + ).length; + // We first try to find an exact match + for (const { rid, includes } of priorityOrder) { + if ( + enabledRecipeCount === includes.length && + includes.every((subRId) => dynamicLoginMethods[subRId].enabled) + ) { + const matchingComp = routeComponents.find((comp) => comp.recipeID === rid); + if (matchingComp) { + return matchingComp; + } + } + } + // We try to find a partial match + for (const { rid, includes } of priorityOrder) { + if (includes.some((subRId) => dynamicLoginMethods[subRId].enabled)) { + const matchingComp = routeComponents.find((comp) => comp.recipeID === rid); + if (matchingComp) { + return matchingComp; + } + } + } + + // Otherwise, we throw since no there are is no overlap between recipes enabled on the FE and BE + throw new Error("We found no enabled recipes handling the current route"); } getPathsToFeatureComponentWithRecipeIdMap = (): BaseFeatureComponentMap => { @@ -43,7 +121,6 @@ export abstract class RecipeRouter { if (pathsToFeatureComponentWithRecipeIdMap[featurePath] === undefined) { pathsToFeatureComponentWithRecipeIdMap[featurePath] = []; } - pathsToFeatureComponentWithRecipeIdMap[featurePath].push(features[featurePath]); } diff --git a/lib/ts/recipe/session/index.ts b/lib/ts/recipe/session/index.ts index f749b8108..d30a44e0e 100644 --- a/lib/ts/recipe/session/index.ts +++ b/lib/ts/recipe/session/index.ts @@ -100,7 +100,7 @@ export default class SessionAPIWrapper { return Session.getInstanceOrThrow().getInvalidClaimsFromResponse(input); } - static getClaimValue(input: { claim: SessionClaim; userContext?: any }): Promise { + static getClaimValue(input: { claim: SessionClaim; userContext?: any }): Promise { return Session.getInstanceOrThrow().getClaimValue({ claim: input.claim, userContext: getNormalisedUserContext(input?.userContext), diff --git a/lib/ts/recipe/session/prebuiltui.tsx b/lib/ts/recipe/session/prebuiltui.tsx index 470b95cd6..3adff1e5a 100644 --- a/lib/ts/recipe/session/prebuiltui.tsx +++ b/lib/ts/recipe/session/prebuiltui.tsx @@ -13,7 +13,7 @@ import type { PropsWithChildren, ReactElement } from "react"; export class SessionPreBuiltUI extends RecipeRouter { static instance?: SessionPreBuiltUI; - constructor(private readonly recipeInstance: Session) { + constructor(public readonly recipeInstance: Session) { super(); } diff --git a/lib/ts/recipe/session/recipe.tsx b/lib/ts/recipe/session/recipe.tsx index 01fd0a9ae..81ce43874 100644 --- a/lib/ts/recipe/session/recipe.tsx +++ b/lib/ts/recipe/session/recipe.tsx @@ -36,6 +36,8 @@ export default class Session extends RecipeModule void>(); private redirectionHandlersFromAuthRecipes = new Map Promise>(); @@ -54,7 +56,10 @@ export default class Session extends RecipeModule; userContext: any }): Promise => { + getClaimValue = (input: { + claim: SessionClaim; + userContext: any; + }): Promise => { return this.webJSRecipe.getClaimValue(input); }; @@ -247,6 +252,7 @@ export default class Session extends RecipeModule => { Session.instance = new Session({ ...normalisedConfig, diff --git a/lib/ts/recipe/thirdparty/components/features/signInAndUp/index.tsx b/lib/ts/recipe/thirdparty/components/features/signInAndUp/index.tsx index 8925d876d..72888bb88 100644 --- a/lib/ts/recipe/thirdparty/components/features/signInAndUp/index.tsx +++ b/lib/ts/recipe/thirdparty/components/features/signInAndUp/index.tsx @@ -22,10 +22,12 @@ import { useMemo } from "react"; import { ComponentOverrideContext } from "../../../../../components/componentOverride/componentOverrideContext"; import FeatureWrapper from "../../../../../components/featureWrapper"; import { getQueryParams } from "../../../../../utils"; +import Multitenancy from "../../../../multitenancy/recipe"; +import { mergeProviders } from "../../../utils"; import SignInAndUpTheme from "../../themes/signInAndUp"; import { defaultTranslationsThirdParty } from "../../themes/translations"; -import type { FeatureBaseProps } from "../../../../../types"; +import type { FeatureBaseProps, WebJSRecipeInterface } from "../../../../../types"; import type Recipe from "../../../recipe"; import type { ComponentOverrideMap, @@ -33,7 +35,7 @@ import type { ThirdPartySignInUpActions, ThirdPartySignInUpChildProps, } from "../../../types"; -import type { RecipeInterface } from "supertokens-web-js/recipe/thirdparty"; +import type ThirdPartyWebJS from "supertokens-web-js/recipe/thirdparty"; export const useFeatureReducer = () => { return React.useReducer( @@ -83,18 +85,17 @@ export function useChildProps(recipe: Recipe | undefined): ThirdPartySignInUpChi if (!recipe || !recipeImplementation) { return undefined; } - const providers = recipe.config.signInAndUpFeature.providers.map((provider) => ({ - id: provider.id, - buttonComponent: provider.getButton(), - })); return { - providers: providers, + providers: mergeProviders({ + tenantProviders: Multitenancy.getInstanceOrThrow().getLoadedDynamicLoginMethods()?.thirdparty.providers, + clientProviders: recipe.config.signInAndUpFeature.providers, + }), recipeImplementation, config: recipe.config, recipe, }; - }, [recipe]); + }, [recipe, recipeImplementation]); } type PropType = FeatureBaseProps & { recipe: Recipe; useComponentOverrides: () => ComponentOverrideMap }; @@ -103,37 +104,50 @@ export const SignInAndUpFeature: React.FC = (props) => { const [state, dispatch] = useFeatureReducer(); const childProps = useChildProps(props.recipe); - const recipeComponentOverrides = props.useComponentOverrides(); + const themeProps = { ...childProps, providers: childProps.providers }; + return ( + + {/* No custom theme, use default. */} + {props.children === undefined && ( + + )} + + {/* Otherwise, custom theme is provided, propagate props. */} + {props.children && + React.Children.map(props.children, (child) => { + if (React.isValidElement(child)) { + return React.cloneElement(child, { + ...childProps, + featureState: state, + dispatch, + }); + } + + return child; + })} + + ); +}; + +const SignInAndUpFeatureWrapper: React.FC = (props) => { + const recipeComponentOverrides = props.useComponentOverrides(); return ( - - {/* No custom theme, use default. */} - {props.children === undefined && ( - - )} - - {/* Otherwise, custom theme is provided, propagate props. */} - {props.children && - React.Children.map(props.children, (child) => { - if (React.isValidElement(child)) { - return React.cloneElement(child, { ...childProps, featureState: state, dispatch }); - } - - return child; - })} - + ); }; -export default SignInAndUpFeature; +export default SignInAndUpFeatureWrapper; -const getModifiedRecipeImplementation = (origImpl: RecipeInterface): RecipeInterface => { +const getModifiedRecipeImplementation = ( + origImpl: WebJSRecipeInterface +): WebJSRecipeInterface => { return { ...origImpl, }; diff --git a/lib/ts/recipe/thirdparty/components/themes/signInAndUp/index.tsx b/lib/ts/recipe/thirdparty/components/themes/signInAndUp/index.tsx index 121c6debd..ed7ca828f 100644 --- a/lib/ts/recipe/thirdparty/components/themes/signInAndUp/index.tsx +++ b/lib/ts/recipe/thirdparty/components/themes/signInAndUp/index.tsx @@ -46,11 +46,11 @@ const SignInAndUpTheme: React.FC = (props) => { ); }; -const SignInAndUpThemeWrapper: React.FC = ( - props: SignInAndUpThemeProps & { +const SignInAndUpThemeWrapper: React.FC< + SignInAndUpThemeProps & { userContext?: any; } -) => { +> = (props) => { const hasFont = hasFontDefined(props.config.rootStyle); return ( diff --git a/lib/ts/recipe/thirdparty/components/themes/signInAndUp/providersForm.tsx b/lib/ts/recipe/thirdparty/components/themes/signInAndUp/providersForm.tsx index 90568ae3b..fb3f16e0b 100644 --- a/lib/ts/recipe/thirdparty/components/themes/signInAndUp/providersForm.tsx +++ b/lib/ts/recipe/thirdparty/components/themes/signInAndUp/providersForm.tsx @@ -69,7 +69,7 @@ export const ThirdPartySignInAndUpProvidersForm: React.FC {props.providers.map((provider) => { return (
- signInClick(provider.id)}>{provider.buttonComponent} + signInClick(provider.id)}>{provider.getButton()}
); })} diff --git a/lib/ts/recipe/thirdparty/components/themes/styles.css b/lib/ts/recipe/thirdparty/components/themes/styles.css index ca65be52e..653483dc7 100644 --- a/lib/ts/recipe/thirdparty/components/themes/styles.css +++ b/lib/ts/recipe/thirdparty/components/themes/styles.css @@ -27,7 +27,7 @@ } [data-supertokens~="providerButtonLeft"] { - width: 34px; + min-width: 34px; margin-left: 66px; } diff --git a/lib/ts/recipe/thirdparty/index.ts b/lib/ts/recipe/thirdparty/index.ts index 182ff0a98..ab71e10f7 100644 --- a/lib/ts/recipe/thirdparty/index.ts +++ b/lib/ts/recipe/thirdparty/index.ts @@ -23,13 +23,19 @@ import { RecipeInterface, ThirdPartyUserType as User } from "supertokens-web-js/ import { getNormalisedUserContext } from "../../utils"; import { RecipeComponentsOverrideContextProvider } from "./componentOverrideContext"; +import ActiveDirectory from "./providers/activeDirectory"; import Apple from "./providers/apple"; import Bitbucket from "./providers/bitbucket"; +import BoxySAML from "./providers/boxySaml"; import Discord from "./providers/discord"; import Facebook from "./providers/facebook"; import Github from "./providers/github"; import Gitlab from "./providers/gitlab"; import Google from "./providers/google"; +import GoogleWorkspaces from "./providers/googleWorkspaces"; +import LinkedIn from "./providers/linkedIn"; +import Okta from "./providers/okta"; +import Twitter from "./providers/twitter"; import ThirdParty from "./recipe"; import { UserInput, GetRedirectionURLContext, PreAPIHookContext, OnHandleEventContext } from "./types"; import { redirectToThirdPartyLogin as UtilsRedirectToThirdPartyLogin } from "./utils"; @@ -75,20 +81,10 @@ export default class Wrapper { }); } - static async setStateAndOtherInfoToStorage(input: { - state: StateObject & CustomStateProperties; - userContext?: any; - }): Promise { - return ThirdParty.getInstanceOrThrow().webJSRecipe.setStateAndOtherInfoToStorage({ - ...input, - userContext: getNormalisedUserContext(input.userContext), - }); - } - static async getAuthorisationURLWithQueryParamsAndSetState(input: { - providerId: string; - authorisationURL: string; - providerClientId?: string; + thirdPartyId: string; + frontendRedirectURI: string; + redirectURIOnProviderDashboard?: string; userContext?: any; options?: RecipeFunctionOptions; }): Promise { @@ -98,21 +94,6 @@ export default class Wrapper { }); } - static async getAuthorisationURLFromBackend(input: { - providerId: string; - userContext?: any; - options?: RecipeFunctionOptions; - }): Promise<{ - status: "OK"; - url: string; - fetchResponse: Response; - }> { - return ThirdParty.getInstanceOrThrow().webJSRecipe.getAuthorisationURLFromBackend({ - ...input, - userContext: getNormalisedUserContext(input.userContext), - }); - } - static async signInAndUp(input?: { userContext?: any; options?: RecipeFunctionOptions }): Promise< | { status: "OK"; @@ -131,45 +112,6 @@ export default class Wrapper { }); } - static generateStateToSendToOAuthProvider(input?: { userContext?: any }): string { - return ThirdParty.getInstanceOrThrow().webJSRecipe.generateStateToSendToOAuthProvider({ - ...input, - userContext: getNormalisedUserContext(input?.userContext), - }); - } - - static async verifyAndGetStateOrThrowError(input: { - stateFromAuthProvider: string | undefined; - stateObjectFromStorage: (StateObject & CustomStateProperties) | undefined; - userContext?: any; - }): Promise { - return ThirdParty.getInstanceOrThrow().webJSRecipe.verifyAndGetStateOrThrowError({ - ...input, - userContext: getNormalisedUserContext(input.userContext), - }); - } - - static getAuthCodeFromURL(input?: { userContext?: any }): string { - return ThirdParty.getInstanceOrThrow().webJSRecipe.getAuthCodeFromURL({ - ...input, - userContext: getNormalisedUserContext(input?.userContext), - }); - } - - static getAuthErrorFromURL(input?: { userContext?: any }): string | undefined { - return ThirdParty.getInstanceOrThrow().webJSRecipe.getAuthErrorFromURL({ - ...input, - userContext: getNormalisedUserContext(input?.userContext), - }); - } - - static getAuthStateFromURL(input?: { userContext?: any }): string { - return ThirdParty.getInstanceOrThrow().webJSRecipe.getAuthStateFromURL({ - ...input, - userContext: getNormalisedUserContext(input?.userContext), - }); - } - /* * Providers */ @@ -179,7 +121,12 @@ export default class Wrapper { static Github = Github; static Gitlab = Gitlab; static Google = Google; + static GoogleWorkspaces = GoogleWorkspaces; static Facebook = Facebook; + static LinkedIn = LinkedIn; + static ActiveDirectory = ActiveDirectory; + static BoxySAML = BoxySAML; + static Okta = Okta; static ComponentsOverrideProvider = RecipeComponentsOverrideContextProvider; } @@ -187,14 +134,7 @@ const init = Wrapper.init; const signOut = Wrapper.signOut; const redirectToThirdPartyLogin = Wrapper.redirectToThirdPartyLogin; const getStateAndOtherInfoFromStorage = Wrapper.getStateAndOtherInfoFromStorage; -const setStateAndOtherInfoToStorage = Wrapper.setStateAndOtherInfoToStorage; const getAuthorisationURLWithQueryParamsAndSetState = Wrapper.getAuthorisationURLWithQueryParamsAndSetState; -const getAuthorisationURLFromBackend = Wrapper.getAuthorisationURLFromBackend; -const generateStateToSendToOAuthProvider = Wrapper.generateStateToSendToOAuthProvider; -const verifyAndGetStateOrThrowError = Wrapper.verifyAndGetStateOrThrowError; -const getAuthCodeFromURL = Wrapper.getAuthCodeFromURL; -const getAuthErrorFromURL = Wrapper.getAuthErrorFromURL; -const getAuthStateFromURL = Wrapper.getAuthStateFromURL; const signInAndUp = Wrapper.signInAndUp; const ThirdpartyComponentsOverrideProvider = Wrapper.ComponentsOverrideProvider; @@ -206,16 +146,15 @@ export { Github, Gitlab, Google, + GoogleWorkspaces, Facebook, + LinkedIn, + ActiveDirectory, + BoxySAML, + Okta, + Twitter, getStateAndOtherInfoFromStorage, - setStateAndOtherInfoToStorage, getAuthorisationURLWithQueryParamsAndSetState, - getAuthorisationURLFromBackend, - generateStateToSendToOAuthProvider, - verifyAndGetStateOrThrowError, - getAuthCodeFromURL, - getAuthErrorFromURL, - getAuthStateFromURL, signInAndUp, redirectToThirdPartyLogin, ThirdpartyComponentsOverrideProvider, diff --git a/lib/ts/recipe/thirdparty/prebuiltui.tsx b/lib/ts/recipe/thirdparty/prebuiltui.tsx index 95d0fa5bc..a35e85142 100644 --- a/lib/ts/recipe/thirdparty/prebuiltui.tsx +++ b/lib/ts/recipe/thirdparty/prebuiltui.tsx @@ -25,7 +25,7 @@ import type { PropsWithChildren } from "react"; export class ThirdPartyPreBuiltUI extends RecipeRouter { static instance?: ThirdPartyPreBuiltUI; - constructor(private readonly recipeInstance: ThirdParty) { + constructor(public readonly recipeInstance: ThirdParty) { super(); } @@ -67,19 +67,19 @@ export class ThirdPartyPreBuiltUI extends RecipeRouter { features[normalisedFullPath.getAsStringDangerous()] = { matches: matchRecipeIdUsingQueryParams(this.recipeInstance.config.recipeId), component: (prop: any) => this.getFeatureComponent("signinup", prop, useComponentOverrides), + recipeID: ThirdParty.RECIPE_ID, }; } - // Add callback route for each provider. - this.recipeInstance.config.signInAndUpFeature.providers.forEach((provider) => { - const normalisedFullPath = this.recipeInstance.config.appInfo.websiteBasePath.appendPath( - new NormalisedURLPath(`/callback/${provider.id}`) - ); - features[normalisedFullPath.getAsStringDangerous()] = { - matches: () => matchRecipeIdUsingState(this.recipeInstance, {}), - component: (prop: any) => this.getFeatureComponent("signinupcallback", prop, useComponentOverrides), - }; - }); + // Add callback route for all provider + const normalisedFullPath = this.recipeInstance.config.appInfo.websiteBasePath.appendPath( + new NormalisedURLPath("/callback/:id") + ); + features[normalisedFullPath.getAsStringDangerous()] = { + matches: () => matchRecipeIdUsingState(this.recipeInstance, {}), + component: (prop: any) => this.getFeatureComponent("signinupcallback", prop, useComponentOverrides), + recipeID: ThirdParty.RECIPE_ID, + }; return features; }; diff --git a/lib/ts/recipe/thirdparty/providers/activeDirectory.tsx b/lib/ts/recipe/thirdparty/providers/activeDirectory.tsx new file mode 100644 index 000000000..d884a3dfc --- /dev/null +++ b/lib/ts/recipe/thirdparty/providers/activeDirectory.tsx @@ -0,0 +1,96 @@ +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +/* + * Imports. + */ +import { isTest } from "../../../utils"; + +import type { BuiltInProviderConfig } from "./types"; + +import Provider from "."; + +/* + * Class. + */ +export default class ActiveDirectory extends Provider { + /* + * Static Attributes. + */ + private static instance?: ActiveDirectory; + + /* + * Constructor. + */ + constructor(config?: BuiltInProviderConfig) { + super({ + id: "active-directory", + name: "Active Directory", + ...config, + }); + } + + getLogo = (): JSX.Element => { + return ( + + + + + + + + + + + + + + ); + }; + + /* + * Static Methods + */ + static init(config?: BuiltInProviderConfig): Provider { + if (ActiveDirectory.instance !== undefined) { + console.warn("ActiveDirectory Provider was already initialized"); + return ActiveDirectory.instance; + } + ActiveDirectory.instance = new ActiveDirectory(config); + return ActiveDirectory.instance; + } + + /* + * Tests methods. + */ + static reset(): void { + if (!isTest()) { + return; + } + ActiveDirectory.instance = undefined; + return; + } +} diff --git a/lib/ts/recipe/thirdparty/providers/apple.tsx b/lib/ts/recipe/thirdparty/providers/apple.tsx index 55afb5239..6d10a507f 100644 --- a/lib/ts/recipe/thirdparty/providers/apple.tsx +++ b/lib/ts/recipe/thirdparty/providers/apple.tsx @@ -15,6 +15,9 @@ /* * Imports. */ +import NormalisedURLPath from "supertokens-web-js/lib/build/normalisedURLPath"; + +import SuperTokens from "../../../superTokens"; import { isTest } from "../../../utils"; import type { BuiltInProviderConfig } from "./types"; @@ -30,8 +33,6 @@ export default class Apple extends Provider { */ private static instance?: Apple; - buttonComponent?: JSX.Element; - /* * Constructor. */ @@ -39,25 +40,10 @@ export default class Apple extends Provider { super({ id: "apple", name: "Apple", - clientId: config?.clientId, - getRedirectURL: config?.getRedirectURL, + ...config, }); - - if (config === undefined) { - return; - } - - this.buttonComponent = config.buttonComponent; } - getButton = (): JSX.Element => { - if (this.buttonComponent !== undefined) { - return this.buttonComponent; - } - - return this.getDefaultButton(); - }; - getLogo = (): JSX.Element => { return ( @@ -108,6 +94,15 @@ export default class Apple extends Provider { ); }; + getRedirectURIOnProviderDashboard(): string | undefined { + const domain = SuperTokens.getInstanceOrThrow().appInfo.apiDomain.getAsStringDangerous(); + const callbackPath = new NormalisedURLPath(`/callback/${this.id}`); + const path = SuperTokens.getInstanceOrThrow() + .appInfo.apiBasePath.appendPath(callbackPath) + .getAsStringDangerous(); + return `${domain}${path}`; + } + /* * Static Methods */ diff --git a/lib/ts/recipe/thirdparty/providers/bitbucket.tsx b/lib/ts/recipe/thirdparty/providers/bitbucket.tsx index 8fb4bc469..9d90f25af 100644 --- a/lib/ts/recipe/thirdparty/providers/bitbucket.tsx +++ b/lib/ts/recipe/thirdparty/providers/bitbucket.tsx @@ -30,8 +30,6 @@ export default class Bitbucket extends Provider { */ private static instance?: Bitbucket; - buttonComponent?: JSX.Element; - /* * Constructor. */ @@ -39,25 +37,10 @@ export default class Bitbucket extends Provider { super({ id: "bitbucket", name: "Bitbucket", - clientId: config?.clientId, - getRedirectURL: config?.getRedirectURL, + ...config, }); - - if (config === undefined) { - return; - } - - this.buttonComponent = config.buttonComponent; } - getButton = (): JSX.Element => { - if (this.buttonComponent !== undefined) { - return this.buttonComponent; - } - - return this.getDefaultButton(); - }; - getLogo = (): JSX.Element => { return ( diff --git a/lib/ts/recipe/thirdparty/providers/boxySaml.tsx b/lib/ts/recipe/thirdparty/providers/boxySaml.tsx new file mode 100644 index 000000000..138224488 --- /dev/null +++ b/lib/ts/recipe/thirdparty/providers/boxySaml.tsx @@ -0,0 +1,79 @@ +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +/* + * Imports. + */ +import { isTest } from "../../../utils"; + +import type { BuiltInProviderConfig } from "./types"; + +import Provider from "."; + +/* + * Class. + */ +export default class BoxySAML extends Provider { + /* + * Static Attributes. + */ + private static instance?: BoxySAML; + + /* + * Constructor. + */ + constructor(config?: BuiltInProviderConfig) { + super({ + id: "boxy-saml", + name: "BoxySAML", + ...config, + }); + } + + getLogo = (): JSX.Element => { + return ( + + + + ); + }; + + /* + * Static Methods + */ + static init(config?: BuiltInProviderConfig): Provider { + if (BoxySAML.instance !== undefined) { + console.warn("BoxySAML Provider was already initialized"); + return BoxySAML.instance; + } + BoxySAML.instance = new BoxySAML(config); + return BoxySAML.instance; + } + + /* + * Tests methods. + */ + static reset(): void { + if (!isTest()) { + return; + } + BoxySAML.instance = undefined; + return; + } +} diff --git a/lib/ts/recipe/thirdparty/providers/custom.tsx b/lib/ts/recipe/thirdparty/providers/custom.tsx index 87fa3859f..395e8a4ad 100644 --- a/lib/ts/recipe/thirdparty/providers/custom.tsx +++ b/lib/ts/recipe/thirdparty/providers/custom.tsx @@ -23,31 +23,13 @@ import Provider from "."; * Class. */ export default class Custom extends Provider { - /* - * Static Attributes. - */ - - buttonComponent?: JSX.Element | (() => JSX.Element); - /* * Constructor. */ constructor(config: CustomProviderConfig) { super(config); - this.buttonComponent = config.buttonComponent; } - getButton = (): JSX.Element => { - if (this.buttonComponent !== undefined) { - if (typeof this.buttonComponent === "function") { - return this.buttonComponent(); - } - return this.buttonComponent; - } - - return this.getDefaultButton("Custom"); - }; - getLogo = (): undefined => { return undefined; }; diff --git a/lib/ts/recipe/thirdparty/providers/discord.tsx b/lib/ts/recipe/thirdparty/providers/discord.tsx index 0d3d3cf40..8f95cfa64 100644 --- a/lib/ts/recipe/thirdparty/providers/discord.tsx +++ b/lib/ts/recipe/thirdparty/providers/discord.tsx @@ -30,8 +30,6 @@ export default class Discord extends Provider { */ private static instance?: Discord; - buttonComponent?: JSX.Element; - /* * Constructor. */ @@ -39,25 +37,10 @@ export default class Discord extends Provider { super({ id: "discord", name: "Discord", - clientId: config?.clientId, - getRedirectURL: config?.getRedirectURL, + ...config, }); - - if (config === undefined) { - return; - } - - this.buttonComponent = config.buttonComponent; } - getButton = (): JSX.Element => { - if (this.buttonComponent !== undefined) { - return this.buttonComponent; - } - - return this.getDefaultButton(); - }; - getLogo = (): JSX.Element => { return ( diff --git a/lib/ts/recipe/thirdparty/providers/facebook.tsx b/lib/ts/recipe/thirdparty/providers/facebook.tsx index f46d416ed..24340cae0 100644 --- a/lib/ts/recipe/thirdparty/providers/facebook.tsx +++ b/lib/ts/recipe/thirdparty/providers/facebook.tsx @@ -30,8 +30,6 @@ export default class Facebook extends Provider { */ private static instance?: Facebook; - buttonComponent?: JSX.Element; - /* * Constructor. */ @@ -39,25 +37,10 @@ export default class Facebook extends Provider { super({ id: "facebook", name: "Facebook", - clientId: config?.clientId, - getRedirectURL: config?.getRedirectURL, + ...config, }); - - if (config === undefined) { - return; - } - - this.buttonComponent = config.buttonComponent; } - getButton = (): JSX.Element => { - if (this.buttonComponent !== undefined) { - return this.buttonComponent; - } - - return this.getDefaultButton(); - }; - getLogo = (): JSX.Element => { return ( diff --git a/lib/ts/recipe/thirdparty/providers/github.tsx b/lib/ts/recipe/thirdparty/providers/github.tsx index 2e67a6d9a..618c8a6c2 100644 --- a/lib/ts/recipe/thirdparty/providers/github.tsx +++ b/lib/ts/recipe/thirdparty/providers/github.tsx @@ -30,8 +30,6 @@ export default class Github extends Provider { */ private static instance?: Github; - buttonComponent?: JSX.Element; - /* * Constructor. */ @@ -39,25 +37,10 @@ export default class Github extends Provider { super({ id: "github", name: "GitHub", - clientId: config?.clientId, - getRedirectURL: config?.getRedirectURL, + ...config, }); - - if (config === undefined) { - return; - } - - this.buttonComponent = config.buttonComponent; } - getButton = (): JSX.Element => { - if (this.buttonComponent !== undefined) { - return this.buttonComponent; - } - - return this.getDefaultButton(); - }; - getLogo = (): JSX.Element => { return ( diff --git a/lib/ts/recipe/thirdparty/providers/gitlab.tsx b/lib/ts/recipe/thirdparty/providers/gitlab.tsx index 820e6b6b2..5054c23ca 100644 --- a/lib/ts/recipe/thirdparty/providers/gitlab.tsx +++ b/lib/ts/recipe/thirdparty/providers/gitlab.tsx @@ -30,8 +30,6 @@ export default class Gitlab extends Provider { */ private static instance?: Gitlab; - buttonComponent?: JSX.Element; - /* * Constructor. */ @@ -39,25 +37,10 @@ export default class Gitlab extends Provider { super({ id: "gitlab", name: "Gitlab", - clientId: config?.clientId, - getRedirectURL: config?.getRedirectURL, + ...config, }); - - if (config === undefined) { - return; - } - - this.buttonComponent = config.buttonComponent; } - getButton = (): JSX.Element => { - if (this.buttonComponent !== undefined) { - return this.buttonComponent; - } - - return this.getDefaultButton(); - }; - getLogo = (): JSX.Element => { return ( diff --git a/lib/ts/recipe/thirdparty/providers/google.tsx b/lib/ts/recipe/thirdparty/providers/google.tsx index 266c82263..2791f4ccf 100644 --- a/lib/ts/recipe/thirdparty/providers/google.tsx +++ b/lib/ts/recipe/thirdparty/providers/google.tsx @@ -30,8 +30,6 @@ export default class Google extends Provider { */ private static instance?: Google; - buttonComponent?: JSX.Element; - /* * Constructor. */ @@ -39,25 +37,10 @@ export default class Google extends Provider { super({ id: "google", name: "Google", - clientId: config?.clientId, - getRedirectURL: config?.getRedirectURL, + ...config, }); - - if (config === undefined) { - return; - } - - this.buttonComponent = config.buttonComponent; } - getButton = (): JSX.Element => { - if (this.buttonComponent !== undefined) { - return this.buttonComponent; - } - - return this.getDefaultButton(); - }; - getLogo = (): JSX.Element => { return ( diff --git a/lib/ts/recipe/thirdparty/providers/googleWorkspaces.tsx b/lib/ts/recipe/thirdparty/providers/googleWorkspaces.tsx new file mode 100644 index 000000000..e81a717a5 --- /dev/null +++ b/lib/ts/recipe/thirdparty/providers/googleWorkspaces.tsx @@ -0,0 +1,80 @@ +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +/* + * Imports. + */ +import { isTest } from "../../../utils"; + +import type { BuiltInProviderConfig } from "./types"; + +import Provider from "."; + +export default class GoogleWorkspaces extends Provider { + private static instance?: GoogleWorkspaces; + + constructor(config?: BuiltInProviderConfig) { + super({ + id: "google-workspaces", + name: "Google Workspaces", + ...config, + }); + } + + getLogo = (): JSX.Element => { + return ( + + + + + + + ); + }; + + /* + * Static Methods + */ + static init(config?: BuiltInProviderConfig): Provider { + if (GoogleWorkspaces.instance !== undefined) { + console.warn("GoogleWorkspaces Provider was already initialized"); + return GoogleWorkspaces.instance; + } + GoogleWorkspaces.instance = new GoogleWorkspaces(config); + return GoogleWorkspaces.instance; + } + + /* + * Tests methods. + */ + static reset(): void { + if (!isTest()) { + return; + } + GoogleWorkspaces.instance = undefined; + return; + } +} diff --git a/lib/ts/recipe/thirdparty/providers/index.tsx b/lib/ts/recipe/thirdparty/providers/index.tsx index f2d46903b..11716e499 100644 --- a/lib/ts/recipe/thirdparty/providers/index.tsx +++ b/lib/ts/recipe/thirdparty/providers/index.tsx @@ -20,63 +20,45 @@ import ProviderButton from "../components/library/providerButton"; import type { ProviderConfig } from "./types"; -/* - * Imports. - */ - -/* - * Class. - */ export default abstract class Provider { - /* - * Instance Attributes. - */ - id: string; - name: string; - getRedirectURL: () => string; - clientId?: string; - - /* - * Constructor. - */ + get id(): string { + return this.config.id; + } - constructor(config: ProviderConfig) { - this.id = config.id; - this.name = config.name; - this.clientId = config.clientId; - this.getRedirectURL = - config.getRedirectURL !== undefined ? config.getRedirectURL : () => this.defaultGetRedirectURL(); + get name(): string { + return this.config.name; } - /* - * Components. - */ + constructor(public readonly config: ProviderConfig) {} - getDefaultButton(name?: string): JSX.Element { - const providerName = name !== undefined ? name : this.name; - return ; - } + getRedirectURL(): string { + if (this.config.getRedirectURL) { + return this.config.getRedirectURL(this.config.id); + } - defaultGetRedirectURL(): string { const domain = SuperTokens.getInstanceOrThrow().appInfo.websiteDomain.getAsStringDangerous(); - const callbackPath = new NormalisedURLPath(`/callback/${this.id}`); + const callbackPath = new NormalisedURLPath(`/callback/${this.config.id}`); const path = SuperTokens.getInstanceOrThrow() .appInfo.websiteBasePath.appendPath(callbackPath) .getAsStringDangerous(); return `${domain}${path}`; } - abstract getButton(): JSX.Element; - abstract getLogo(): JSX.Element | undefined; + getRedirectURIOnProviderDashboard(): string | undefined { + return undefined; + } - /* - * State management. - */ + getButton = (name?: string): JSX.Element => { + if (this.config.buttonComponent !== undefined) { + if (typeof this.config.buttonComponent === "function") { + return ; + } + return this.config.buttonComponent; + } - generateState = (): string => { - // Generate state using algorithm described in https://github.com/supertokens/supertokens-auth-react/issues/154#issue-796867579 - return `${1e20}`.replace(/[018]/g, (c) => - (parseInt(c) ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (parseInt(c) / 4)))).toString(16) - ); + const providerName = name !== undefined ? name : this.name; + return ; }; + + abstract getLogo(): JSX.Element | undefined; } diff --git a/lib/ts/recipe/thirdparty/providers/linkedIn.tsx b/lib/ts/recipe/thirdparty/providers/linkedIn.tsx new file mode 100644 index 000000000..46644b7e1 --- /dev/null +++ b/lib/ts/recipe/thirdparty/providers/linkedIn.tsx @@ -0,0 +1,81 @@ +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +/* + * Imports. + */ +import { isTest } from "../../../utils"; + +import type { BuiltInProviderConfig } from "./types"; + +import Provider from "."; + +/* + * Class. + */ +export default class LinkedIn extends Provider { + /* + * Static Attributes. + */ + private static instance?: LinkedIn; + + /* + * Constructor. + */ + constructor(config?: BuiltInProviderConfig) { + super({ + id: "linkedin", + name: "LinkedIn", + ...config, + }); + } + + getLogo = (): JSX.Element => { + return ( + + + + + ); + }; + + /* + * Static Methods + */ + static init(config?: BuiltInProviderConfig): Provider { + if (LinkedIn.instance !== undefined) { + console.warn("LinkedIn Provider was already initialized"); + return LinkedIn.instance; + } + LinkedIn.instance = new LinkedIn(config); + return LinkedIn.instance; + } + + /* + * Tests methods. + */ + static reset(): void { + if (!isTest()) { + return; + } + LinkedIn.instance = undefined; + return; + } +} diff --git a/lib/ts/recipe/thirdparty/providers/okta.tsx b/lib/ts/recipe/thirdparty/providers/okta.tsx new file mode 100644 index 000000000..ca0d44c62 --- /dev/null +++ b/lib/ts/recipe/thirdparty/providers/okta.tsx @@ -0,0 +1,79 @@ +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +/* + * Imports. + */ +import { isTest } from "../../../utils"; + +import type { BuiltInProviderConfig } from "./types"; + +import Provider from "."; + +/* + * Class. + */ +export default class Okta extends Provider { + /* + * Static Attributes. + */ + private static instance?: Okta; + + /* + * Constructor. + */ + constructor(config?: BuiltInProviderConfig) { + super({ + id: "okta", + name: "Okta", + ...config, + }); + } + + getLogo = (): JSX.Element => { + return ( + + + + ); + }; + + /* + * Static Methods + */ + static init(config?: BuiltInProviderConfig): Provider { + if (Okta.instance !== undefined) { + console.warn("Okta Provider was already initialized"); + return Okta.instance; + } + Okta.instance = new Okta(config); + return Okta.instance; + } + + /* + * Tests methods. + */ + static reset(): void { + if (!isTest()) { + return; + } + Okta.instance = undefined; + return; + } +} diff --git a/lib/ts/recipe/thirdparty/providers/twitter.tsx b/lib/ts/recipe/thirdparty/providers/twitter.tsx index 5698cdbdf..2f29ce637 100644 --- a/lib/ts/recipe/thirdparty/providers/twitter.tsx +++ b/lib/ts/recipe/thirdparty/providers/twitter.tsx @@ -30,8 +30,6 @@ export default class Twitter extends Provider { */ private static instance?: Twitter; - buttonComponent?: JSX.Element; - /* * Constructor. */ @@ -39,25 +37,10 @@ export default class Twitter extends Provider { super({ id: "twitter", name: "Twitter", - clientId: config?.clientId, - getRedirectURL: config?.getRedirectURL, + ...config, }); - - if (config === undefined) { - return; - } - - this.buttonComponent = config.buttonComponent; } - getButton = (): JSX.Element => { - if (this.buttonComponent !== undefined) { - return this.buttonComponent; - } - - return this.getDefaultButton(); - }; - getLogo = (): JSX.Element => { return ( diff --git a/lib/ts/recipe/thirdparty/providers/types.ts b/lib/ts/recipe/thirdparty/providers/types.ts index 30175ac3c..94f3facc0 100644 --- a/lib/ts/recipe/thirdparty/providers/types.ts +++ b/lib/ts/recipe/thirdparty/providers/types.ts @@ -12,6 +12,8 @@ * License for the specific language governing permissions and limitations * under the License. */ +import type { FC } from "react"; + export type ProviderConfig = { /* * Provider Id @@ -23,23 +25,24 @@ export type ProviderConfig = { */ name: string; - clientId?: string; // optional clientId to be sent during signinup - getRedirectURL?: () => string; + getRedirectURL?: (id: string) => string; + buttonComponent?: BuiltInProviderConfig["buttonComponent"]; }; export type BuiltInProviderConfig = { + id?: string; + name?: string; + /* * Button Component */ - buttonComponent?: JSX.Element; - - clientId?: string; // optional clientId to be sent during signinup API + buttonComponent?: FC<{ name: string }> | { new (props: { name: string }): React.Component } | JSX.Element; /* * Where to redirect the user during the callback. * Defaults to `${websiteDomain}/${websiteBasePath}/callback/${id}` */ - getRedirectURL?: () => string; + getRedirectURL?: (id: string) => string; }; export type CustomProviderConfig = { @@ -53,16 +56,14 @@ export type CustomProviderConfig = { */ name: string; - clientId?: string; - /* * Button Component */ - buttonComponent?: JSX.Element; + buttonComponent?: FC<{ name: string }> | { new (props: { name: string }): React.Component } | JSX.Element; /* * Where to redirect the user during the callback. * Defaults to `${websiteDomain}/${websiteBasePath}/callback/${id}` */ - getRedirectURL?: () => string; + getRedirectURL?: (id: string) => string; }; diff --git a/lib/ts/recipe/thirdparty/recipe.tsx b/lib/ts/recipe/thirdparty/recipe.tsx index 276736c26..6ab2d5bdd 100644 --- a/lib/ts/recipe/thirdparty/recipe.tsx +++ b/lib/ts/recipe/thirdparty/recipe.tsx @@ -20,6 +20,7 @@ import ThirdpartyWebJS from "supertokens-web-js/recipe/thirdparty"; import { SSR_ERROR } from "../../constants"; +import SuperTokens from "../../superTokens"; import { isTest } from "../../utils"; import AuthRecipe from "../authRecipe"; @@ -48,11 +49,15 @@ export default class ThirdParty extends AuthRecipe< > { static instance?: ThirdParty; static RECIPE_ID = "thirdparty"; + recipeID = ThirdParty.RECIPE_ID; constructor( config: NormalisedConfigWithAppInfoAndRecipeID, public readonly webJSRecipe: WebJSRecipeInterface = ThirdpartyWebJS ) { + if (SuperTokens.usesDynamicLoginMethods === false && config.signInAndUpFeature.providers.length === 0) { + throw new Error("ThirdParty signInAndUpFeature providers array cannot be empty."); + } super(config); } @@ -68,6 +73,7 @@ export default class ThirdParty extends AuthRecipe< ): RecipeInitResult { const normalisedConfig = normaliseThirdPartyConfig(config); return { + recipeID: ThirdParty.RECIPE_ID, authReact: ( appInfo: NormalisedAppInfo ): RecipeModule< diff --git a/lib/ts/recipe/thirdparty/types.ts b/lib/ts/recipe/thirdparty/types.ts index 2f61b1512..cc93bb2b3 100644 --- a/lib/ts/recipe/thirdparty/types.ts +++ b/lib/ts/recipe/thirdparty/types.ts @@ -20,7 +20,7 @@ import type { SignInAndUpCallbackTheme } from "./components/themes/signInAndUpCa import type Provider from "./providers"; import type { CustomProviderConfig } from "./providers/types"; import type { ComponentOverride } from "../../components/componentOverride/componentOverride"; -import type { FeatureBaseConfig, NormalisedBaseConfig } from "../../types"; +import type { FeatureBaseConfig, NormalisedBaseConfig, WebJSRecipeInterface } from "../../types"; import type { GetRedirectionURLContext as AuthRecipeModuleGetRedirectionURLContext, OnHandleEventContext as AuthRecipeModuleOnHandleEventContext, @@ -29,6 +29,7 @@ import type { UserInput as AuthRecipeModuleUserInput, } from "../authRecipe/types"; import type { OverrideableBuilder } from "supertokens-js-override"; +import type ThirdPartyWebJS from "supertokens-web-js/recipe/thirdparty"; import type { StateObject as WebJsStateObject, RecipeInterface } from "supertokens-web-js/recipe/thirdparty"; export type ComponentOverrideMap = { @@ -132,11 +133,8 @@ export type SignInAndUpThemeProps = { error: string | undefined; }; dispatch: (action: ThirdPartySignInUpActions) => void; - providers: { - id: string; - buttonComponent: JSX.Element; - }[]; - recipeImplementation: RecipeInterface; + providers: Pick[]; + recipeImplementation: WebJSRecipeInterface; config: NormalisedConfig; }; export type ThirdPartySignInUpChildProps = Omit; diff --git a/lib/ts/recipe/thirdparty/utils.ts b/lib/ts/recipe/thirdparty/utils.ts index 42786c57b..88fedfe56 100644 --- a/lib/ts/recipe/thirdparty/utils.ts +++ b/lib/ts/recipe/thirdparty/utils.ts @@ -16,11 +16,26 @@ /* * Imports. */ +import SuperTokens from "../../superTokens"; import { redirectWithFullPageReload } from "../../utils"; import { normaliseAuthRecipe } from "../authRecipe/utils"; +import Multitenancy from "../multitenancy/recipe"; import Provider from "./providers"; +import ActiveDirectory from "./providers/activeDirectory"; +import Apple from "./providers/apple"; +import Bitbucket from "./providers/bitbucket"; +import BoxySAML from "./providers/boxySaml"; import Custom from "./providers/custom"; +import Discord from "./providers/discord"; +import Facebook from "./providers/facebook"; +import Github from "./providers/github"; +import Gitlab from "./providers/gitlab"; +import Google from "./providers/google"; +import GoogleWorkspaces from "./providers/googleWorkspaces"; +import LinkedIn from "./providers/linkedIn"; +import Okta from "./providers/okta"; +import Twitter from "./providers/twitter"; import type Recipe from "./recipe"; import type { @@ -30,7 +45,9 @@ import type { Config, CustomStateProperties, } from "./types"; +import type { WebJSRecipeInterface } from "../../types"; import type { RecipeInterface } from "supertokens-web-js/recipe/thirdparty"; +import type ThirdPartyWebJS from "supertokens-web-js/recipe/thirdparty"; /* * Methods. @@ -69,10 +86,6 @@ export function normaliseSignInAndUpFeature( config.providers = []; } - if (config.providers.length === 0) { - throw new Error("ThirdParty signInAndUpFeature providers array cannot be empty."); - } - const disableDefaultUI = config.disableDefaultUI === true; const style = config.style !== undefined ? config.style : ""; const privacyPolicyLink = config.privacyPolicyLink; @@ -123,20 +136,108 @@ export async function redirectToThirdPartyLogin(input: { thirdPartyId: string; config: NormalisedConfig; userContext: any; - recipeImplementation: RecipeInterface; + recipeImplementation: WebJSRecipeInterface; }): Promise<{ status: "OK" | "ERROR" }> { - const provider = input.config.signInAndUpFeature.providers.find((p) => p.id === input.thirdPartyId); + const providers = mergeProviders({ + tenantProviders: Multitenancy.getInstanceOrThrow().getLoadedDynamicLoginMethods()?.thirdparty.providers, + clientProviders: input.config.signInAndUpFeature.providers, + }); + + const provider = providers.find((p) => p.id === input.thirdPartyId); if (provider === undefined) { return { status: "ERROR" }; } const response = await input.recipeImplementation.getAuthorisationURLWithQueryParamsAndSetState({ - providerId: input.thirdPartyId, - authorisationURL: provider.getRedirectURL(), - providerClientId: provider.clientId, + thirdPartyId: input.thirdPartyId, + frontendRedirectURI: provider.getRedirectURL(), + redirectURIOnProviderDashboard: provider.getRedirectURIOnProviderDashboard(), userContext: input.userContext, }); redirectWithFullPageReload(response); return { status: "OK" }; } + +export const mergeProviders = ({ + tenantProviders = [], + clientProviders = [], +}: { + tenantProviders?: { + id: string; + name: string; + }[]; + clientProviders: Provider[]; +}): Pick[] => { + const builtInProvidersMap = { + apple: Apple, + google: Google, + "google-workspaces": GoogleWorkspaces, + github: Github, + "active-directory": ActiveDirectory, + bitbucket: Bitbucket, + "boxy-saml": BoxySAML, + discord: Discord, + gitlab: Gitlab, + linkedin: LinkedIn, + okta: Okta, + twitter: Twitter, + facebook: Facebook, + } as const; + + const usesDynamicLoginMethods = SuperTokens.usesDynamicLoginMethods === true; + if (usesDynamicLoginMethods === false && clientProviders?.length === 0) { + throw new Error("ThirdParty signInAndUpFeature providers array cannot be empty."); + } + // If we are not using dynamic login methods or if there is no providers + // from the core we use frontend initialized providers + if (usesDynamicLoginMethods === false || tenantProviders.length === 0) { + return clientProviders; + } + const providers: Pick< + Provider, + "id" | "getButton" | "getRedirectURL" | "getRedirectURIOnProviderDashboard" | "name" + >[] = []; + + for (const tenantProvider of tenantProviders) { + // try finding exact match + let provider = clientProviders.find((provider) => { + const { id } = tenantProvider; + return provider.id === id; + }); + // if none found try finding by tenantProvider id prefix match only + if (provider === undefined) { + provider = clientProviders.find((provider) => { + const { id } = tenantProvider; + return id.startsWith(provider.id); + }); + } + // means provider is initialized on the frontend and found + if (provider !== undefined) { + providers.push( + Custom.init({ + ...provider.config, + id: tenantProvider.id, + name: tenantProvider.name, + buttonComponent: provider.getButton(tenantProvider.name), + }) + ); + } else { + // try to find and initialize provider from all prebuilt providers list + const providerID = Object.keys(builtInProvidersMap).find((id) => { + return tenantProvider.id === id || tenantProvider.id.startsWith(id); + }); + if (builtInProvidersMap[providerID as keyof typeof builtInProvidersMap]) { + const provider = new builtInProvidersMap[providerID as keyof typeof builtInProvidersMap]({ + id: tenantProvider.id, + name: tenantProvider.name, + }); + providers.push(provider); + } else { + providers.push(Custom.init(tenantProvider)); + } + } + } + + return providers; +}; diff --git a/lib/ts/recipe/thirdpartyemailpassword/components/features/signInAndUp/index.tsx b/lib/ts/recipe/thirdpartyemailpassword/components/features/signInAndUp/index.tsx index d68656db3..ab8b00a68 100644 --- a/lib/ts/recipe/thirdpartyemailpassword/components/features/signInAndUp/index.tsx +++ b/lib/ts/recipe/thirdpartyemailpassword/components/features/signInAndUp/index.tsx @@ -70,8 +70,6 @@ const SignInAndUp: React.FC = (props) => { { error: tpState.error || epState.error } ); - const recipeComponentOverrides = props.useComponentOverrides(); - const combinedTPDispatch = React.useCallback( (action) => { dispatch(action); @@ -79,7 +77,7 @@ const SignInAndUp: React.FC = (props) => { }, [tpDispatch, dispatch] ); - const tpChildProps = useThirdPartyChildProps(props.recipe.thirdPartyRecipe)!; + const tpChildProps = useThirdPartyChildProps(props.recipe.thirdPartyRecipe); const combinedEPDispatch = React.useCallback( (action) => { @@ -93,7 +91,7 @@ const SignInAndUp: React.FC = (props) => { epState, combinedEPDispatch, props.history - )!; + ); const childProps = { emailPasswordRecipe: props.recipe.emailPasswordRecipe, @@ -109,27 +107,34 @@ const SignInAndUp: React.FC = (props) => { epChildProps, }; + return ( + + {/* No custom theme, use default. */} + {props.children === undefined && } + {/* Otherwise, custom theme is provided, propagate props. */} + {props.children && + React.Children.map(props.children, (child) => { + if (React.isValidElement(child)) { + return React.cloneElement(child, childProps); + } + + return child; + })} + + ); +}; + +const SignInAndUpFeatureWrapper: React.FC = (props) => { + const recipeComponentOverrides = props.useComponentOverrides(); return ( - - {/* No custom theme, use default. */} - {props.children === undefined && } - {/* Otherwise, custom theme is provided, propagate props. */} - {props.children && - React.Children.map(props.children, (child) => { - if (React.isValidElement(child)) { - return React.cloneElement(child, childProps); - } - - return child; - })} - + ); }; -export default SignInAndUp; +export default SignInAndUpFeatureWrapper; diff --git a/lib/ts/recipe/thirdpartyemailpassword/components/themes/signInAndUp/index.tsx b/lib/ts/recipe/thirdpartyemailpassword/components/themes/signInAndUp/index.tsx index 8f883233c..d301d4f0c 100644 --- a/lib/ts/recipe/thirdpartyemailpassword/components/themes/signInAndUp/index.tsx +++ b/lib/ts/recipe/thirdpartyemailpassword/components/themes/signInAndUp/index.tsx @@ -20,6 +20,7 @@ import React from "react"; import { SuperTokensBranding } from "../../../../../components/SuperTokensBranding"; import { hasFontDefined } from "../../../../../styles/styles"; +import SuperTokens from "../../../../../superTokens"; import { useTranslation } from "../../../../../translation/translationContext"; import UserContextWrapper from "../../../../../usercontext/userContextWrapper"; import GeneralError from "../../../../emailpassword/components/library/generalError"; @@ -27,6 +28,7 @@ import { SignInFooter } from "../../../../emailpassword/components/themes/signIn import { SignInForm } from "../../../../emailpassword/components/themes/signInAndUp/signInForm"; import { SignUpFooter } from "../../../../emailpassword/components/themes/signInAndUp/signUpFooter"; import { SignUpForm } from "../../../../emailpassword/components/themes/signInAndUp/signUpForm"; +import Multitenancy from "../../../../multitenancy/recipe"; import { ProvidersForm } from "../../../../thirdparty/components/themes/signInAndUp/providersForm"; import { ThemeBase } from "../themeBase"; @@ -36,6 +38,19 @@ import type { ThirdPartyEmailPasswordSignInAndUpThemeProps } from "../../../type const SignInAndUpTheme: React.FC = (props) => { const t = useTranslation(); + const usesDynamicLoginMethods = SuperTokens.usesDynamicLoginMethods; + const dynamicLoginMethods = Multitenancy.getInstanceOrThrow().getLoadedDynamicLoginMethods(); + const hasProviders = props.tpChildProps?.providers !== undefined && props.tpChildProps.providers.length > 0; + const thirdPartyEnabled = + (usesDynamicLoginMethods === false && hasProviders) || + (dynamicLoginMethods?.thirdparty.enabled && hasProviders); + const emailPasswordEnabled = + (props.emailPasswordRecipe !== undefined && usesDynamicLoginMethods === false) || + dynamicLoginMethods?.emailpassword.enabled; + + if (thirdPartyEnabled === false && emailPasswordEnabled === false) { + return null; + } return (
@@ -45,10 +60,10 @@ const SignInAndUpTheme: React.FC = setIsSignUp={(isSignUp) => props.epDispatch({ type: isSignUp ? "setSignUp" : "setSignIn" })} /> {props.commonState.error && } - {props.tpChildProps !== undefined && ( + {props.tpChildProps !== undefined && thirdPartyEnabled && ( )} - {props.config.disableEmailPassword !== true && props.thirdPartyRecipe !== undefined && ( + {emailPasswordEnabled && thirdPartyEnabled && (
@@ -58,6 +73,7 @@ const SignInAndUpTheme: React.FC =
)} {props.epChildProps !== undefined && + emailPasswordEnabled && (props.epState.isSignUp ? ( { - return ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getAuthorisationURLFromBackend({ - ...input, - userContext: getNormalisedUserContext(input.userContext), - }); - } - static async thirdPartySignInAndUp(input?: { userContext?: any; options?: RecipeFunctionOptions }): Promise< | { status: "OK"; @@ -234,20 +232,10 @@ export default class Wrapper { }); } - static async setStateAndOtherInfoToStorage(input: { - state: StateObject & CustomStateProperties; - userContext?: any; - }): Promise { - return ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.setStateAndOtherInfoToStorage({ - ...input, - userContext: getNormalisedUserContext(input.userContext), - }); - } - static async getAuthorisationURLWithQueryParamsAndSetState(input: { - providerId: string; - authorisationURL: string; - providerClientId?: string; + thirdPartyId: string; + frontendRedirectURI: string; + redirectURIOnProviderDashboard?: string; userContext?: any; options?: RecipeFunctionOptions; }): Promise { @@ -257,52 +245,18 @@ export default class Wrapper { }); } - static generateStateToSendToOAuthProvider(input?: { userContext?: any }): string { - return ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.generateStateToSendToOAuthProvider({ - ...input, - userContext: getNormalisedUserContext(input?.userContext), - }); - } - - static async verifyAndGetStateOrThrowError(input: { - stateFromAuthProvider: string | undefined; - stateObjectFromStorage: (StateObject & CustomStateProperties) | undefined; - userContext?: any; - }): Promise { - return ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.verifyAndGetStateOrThrowError({ - ...input, - userContext: getNormalisedUserContext(input.userContext), - }); - } - - static getAuthCodeFromURL(input?: { userContext?: any }): string { - return ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getAuthCodeFromURL({ - ...input, - userContext: getNormalisedUserContext(input?.userContext), - }); - } - - static getAuthErrorFromURL(input?: { userContext?: any }): string | undefined { - return ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getAuthErrorFromURL({ - ...input, - userContext: getNormalisedUserContext(input?.userContext), - }); - } - - static getAuthStateFromURL(input?: { userContext?: any }): string { - return ThirdPartyEmailPassword.getInstanceOrThrow().webJSRecipe.getAuthStateFromURL({ - ...input, - userContext: getNormalisedUserContext(input?.userContext), - }); - } - + static Google = Google; + static GoogleWorkspaces = GoogleWorkspaces; static Apple = Apple; static Bitbucket = Bitbucket; static Discord = Discord; static Github = Github; static Gitlab = Gitlab; - static Google = Google; static Facebook = Facebook; + static LinkedIn = LinkedIn; + static ActiveDirectory = ActiveDirectory; + static BoxySAML = BoxySAML; + static Okta = Okta; static ComponentsOverrideProvider = RecipeComponentsOverrideContextProvider; } @@ -316,16 +270,9 @@ const emailPasswordSignUp = Wrapper.emailPasswordSignUp; const doesEmailExist = Wrapper.doesEmailExist; const getResetPasswordTokenFromURL = Wrapper.getResetPasswordTokenFromURL; const redirectToThirdPartyLogin = Wrapper.redirectToThirdPartyLogin; -const getAuthorisationURLFromBackend = Wrapper.getAuthorisationURLFromBackend; const thirdPartySignInAndUp = Wrapper.thirdPartySignInAndUp; const getStateAndOtherInfoFromStorage = Wrapper.getStateAndOtherInfoFromStorage; -const setStateAndOtherInfoToStorage = Wrapper.setStateAndOtherInfoToStorage; const getAuthorisationURLWithQueryParamsAndSetState = Wrapper.getAuthorisationURLWithQueryParamsAndSetState; -const generateStateToSendToOAuthProvider = Wrapper.generateStateToSendToOAuthProvider; -const verifyAndGetStateOrThrowError = Wrapper.verifyAndGetStateOrThrowError; -const getAuthCodeFromURL = Wrapper.getAuthCodeFromURL; -const getAuthErrorFromURL = Wrapper.getAuthErrorFromURL; -const getAuthStateFromURL = Wrapper.getAuthStateFromURL; export { init, @@ -335,7 +282,12 @@ export { Github, Gitlab, Google, + GoogleWorkspaces, Facebook, + LinkedIn, + ActiveDirectory, + BoxySAML, + Okta, ThirdpartyEmailPasswordComponentsOverrideProvider, signOut, submitNewPassword, @@ -345,16 +297,9 @@ export { doesEmailExist, getResetPasswordTokenFromURL, redirectToThirdPartyLogin, - getAuthorisationURLFromBackend, thirdPartySignInAndUp, getStateAndOtherInfoFromStorage, - setStateAndOtherInfoToStorage, getAuthorisationURLWithQueryParamsAndSetState, - generateStateToSendToOAuthProvider, - verifyAndGetStateOrThrowError, - getAuthCodeFromURL, - getAuthErrorFromURL, - getAuthStateFromURL, GetRedirectionURLContext, PreAPIHookContext, OnHandleEventContext, diff --git a/lib/ts/recipe/thirdpartyemailpassword/prebuiltui.tsx b/lib/ts/recipe/thirdpartyemailpassword/prebuiltui.tsx index 67a82cad6..f56e27c61 100644 --- a/lib/ts/recipe/thirdpartyemailpassword/prebuiltui.tsx +++ b/lib/ts/recipe/thirdpartyemailpassword/prebuiltui.tsx @@ -30,7 +30,7 @@ export class ThirdPartyEmailPasswordPreBuiltUI extends RecipeRouter { private thirdPartyPreBuiltUI: ThirdPartyPreBuiltUI | undefined; private emailPasswordPreBuiltUI: EmailPasswordPreBuiltUI | undefined; - constructor(private readonly recipeInstance: ThirdPartyEmailPassword) { + constructor(public readonly recipeInstance: ThirdPartyEmailPassword) { super(); const { thirdPartyRecipe, emailPasswordRecipe } = recipeInstance; if (thirdPartyRecipe !== undefined) { @@ -94,6 +94,7 @@ export class ThirdPartyEmailPasswordPreBuiltUI extends RecipeRouter { features[normalisedFullPath.getAsStringDangerous()] = { matches: matchRecipeIdUsingQueryParams(this.recipeInstance.config.recipeId), component: (prop: any) => this.getFeatureComponent("signinup", prop, useComponentOverrides), + recipeID: ThirdPartyEmailPassword.RECIPE_ID, }; } diff --git a/lib/ts/recipe/thirdpartyemailpassword/recipe.tsx b/lib/ts/recipe/thirdpartyemailpassword/recipe.tsx index eb1500237..008db717c 100644 --- a/lib/ts/recipe/thirdpartyemailpassword/recipe.tsx +++ b/lib/ts/recipe/thirdpartyemailpassword/recipe.tsx @@ -19,6 +19,7 @@ import ThirdPartyEmailPasswordWebJS from "supertokens-web-js/recipe/thirdpartyemailpassword"; import { SSR_ERROR } from "../../constants"; +import SuperTokens from "../../superTokens"; import { isTest } from "../../utils"; import AuthRecipe from "../authRecipe"; import EmailPassword from "../emailpassword/recipe"; @@ -49,6 +50,8 @@ export default class ThirdPartyEmailPassword extends AuthRecipe< static instance?: ThirdPartyEmailPassword; static RECIPE_ID = "thirdpartyemailpassword"; + recipeID = ThirdPartyEmailPassword.RECIPE_ID; + emailPasswordRecipe: EmailPassword | undefined; thirdPartyRecipe: ThirdParty | undefined; @@ -63,12 +66,21 @@ export default class ThirdPartyEmailPassword extends AuthRecipe< typeof ThirdPartyEmailPasswordWebJS > = ThirdPartyEmailPasswordWebJS ) { + const disableThirdParty = + config.signInAndUpFeature?.providers === undefined || config.signInAndUpFeature.providers.length === 0; + if ( + SuperTokens.usesDynamicLoginMethods === false && + config.disableEmailPassword === true && + disableThirdParty + ) { + throw new Error("You need to enable either email password or third party providers login."); + } super(config); this.emailPasswordRecipe = recipes.emailPasswordInstance !== undefined ? recipes.emailPasswordInstance - : this.config.disableEmailPassword + : SuperTokens.usesDynamicLoginMethods === false && this.config.disableEmailPassword ? undefined : new EmailPassword( { @@ -89,7 +101,7 @@ export default class ThirdPartyEmailPassword extends AuthRecipe< this.thirdPartyRecipe = recipes.thirdPartyInstance !== undefined ? recipes.thirdPartyInstance - : this.config.thirdPartyConfig === undefined + : SuperTokens.usesDynamicLoginMethods === false && disableThirdParty ? undefined : new ThirdParty( { @@ -122,6 +134,7 @@ export default class ThirdPartyEmailPassword extends AuthRecipe< const normalisedConfig = normaliseThirdPartyEmailPasswordConfig(config); return { + recipeID: ThirdPartyEmailPassword.RECIPE_ID, authReact: ( appInfo: NormalisedAppInfo ): RecipeModule< diff --git a/lib/ts/recipe/thirdpartyemailpassword/recipeImplementation/emailPasswordImplementation.ts b/lib/ts/recipe/thirdpartyemailpassword/recipeImplementation/emailPasswordImplementation.ts index adb00b548..10172448b 100644 --- a/lib/ts/recipe/thirdpartyemailpassword/recipeImplementation/emailPasswordImplementation.ts +++ b/lib/ts/recipe/thirdpartyemailpassword/recipeImplementation/emailPasswordImplementation.ts @@ -27,5 +27,6 @@ export default function getRecipeImplementation( submitNewPassword: originalImplementation.submitNewPassword.bind(originalImplementation), signIn: originalImplementation.emailPasswordSignIn.bind(originalImplementation), signUp: originalImplementation.emailPasswordSignUp.bind(originalImplementation), + getTenantIdFromURL: originalImplementation.getTenantIdFromURL.bind(originalImplementation), }; } diff --git a/lib/ts/recipe/thirdpartyemailpassword/recipeImplementation/thirdPartyImplementation.ts b/lib/ts/recipe/thirdpartyemailpassword/recipeImplementation/thirdPartyImplementation.ts index 770f2ef10..76c501d82 100644 --- a/lib/ts/recipe/thirdpartyemailpassword/recipeImplementation/thirdPartyImplementation.ts +++ b/lib/ts/recipe/thirdpartyemailpassword/recipeImplementation/thirdPartyImplementation.ts @@ -21,21 +21,10 @@ export default function getRecipeImplementation( originalImplementation: WebJSRecipeInterface ): WebJSRecipeInterface { return { - generateStateToSendToOAuthProvider: - originalImplementation.generateStateToSendToOAuthProvider.bind(originalImplementation), - getAuthCodeFromURL: originalImplementation.getAuthCodeFromURL.bind(originalImplementation), - getAuthErrorFromURL: originalImplementation.getAuthErrorFromURL.bind(originalImplementation), - getAuthStateFromURL: originalImplementation.getAuthStateFromURL.bind(originalImplementation), - getAuthorisationURLFromBackend: - originalImplementation.getAuthorisationURLFromBackend.bind(originalImplementation), getAuthorisationURLWithQueryParamsAndSetState: originalImplementation.getAuthorisationURLWithQueryParamsAndSetState.bind(originalImplementation), getStateAndOtherInfoFromStorage: originalImplementation.getStateAndOtherInfoFromStorage.bind(originalImplementation), - setStateAndOtherInfoToStorage: - originalImplementation.setStateAndOtherInfoToStorage.bind(originalImplementation), signInAndUp: originalImplementation.thirdPartySignInAndUp.bind(originalImplementation), - verifyAndGetStateOrThrowError: - originalImplementation.verifyAndGetStateOrThrowError.bind(originalImplementation), }; } diff --git a/lib/ts/recipe/thirdpartyemailpassword/types.ts b/lib/ts/recipe/thirdpartyemailpassword/types.ts index b0ee937ad..aa12899e6 100644 --- a/lib/ts/recipe/thirdpartyemailpassword/types.ts +++ b/lib/ts/recipe/thirdpartyemailpassword/types.ts @@ -90,7 +90,7 @@ export type NormalisedConfig = { signInAndUpFeature: NormalisedSignInAndUpFeatureConfig; disableEmailPassword: boolean; emailPasswordConfig: NormalisedEmailPasswordConfig; - thirdPartyConfig?: NormalisedThirdPartyConfig; + thirdPartyConfig: NormalisedThirdPartyConfig; override: { functions: ( originalImplementation: RecipeInterface, diff --git a/lib/ts/recipe/thirdpartyemailpassword/utils.ts b/lib/ts/recipe/thirdpartyemailpassword/utils.ts index 9162b37b7..f082f1f6f 100644 --- a/lib/ts/recipe/thirdpartyemailpassword/utils.ts +++ b/lib/ts/recipe/thirdpartyemailpassword/utils.ts @@ -36,16 +36,6 @@ export function normaliseThirdPartyEmailPasswordConfig(config: Config): Normalis if (config === undefined) { throw new Error("ThirdpartyEmailPassword config should not be empty"); } - const disableEmailPassword = config.disableEmailPassword === true; - const disableThirdParty = !config.signInAndUpFeature?.providers?.length; - if ( - disableEmailPassword && - (config.signInAndUpFeature === undefined || - config.signInAndUpFeature.providers === undefined || - config.signInAndUpFeature.providers.length === 0) - ) { - throw new Error("You need to enable either email password or third party providers login."); - } const override: any = { functions: (originalImplementation: RecipeInterface) => originalImplementation, @@ -56,18 +46,15 @@ export function normaliseThirdPartyEmailPasswordConfig(config: Config): Normalis config.signInAndUpFeature ); - let thirdpartyNormalisedConfig; - if (!disableThirdParty) { - thirdpartyNormalisedConfig = normaliseThirdPartyConfig({ - getRedirectionURL: config.getRedirectionURL, - style: config.style, - onHandleEvent: config.onHandleEvent, - preAPIHook: config.preAPIHook, - signInAndUpFeature: config.signInAndUpFeature, - oAuthCallbackScreen: config.oAuthCallbackScreen, - useShadowDom: config.useShadowDom, - }); - } + const thirdpartyNormalisedConfig = normaliseThirdPartyConfig({ + getRedirectionURL: config.getRedirectionURL, + style: config.style, + onHandleEvent: config.onHandleEvent, + preAPIHook: config.preAPIHook, + signInAndUpFeature: config.signInAndUpFeature, + oAuthCallbackScreen: config.oAuthCallbackScreen, + useShadowDom: config.useShadowDom, + }); const emailPasswordNormalisedConfig = normaliseEmailPasswordConfig({ getRedirectionURL: config.getRedirectionURL, @@ -83,7 +70,7 @@ export function normaliseThirdPartyEmailPasswordConfig(config: Config): Normalis ...normaliseAuthRecipe(config), emailPasswordConfig: emailPasswordNormalisedConfig, thirdPartyConfig: thirdpartyNormalisedConfig, - disableEmailPassword, + disableEmailPassword: config.disableEmailPassword === true, signInAndUpFeature, override, }; diff --git a/lib/ts/recipe/thirdpartypasswordless/components/features/signInAndUp/index.tsx b/lib/ts/recipe/thirdpartypasswordless/components/features/signInAndUp/index.tsx index 359221f76..561b30f16 100644 --- a/lib/ts/recipe/thirdpartypasswordless/components/features/signInAndUp/index.tsx +++ b/lib/ts/recipe/thirdpartypasswordless/components/features/signInAndUp/index.tsx @@ -52,8 +52,6 @@ const SignInAndUp: React.FC = (props) => { userContext ); - const recipeComponentOverrides = props.useComponentOverrides(); - const [combinedState, dispatch] = React.useReducer( (state: { error: string | undefined }, action: ThirdPartySignInUpActions | PasswordlessSignInUpAction) => { switch (action.type) { @@ -147,27 +145,34 @@ const SignInAndUp: React.FC = (props) => { pwlessChildProps, }; + return ( + + {/* No custom theme, use default. */} + {props.children === undefined && } + {/* Otherwise, custom theme is provided, propagate props. */} + {props.children && + React.Children.map(props.children, (child) => { + if (React.isValidElement(child)) { + return React.cloneElement(child, childProps); + } + + return child; + })} + + ); +}; + +const SignInAndUpFeatureWrapper: React.FC = (props) => { + const recipeComponentOverrides = props.useComponentOverrides(); return ( - - {/* No custom theme, use default. */} - {props.children === undefined && } - {/* Otherwise, custom theme is provided, propagate props. */} - {props.children && - React.Children.map(props.children, (child) => { - if (React.isValidElement(child)) { - return React.cloneElement(child, childProps); - } - - return child; - })} - + ); }; -export default SignInAndUp; +export default SignInAndUpFeatureWrapper; diff --git a/lib/ts/recipe/thirdpartypasswordless/components/themes/signInUp/index.tsx b/lib/ts/recipe/thirdpartypasswordless/components/themes/signInUp/index.tsx index 68b9a944f..f87ee572d 100644 --- a/lib/ts/recipe/thirdpartypasswordless/components/themes/signInUp/index.tsx +++ b/lib/ts/recipe/thirdpartypasswordless/components/themes/signInUp/index.tsx @@ -21,7 +21,9 @@ import * as React from "react"; import { useTranslation } from "../../../../.."; import { SuperTokensBranding } from "../../../../../components/SuperTokensBranding"; import { hasFontDefined } from "../../../../../styles/styles"; +import SuperTokens from "../../../../../superTokens"; import GeneralError from "../../../../emailpassword/components/library/generalError"; +import Multitenancy from "../../../../multitenancy/recipe"; import { getActiveScreen, SignInUpScreens } from "../../../../passwordless/components/themes/signInUp"; import { CloseTabScreen } from "../../../../passwordless/components/themes/signInUp/closeTabScreen"; import { EmailForm } from "../../../../passwordless/components/themes/signInUp/emailForm"; @@ -43,6 +45,20 @@ import type { const SignInUpTheme: React.FC = (props) => { const t = useTranslation(); + const usesDynamicLoginMethods = SuperTokens.usesDynamicLoginMethods; + const dynamicLoginMethods = Multitenancy.getInstanceOrThrow().getLoadedDynamicLoginMethods(); + + const hasProviders = props.tpChildProps?.providers !== undefined && props.tpChildProps.providers.length > 0; + const thirdPartyEnabled = + (usesDynamicLoginMethods === false && hasProviders) || + (dynamicLoginMethods?.thirdparty.enabled && hasProviders); + const passwordlessEnabled = + (props.passwordlessRecipe !== undefined && usesDynamicLoginMethods === false) || + dynamicLoginMethods?.passwordless.enabled; + + if (thirdPartyEnabled === false && passwordlessEnabled === false) { + return null; + } if (props.activeScreen === SignInUpScreens.CloseTab) { return ; @@ -70,6 +86,7 @@ const SignInUpTheme: React.FC} {props.tpChildProps !== undefined && + thirdPartyEnabled && props.activeScreen !== SignInUpScreens.UserInputCodeForm && ( )} - {props.thirdPartyRecipe !== undefined && - props.passwordlessRecipe !== undefined && + {thirdPartyEnabled && + passwordlessEnabled && props.activeScreen !== SignInUpScreens.UserInputCodeForm && (
@@ -88,7 +105,7 @@ const SignInUpTheme: React.FC
)} - {props.activeScreen === SignInUpScreens.EmailForm ? ( + {!passwordlessEnabled ? null : props.activeScreen === SignInUpScreens.EmailForm ? ( ) : props.activeScreen === SignInUpScreens.PhoneForm ? ( diff --git a/lib/ts/recipe/thirdpartypasswordless/index.ts b/lib/ts/recipe/thirdpartypasswordless/index.ts index d5ec722d5..6efc183cd 100644 --- a/lib/ts/recipe/thirdpartypasswordless/index.ts +++ b/lib/ts/recipe/thirdpartypasswordless/index.ts @@ -15,8 +15,20 @@ import { RecipeInterface } from "supertokens-web-js/recipe/thirdpartypasswordless"; import { getNormalisedUserContext } from "../../utils"; -import * as PasswordlessUtilFunctions from "../passwordless/utils"; -import { Apple, Google, Facebook, Github, Gitlab, Bitbucket, Discord } from "../thirdparty/"; +import { + Apple, + Google, + GoogleWorkspaces, + Facebook, + Github, + Gitlab, + Bitbucket, + Discord, + LinkedIn, + ActiveDirectory, + BoxySAML, + Okta, +} from "../thirdparty/"; import { redirectToThirdPartyLogin as UtilsRedirectToThirdPartyLogin } from "../thirdparty/utils"; import { RecipeComponentsOverrideContextProvider } from "./componentOverrideContext"; @@ -61,21 +73,6 @@ export default class Wrapper { }); } - static async getAuthorisationURLFromBackend(input: { - providerId: string; - userContext?: any; - options?: RecipeFunctionOptions; - }): Promise<{ - status: "OK"; - url: string; - fetchResponse: Response; - }> { - return ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getAuthorisationURLFromBackend({ - ...input, - userContext: getNormalisedUserContext(input.userContext), - }); - } - static async thirdPartySignInAndUp(input?: { userContext?: any; options?: RecipeFunctionOptions }): Promise< | { status: "OK"; @@ -103,21 +100,11 @@ export default class Wrapper { }); } - static async setThirdPartyStateAndOtherInfoToStorage(input: { - state: StateObject & CustomStateProperties; - userContext?: any; - }): Promise { - return ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.setThirdPartyStateAndOtherInfoToStorage({ - ...input, - userContext: getNormalisedUserContext(input.userContext), - }); - } - static async getThirdPartyAuthorisationURLWithQueryParamsAndSetState(input: { - providerId: string; - authorisationURL: string; + thirdPartyId: string; + frontendRedirectURI: string; + redirectURIOnProviderDashboard?: string; userContext?: any; - providerClientId?: string; options?: RecipeFunctionOptions; }): Promise { return ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getThirdPartyAuthorisationURLWithQueryParamsAndSetState( @@ -128,45 +115,6 @@ export default class Wrapper { ); } - static generateThirdPartyStateToSendToOAuthProvider(input?: { userContext?: any }): string { - return ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.generateThirdPartyStateToSendToOAuthProvider({ - ...input, - userContext: getNormalisedUserContext(input?.userContext), - }); - } - - static async verifyAndGetThirdPartyStateOrThrowError(input: { - stateFromAuthProvider: string | undefined; - stateObjectFromStorage: (StateObject & CustomStateProperties) | undefined; - userContext?: any; - }): Promise { - return ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.verifyAndGetThirdPartyStateOrThrowError({ - ...input, - userContext: getNormalisedUserContext(input.userContext), - }); - } - - static getThirdPartyAuthCodeFromURL(input?: { userContext?: any }): string { - return ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getThirdPartyAuthCodeFromURL({ - ...input, - userContext: getNormalisedUserContext(input?.userContext), - }); - } - - static getThirdPartyAuthErrorFromURL(input?: { userContext?: any }): string | undefined { - return ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getThirdPartyAuthErrorFromURL({ - ...input, - userContext: getNormalisedUserContext(input?.userContext), - }); - } - - static getThirdPartyAuthStateFromURL(input?: { userContext?: any }): string { - return ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.getThirdPartyAuthStateFromURL({ - ...input, - userContext: getNormalisedUserContext(input?.userContext), - }); - } - static async createPasswordlessCode( input: | { email: string; userContext?: any; options?: RecipeFunctionOptions } @@ -178,17 +126,9 @@ export default class Wrapper { flowType: PasswordlessFlowType; fetchResponse: Response; }> { - const recipe: ThirdPartyPasswordless = ThirdPartyPasswordless.getInstanceOrThrow(); - - if (recipe.passwordlessRecipe === undefined) { - throw new Error( - "createCode requires the passwordless recipe to be enabled. Please check the value of disablePasswordless in the configuration." - ); - } - - return PasswordlessUtilFunctions.createCode({ + return ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.createPasswordlessCode({ ...input, - recipeImplementation: recipe.passwordlessRecipe.webJSRecipe, + userContext: getNormalisedUserContext(input.userContext), }); } @@ -196,17 +136,9 @@ export default class Wrapper { status: "OK" | "RESTART_FLOW_ERROR"; fetchResponse: Response; }> { - const recipe: ThirdPartyPasswordless = ThirdPartyPasswordless.getInstanceOrThrow(); - - if (recipe.passwordlessRecipe === undefined) { - throw new Error( - "createCode requires the passwordless recipe to be enabled. Please check the value of disablePasswordless in the configuration." - ); - } - - return PasswordlessUtilFunctions.resendCode({ + return ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.resendPasswordlessCode({ ...input, - recipeImplementation: recipe.passwordlessRecipe.webJSRecipe, + userContext: getNormalisedUserContext(input?.userContext), }); } @@ -236,17 +168,9 @@ export default class Wrapper { } | { status: "RESTART_FLOW_ERROR"; fetchResponse: Response } > { - const recipe: ThirdPartyPasswordless = ThirdPartyPasswordless.getInstanceOrThrow(); - - if (recipe.passwordlessRecipe === undefined) { - throw new Error( - "createCode requires the passwordless recipe to be enabled. Please check the value of disablePasswordless in the configuration." - ); - } - - return PasswordlessUtilFunctions.consumeCode({ + return ThirdPartyPasswordless.getInstanceOrThrow().webJSRecipe.consumePasswordlessCode({ ...input, - recipeImplementation: recipe.passwordlessRecipe.webJSRecipe, + userContext: getNormalisedUserContext(input?.userContext), }); } @@ -337,24 +261,22 @@ export default class Wrapper { static Github = Github; static Gitlab = Gitlab; static Google = Google; + static GoogleWorkspaces = GoogleWorkspaces; static Facebook = Facebook; + static LinkedIn = LinkedIn; + static ActiveDirectory = ActiveDirectory; + static BoxySAML = BoxySAML; + static Okta = Okta; static ComponentsOverrideProvider = RecipeComponentsOverrideContextProvider; } const init = Wrapper.init; const signOut = Wrapper.signOut; const redirectToThirdPartyLogin = Wrapper.redirectToThirdPartyLogin; -const getAuthorisationURLFromBackend = Wrapper.getAuthorisationURLFromBackend; const thirdPartySignInAndUp = Wrapper.thirdPartySignInAndUp; const getThirdPartyStateAndOtherInfoFromStorage = Wrapper.getThirdPartyStateAndOtherInfoFromStorage; -const setThirdPartyStateAndOtherInfoToStorage = Wrapper.setThirdPartyStateAndOtherInfoToStorage; const getThirdPartyAuthorisationURLWithQueryParamsAndSetState = Wrapper.getThirdPartyAuthorisationURLWithQueryParamsAndSetState; -const generateThirdPartyStateToSendToOAuthProvider = Wrapper.generateThirdPartyStateToSendToOAuthProvider; -const verifyAndGetThirdPartyStateOrThrowError = Wrapper.verifyAndGetThirdPartyStateOrThrowError; -const getThirdPartyAuthCodeFromURL = Wrapper.getThirdPartyAuthCodeFromURL; -const getThirdPartyAuthErrorFromURL = Wrapper.getThirdPartyAuthErrorFromURL; -const getThirdPartyAuthStateFromURL = Wrapper.getThirdPartyAuthStateFromURL; const createPasswordlessCode = Wrapper.createPasswordlessCode; const resendPasswordlessCode = Wrapper.resendPasswordlessCode; const consumePasswordlessCode = Wrapper.consumePasswordlessCode; @@ -375,18 +297,16 @@ export { Github, Gitlab, Google, + GoogleWorkspaces, Facebook, + LinkedIn, + ActiveDirectory, + BoxySAML, + Okta, redirectToThirdPartyLogin, - getAuthorisationURLFromBackend, thirdPartySignInAndUp, getThirdPartyStateAndOtherInfoFromStorage, - setThirdPartyStateAndOtherInfoToStorage, getThirdPartyAuthorisationURLWithQueryParamsAndSetState, - generateThirdPartyStateToSendToOAuthProvider, - verifyAndGetThirdPartyStateOrThrowError, - getThirdPartyAuthCodeFromURL, - getThirdPartyAuthErrorFromURL, - getThirdPartyAuthStateFromURL, createPasswordlessCode, resendPasswordlessCode, consumePasswordlessCode, diff --git a/lib/ts/recipe/thirdpartypasswordless/prebuiltui.tsx b/lib/ts/recipe/thirdpartypasswordless/prebuiltui.tsx index 124fef6ad..c711fd757 100644 --- a/lib/ts/recipe/thirdpartypasswordless/prebuiltui.tsx +++ b/lib/ts/recipe/thirdpartypasswordless/prebuiltui.tsx @@ -28,7 +28,7 @@ export class ThirdPartyPasswordlessPreBuiltUI extends RecipeRouter { private thirdPartyPreBuiltUI: ThirdPartyPreBuiltUI | undefined; private passwordlessPreBuiltUI: PasswordlessPreBuiltUI | undefined; - constructor(private readonly recipeInstance: ThirdPartyPasswordless) { + constructor(public readonly recipeInstance: ThirdPartyPasswordless) { super(); const { thirdPartyRecipe, passwordlessRecipe } = recipeInstance; if (thirdPartyRecipe !== undefined) { @@ -151,6 +151,7 @@ export class ThirdPartyPasswordlessPreBuiltUI extends RecipeRouter { features[normalisedFullPath.getAsStringDangerous()] = { matches: matchRecipeIdUsingQueryParams(this.recipeInstance.config.recipeId), component: (prop: any) => this.getFeatureComponent("signInUp", prop, useComponentOverrides), + recipeID: ThirdPartyPasswordless.RECIPE_ID, }; } diff --git a/lib/ts/recipe/thirdpartypasswordless/recipe.tsx b/lib/ts/recipe/thirdpartypasswordless/recipe.tsx index ba3ded90c..fd3442b9e 100644 --- a/lib/ts/recipe/thirdpartypasswordless/recipe.tsx +++ b/lib/ts/recipe/thirdpartypasswordless/recipe.tsx @@ -20,6 +20,7 @@ import ThirdpartyPasswordlessWebJS from "supertokens-web-js/recipe/thirdpartypasswordless"; import { SSR_ERROR } from "../../constants"; +import SuperTokens from "../../superTokens"; import { isTest } from "../../utils"; import AuthRecipe from "../authRecipe"; import Passwordless from "../passwordless/recipe"; @@ -54,6 +55,8 @@ export default class ThirdPartyPasswordless extends AuthRecipe< static instance?: ThirdPartyPasswordless; static RECIPE_ID = "thirdpartypasswordless"; + recipeID = ThirdPartyPasswordless.RECIPE_ID; + passwordlessRecipe: Passwordless | undefined; thirdPartyRecipe: ThirdParty | undefined; @@ -68,12 +71,17 @@ export default class ThirdPartyPasswordless extends AuthRecipe< typeof ThirdpartyPasswordlessWebJS > = ThirdpartyPasswordlessWebJS ) { + const disableThirdParty = + config.thirdpartyConfig?.signInAndUpFeature?.providers === undefined || + config.thirdpartyConfig?.signInAndUpFeature.providers.length === 0; + if (SuperTokens.usesDynamicLoginMethods === false && config.disablePasswordless === true && disableThirdParty) { + throw new Error("You need to enable either passwordless or third party providers login."); + } super(config); - this.passwordlessRecipe = recipes.passwordlessInstance !== undefined ? recipes.passwordlessInstance - : this.config.passwordlessConfig === undefined + : SuperTokens.usesDynamicLoginMethods === false && this.config.disablePasswordless ? undefined : new Passwordless( { @@ -94,7 +102,7 @@ export default class ThirdPartyPasswordless extends AuthRecipe< this.thirdPartyRecipe = recipes.thirdPartyInstance !== undefined ? recipes.thirdPartyInstance - : this.config.thirdpartyConfig === undefined + : SuperTokens.usesDynamicLoginMethods === false && disableThirdParty ? undefined : new ThirdParty( { @@ -120,6 +128,7 @@ export default class ThirdPartyPasswordless extends AuthRecipe< const normalisedConfig = normaliseThirdPartyPasswordlessConfig(config); return { + recipeID: ThirdPartyPasswordless.RECIPE_ID, authReact: ( appInfo: NormalisedAppInfo ): RecipeModule< diff --git a/lib/ts/recipe/thirdpartypasswordless/recipeImplementation/passwordlessImplementation.ts b/lib/ts/recipe/thirdpartypasswordless/recipeImplementation/passwordlessImplementation.ts index c7d78fcf4..f6c87d991 100644 --- a/lib/ts/recipe/thirdpartypasswordless/recipeImplementation/passwordlessImplementation.ts +++ b/lib/ts/recipe/thirdpartypasswordless/recipeImplementation/passwordlessImplementation.ts @@ -17,5 +17,6 @@ export default function getRecipeImplementation( getLinkCodeFromURL: originalImplementation.getPasswordlessLinkCodeFromURL.bind(originalImplementation), getPreAuthSessionIdFromURL: originalImplementation.getPasswordlessPreAuthSessionIdFromURL.bind(originalImplementation), + getTenantIdFromURL: originalImplementation.getTenantIdFromURL.bind(originalImplementation), }; } diff --git a/lib/ts/recipe/thirdpartypasswordless/recipeImplementation/thirdPartyImplementation.ts b/lib/ts/recipe/thirdpartypasswordless/recipeImplementation/thirdPartyImplementation.ts index fd1b5e6b4..b6177957b 100644 --- a/lib/ts/recipe/thirdpartypasswordless/recipeImplementation/thirdPartyImplementation.ts +++ b/lib/ts/recipe/thirdpartypasswordless/recipeImplementation/thirdPartyImplementation.ts @@ -6,21 +6,10 @@ export default function getRecipeImplementation( originalImplementation: WebJSRecipeInterface ): WebJSRecipeInterface { return { - generateStateToSendToOAuthProvider: - originalImplementation.generateThirdPartyStateToSendToOAuthProvider.bind(originalImplementation), - getAuthCodeFromURL: originalImplementation.getThirdPartyAuthCodeFromURL.bind(originalImplementation), - getAuthErrorFromURL: originalImplementation.getThirdPartyAuthErrorFromURL.bind(originalImplementation), - getAuthStateFromURL: originalImplementation.getThirdPartyAuthStateFromURL.bind(originalImplementation), - getAuthorisationURLFromBackend: - originalImplementation.getAuthorisationURLFromBackend.bind(originalImplementation), getAuthorisationURLWithQueryParamsAndSetState: originalImplementation.getThirdPartyAuthorisationURLWithQueryParamsAndSetState.bind(originalImplementation), getStateAndOtherInfoFromStorage: originalImplementation.getThirdPartyStateAndOtherInfoFromStorage.bind(originalImplementation), - setStateAndOtherInfoToStorage: - originalImplementation.setThirdPartyStateAndOtherInfoToStorage.bind(originalImplementation), signInAndUp: originalImplementation.thirdPartySignInAndUp.bind(originalImplementation), - verifyAndGetStateOrThrowError: - originalImplementation.verifyAndGetThirdPartyStateOrThrowError.bind(originalImplementation), }; } diff --git a/lib/ts/recipe/thirdpartypasswordless/types.ts b/lib/ts/recipe/thirdpartypasswordless/types.ts index 4bbf05add..4c0bc8e98 100644 --- a/lib/ts/recipe/thirdpartypasswordless/types.ts +++ b/lib/ts/recipe/thirdpartypasswordless/types.ts @@ -131,11 +131,11 @@ export type Config = UserInput & AuthRecipeModuleConfig; export type NormalisedConfig = { - passwordlessConfig: NormalisedPasswordlessConfig | undefined; - thirdpartyConfig: NormalisedThirdPartyConfig | undefined; + passwordlessConfig: NormalisedPasswordlessConfig; + thirdpartyConfig: NormalisedThirdPartyConfig; thirdPartyProviderAndEmailOrPhoneFormStyle: string | undefined; - + disablePasswordless: boolean; override: { functions: ( originalImplementation: RecipeInterface, diff --git a/lib/ts/recipe/thirdpartypasswordless/utils.ts b/lib/ts/recipe/thirdpartypasswordless/utils.ts index 4dee72197..9a0e74eeb 100644 --- a/lib/ts/recipe/thirdpartypasswordless/utils.ts +++ b/lib/ts/recipe/thirdpartypasswordless/utils.ts @@ -27,14 +27,6 @@ export function normaliseThirdPartyPasswordlessConfig(config?: Config): Normalis if (config === undefined) { config = {} as Config; } - const disablePasswordless = config.disablePasswordless === true; - const disableThirdParty = - config.signInUpFeature === undefined || - config.signInUpFeature.providers === undefined || - config.signInUpFeature.providers.length === 0; - if (disablePasswordless && disableThirdParty) { - throw new Error("You need to enable either passwordless or third party providers login."); - } const override: any = { functions: (originalImplementation: TPPWlessRecipeInterface) => originalImplementation, @@ -49,39 +41,36 @@ export function normaliseThirdPartyPasswordlessConfig(config?: Config): Normalis ...normaliseAuthRecipe(config), thirdPartyProviderAndEmailOrPhoneFormStyle, - thirdpartyConfig: disableThirdParty - ? undefined - : normaliseThirdPartyConfig({ - getRedirectionURL: config.getRedirectionURL, - style: config.style, - onHandleEvent: config.onHandleEvent, - preAPIHook: config.preAPIHook, - signInAndUpFeature: { - ...config.signInUpFeature, - style: thirdPartyProviderAndEmailOrPhoneFormStyle, - }, - oAuthCallbackScreen: config.oAuthCallbackScreen, - useShadowDom: config.useShadowDom, - override: {}, - }), - passwordlessConfig: disablePasswordless - ? undefined - : normalisePasswordlessConfig({ - contactMethod: config.contactMethod, - style: config.style, - validateEmailAddress: "validateEmailAddress" in config ? config.validateEmailAddress : undefined, - validatePhoneNumber: "validatePhoneNumber" in config ? config.validatePhoneNumber : undefined, - getRedirectionURL: config.getRedirectionURL, - onHandleEvent: config.onHandleEvent, - preAPIHook: config.preAPIHook, - useShadowDom: config.useShadowDom, - signInUpFeature: { - ...config.signInUpFeature, - emailOrPhoneFormStyle: thirdPartyProviderAndEmailOrPhoneFormStyle, - }, - linkClickedScreenFeature: config.linkClickedScreenFeature, - override: {}, - }), + thirdpartyConfig: normaliseThirdPartyConfig({ + getRedirectionURL: config.getRedirectionURL, + style: config.style, + onHandleEvent: config.onHandleEvent, + preAPIHook: config.preAPIHook, + signInAndUpFeature: { + ...config.signInUpFeature, + style: thirdPartyProviderAndEmailOrPhoneFormStyle, + }, + oAuthCallbackScreen: config.oAuthCallbackScreen, + useShadowDom: config.useShadowDom, + override: {}, + }), + passwordlessConfig: normalisePasswordlessConfig({ + contactMethod: config.contactMethod, + style: config.style, + validateEmailAddress: "validateEmailAddress" in config ? config.validateEmailAddress : undefined, + validatePhoneNumber: "validatePhoneNumber" in config ? config.validatePhoneNumber : undefined, + getRedirectionURL: config.getRedirectionURL, + onHandleEvent: config.onHandleEvent, + preAPIHook: config.preAPIHook, + useShadowDom: config.useShadowDom, + signInUpFeature: { + ...config.signInUpFeature, + emailOrPhoneFormStyle: thirdPartyProviderAndEmailOrPhoneFormStyle, + }, + linkClickedScreenFeature: config.linkClickedScreenFeature, + override: {}, + }), + disablePasswordless: config.disablePasswordless === true, override, }; } diff --git a/lib/ts/superTokens.tsx b/lib/ts/superTokens.tsx index 165689a16..0def491ec 100644 --- a/lib/ts/superTokens.tsx +++ b/lib/ts/superTokens.tsx @@ -22,7 +22,9 @@ import { PostSuperTokensInitCallbacks } from "supertokens-web-js/utils/postSuper import { WindowHandlerReference } from "supertokens-web-js/utils/windowHandler"; import { SSR_ERROR } from "./constants"; +import Multitenancy from "./recipe/multitenancy/recipe"; import { saveCurrentLanguage, TranslationController } from "./translation/translationHelpers"; +import { UIController } from "./ui/uiController"; import { appendQueryParamsToURL, appendTrailingSlashToURL, @@ -37,6 +39,7 @@ import { } from "./utils"; import type RecipeModule from "./recipe/recipeModule"; +import type { BaseRecipeModule } from "./recipe/recipeModule/baseRecipeModule"; import type { NormalisedConfig as NormalisedRecipeModuleConfig } from "./recipe/recipeModule/types"; import type { TranslationFunc, TranslationStore } from "./translation/translationHelpers"; import type { GetRedirectionURLContext, NormalisedAppInfo, SuperTokensConfig } from "./types"; @@ -50,6 +53,9 @@ export default class SuperTokens { * Static Attributes. */ private static instance?: SuperTokens; + static usesDynamicLoginMethods = false; + static uiController = new UIController(); + /* * Instance Attributes. */ @@ -61,14 +67,13 @@ export default class SuperTokens { translationEventSource: TranslationController; userTranslationFunc?: TranslationFunc; }; - recipeList: RecipeModule[] = []; + recipeList: BaseRecipeModule[] = []; private userGetRedirectionURL: SuperTokensConfig["getRedirectionURL"]; /* * Constructor. */ constructor(config: SuperTokensConfig) { this.appInfo = normaliseInputAppInfoOrThrowError(config.appInfo); - if (config.recipeList === undefined || config.recipeList.length === 0) { throw new Error( "Please provide at least one recipe to the supertokens.init function call. See https://supertokens.io/docs/emailpassword/quick-setup/frontend" @@ -93,7 +98,6 @@ export default class SuperTokens { } this.userGetRedirectionURL = config.getRedirectionURL; - this.recipeList = config.recipeList.map(({ authReact }) => { return authReact(this.appInfo, enableDebugLogs); }); @@ -110,13 +114,19 @@ export default class SuperTokens { console.warn("SuperTokens was already initialized"); return; } + SuperTokens.usesDynamicLoginMethods = config.usesDynamicLoginMethods ?? false; + + const recipes = + config.recipeList.find((recipe) => recipe.recipeID === Multitenancy.RECIPE_ID) !== undefined + ? config.recipeList + : config.recipeList.concat(Multitenancy.init({})); SuperTokensWebJS.init({ ...config, - recipeList: config.recipeList.map(({ webJS }) => webJS), + recipeList: recipes.map(({ webJS }) => webJS), }); - SuperTokens.instance = new SuperTokens(config); + SuperTokens.instance = new SuperTokens({ ...config, recipeList: recipes }); PostSuperTokensInitCallbacks.runPostInitCallbacks(); } @@ -176,7 +186,7 @@ export default class SuperTokens { history?: any; queryParams?: any; redirectBack: boolean; - }) => { + }): Promise => { const queryParams = options.queryParams === undefined ? {} : options.queryParams; if (options.show !== undefined) { queryParams.show = options.show; @@ -194,25 +204,7 @@ export default class SuperTokens { }; redirectToUrl = async (redirectUrl: string, history?: any): Promise => { - try { - new URL(redirectUrl); // If full URL, no error thrown, skip in app redirection. - } catch (e) { - // For multi tenancy, If mismatch between websiteDomain and current location, prepend URL relative path with websiteDomain. - const origin = getOriginOfPage().getAsStringDangerous(); - if (origin !== this.appInfo.websiteDomain.getAsStringDangerous()) { - redirectUrl = `${this.appInfo.websiteDomain.getAsStringDangerous()}${redirectUrl}`; - redirectWithFullPageReload(redirectUrl); - return; - } - - // If history was provided, use to redirect without reloading. - if (history !== undefined) { - redirectWithHistory(redirectUrl, history); - return; - } - } - // Otherwise, redirect in app. - redirectWithFullPageReload(redirectUrl); + doRedirection(this.appInfo, redirectUrl, history); }; /* @@ -227,3 +219,25 @@ export default class SuperTokens { return; } } + +export function doRedirection(appInfo: NormalisedAppInfo, redirectUrl: string, history?: any) { + try { + new URL(redirectUrl); // If full URL, no error thrown, skip in app redirection. + } catch (e) { + // For multi tenancy, If mismatch between websiteDomain and current location, prepend URL relative path with websiteDomain. + const origin = getOriginOfPage().getAsStringDangerous(); + if (origin !== appInfo.websiteDomain.getAsStringDangerous()) { + redirectUrl = `${appInfo.websiteDomain.getAsStringDangerous()}${redirectUrl}`; + redirectWithFullPageReload(redirectUrl); + return; + } + + // If history was provided, use to redirect without reloading. + if (history !== undefined) { + redirectWithHistory(redirectUrl, history); + return; + } + } + // Otherwise, redirect in app. + redirectWithFullPageReload(redirectUrl); +} diff --git a/lib/ts/types.ts b/lib/ts/types.ts index f727dc62b..8399585b5 100644 --- a/lib/ts/types.ts +++ b/lib/ts/types.ts @@ -13,7 +13,7 @@ * under the License. */ -import type RecipeModule from "./recipe/recipeModule"; +import type { BaseRecipeModule } from "./recipe/recipeModule/baseRecipeModule"; import type { NormalisedConfig as NormalisedRecipeModuleConfig } from "./recipe/recipeModule/types"; import type { TranslationFunc, TranslationStore } from "./translation/translationHelpers"; import type { ComponentClass, PropsWithChildren } from "react"; @@ -48,15 +48,26 @@ export type SuperTokensConfig = { */ appInfo: AppInfoUserInput; + /** + * Identifier for the client, such as `web`, `ios`, etc. to be used with thirdparty, multitenancy recipes. + */ + clientType?: string; + /* * List of recipes for authentication and session management. */ - recipeList: { authReact: CreateRecipeFunction; webJS: CreateRecipeFunctionWebJS }[]; + recipeList: { + recipeID: string; + authReact: CreateRecipeFunction; + webJS: CreateRecipeFunctionWebJS; + }[]; cookieHandler?: CookieHandlerInput; windowHandler?: WindowHandlerInput; + usesDynamicLoginMethods?: boolean; + languageTranslations?: { /* * Default (and fallback) language @@ -95,7 +106,7 @@ export type WebJSRecipeInterface = Omit; export type CreateRecipeFunction> = ( appInfo: NormalisedAppInfo, enableDebugLogs: boolean -) => RecipeModule; +) => BaseRecipeModule; export type AppInfoUserInput = { /* @@ -133,6 +144,7 @@ export type AppInfoUserInput = { }; export type RecipeInitResult> = { + recipeID: string; authReact: CreateRecipeFunction; webJS: CreateRecipeFunctionWebJS; }; @@ -184,6 +196,11 @@ export type ComponentWithRecipeAndMatchingMethod = { * Matching method. */ matches: () => boolean; + + /** + * Recipe ID this component belongs + */ + recipeID: string; }; export type RecipeFeatureComponentMap = Record; diff --git a/lib/ts/ui/index.tsx b/lib/ts/ui/index.tsx index f91ab3e9d..7aa9733cf 100644 --- a/lib/ts/ui/index.tsx +++ b/lib/ts/ui/index.tsx @@ -79,7 +79,8 @@ export default class UI { return ( RecipeRouter.getMatchingComponentForRouteAndRecipeIdFromPreBuiltUIList( getCurrentNormalisedUrlPath(), - recipeList + recipeList, + true ) !== undefined ); } diff --git a/lib/ts/ui/uiController.ts b/lib/ts/ui/uiController.ts new file mode 100644 index 000000000..62fc36e96 --- /dev/null +++ b/lib/ts/ui/uiController.ts @@ -0,0 +1,32 @@ +type UIEventMap = { + LoginMethodsLoaded: string; +}; + +type UIEventHandler = (event: K, detail: UIEventMap[K]) => void; + +export class UIController { + handlers: Map[]> = new Map(); + + emit(event: K, detail?: UIEventHandler): void { + const handlerList = this.handlers.get(event) || []; + + for (const h of handlerList) { + h(event, detail); + } + } + + on(event: K, handler: UIEventHandler): void { + const handlerList: any[] = this.handlers.get(event) || []; + + this.handlers.set(event, handlerList.concat(handler)); + } + + off(event: K, handler: UIEventHandler): void { + const handlerList: any[] = this.handlers.get(event) || []; + + this.handlers.set( + event, + handlerList.filter((h) => h !== handler) + ); + } +} diff --git a/lib/ts/version.ts b/lib/ts/version.ts index aab06bea1..2c093d074 100644 --- a/lib/ts/version.ts +++ b/lib/ts/version.ts @@ -12,4 +12,4 @@ * License for the specific language governing permissions and limitations * under the License. */ -export const package_version = "0.33.1"; +export const package_version = "0.34.0"; diff --git a/package-lock.json b/package-lock.json index 865be22e2..ce1eef573 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "supertokens-auth-react", - "version": "0.33.1", + "version": "0.34.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "supertokens-auth-react", - "version": "0.33.1", + "version": "0.34.0", "license": "Apache-2.0", "dependencies": { "intl-tel-input": "^17.0.19", diff --git a/package.json b/package.json index b55d86fa7..5a9ff82ce 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "supertokens-auth-react", - "version": "0.33.1", + "version": "0.34.0", "description": "ReactJS SDK that provides login functionality with SuperTokens.", "main": "./index.js", "engines": { @@ -97,7 +97,7 @@ "test-e2e": "./test/startTestApp.sh 8082", "test-e2e-react16": "RUN_REACT_16_TESTS=true ./test/startTestApp.sh 8082", "test-e2e-with-non-node": "./test/startTestApp.sh 8083", - "test-unit": "TEST_MODE=testing jest -c jest.config.js --runInBand", + "test-unit": "TEST_MODE=testing jest --silent -c jest.config.js --runInBand", "test-visual": "SPEC_FILES=test/visual/**/*.test.js npx percy exec -- npm run test-e2e", "prep-test-app": "./test/prepTestApp.sh $SRC", "build-check": "cd lib && npx tsc -p tsconfig.json --noEmit && cd ../test/with-typescript && npx tsc -p tsconfig.json", @@ -119,15 +119,15 @@ "size-limit": [ { "path": "lib/build/index.js", - "limit": "11kb" + "limit": "15kb" }, { "path": "recipe/session/index.js", - "limit": "11kb" + "limit": "15kb" }, { "path": "recipe/session/prebuiltui.js", - "limit": "15kb" + "limit": "20kb" }, { "path": "recipe/thirdpartyemailpassword/index.js", @@ -135,7 +135,7 @@ }, { "path": "recipe/thirdparty/index.js", - "limit": "25kb" + "limit": "30kb" }, { "path": "recipe/emailpassword/index.js", @@ -155,27 +155,31 @@ }, { "path": "recipe/emailverification/prebuiltui.js", - "limit": "22kb" + "limit": "25kb" }, { "path": "recipe/thirdpartyemailpassword/prebuiltui.js", - "limit": "36kb" + "limit": "54kb" }, { "path": "recipe/thirdparty/prebuiltui.js", - "limit": "19kb" + "limit": "37kb" }, { "path": "recipe/emailpassword/prebuiltui.js", - "limit": "26kb" + "limit": "30kb" }, { "path": "recipe/passwordless/prebuiltui.js", - "limit": "102kb" + "limit": "105kb" }, { "path": "recipe/thirdpartypasswordless/prebuiltui.js", - "limit": "113kb" + "limit": "135kb" + }, + { + "path": "recipe/multitenancy/index.js", + "limit": "10kb" } ], "browserslist": { diff --git a/recipe/multitenancy/index.d.ts b/recipe/multitenancy/index.d.ts new file mode 100644 index 000000000..d171ec4aa --- /dev/null +++ b/recipe/multitenancy/index.d.ts @@ -0,0 +1,17 @@ +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +export * from "../../lib/build/recipe/multitenancy"; +import * as _default from "../../lib/build/recipe/multitenancy"; +export default _default; diff --git a/recipe/multitenancy/index.js b/recipe/multitenancy/index.js new file mode 100644 index 000000000..ca17cf3f8 --- /dev/null +++ b/recipe/multitenancy/index.js @@ -0,0 +1,20 @@ +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +exports.__esModule = true; +__export(require("../../lib/build/multitenancy")); diff --git a/rollup.config.mjs b/rollup.config.mjs index 4500c81f9..fd42eb136 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -31,6 +31,7 @@ export default [ thirdpartyemailpasswordprebuiltui: "lib/ts/recipe/thirdpartyemailpassword/prebuiltui.tsx", thirdpartypasswordless: "lib/ts/recipe/thirdpartypasswordless/index.ts", thirdpartypasswordlessprebuiltui: "lib/ts/recipe/thirdpartypasswordless/prebuiltui.tsx", + multitenancy: "lib/ts/recipe/multitenancy/index.ts", userroles: "lib/ts/recipe/userroles/index.ts", }, plugins: [ diff --git a/test/.env.js b/test/.env.js index 718ba34a4..a52a6cd79 100644 --- a/test/.env.js +++ b/test/.env.js @@ -10,3 +10,7 @@ process.env.FACEBOOK_PASSWORD = "ow93jduDSje00asd"; // Auth0 process.env.AUTH0_EMAIL = "bradparishdoh@gmail.com"; process.env.AUTH0_PASSWORD = "ow93jduDSje00asd"; +// Auth0 +process.env.AUTH0_CLIENT_ID = "hlhUyF1OvpCYqODkkjdeNAuDdVdDNkIm"; +process.env.AUTH0_CLIENT_SECRET = "CBNLgo3j2G-RuZWowNV5x9rPNio1O44y4sEl_jZSOWIQ1Pad_4hN-qD8TWs405pa"; +process.env.AUTH0_DOMAIN = "dev-3myi6b3e.us.auth0.com"; diff --git a/test/constants.js b/test/constants.js index f3e58135a..9a00ca568 100644 --- a/test/constants.js +++ b/test/constants.js @@ -32,6 +32,7 @@ export const RESET_PASSWORD_API = `${TEST_APPLICATION_SERVER_BASE_URL}/auth/user export const SEND_VERIFY_EMAIL_API = `${TEST_APPLICATION_SERVER_BASE_URL}/auth/user/email/verify/token`; export const VERIFY_EMAIL_API = `${TEST_APPLICATION_SERVER_BASE_URL}/auth/user/email/verify`; export const SIGN_IN_UP_API = `${TEST_APPLICATION_SERVER_BASE_URL}/auth/signinup`; +export const LOGIN_METHODS_API = `${TEST_APPLICATION_SERVER_BASE_URL}/auth/loginmethods?`; export const GET_AUTH_URL_API = `${TEST_APPLICATION_SERVER_BASE_URL}/auth/authorisationurl`; export const ST_ROOT_SELECTOR = `#${ST_ROOT_ID}`; diff --git a/test/end-to-end/multitenancy.dynamic_login_methods.test.js b/test/end-to-end/multitenancy.dynamic_login_methods.test.js new file mode 100644 index 000000000..a665c424f --- /dev/null +++ b/test/end-to-end/multitenancy.dynamic_login_methods.test.js @@ -0,0 +1,946 @@ +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +/* + * Imports + */ + +/* https://github.com/babel/babel/issues/9849#issuecomment-487040428 */ +import regeneratorRuntime from "regenerator-runtime"; +import assert from "assert"; +import puppeteer from "puppeteer"; +import fetch from "isomorphic-fetch"; +import { + waitForSTElement, + screenshotOnFailure, + getProvidersLabels, + getInputNames, + assertNoSTComponents, + getProviderLogoCount, + getGeneralError, + getSignInOrSignUpSwitchLink, + setInputValues, + submitForm, + loginWithGoogle, + clearBrowserCookiesWithoutAffectingConsole, + clickOnProviderButton, + loginWithGithub, + loginWithAuth0, +} from "../helpers"; +import { + TEST_CLIENT_BASE_URL, + DEFAULT_WEBSITE_BASE_PATH, + ST_ROOT_SELECTOR, + TEST_SERVER_BASE_URL, + SIGN_IN_UP_API, + SOMETHING_WENT_WRONG_ERROR, +} from "../constants"; + +// Run the tests in a DOM environment. +require("jsdom-global")(); + +/* + * Tests. + */ +describe("SuperTokens Multitenancy dynamic login methods", function () { + let browser; + let page; + let pageCrashed; + + beforeEach(async function () { + await fetch(`${TEST_SERVER_BASE_URL}/beforeeach`, { + method: "POST", + }).catch(console.error); + + await fetch(`${TEST_SERVER_BASE_URL}/startst`, { + method: "POST", + }).catch(console.error); + + page = await browser.newPage(); + pageCrashed = false; + page.on("console", (c) => { + if (c.text() === "ST_THROWN_ERROR") { + pageCrashed = true; + } + // console.log(c.text()); + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await clearDynamicLoginMethodsSettings(page); + }); + + afterEach(async function () { + await fetch(`${TEST_SERVER_BASE_URL}/after`, { + method: "POST", + }).catch(console.error); + + await fetch(`${TEST_SERVER_BASE_URL}/stopst`, { + method: "POST", + }).catch(console.error); + await screenshotOnFailure(this, browser); + if (page) { + await page.close(); + } + }); + + before(async () => { + browser = await puppeteer.launch({ + args: ["--no-sandbox", "--disable-setuid-sandbox", "--disable-web-security"], + headless: true, + }); + }); + + after(async function () { + await browser.close(); + }); + + it("Renders correct signup form with emailpassword when core list of providers is empty", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: true }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const providers = await getProvidersLabels(page); + compareArrayContents(providers, [ + "Continue with Github", + "Continue with Google", + "Continue with Facebook", + "Continue with Auth0", + ]); + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, ["email", "password"]); + }); + + it("throws when core recipes have no overlap with frontend recipes", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await assertNoSTComponents(page); + assert(pageCrashed); + }); + + it("throws when core recipes have no overlap with frontend recipes without react-router-dom", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}?router=no-router`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await assertNoSTComponents(page); + assert(pageCrashed); + }); + + it("Renders providers from core", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: true }, + thirdParty: { + enabled: true, + providers: [{ id: "apple", name: "Apple" }], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const providers = await getProvidersLabels(page); + compareArrayContents(providers, ["Continue with Apple"]); + }); + + it("should postpone render with no react-router-dom", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [{ id: "apple", name: "Apple" }], + }, + }); + await Promise.all([page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}?router=no-router`)]); + const superTokensComponent = await page.$(ST_ROOT_SELECTOR); + assert.deepStrictEqual(superTokensComponent, null); + await page.waitForTimeout(2000); + const providers = await getProvidersLabels(page); + compareArrayContents(providers, ["Continue with Apple"]); + }); + + it("renders passwordless form only when enabled on the core", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const input = await page.$("[data-supertokens~=input][name=emailOrPhone]"); + assert.deepStrictEqual(input, null); + + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: true }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await Promise.all([page.reload(), page.waitForNavigation({ waitUntil: "networkidle0" })]); + await waitForSTElement(page, "[data-supertokens~=input][name=emailOrPhone]"); + }); + + it("renders thirdpartypasswordless form when enabled on the core", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: true }, + thirdParty: { + enabled: true, + providers: [{ id: "apple", name: "Apple" }], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + compareArrayContents(providers, ["Continue with Apple"]); + await waitForSTElement(page, "[data-supertokens~=input][name=emailOrPhone]"); + }); + + it("Renders providers based on the prefix", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [ + { + id: "github", + name: "Github", + }, + { + id: "github-1", + name: "Github-1", + }, + ], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + compareArrayContents(providers, ["Continue with Github", "Continue with Github-1"]); + assert.strictEqual(await getProviderLogoCount(page), 2); + }); + + it("Renders custom provider set in the core", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [ + { + id: "test", + name: "Test", + }, + ], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + + compareArrayContents(providers, ["Continue with Test"]); + assert.strictEqual(await getProviderLogoCount(page), 0); + }); + + // Examples from https://supertokens.com/docs/contribute/decisions/multitenancy/0002 + it("should show built-in providers added in core w/ empty static provider list", async function () { + await setStaticProviderList(page, []); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [ + { + id: "apple", + }, + { + id: "google", + }, + ], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + compareArrayContents(providers, ["Continue with Apple", "Continue with Google"]); + assert.strictEqual(await getProviderLogoCount(page), 2); + }); + + it("should show BE static providers if the list from core is empty", async function () { + await setStaticProviderList(page, ["google"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + compareArrayContents(providers, [ + "Continue with Github", + "Continue with Google", + "Continue with Facebook", + "Continue with Auth0", + ]); + assert.strictEqual(await getProviderLogoCount(page), 3); + }); + + it("should only show providers enabled on the core", async function () { + await setStaticProviderList(page, ["apple", "google", "facebook"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [ + { + id: "apple", + }, + { + id: "google", + }, + ], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + compareArrayContents(providers, ["Continue with Apple", "Continue with Google"]); + assert.strictEqual(await getProviderLogoCount(page), 2); + }); + + it("should only show providers enabled on the core initializing built-ins if necessary", async function () { + await setStaticProviderList(page, ["apple", "google", "facebook"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [ + { + id: "google", + }, + { + id: "facebook", + }, + ], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + compareArrayContents(providers, ["Continue with Google", "Continue with Facebook"]); + assert.strictEqual(await getProviderLogoCount(page), 2); + }); + + it("should only show providers enabled on the core even if there is no overlap between the lists", async function () { + await setStaticProviderList(page, ["apple"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [ + { + id: "google", + }, + { + id: "facebook", + }, + ], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + compareArrayContents(providers, ["Continue with Google", "Continue with Facebook"]); + assert.strictEqual(await getProviderLogoCount(page), 2); + }); + + // Examples from https://supertokens.com/docs/contribute/decisions/multitenancy/0006 + + it("should should show emailpassword if it's the only one added on both", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.strictEqual(providers.length, 0); + assert.strictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, true); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, ["email", "password"]); + }); + + it("should should show thirdpartyemailpassword with emailpassword disabled if FE only has tpep but only thirdparty is enabled", async function () { + await setEnabledRecipes(page, ["thirdpartyemailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, true); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, []); + }); + + it("should should show thirdpartyemailpassword if FE has tpep and both emailpassword and thirdparty is enabled", async function () { + await setEnabledRecipes(page, ["thirdpartyemailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, false); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, ["email", "password"]); + }); + + // This is slightly different than the version in the ADR, since it hasn't been updated + it("should should show emailpassword if FE has tp and ep but (no tpep) and both emailpassword and thirdparty is enabled", async function () { + await setEnabledRecipes(page, ["thirdparty", "emailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.strictEqual(providers.length, 0); + assert.strictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, true); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, ["email", "password"]); + }); + + it("should should show thirdparty if FE has tp and pwless and both emailpassword and thirdparty is enabled", async function () { + await setEnabledRecipes(page, ["thirdparty", "passwordless"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, true); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, []); + }); + + it("should should show thirdpartyemailpassword if FE has tpep and ep and both emailpassword and thirdparty is enabled", async function () { + await setEnabledRecipes(page, ["thirdpartyemailpassword", "emailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, false); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, ["email", "password"]); + }); + + it("should should show thirdpartypasswordless if FE has tppwless and ep and both emailpassword and thirdparty is enabled", async function () { + await setEnabledRecipes(page, ["thirdpartypasswordless", "emailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyPasswordlessDivider']`, true); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, []); + }); + + it("should should show thirdpartyemailpassword if FE has tpep and tppwless and all 3 enabled in core", async function () { + await setEnabledRecipes(page, ["thirdpartypasswordless", "thirdpartyemailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: true }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, false); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, ["email", "password"]); + }); + + it("should should show thirdpartypwless if rid has FE has tpep and tppwless and all 3 enabled in core", async function () { + await setEnabledRecipes(page, ["thirdpartypasswordless", "thirdpartyemailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: true }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}?rid=thirdpartypasswordless`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, false); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, ["email", "password"]); + }); + + it("should should show something went wrong if logging in with disabled method", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: true }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + + await page.evaluate(() => { + window.localStorage.setItem("usesDynamicLoginMethods", "false"); + }); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const link = await getSignInOrSignUpSwitchLink(page); + await link.click(); + + const email = `john.doe.${Date.now()}@supertokens.io`; + + await setInputValues(page, [ + { name: "email", value: email }, + { name: "password", value: "Str0ngP@ssw0rd" }, + { name: "name", value: "John Doe" }, + { name: "age", value: "20" }, + { name: "country", value: "" }, + ]); + + let [_, error] = await Promise.all([submitForm(page), getGeneralError(page)]); + + assert.strictEqual(error, SOMETHING_WENT_WRONG_ERROR); + }); + + it("should should show thirdparty if FE has tp and pwless and both emailpassword and thirdparty is enabled", async function () { + await setEnabledRecipes(page, ["thirdparty", "passwordless"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, true); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, []); + }); + + it("should should be able to log in with dynamically added tp providers", async function () { + await setEnabledRecipes(page, ["thirdparty"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [ + { id: "apple", name: "Apple" }, + { id: "auth0", name: "Auth0" }, + { id: "auth0-1", name: "Auth0 CustomName" }, + ], + }, + }); + + await page.evaluate((TEST_CLIENT_BASE_URL) => { + localStorage.setItem("thirdPartyRedirectURL", `${TEST_CLIENT_BASE_URL}/auth/callback/auth0`); + }, TEST_CLIENT_BASE_URL); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await clickOnProviderButton(page, "Auth0"); + await Promise.all([ + loginWithAuth0(page), + page.waitForResponse((response) => response.url() === SIGN_IN_UP_API && response.status() === 200), + ]); + await Promise.all([page.waitForSelector(".sessionInfo-user-id"), page.waitForNetworkIdle()]); + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await clickOnProviderButton(page, "Auth0 CustomName"); + await Promise.all([ + loginWithAuth0(page), + page.waitForResponse((response) => response.url() === SIGN_IN_UP_API && response.status() === 200), + ]); + await Promise.all([page.waitForSelector(".sessionInfo-user-id"), page.waitForNetworkIdle()]); + await clearBrowserCookiesWithoutAffectingConsole(page, []); + }); +}); + +function setEnabledRecipes(page, recipeIds) { + return page.evaluate((serializedRecipeIdList) => { + window.localStorage.setItem("clientRecipeListForDynamicLogin", serializedRecipeIdList); + }, JSON.stringify(recipeIds)); +} + +function setStaticProviderList(page, providerIds) { + return page.evaluate((providerIds) => { + window.localStorage.setItem("staticProviderList", providerIds); + }, JSON.stringify(providerIds)); +} + +function clearDynamicLoginMethodsSettings(page) { + return page.evaluate(() => { + window.localStorage.removeItem("usesDynamicLoginMethods"); + window.localStorage.removeItem("mockLoginMethodsForDynamicLogin"); + window.localStorage.removeItem("clientRecipeListForDynamicLogin"); + window.localStorage.removeItem("staticProviderList"); + }); +} + +export async function enableDynamicLoginMethods(page, mockLoginMethods, tenantId = "public", app = "public") { + let coreResp = await fetch(`http://localhost:9000/appid-${app}/recipe/multitenancy/tenant`, { + method: "PUT", + headers: new Headers([ + ["content-type", "application/json"], + ["rid", "multitenancy"], + ]), + body: JSON.stringify({ + tenantId, + emailPasswordEnabled: mockLoginMethods.emailPassword?.enabled === true, + thirdPartyEnabled: mockLoginMethods.thirdParty?.enabled === true, + passwordlessEnabled: mockLoginMethods.passwordless?.enabled === true, + coreConfig: {}, + }), + }); + assert.strictEqual(coreResp.status, 200); + + for (const provider of mockLoginMethods["thirdParty"]?.providers) { + coreResp = await fetch(`http://localhost:9000/appid-${app}/${tenantId}/recipe/multitenancy/config/thirdparty`, { + method: "PUT", + headers: new Headers([ + ["content-type", "application/json"], + ["rid", "multitenancy"], + ]), + body: JSON.stringify({ + skipValidation: true, + config: { + ...providerConfigs[provider.id.split("-")[0]], + thirdPartyId: provider.id, + name: provider.name, + }, + }), + }); + + assert.strictEqual(coreResp.status, 200); + } + coreResp = await fetch(`http://localhost:9000/appid-${app}/${tenantId}/recipe/multitenancy/tenant`, { + method: "GET", + headers: new Headers([ + ["content-type", "application/json"], + ["rid", "multitenancy"], + ]), + }); + + return page.evaluate(() => { + window.localStorage.setItem("usesDynamicLoginMethods", "true"); + }); +} + +/** + * + * @param {Array} actual + * @param {Array} expected + * @returns + */ +function compareArrayContents(actual, expected) { + return assert.deepStrictEqual(actual.sort(), expected.sort()); +} + +const providerConfigs = { + apple: { + clients: [ + { + clientId: "4398792-io.supertokens.example.service", + additionalConfig: { + keyId: "7M48Y4RYDL", + privateKey: + "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgu8gXs+XYkqXD6Ala9Sf/iJXzhbwcoG5dMh1OonpdJUmgCgYIKoZIzj0DAQehRANCAASfrvlFbFCYqn3I2zeknYXLwtH30JuOKestDbSfZYxZNMqhF/OzdZFTV0zc5u5s3eN+oCWbnvl0hM+9IW0UlkdA\n-----END PRIVATE KEY-----", + teamId: "YWQCXGJRJL", + }, + }, + ], + }, + github: { + clients: [ + { + clientSecret: "e97051221f4b6426e8fe8d51486396703012f5bd", + clientId: "467101b197249757c71f", + }, + ], + }, + google: { + clients: [ + { + clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], + }, + auth0: { + // this contains info about forming the authorisation redirect URL without the state params and without the redirect_uri param + authorizationEndpoint: `https://${process.env.AUTH0_DOMAIN}/authorize`, + authorizationEndpointQueryParams: { + scope: "openid profile email email_verified", + }, + jwksURI: `https://${process.env.AUTH0_DOMAIN}/.well-known/jwks.json`, + tokenEndpoint: `https://${process.env.AUTH0_DOMAIN}/oauth/token`, + clients: [ + { + clientId: process.env.AUTH0_CLIENT_ID, + clientSecret: process.env.AUTH0_CLIENT_SECRET, + }, + ], + userInfoMap: { + fromIdTokenPayload: { + userId: "sub", + email: "email", + emailVerified: "email_verified", + }, + }, + }, + test: { + // We add a client since it's required + clients: [ + { + clientId: "1060725074195-kmeum4crr01uirfl2op9kd5acmi9jutn.apps.googleusercontent.com", + clientSecret: "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", + }, + ], + }, +}; diff --git a/test/end-to-end/multitenancy.mock.test.js b/test/end-to-end/multitenancy.mock.test.js new file mode 100644 index 000000000..d3900bbad --- /dev/null +++ b/test/end-to-end/multitenancy.mock.test.js @@ -0,0 +1,650 @@ +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +/* + * Imports + */ + +/* https://github.com/babel/babel/issues/9849#issuecomment-487040428 */ +import regeneratorRuntime from "regenerator-runtime"; +import assert from "assert"; +import puppeteer from "puppeteer"; +import fetch from "isomorphic-fetch"; +import { + waitForSTElement, + screenshotOnFailure, + getProvidersLabels, + getInputNames, + assertNoSTComponents, + assertProviders, + getProviderLogoCount, +} from "../helpers"; +import { TEST_CLIENT_BASE_URL, DEFAULT_WEBSITE_BASE_PATH, LOGIN_METHODS_API, ST_ROOT_SELECTOR } from "../constants"; +import { before } from "mocha"; + +// Run the tests in a DOM environment. +require("jsdom-global")(); + +/* + * Tests. + */ +describe.skip("SuperTokens Multitenancy w/ mocked login methods", function () { + let browser; + let page; + let pageCrashed; + + beforeEach(async function () { + page = await browser.newPage(); + pageCrashed = false; + page.on("console", (c) => { + if (c.text() === "ST_THROWN_ERROR") { + pageCrashed = true; + } + // console.log(c.text()); + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await clearDynamicLoginMethodsSettings(page); + }); + + afterEach(async function () { + await screenshotOnFailure(this, browser); + if (page) { + await page.close(); + } + }); + + before(async () => { + browser = await puppeteer.launch({ + args: ["--no-sandbox", "--disable-setuid-sandbox", "--disable-web-security"], + headless: true, + }); + }); + + after(async function () { + await browser.close(); + }); + + it("Renders correct signup form with emailpassword only when list of providers is empty", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: true }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await assertProviders(page); + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, ["email", "password"]); + }); + + it("throws when core recipes have no overlap with frontend recipes", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await assertNoSTComponents(page); + assert(pageCrashed); + }); + + it("throws when core recipes have no overlap with frontend recipes without react-router-dom", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}?router=no-router`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await assertNoSTComponents(page); + assert(pageCrashed); + }); + + it("Renders providers from core", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: true }, + thirdParty: { + enabled: true, + providers: [{ id: "apple", name: "Apple" }], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const providers = await getProvidersLabels(page); + assert.deepStrictEqual(providers, ["Continue with Apple"]); + }); + + it("should postpone render with no react-router-dom", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [{ id: "apple", name: "Apple" }], + }, + }); + await Promise.all([page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}?router=no-router`)]); + const superTokensComponent = await page.$(ST_ROOT_SELECTOR); + assert.deepStrictEqual(superTokensComponent, null); + await page.waitForTimeout(2000); + const providers = await getProvidersLabels(page); + assert.deepStrictEqual(providers, ["Continue with Apple"]); + }); + + it("renders passwordless form only when enabled on the core", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const input = await page.$("[data-supertokens~=input][name=emailOrPhone]"); + assert.deepStrictEqual(input, null); + + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: true }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await Promise.all([page.reload(), page.waitForNavigation({ waitUntil: "networkidle0" })]); + await waitForSTElement(page, "[data-supertokens~=input][name=emailOrPhone]"); + }); + + it("renders thirdpartypasswordless form when enabled on the core", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: true }, + thirdParty: { + enabled: true, + providers: [{ id: "apple", name: "Apple" }], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + assert.deepStrictEqual(providers, ["Continue with Apple"]); + await waitForSTElement(page, "[data-supertokens~=input][name=emailOrPhone]"); + }); + + it("Renders providers based on the prefix", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [ + { + id: "github", + name: "Github", + }, + { + id: "github-1", + name: "Github-1", + }, + ], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + assert.deepStrictEqual(providers, ["Continue with Github", "Continue with Github-1"]); + assert.strictEqual(await getProviderLogoCount(page), 2); + }); + + it("Renders custom provider set in the core", async function () { + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [ + { + id: "test", + name: "Test", + }, + ], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + assert.deepStrictEqual(providers, ["Continue with Test"]); + assert.strictEqual(await getProviderLogoCount(page), 0); + }); + + // Examples from https://supertokens.com/docs/contribute/decisions/multitenancy/0002 + it("should show built-in providers added in core w/ empty static provider list", async function () { + await setStaticProviderList(page, []); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [ + { + id: "apple", + }, + { + id: "google", + }, + ], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + assert.deepStrictEqual(providers, ["Continue with Apple", "Continue with Google"]); + assert.strictEqual(await getProviderLogoCount(page), 2); + }); + it("should show static providers if the list from core is empty", async function () { + await setStaticProviderList(page, ["google"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + assert.deepStrictEqual(providers, ["Continue with Google"]); + assert.strictEqual(await getProviderLogoCount(page), 1); + }); + + it("should only show providers enabled on the core", async function () { + await setStaticProviderList(page, ["apple", "google", "facebook"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [ + { + id: "apple", + }, + { + id: "google", + }, + ], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + assert.deepStrictEqual(providers, ["Continue with Apple", "Continue with Google"]); + assert.strictEqual(await getProviderLogoCount(page), 2); + }); + + it("should only show providers enabled on the core initializing built-ins if necessary", async function () { + await setStaticProviderList(page, ["apple", "google", "facebook"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [ + { + id: "google", + }, + { + id: "facebook", + }, + ], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + assert.deepStrictEqual(providers, ["Continue with Google", "Continue with Facebook"]); + assert.strictEqual(await getProviderLogoCount(page), 2); + }); + + it("should only show providers enabled on the core even if there is no overlap between the lists", async function () { + await setStaticProviderList(page, ["apple"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [ + { + id: "google", + name: "Google", + }, + { + id: "facebook", + }, + ], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const providers = await getProvidersLabels(page); + assert.deepStrictEqual(providers, ["Continue with Google", "Continue with Facebook"]); + assert.strictEqual(await getProviderLogoCount(page), 2); + }); + + // Examples from https://supertokens.com/docs/contribute/decisions/multitenancy/0006 + + it("should should show emailpassword if it's the only one added on both", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.strictEqual(providers.length, 0); + assert.strictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, true); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, ["email", "password"]); + }); + + it("should should show thirdpartyemailpassword with emailpassword disabled if FE only has tpep but only thirdparty is enabled", async function () { + await setEnabledRecipes(page, ["thirdpartyemailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: false }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, true); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, []); + }); + + it("should should show thirdpartyemailpassword if FE has tpep and both emailpassword and thirdparty is enabled", async function () { + await setEnabledRecipes(page, ["thirdpartyemailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, false); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, ["email", "password"]); + }); + + // This is slightly different than the version in the ADR, since it hasn't been updated + it("should should show emailpassword if FE has tp and ep but (no tpep) and both emailpassword and thirdparty is enabled", async function () { + await setEnabledRecipes(page, ["thirdparty", "emailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.strictEqual(providers.length, 0); + assert.strictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, true); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, ["email", "password"]); + }); + + it("should should show thirdparty if FE has tp and pwless and both emailpassword and thirdparty is enabled", async function () { + await setEnabledRecipes(page, ["thirdparty", "passwordless"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, true); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, []); + }); + + it("should should show thirdpartyemailpassword if FE has tpep and ep and both emailpassword and thirdparty is enabled", async function () { + await setEnabledRecipes(page, ["thirdpartyemailpassword", "emailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, false); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, ["email", "password"]); + }); + + it("should should show thirdpartypasswordless if FE has tpep and ep and both emailpassword and thirdparty is enabled", async function () { + await setEnabledRecipes(page, ["thirdpartypasswordless", "emailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyPasswordlessDivider']`, true); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, []); + }); + + it("should should show thirdpartyemailpassword if FE has tpep and tppwless and all 3 enabled in core", async function () { + await setEnabledRecipes(page, ["thirdpartypasswordless", "thirdpartyemailpassword"]); + await enableDynamicLoginMethods(page, { + emailPassword: { enabled: true }, + passwordless: { enabled: true }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + // Thirdparty + const providers = await getProvidersLabels(page); + assert.notStrictEqual(providers.length, 0); + assert.notStrictEqual(await getProviderLogoCount(page), 0); + + // Divider + await waitForSTElement(page, `[data-supertokens~='thirdPartyEmailPasswordDivider']`, false); + + // Emailpassword + const inputNames = await getInputNames(page); + assert.deepStrictEqual(inputNames, ["email", "password"]); + }); +}); + +function enableDynamicLoginMethods(page, mockLoginMethods) { + return page.evaluate((serializedLoginMethods) => { + window.localStorage.setItem("usesDynamicLoginMethods", "true"); + window.localStorage.setItem("mockLoginMethodsForDynamicLogin", serializedLoginMethods); + }, JSON.stringify(mockLoginMethods)); +} + +function setEnabledRecipes(page, recipeIds) { + return page.evaluate((serializedRecipeIdList) => { + window.localStorage.setItem("clientRecipeListForDynamicLogin", serializedRecipeIdList); + }, JSON.stringify(recipeIds)); +} + +function setStaticProviderList(page, providerIds) { + return page.evaluate((providerIds) => { + window.localStorage.setItem("staticProviderList", providerIds); + }, JSON.stringify(providerIds)); +} + +function clearDynamicLoginMethodsSettings(page) { + return page.evaluate(() => { + window.localStorage.removeItem("usesDynamicLoginMethods"); + window.localStorage.removeItem("mockLoginMethodsForDynamicLogin"); + window.localStorage.removeItem("clientRecipeListForDynamicLogin"); + window.localStorage.removeItem("staticProviderList"); + }); +} diff --git a/test/end-to-end/multitenancy.tenant_interactions.test.js b/test/end-to-end/multitenancy.tenant_interactions.test.js new file mode 100644 index 000000000..47bcacc16 --- /dev/null +++ b/test/end-to-end/multitenancy.tenant_interactions.test.js @@ -0,0 +1,1318 @@ +/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved. + * + * This software is licensed under the Apache License, Version 2.0 (the + * "License") as published by the Apache Software Foundation. + * + * You may not use this file except in compliance with the License. You may + * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +/* + * Imports + */ + +import assert from "assert"; +import puppeteer from "puppeteer"; +import fetch from "isomorphic-fetch"; +import { + screenshotOnFailure, + getSignInOrSignUpSwitchLink, + clearBrowserCookiesWithoutAffectingConsole, + setInputValues, + getGeneralError, + getLogoutButton, + submitForm, + getUserIdWithFetch, + getFieldErrors, + getSubmitFormButton, + waitForSTElement, + getPasswordlessDevice, + setPasswordlessFlowType, + getSessionHandleWithFetch, + getLatestURLWithToken, + sendEmailResetPasswordSuccessMessage, + getTextByDataSupertokens, + getVerificationEmailErrorTitle, +} from "../helpers"; +import { + TEST_CLIENT_BASE_URL, + DEFAULT_WEBSITE_BASE_PATH, + TEST_SERVER_BASE_URL, + SOMETHING_WENT_WRONG_ERROR, + ST_ROOT_SELECTOR, +} from "../constants"; + +// Run the tests in a DOM environment. +require("jsdom-global")(); + +/* + * Tests. + */ +describe("SuperTokens Multitenancy tenant interactions", function () { + let browser; + let page; + let pageCrashed; + + beforeEach(async function () { + await fetch(`${TEST_SERVER_BASE_URL}/beforeeach`, { + method: "POST", + }).catch(console.error); + + await fetch(`${TEST_SERVER_BASE_URL}/startst`, { + method: "POST", + }).catch(console.error); + + page = await browser.newPage(); + pageCrashed = false; + page.on("console", (c) => { + if (c.text() === "ST_THROWN_ERROR") { + pageCrashed = true; + } + // console.log(c.text()); + }); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await clearBrowserCookiesWithoutAffectingConsole(page, []); + await clearDynamicLoginMethodsSettings(page); + await page.evaluate(() => localStorage.removeItem("supertokens-passwordless-loginAttemptInfo")); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + }); + + afterEach(async function () { + await screenshotOnFailure(this, browser); + if (page) { + await page.close(); + } + await fetch(`${TEST_SERVER_BASE_URL}/after`, { + method: "POST", + }).catch(console.error); + + await fetch(`${TEST_SERVER_BASE_URL}/stopst`, { + method: "POST", + }).catch(console.error); + }); + + before(async () => { + browser = await puppeteer.launch({ + args: ["--no-sandbox", "--disable-setuid-sandbox", "--disable-web-security"], + headless: true, + }); + }); + + after(async function () { + await browser.close(); + }); + + describe("without user sharing", () => { + it("should not allow sign into user created on public when using a custom tenants", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const email = await epSignUp(page); + + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await setTenantId(page, "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await epSignIn(page, email, "Incorrect email and password combination"); + }); + + it("should not allow sign into user created on custom tenant when using public", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await setTenantId(page, "customer1"); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const email = await epSignUp(page); + + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await setTenantId(page, "public"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await epSignIn(page, email, "Incorrect email and password combination"); + }); + + it("should allow sign up on custom tenant after signing up on public", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const email = await epSignUp(page); + + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await setTenantId(page, "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await epSignUp(page, email); + }); + + it("should allow sign up on public tenant after signing up on a custom", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await setTenantId(page, "customer1"); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const email = await epSignUp(page); + + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await setTenantId(page, "public"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await epSignUp(page, email); + }); + }); + + describe("with user sharing", () => { + it("should allow sign into user created on public when using a custom tenants", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const email = await epSignUp(page); + const userId = await getUserIdWithFetch(page); + addUserToTenant("public", "customer1", userId); + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await setTenantId(page, "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await epSignIn(page, email); + }); + + it("should allow sign into user created on custom tenant when using public", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await setTenantId(page, "customer1"); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const email = await epSignUp(page); + + const userId = await getUserIdWithFetch(page); + addUserToTenant("public", "public", userId); + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await setTenantId(page, "public"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await epSignIn(page, email); + }); + + it("should not allow sign up on custom tenant after signing up on public", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const email = await epSignUp(page); + const userId = await getUserIdWithFetch(page); + addUserToTenant("public", "customer1", userId); + + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await setTenantId(page, "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await epSignUp(page, email, ["This email already exists. Please sign in instead"]); + }); + + it("should not allow sign up on public tenant after signing up on a custom", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await setTenantId(page, "customer1"); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const email = await epSignUp(page); + let pathname = await page.evaluate(() => window.location.pathname); + assert.deepStrictEqual(pathname, "/dashboard"); + const userId = await getUserIdWithFetch(page); + addUserToTenant("public", "public", userId); + + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await setTenantId(page, "public"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await epSignUp(page, email, ["This email already exists. Please sign in instead"]); + }); + }); + + describe("with removed user", () => { + it("should not allow sign in", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const email = await epSignUp(page); + + const userId = await getUserIdWithFetch(page); + removeUserFromTenant("public", "public", userId); + + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await epSignIn(page, email, "Incorrect email and password combination"); + }); + + it("should allow sign up", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const email = await epSignUp(page); + + const userId = await getUserIdWithFetch(page); + removeUserFromTenant("public", "public", userId); + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await epSignUp(page, email); + const userIdAfter = await getUserIdWithFetch(page); + assert.notStrictEqual(userId, userIdAfter); + }); + + it("should log out on refresh", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await epSignUp(page); + + const userId = await getUserIdWithFetch(page); + removeUserFromTenant("public", "public", userId); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}/dashboard`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await getSubmitFormButton(page); + let pathname = await page.evaluate(() => window.location.pathname); + assert.deepStrictEqual(pathname, "/auth/"); + }); + }); + + describe("with removed tenant", () => { + it("should not allow sign in", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setTenantId(page, "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const email = await epSignUp(page); + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await removeTenant("public", "customer1"); + await epSignIn(page, email, SOMETHING_WENT_WRONG_ERROR); + }); + + it("should not allow sign up", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setTenantId(page, "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await removeTenant("public", "customer1"); + await epSignUp(page, undefined, [], SOMETHING_WENT_WRONG_ERROR); + }); + + it("should crash if dynamic login methods is enabled", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await enableDynamicLoginMethods(page); + await setTenantId(page, "customer1"); + + await removeTenant("public", "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + assert.strictEqual(await page.waitForSelector(ST_ROOT_SELECTOR, { timeout: 1000, hidden: true }), null); + }); + + it("should keep the session active if dynamic login methods is not enabled", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setTenantId(page, "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await epSignUp(page); + + await removeTenant("public", "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}/dashboard`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await getLogoutButton(page); + + assert(!pageCrashed); + }); + + it.skip("should revoke magic links on removed tenants", async function () { + await setPasswordlessFlowType("EMAIL_OR_PHONE", "USER_INPUT_CODE_AND_MAGIC_LINK"); + await setEnabledRecipes(page, ["passwordless"]); + await setupTenant("public", "customer1", { + emailPassword: { enabled: false }, + passwordless: { enabled: true }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await setTenantId(page, "customer1"); + await enableDynamicLoginMethods(page); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const contactInfo = `john.doe.${Date.now()}@supertokens.io`; + await setInputValues(page, [{ name: "emailOrPhone", value: contactInfo }]); + await submitForm(page); + + await waitForSTElement(page, "[data-supertokens~=input][name=userInputCode]"); + + const loginAttemptInfo = JSON.parse( + await page.evaluate(() => localStorage.getItem("supertokens-passwordless-loginAttemptInfo")) + ); + const device = await getPasswordlessDevice(loginAttemptInfo); + + await removeTenant("public", "customer1"); + await setTenantId(page, "public"); + + await page.goto(device.codes[0].urlWithLinkCode); + + assert.strictEqual(await getGeneralError(page), SOMETHING_WENT_WRONG_ERROR); + await waitForSTElement(page, "[data-supertokens~=input][name=emailOrPhone]"); + }); + }); + + describe("passwordless sign in", () => { + beforeEach(async () => { + await setPasswordlessFlowType("EMAIL_OR_PHONE", "USER_INPUT_CODE_AND_MAGIC_LINK"); + }); + + it("should work using OTP on the public tenants", async function () { + await setEnabledRecipes(page, ["passwordless"]); + await setupTenant("public", "public", { + emailPassword: { enabled: false }, + passwordless: { enabled: true }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await enableDynamicLoginMethods(page); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const contactInfo = `john.doe.${Date.now()}@supertokens.io`; + await setInputValues(page, [{ name: "emailOrPhone", value: contactInfo }]); + await submitForm(page); + + await waitForSTElement(page, "[data-supertokens~=input][name=userInputCode]"); + + const loginAttemptInfo = JSON.parse( + await page.evaluate(() => localStorage.getItem("supertokens-passwordless-loginAttemptInfo")) + ); + const device = await getPasswordlessDevice(loginAttemptInfo); + await setInputValues(page, [{ name: "userInputCode", value: device.codes[0].userInputCode }]); + await submitForm(page); + + await page.waitForSelector(".sessionInfo-user-id"); + }); + + it("should work using magic links on the public tenants", async function () { + await setEnabledRecipes(page, ["passwordless"]); + await setupTenant("public", "public", { + emailPassword: { enabled: false }, + passwordless: { enabled: true }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await enableDynamicLoginMethods(page); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const contactInfo = `john.doe.${Date.now()}@supertokens.io`; + await setInputValues(page, [{ name: "emailOrPhone", value: contactInfo }]); + await submitForm(page); + + await waitForSTElement(page, "[data-supertokens~=input][name=userInputCode]"); + + const loginAttemptInfo = JSON.parse( + await page.evaluate(() => localStorage.getItem("supertokens-passwordless-loginAttemptInfo")) + ); + const device = await getPasswordlessDevice(loginAttemptInfo); + await page.goto(device.codes[0].urlWithLinkCode); + + await page.waitForSelector(".sessionInfo-user-id"); + }); + + it("should work using OTP on a custom tenants", async function () { + await setEnabledRecipes(page, ["passwordless"]); + await setupTenant("public", "customer1", { + emailPassword: { enabled: false }, + passwordless: { enabled: true }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await enableDynamicLoginMethods(page); + await setTenantId(page, "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const contactInfo = `john.doe.${Date.now()}@supertokens.io`; + await setInputValues(page, [{ name: "emailOrPhone", value: contactInfo }]); + await submitForm(page); + + await waitForSTElement(page, "[data-supertokens~=input][name=userInputCode]"); + + const loginAttemptInfo = JSON.parse( + await page.evaluate(() => localStorage.getItem("supertokens-passwordless-loginAttemptInfo")) + ); + const device = await getPasswordlessDevice(loginAttemptInfo); + await setInputValues(page, [{ name: "userInputCode", value: device.codes[0].userInputCode }]); + await submitForm(page); + + await page.waitForSelector(".sessionInfo-user-id"); + }); + + it("should work using magic links on a custom tenants", async function () { + await setEnabledRecipes(page, ["passwordless"]); + await setupTenant("public", "customer1", { + emailPassword: { enabled: false }, + passwordless: { enabled: true }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await enableDynamicLoginMethods(page); + await setTenantId(page, "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const contactInfo = `john.doe.${Date.now()}@supertokens.io`; + await setInputValues(page, [{ name: "emailOrPhone", value: contactInfo }]); + await submitForm(page); + + await waitForSTElement(page, "[data-supertokens~=input][name=userInputCode]"); + const loginAttemptInfo = JSON.parse( + await page.evaluate(() => localStorage.getItem("supertokens-passwordless-loginAttemptInfo")) + ); + const device = await getPasswordlessDevice(loginAttemptInfo); + await page.goto(device.codes[0].urlWithLinkCode); + + await page.waitForSelector(".sessionInfo-user-id"); + assert((await getSessionHandleWithFetch(page)).endsWith("_customer1")); + }); + + it("should work using magic links on a custom tenants even if the current app has the wrong tenant id", async function () { + await setEnabledRecipes(page, ["passwordless"]); + await setupTenant("public", "customer1", { + emailPassword: { enabled: false }, + passwordless: { enabled: true }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await enableDynamicLoginMethods(page); + await setTenantId(page, "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const contactInfo = `john.doe.${Date.now()}@supertokens.io`; + await setInputValues(page, [{ name: "emailOrPhone", value: contactInfo }]); + await submitForm(page); + + await waitForSTElement(page, "[data-supertokens~=input][name=userInputCode]"); + const loginAttemptInfo = JSON.parse( + await page.evaluate(() => localStorage.getItem("supertokens-passwordless-loginAttemptInfo")) + ); + const device = await getPasswordlessDevice(loginAttemptInfo); + await setTenantId(page, "public"); + await page.goto(device.codes[0].urlWithLinkCode); + + await page.waitForSelector(".sessionInfo-user-id"); + assert((await getSessionHandleWithFetch(page)).endsWith("_customer1")); + }); + + it("should work using OTP on a custom tenants even if the current app has the wrong tenant id", async function () { + await setEnabledRecipes(page, ["passwordless"]); + await setupTenant("public", "customer1", { + emailPassword: { enabled: false }, + passwordless: { enabled: true }, + thirdParty: { + enabled: false, + providers: [], + }, + }); + await enableDynamicLoginMethods(page); + await setTenantId(page, "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + const contactInfo = `john.doe.${Date.now()}@supertokens.io`; + await setInputValues(page, [{ name: "emailOrPhone", value: contactInfo }]); + await submitForm(page); + + await waitForSTElement(page, "[data-supertokens~=input][name=userInputCode]"); + const loginAttemptInfo = JSON.parse( + await page.evaluate(() => localStorage.getItem("supertokens-passwordless-loginAttemptInfo")) + ); + const device = await getPasswordlessDevice(loginAttemptInfo); + await setTenantId(page, "public"); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await setInputValues(page, [{ name: "userInputCode", value: device.codes[0].userInputCode }]); + await submitForm(page); + + await page.waitForSelector(".sessionInfo-user-id"); + + await page.waitForSelector(".sessionInfo-user-id"); + assert((await getSessionHandleWithFetch(page)).endsWith("_customer1")); + }); + }); + + describe("password reset links", () => { + it("should reset password only on the tenant the link was created customer1 -> public", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await setTenantId(page, "customer1"); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const email = await epSignUp(page); + + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await setTenantId(page, "public"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await epSignUp(page, email); + + const newPassword = await resetPassword(page, email); + + await epSignIn(page, email, "Incorrect email and password combination"); + await epSignIn(page, email, undefined, newPassword); + + await setTenantId(page, "customer1"); + await clearBrowserCookiesWithoutAffectingConsole(page, []); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await epSignIn(page, email, "Incorrect email and password combination", newPassword); + await epSignIn(page, email); + }); + + it("should reset password only on the tenant the link was created", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await setTenantId(page, "public"); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const email = await epSignUp(page); + + await clearBrowserCookiesWithoutAffectingConsole(page, []); + + await setTenantId(page, "customer1"); + + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await epSignUp(page, email); + + const newPassword = await resetPassword(page, email); + + await epSignIn(page, email, "Incorrect email and password combination"); + await epSignIn(page, email, undefined, newPassword); + + await setTenantId(page, "public"); + await clearBrowserCookiesWithoutAffectingConsole(page, []); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await epSignIn(page, email, "Incorrect email and password combination", newPassword); + await epSignIn(page, email); + }); + + it("should be revoked when removing tenants", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await setTenantId(page, "customer1"); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const email = await epSignUp(page); + + await clearBrowserCookiesWithoutAffectingConsole(page, []); + await page.goto(`${TEST_CLIENT_BASE_URL}/auth/reset-password`); + + await setInputValues(page, [{ name: "email", value: email }]); + await submitForm(page); + await sendEmailResetPasswordSuccessMessage(page); + const latestURLWithToken = await getLatestURLWithToken(); + await removeTenant("public", "customer1"); + await page.goto(latestURLWithToken); + + const newPassword = "NEW_Str0ngP@ssw0rd"; + await setInputValues(page, [ + { name: "password", value: newPassword }, + { name: "confirm-password", value: newPassword }, + ]); + await submitForm(page); + assert.strictEqual(await getGeneralError(page), SOMETHING_WENT_WRONG_ERROR); + }); + }); + + describe("email verification links", () => { + it("should verify email only on the tenant in the link", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await setTenantId(page, "customer1"); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}?mode=REQUIRED`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const email = await epSignUp(page, undefined, undefined, undefined, true); + + await new Promise((res) => setTimeout(res, 1000)); + const latestURLWithTokenCustomer1 = await getLatestURLWithToken(); + + await clearBrowserCookiesWithoutAffectingConsole(page, []); + await setTenantId(page, "public"); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}?mode=REQUIRED`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + + await epSignUp(page, email, undefined, undefined, true); + + await new Promise((res) => setTimeout(res, 1000)); + const latestURLWithTokenPublic = await getLatestURLWithToken(); + + assert.notStrictEqual(latestURLWithTokenPublic, latestURLWithTokenCustomer1); + await page.goto(latestURLWithTokenCustomer1); + await submitForm(page); + // We verify the email on the customer1 tenant, but we are logged in on public, so we get back to the email verification screen + await waitForSTElement(page, "[data-supertokens~='sendVerifyEmailIcon']"); + + await page.goto(latestURLWithTokenPublic); + await submitForm(page); + // This time we verify the email on the public tenant so we get to the logged-in screen + await getLogoutButton(page); + + await setTenantId(page, "customer1"); + await clearBrowserCookiesWithoutAffectingConsole(page, []); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}?mode=REQUIRED`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + await epSignIn(page, email); + }); + + it("should be revoked when removing tenants", async function () { + await setEnabledRecipes(page, ["emailpassword"]); + await setupTenant("public", "public", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + await setupTenant("public", "customer1", { + emailPassword: { enabled: true }, + passwordless: { enabled: false }, + thirdParty: { + enabled: true, + providers: [], + }, + }); + + await setTenantId(page, "customer1"); + await Promise.all([ + page.goto(`${TEST_CLIENT_BASE_URL}${DEFAULT_WEBSITE_BASE_PATH}?mode=REQUIRED`), + page.waitForNavigation({ waitUntil: "networkidle0" }), + ]); + const email = await epSignUp(page, undefined, undefined, undefined, true); + + await new Promise((res) => setTimeout(res, 1000)); + const latestURLWithToken = await getLatestURLWithToken(); + await removeTenant("public", "customer1"); + await page.goto(latestURLWithToken); + + assert.strictEqual(await getVerificationEmailErrorTitle(page), "!\nSomething went wrong"); + }); + }); +}); + +async function resetPassword(page, email) { + await clearBrowserCookiesWithoutAffectingConsole(page, []); + await page.goto(`${TEST_CLIENT_BASE_URL}/auth/reset-password`); + + await setInputValues(page, [{ name: "email", value: email }]); + await submitForm(page); + await sendEmailResetPasswordSuccessMessage(page); + const latestURLWithToken = await getLatestURLWithToken(); + await page.goto(latestURLWithToken); + + const newPassword = "NEW_Str0ngP@ssw0rd"; + await setInputValues(page, [ + { name: "password", value: newPassword }, + { name: "confirm-password", value: newPassword }, + ]); + await submitForm(page); + + await new Promise((res) => setTimeout(res, 1000)); + const title = await getTextByDataSupertokens(page, "headerTitle"); + assert.deepStrictEqual(title, "Success!"); + await submitForm(page); + return newPassword; +} + +function setEnabledRecipes(page, recipeIds) { + return page.evaluate((serializedRecipeIdList) => { + window.localStorage.setItem("clientRecipeListForDynamicLogin", serializedRecipeIdList); + }, JSON.stringify(recipeIds)); +} + +function clearDynamicLoginMethodsSettings(page) { + return page.evaluate(() => { + window.localStorage.removeItem("usesDynamicLoginMethods"); + window.localStorage.removeItem("mockLoginMethodsForDynamicLogin"); + window.localStorage.removeItem("clientRecipeListForDynamicLogin"); + window.localStorage.removeItem("staticProviderList"); + window.localStorage.removeItem("mockTenantId"); + }); +} + +function setTenantId(page, id) { + return page.evaluate((id) => { + window.localStorage.setItem("mockTenantId", id); + }, id); +} + +export async function enableDynamicLoginMethods(page) { + return page.evaluate(() => { + window.localStorage.setItem("usesDynamicLoginMethods", "true"); + }); +} + +async function setupTenant(appId, tenantId, mockLoginMethods) { + let coreResp = await fetch(`http://localhost:9000/appid-${appId}/recipe/multitenancy/tenant`, { + method: "PUT", + headers: new Headers([ + ["content-type", "application/json"], + ["rid", "multitenancy"], + ]), + body: JSON.stringify({ + tenantId, + emailPasswordEnabled: mockLoginMethods.emailPassword?.enabled === true, + thirdPartyEnabled: mockLoginMethods.thirdParty?.enabled === true, + passwordlessEnabled: mockLoginMethods.passwordless?.enabled === true, + coreConfig: {}, + }), + }); + assert.strictEqual(coreResp.status, 200); +} + +async function addUserToTenant(appId, tenantId, userId) { + let coreResp = await fetch(`http://localhost:9000/appid-${appId}/${tenantId}/recipe/multitenancy/tenant/user`, { + method: "POST", + headers: new Headers([ + ["content-type", "application/json"], + ["rid", "multitenancy"], + ]), + body: JSON.stringify({ + userId, + }), + }); + assert.strictEqual(coreResp.status, 200); +} + +async function removeUserFromTenant(appId, tenantId, userId) { + let coreResp = await fetch( + `http://localhost:9000/appid-${appId}/${tenantId}/recipe/multitenancy/tenant/user/remove`, + { + method: "POST", + headers: new Headers([ + ["content-type", "application/json"], + ["rid", "multitenancy"], + ]), + body: JSON.stringify({ + userId, + }), + } + ); + assert.strictEqual(coreResp.status, 200); +} + +async function removeTenant(appId, tenantId) { + let coreResp = await fetch(`http://localhost:9000/appid-${appId}/recipe/multitenancy/tenant/remove`, { + method: "POST", + headers: new Headers([["rid", "multitenancy"]]), + body: JSON.stringify({ + tenantId, + }), + }); + assert.strictEqual(coreResp.status, 200); +} + +async function epSignUp(page, email, fieldErrors, generalError, emailVerificationRequired) { + const link = await getSignInOrSignUpSwitchLink(page); + const linkText = await link.evaluate((e) => e.textContent); + if (linkText === "Sign Up") { + await link.click(); + } + if (email === undefined) { + email = `john.doe.${Date.now()}@supertokens.io`; + } + + await setInputValues(page, [ + { name: "email", value: email }, + { name: "password", value: "Str0ngP@ssw0rd" }, + { name: "name", value: "John Doe" }, + { name: "age", value: "20" }, + { name: "country", value: "" }, + ]); + + let [_, shownFieldErrors, shownGeneralError] = await Promise.all([ + submitForm(page), + fieldErrors !== undefined ? getFieldErrors(page) : undefined, + generalError !== undefined ? getGeneralError(page) : undefined, + fieldErrors === undefined && generalError === undefined + ? emailVerificationRequired === true + ? waitForSTElement(page, "[data-supertokens~='sendVerifyEmailIcon']") + : getLogoutButton(page) + : undefined, + ]); + + if (fieldErrors !== undefined) { + assert.deepStrictEqual(shownFieldErrors, fieldErrors); + } + + if (generalError !== undefined) { + assert.deepStrictEqual(shownGeneralError, generalError); + } + return email; +} + +async function epSignIn(page, email, errorMessage, password = "Str0ngP@ssw0rd") { + const link = await getSignInOrSignUpSwitchLink(page); + const linkText = await link.evaluate((e) => e.textContent); + if (linkText === "Sign In") { + await link.click(); + } + await setInputValues(page, [ + { name: "email", value: email }, + { name: "password", value: password }, + ]); + + let [_, err] = await Promise.all([ + submitForm(page), + errorMessage !== undefined ? getGeneralError(page) : getLogoutButton(page), + ]); + if (errorMessage !== undefined) { + assert.strictEqual(err, errorMessage); + } + return err; +} diff --git a/test/end-to-end/passwordless.test.js b/test/end-to-end/passwordless.test.js index c0a820ee1..ef7f55efc 100644 --- a/test/end-to-end/passwordless.test.js +++ b/test/end-to-end/passwordless.test.js @@ -2144,7 +2144,7 @@ async function initBrowser(contactMethod, consoleLogs, authRecipe, { defaultCoun const page = await browser.newPage(); page.on("console", (consoleObj) => { const log = consoleObj.text(); - + // console.log(log); if (log.startsWith("ST_LOGS")) { consoleLogs.push(log); } diff --git a/test/end-to-end/thirdparty.test.js b/test/end-to-end/thirdparty.test.js index 34a675e29..9c5ef5952 100644 --- a/test/end-to-end/thirdparty.test.js +++ b/test/end-to-end/thirdparty.test.js @@ -118,9 +118,9 @@ export function getThirdPartyTestCases({ authRecipe, rid, logId, signInUpPageLoa "ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS", ...signInUpPageLoadLogs, `ST_LOGS ${logId} OVERRIDE GET_AUTH_URL_WITH_QUERY_PARAMS_AND_SET_STATE`, - `ST_LOGS ${logId} OVERRIDE SET_OAUTH_STATE`, `ST_LOGS ${logId} OVERRIDE GET_OAUTH_AUTHORISATION_URL`, `ST_LOGS ${logId} PRE_API_HOOKS GET_AUTHORISATION_URL`, + `ST_LOGS ${logId} OVERRIDE SET_OAUTH_STATE`, "ST_LOGS SESSION OVERRIDE ADD_FETCH_INTERCEPTORS_AND_RETURN_MODIFIED_FETCH", "ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS", `ST_LOGS ${logId} OVERRIDE GET_OAUTH_STATE`, @@ -172,9 +172,9 @@ export function getThirdPartyTestCases({ authRecipe, rid, logId, signInUpPageLoa "ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS", ...signInUpPageLoadLogs, `ST_LOGS ${logId} OVERRIDE GET_AUTH_URL_WITH_QUERY_PARAMS_AND_SET_STATE`, - `ST_LOGS ${logId} OVERRIDE SET_OAUTH_STATE`, `ST_LOGS ${logId} OVERRIDE GET_OAUTH_AUTHORISATION_URL`, `ST_LOGS ${logId} PRE_API_HOOKS GET_AUTHORISATION_URL`, + `ST_LOGS ${logId} OVERRIDE SET_OAUTH_STATE`, "ST_LOGS SESSION OVERRIDE ADD_FETCH_INTERCEPTORS_AND_RETURN_MODIFIED_FETCH", // This is the callback page load "ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS", `ST_LOGS ${logId} OVERRIDE GET_OAUTH_STATE`, @@ -459,10 +459,17 @@ export function getThirdPartyTestCases({ authRecipe, rid, logId, signInUpPageLoa assert.deepStrictEqual(consoleLogs, [ "ST_LOGS SESSION OVERRIDE ADD_FETCH_INTERCEPTORS_AND_RETURN_MODIFIED_FETCH", // This is the callback page load "ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS", + `ST_LOGS ${logId} OVERRIDE GET_OAUTH_STATE`, + `ST_LOGS ${logId} OVERRIDE GET_OAUTH_STATE`, + `ST_LOGS ${logId} OVERRIDE ${thirdPartySignInUpLog}`, + `ST_LOGS ${logId} OVERRIDE GET_OAUTH_STATE`, + `ST_LOGS SUPERTOKENS GET_REDIRECTION_URL TO_AUTH`, + ...signInUpPageLoadLogs, ]); const pathname = await page.evaluate(() => window.location.pathname); - assert.deepStrictEqual(pathname, "/auth/callback/unknown"); - await assertNoSTComponents(page); + const search = await page.evaluate(() => window.location.search); + assert.deepStrictEqual(pathname, "/auth/"); + assert(search.endsWith("error=signin")); }); it("Expired state", async function () { diff --git a/test/end-to-end/thirdpartyemailpassword.test.js b/test/end-to-end/thirdpartyemailpassword.test.js index 544f59795..fbc9b5b1e 100644 --- a/test/end-to-end/thirdpartyemailpassword.test.js +++ b/test/end-to-end/thirdpartyemailpassword.test.js @@ -290,9 +290,9 @@ describe("SuperTokens Third Party Email Password", function () { "ST_LOGS SESSION OVERRIDE ADD_FETCH_INTERCEPTORS_AND_RETURN_MODIFIED_FETCH", "ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS", "ST_LOGS THIRD_PARTY_EMAIL_PASSWORD OVERRIDE GET_AUTH_URL_WITH_QUERY_PARAMS_AND_SET_STATE", - "ST_LOGS THIRD_PARTY_EMAIL_PASSWORD OVERRIDE SET_OAUTH_STATE", "ST_LOGS THIRD_PARTY_EMAIL_PASSWORD OVERRIDE GET_OAUTH_AUTHORISATION_URL", "ST_LOGS THIRD_PARTY_EMAIL_PASSWORD PRE_API_HOOKS GET_AUTHORISATION_URL", + "ST_LOGS THIRD_PARTY_EMAIL_PASSWORD OVERRIDE SET_OAUTH_STATE", "ST_LOGS SESSION OVERRIDE ADD_FETCH_INTERCEPTORS_AND_RETURN_MODIFIED_FETCH", "ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS", "ST_LOGS THIRD_PARTY_EMAIL_PASSWORD OVERRIDE GET_OAUTH_STATE", diff --git a/test/end-to-end/userContext.test.js b/test/end-to-end/userContext.test.js index d994b7dd3..fe1ee8c92 100644 --- a/test/end-to-end/userContext.test.js +++ b/test/end-to-end/userContext.test.js @@ -190,22 +190,10 @@ describe("SuperTokens userContext with UI components test", function () { assert(consoleLogs.includes("ST_LOGS THIRD_PARTY_EMAIL_PASSWORD OVERRIDE VERIFY_STATE RECEIVED_USER_CONTEXT")); - assert( - consoleLogs.includes( - "ST_LOGS THIRD_PARTY_EMAIL_PASSWORD OVERRIDE GET_AUTH_CODE_FROM_URL RECEIVED_USER_CONTEXT" - ) - ); - assert( consoleLogs.includes( "ST_LOGS THIRD_PARTY_EMAIL_PASSWORD OVERRIDE GET_OAUTH_AUTHORISATION_URL RECEIVED_USER_CONTEXT" ) ); - - assert( - consoleLogs.includes( - "ST_LOGS THIRD_PARTY_EMAIL_PASSWORD OVERRIDE GET_AUTH_ERROR_FROM_URL RECEIVED_USER_CONTEXT" - ) - ); }); }); diff --git a/test/helpers.js b/test/helpers.js index 24100284e..0ee6f024d 100644 --- a/test/helpers.js +++ b/test/helpers.js @@ -132,6 +132,17 @@ export async function getProvidersLabels(page) { ); } +export async function getProviderLogoCount(page) { + await waitForSTElement(page); + return await page.evaluate( + ({ ST_ROOT_SELECTOR }) => + document + .querySelector(ST_ROOT_SELECTOR) + .shadowRoot.querySelectorAll("[data-supertokens~='providerButtonLogo']").length, + { ST_ROOT_SELECTOR } + ); +} + export async function getSubmitFormButtonLabelWithoutShadowDom(page) { return await page.evaluate(() => document.querySelector("form > div > button").innerText); } @@ -518,7 +529,9 @@ export async function clickOnProviderButtonWithoutWaiting(page, provider) { Array.from( document .querySelector(ST_ROOT_SELECTOR) - .shadowRoot.querySelectorAll("[data-supertokens~='providerButton']") + .shadowRoot.querySelectorAll( + "[data-supertokens~='providerButton'] [data-supertokens~='providerButtonText']" + ) ) .find((button) => { return button.innerText === `Continue with ${provider}`; @@ -632,12 +645,14 @@ export async function getSessionHandleWithAxios(page) { } export async function getUserIdWithFetch(page) { + await page.waitForSelector("#root > div > div.fill > div > div.fetch > ul > li.sessionInfo-user-id"); return await page.evaluate( () => document.querySelector("#root > div > div.fill > div > div.fetch > ul > li.sessionInfo-user-id").innerText ); } export async function getSessionHandleWithFetch(page) { + await page.waitForSelector("#root > div > div.fill > div > div.fetch > ul > li.sessionInfo-session-handle"); return await page.evaluate( () => document.querySelector("#root > div > div.fill > div > div.fetch > ul > li.sessionInfo-session-handle") diff --git a/test/server/index.js b/test/server/index.js index 3bf8cf9bf..93f1b6e4b 100644 --- a/test/server/index.js +++ b/test/server/index.js @@ -15,6 +15,7 @@ require("dotenv").config(); let SuperTokens = require("supertokens-node"); let { default: SuperTokensRaw } = require("supertokens-node/lib/build/supertokens"); +const { default: MultitenancyRaw } = require("supertokens-node/lib/build/recipe/multitenancy/recipe"); const { default: EmailVerificationRaw } = require("supertokens-node/lib/build/recipe/emailverification/recipe"); const { default: EmailPasswordRaw } = require("supertokens-node/lib/build/recipe/emailpassword/recipe"); const { default: ThirdPartyRaw } = require("supertokens-node/lib/build/recipe/thirdparty/recipe"); @@ -46,6 +47,7 @@ let { stopST, } = require("./utils"); let { version: nodeSDKVersion } = require("supertokens-node/lib/build/version"); +const fetch = require("isomorphic-fetch"); let passwordlessSupported; let PasswordlessRaw; @@ -87,6 +89,43 @@ if (maxVersion(nodeSDKVersion, "9.9.9") === "9.9.9") { generalErrorSupported = true; } +const providers = [ + { + config: { + thirdPartyId: "google", + clients: [ + { + clientSecret: process.env.GOOGLE_CLIENT_SECRET, + clientId: process.env.GOOGLE_CLIENT_ID, + }, + ], + }, + }, + { + config: { + thirdPartyId: "github", + clients: [ + { + clientSecret: process.env.GITHUB_CLIENT_SECRET, + clientId: process.env.GITHUB_CLIENT_ID, + }, + ], + }, + }, + { + config: { + thirdPartyId: "facebook", + clients: [ + { + clientSecret: process.env.FACEBOOK_CLIENT_SECRET, + clientId: process.env.FACEBOOK_CLIENT_ID, + }, + ], + }, + }, + customAuth0Provider(), +]; + let urlencodedParser = bodyParser.urlencoded({ limit: "20mb", extended: true, parameterLimit: 20000 }); let jsonParser = bodyParser.json({ limit: "20mb" }); @@ -160,6 +199,18 @@ app.post("/startst", async (req, res) => { } } let pid = await startST(); + const OPAQUE_KEY_WITH_MULTITENANCY_FEATURE = + "ijaleljUd2kU9XXWLiqFYv5br8nutTxbyBqWypQdv2N-BocoNriPrnYQd0NXPm8rVkeEocN9ayq0B7c3Pv-BTBIhAZSclXMlgyfXtlwAOJk=9BfESEleW6LyTov47dXu"; + + await fetch(`http://localhost:9000/ee/license`, { + method: "PUT", + headers: { + "content-type": "application/json; charset=utf-8", + }, + body: JSON.stringify({ + licenseKey: OPAQUE_KEY_WITH_MULTITENANCY_FEATURE, + }), + }); res.send(pid + ""); }); @@ -183,27 +234,31 @@ app.post("/stopst", async (req, res) => { }); // custom API that requires session verification -app.get("/sessioninfo", verifySession(), async (req, res) => { +app.get("/sessioninfo", verifySession(), async (req, res, next) => { let session = req.session; const accessTokenPayload = session.getJWTPayload !== undefined ? session.getJWTPayload() : session.getAccessTokenPayload(); - const sessionData = session.getSessionData - ? await session.getSessionData() - : await session.getSessionDataFromDatabase(); - res.send({ - sessionHandle: session.getHandle(), - userId: session.getUserId(), - accessTokenPayload, - sessionData, - }); + try { + const sessionData = session.getSessionData + ? await session.getSessionData() + : await session.getSessionDataFromDatabase(); + res.send({ + sessionHandle: session.getHandle(), + userId: session.getUserId(), + accessTokenPayload, + sessionData, + }); + } catch (err) { + next(err); + } }); app.post("/deleteUser", async (req, res) => { if (req.body.rid !== "emailpassword") { res.status(400).send({ message: "Not implemented" }); } - const user = await EmailPassword.getUserByEmail(req.body.email); + const user = await EmailPassword.getUserByEmail("public", req.body.email); res.send(await SuperTokens.deleteUser(user.id)); }); @@ -217,7 +272,7 @@ app.get("/unverifyEmail", verifySession(), async (req, res) => { app.post("/setRole", verifySession(), async (req, res) => { let session = req.session; await UserRoles.createNewRoleOrAddPermissions(req.body.role, req.body.permissions); - await UserRoles.addRoleToUser(session.getUserId(), req.body.role); + await UserRoles.addRoleToUser(session.getTenantId(), session.getUserId(), req.body.role); await session.fetchAndSetClaim(UserRoles.UserRoleClaim); await session.fetchAndSetClaim(UserRoles.PermissionClaim); res.send({ status: "OK" }); @@ -257,8 +312,23 @@ app.post("/test/setFlow", (req, res) => { passwordlessConfig: { contactMethod: req.body.contactMethod, flowType: req.body.flowType, - createAndSendCustomTextMessage: saveCode, - createAndSendCustomEmail: saveCode, + + emailDelivery: { + override: (oI) => { + return { + ...oI, + sendEmail: saveCode, + }; + }, + }, + smsDelivery: { + override: (oI) => { + return { + ...oI, + sendSms: saveCode, + }; + }, + }, }, }); res.sendStatus(200); @@ -344,6 +414,7 @@ function initST({ passwordlessConfig } = {}) { ThirdPartyRaw.reset(); ThirdPartyEmailPasswordRaw.reset(); SessionRaw.reset(); + MultitenancyRaw.reset(); SuperTokensRaw.reset(); } @@ -351,9 +422,16 @@ function initST({ passwordlessConfig } = {}) { const recipeList = [ EmailVerification.init({ mode: "OPTIONAL", - createAndSendCustomEmail: (_, emailVerificationURLWithToken) => { - console.log(emailVerificationURLWithToken); - latestURLWithToken = emailVerificationURLWithToken; + emailDelivery: { + override: (oI) => { + return { + ...oI, + sendEmail: async (input) => { + console.log(input.emailVerifyLink); + latestURLWithToken = input.emailVerifyLink; + }, + }; + }, }, override: { apis: (oI) => { @@ -450,30 +528,21 @@ function initST({ passwordlessConfig } = {}) { signUpFeature: { formFields, }, - resetPasswordUsingTokenFeature: { - createAndSendCustomEmail: (_, passwordResetURLWithToken) => { - console.log(passwordResetURLWithToken); - latestURLWithToken = passwordResetURLWithToken; + emailDelivery: { + override: (oI) => { + return { + ...oI, + sendEmail: async (input) => { + console.log(input.passwordResetLink); + latestURLWithToken = input.passwordResetLink; + }, + }; }, }, }), ThirdParty.init({ signInAndUpFeature: { - providers: [ - ThirdParty.Google({ - clientSecret: process.env.GOOGLE_CLIENT_SECRET, - clientId: process.env.GOOGLE_CLIENT_ID, - }), - ThirdParty.Github({ - clientSecret: process.env.GITHUB_CLIENT_SECRET, - clientId: process.env.GITHUB_CLIENT_ID, - }), - ThirdParty.Facebook({ - clientSecret: process.env.FACEBOOK_CLIENT_SECRET, - clientId: process.env.FACEBOOK_CLIENT_ID, - }), - customAuth0Provider(), - ], + providers, }, override: { apis: (originalImplementation) => { @@ -509,27 +578,18 @@ function initST({ passwordlessConfig } = {}) { signUpFeature: { formFields, }, - resetPasswordUsingTokenFeature: { - createAndSendCustomEmail: (_, passwordResetURLWithToken) => { - console.log(passwordResetURLWithToken); - latestURLWithToken = passwordResetURLWithToken; + emailDelivery: { + override: (oI) => { + return { + ...oI, + sendEmail: async (input) => { + console.log(input.passwordResetLink); + latestURLWithToken = input.passwordResetLink; + }, + }; }, }, - providers: [ - ThirdPartyEmailPassword.Google({ - clientSecret: process.env.GOOGLE_CLIENT_SECRET, - clientId: process.env.GOOGLE_CLIENT_ID, - }), - ThirdPartyEmailPassword.Github({ - clientSecret: process.env.GITHUB_CLIENT_SECRET, - clientId: process.env.GITHUB_CLIENT_ID, - }), - ThirdPartyEmailPassword.Facebook({ - clientSecret: process.env.FACEBOOK_CLIENT_SECRET, - clientId: process.env.FACEBOOK_CLIENT_ID, - }), - customAuth0Provider(), - ], + providers, override: { apis: (originalImplementation) => { return { @@ -635,8 +695,22 @@ function initST({ passwordlessConfig } = {}) { passwordlessConfig = { contactMethod: "EMAIL_OR_PHONE", flowType: "USER_INPUT_CODE_AND_MAGIC_LINK", - createAndSendCustomTextMessage: saveCode, - createAndSendCustomEmail: saveCode, + emailDelivery: { + override: (oI) => { + return { + ...oI, + sendEmail: saveCode, + }; + }, + }, + smsDelivery: { + override: (oI) => { + return { + ...oI, + sendSms: saveCode, + }; + }, + }, ...passwordlessConfig, }; if (passwordlessSupported) { @@ -688,21 +762,7 @@ function initST({ passwordlessConfig } = {}) { recipeList.push( ThirdPartyPasswordless.init({ ...passwordlessConfig, - providers: [ - ThirdPartyEmailPassword.Google({ - clientSecret: process.env.GOOGLE_CLIENT_SECRET, - clientId: process.env.GOOGLE_CLIENT_ID, - }), - ThirdPartyEmailPassword.Github({ - clientSecret: process.env.GITHUB_CLIENT_SECRET, - clientId: process.env.GITHUB_CLIENT_ID, - }), - ThirdPartyEmailPassword.Facebook({ - clientSecret: process.env.FACEBOOK_CLIENT_SECRET, - clientId: process.env.FACEBOOK_CLIENT_ID, - }), - customAuth0Provider(), - ], + providers, override: { apis: (originalImplementation) => { return { diff --git a/test/server/utils.js b/test/server/utils.js index e3eabfcb8..12b53b78a 100644 --- a/test/server/utils.js +++ b/test/server/utils.js @@ -141,59 +141,53 @@ module.exports.startST = async function (host = "localhost", port = 9000) { }); }; +/** + * + * @returns {import("supertokens-node/lib/build/recipe/thirdparty/types").ProviderConfig} + */ module.exports.customAuth0Provider = () => { return { - id: "auth0", - get: (redirectURI, authCodeFromRequest) => { - return { - accessTokenAPI: { - // this contains info about the token endpoint which exchanges the auth code with the access token and profile info. - url: `https://${process.env.AUTH0_DOMAIN}/oauth/token`, - params: { - // example post params - client_id: process.env.AUTH0_CLIENT_ID, - client_secret: process.env.AUTH0_CLIENT_SECRET, - grant_type: "authorization_code", - redirect_uri: redirectURI, - code: authCodeFromRequest, - }, - }, - authorisationRedirect: { - // this contains info about forming the authorisation redirect URL without the state params and without the redirect_uri param - url: `https://${process.env.AUTH0_DOMAIN}/authorize`, - params: { - client_id: process.env.AUTH0_CLIENT_ID, - scope: "openid profile", - response_type: "code", - }, + config: { + thirdPartyId: "auth0", + name: "Auth0", + // this contains info about forming the authorisation redirect URL without the state params and without the redirect_uri param + authorizationEndpoint: `https://${process.env.AUTH0_DOMAIN}/authorize`, + authorizationEndpointQueryParams: { + scope: "openid profile", + }, + tokenEndpoint: `https://${process.env.AUTH0_DOMAIN}/oauth/token`, + clients: [ + { + clientId: process.env.AUTH0_CLIENT_ID, + clientSecret: process.env.AUTH0_CLIENT_SECRET, }, - getClientId: () => { - return process.env.AUTH0_CLIENT_ID; - }, - getProfileInfo: async (accessTokenAPIResponse) => { - let accessToken = accessTokenAPIResponse.access_token; - if (accessToken === undefined) { - throw new Error("access token is undefined"); - } - // let authHeader = `Bearer ${accessToken}`; - // let response = await axios({ - // method: "get", - // url: `https://${process.env.AUTH0_DOMAIN}/userinfo`, - // headers: { - // Authorization: authHeader, - // }, - // }); - // let userInfo = response.data; - return { - id: "someId", - email: { - id: "test@example.com", - isVerified: true, - }, - }; - }, - }; + ], }, + override: (oI) => ({ + ...oI, + getUserInfo: async (accessTokenAPIResponse) => { + let accessToken = accessTokenAPIResponse.oAuthTokens.access_token; + if (accessToken === undefined) { + throw new Error("access token is undefined"); + } + // let authHeader = `Bearer ${accessToken}`; + // let response = await axios({ + // method: "get", + // url: `https://${process.env.AUTH0_DOMAIN}/userinfo`, + // headers: { + // Authorization: authHeader, + // }, + // }); + // let userInfo = response.data; + return { + thirdPartyUserId: "someId", + email: { + id: "test@example.com", + isVerified: true, + }, + }; + }, + }), }; }; diff --git a/test/startTestApp.sh b/test/startTestApp.sh index 0a48c9902..8cc2df517 100755 --- a/test/startTestApp.sh +++ b/test/startTestApp.sh @@ -11,9 +11,13 @@ export EXIT_PID=$$ apiPort=$1 function killServers () { - echo "Kill servers." - lsof -i tcp:8082 | grep -m 1 node | awk '{printf $2}' | cut -c 1- | xargs -I {} kill -9 {} > /dev/null 2>&1 - lsof -i tcp:3031 | grep -m 1 node | awk '{printf $2}' | cut -c 1- | xargs -I {} kill -9 {} > /dev/null 2>&1 + if [[ "${SERVER_STARTED}" != "true" ]]; then + echo "Kill servers." + lsof -i tcp:8082 | grep -m 1 node | awk '{printf $2}' | cut -c 1- | xargs -I {} kill -9 {} > /dev/null 2>&1 + lsof -i tcp:3031 | grep -m 1 node | awk '{printf $2}' | cut -c 1- | xargs -I {} kill -9 {} > /dev/null 2>&1 + else + echo "Leaving servers running because SERVER_STARTED=true" + fi } function startEndToEnd () { @@ -26,7 +30,10 @@ function startEndToEnd () { sleep 2 # Because the server is responding does not mean the app is ready. Let's wait another 5secs to make sure the app is up. echo "Start mocha testing" - if ! [[ -z "${SPEC_FILES}" ]]; then + if ! [[ -z "${GREP}" ]]; then + echo "$GREP" + APP_SERVER=$apiPort TEST_MODE=testing mocha --require @babel/register --require test/test.mocha.env --timeout 40000 --no-config --grep "$GREP" + elif ! [[ -z "${SPEC_FILES}" ]]; then APP_SERVER=$apiPort TEST_MODE=testing mocha --require @babel/register --require test/test.mocha.env --timeout 40000 --no-config $SPEC_FILES elif [[ -z "${MOCHA_FILE}" ]]; then APP_SERVER=$apiPort TEST_MODE=testing mocha --require @babel/register --require test/test.mocha.env --timeout 40000 --no-config test/end-to-end/**/*.test.js @@ -69,9 +76,12 @@ mkdir -p test_report/logs if [[ "${RUN_REACT_16_TESTS}" == "true" ]]; then echo "Running tests with React 16" - (cd test/server/ && TEST_MODE=testing INSTALL_PATH=../../../supertokens-root NODE_PORT=8082 node . >> ../../test_report/logs/backend-react16.log 2>&1 &) - - (cd examples/for-tests-react-16/ && cat | CI=true BROWSER=none PORT=3031 REACT_APP_API_PORT=$apiPort npm run start >> ../../test_report/logs/frontend-react-16.log 2>&1 &) + + if [[ "${SERVER_STARTED}" != "true" ]]; then + (cd test/server/ && TEST_MODE=testing INSTALL_PATH=../../../supertokens-root NODE_PORT=8082 node . >> ../../test_report/logs/backend-react16.log 2>&1 &) + + (cd examples/for-tests-react-16/ && cat | CI=true BROWSER=none PORT=3031 REACT_APP_API_PORT=$apiPort npm run start >> ../../test_report/logs/frontend-react-16.log 2>&1 &) + fi IS_REACT_16=true RUN_RRD5=true startEndToEnd @@ -79,9 +89,11 @@ if [[ "${RUN_REACT_16_TESTS}" == "true" ]]; then else echo "Running tests with React 18" # Run node server in background. - (cd test/server/ && TEST_MODE=testing INSTALL_PATH=../../../supertokens-root NODE_PORT=8082 node . >> ../../test_report/logs/backend.log 2>&1 &) + if [[ "${SERVER_STARTED}" != "true" ]]; then + (cd test/server/ && TEST_MODE=testing INSTALL_PATH=../../../supertokens-root NODE_PORT=8082 node . >> ../../test_report/logs/backend.log 2>&1 &) - (cd ./examples/for-tests/ && cat | CI=true BROWSER=none PORT=3031 REACT_APP_API_PORT=$apiPort npm run start >> ../../test_report/logs/frontend.log 2>&1 &) + (cd ./examples/for-tests/ && cat | CI=true BROWSER=none PORT=3031 REACT_APP_API_PORT=$apiPort npm run start >> ../../test_report/logs/frontend.log 2>&1 &) + fi # Start front end test app and run tests. startEndToEnd diff --git a/test/unit/exports.test.tsx b/test/unit/exports.test.tsx index 5aa2ed4df..2599b2889 100644 --- a/test/unit/exports.test.tsx +++ b/test/unit/exports.test.tsx @@ -48,14 +48,8 @@ describe("Exports", function () { let _default = require("../../recipe/thirdparty"); let { init, - generateStateToSendToOAuthProvider, - getAuthCodeFromURL, - getAuthErrorFromURL, - getAuthStateFromURL, getAuthorisationURLFromBackend, getAuthorisationURLWithQueryParamsAndSetState, - getStateAndOtherInfoFromStorage, - setStateAndOtherInfoToStorage, signInAndUp, signOut, verifyAndGetStateOrThrowError, @@ -74,27 +68,13 @@ describe("Exports", function () { } = require("../../recipe/thirdparty/prebuiltui"); assert(init !== undefined && _default.init !== undefined); - assert( - generateStateToSendToOAuthProvider !== undefined && - _default.generateStateToSendToOAuthProvider !== undefined - ); - assert(getAuthCodeFromURL !== undefined && _default.getAuthCodeFromURL !== undefined); - assert(getAuthErrorFromURL !== undefined && _default.getAuthErrorFromURL !== undefined); - assert(getAuthStateFromURL !== undefined && _default.getAuthStateFromURL !== undefined); - assert( - getAuthorisationURLFromBackend !== undefined && _default.getAuthorisationURLFromBackend !== undefined - ); + assert( getAuthorisationURLWithQueryParamsAndSetState !== undefined && _default.getAuthorisationURLWithQueryParamsAndSetState !== undefined ); - assert( - getStateAndOtherInfoFromStorage !== undefined && _default.getStateAndOtherInfoFromStorage !== undefined - ); - assert(setStateAndOtherInfoToStorage !== undefined && _default.setStateAndOtherInfoToStorage !== undefined); assert(signInAndUp !== undefined && _default.signInAndUp !== undefined); assert(signOut !== undefined && _default.signOut !== undefined); - assert(verifyAndGetStateOrThrowError !== undefined && _default.verifyAndGetStateOrThrowError !== undefined); assert(redirectToThirdPartyLogin !== undefined && _default.redirectToThirdPartyLogin !== undefined); assert(Facebook !== undefined && _default.Facebook !== undefined); @@ -116,20 +96,12 @@ describe("Exports", function () { doesEmailExist, emailPasswordSignIn, emailPasswordSignUp, - generateStateToSendToOAuthProvider, - getAuthCodeFromURL, - getAuthErrorFromURL, - getAuthStateFromURL, - getAuthorisationURLFromBackend, getAuthorisationURLWithQueryParamsAndSetState, getResetPasswordTokenFromURL, - getStateAndOtherInfoFromStorage, sendPasswordResetEmail, - setStateAndOtherInfoToStorage, signOut, submitNewPassword, thirdPartySignInAndUp, - verifyAndGetStateOrThrowError, redirectToThirdPartyLogin, Apple, Facebook, @@ -150,30 +122,16 @@ describe("Exports", function () { assert(doesEmailExist !== undefined && _default.doesEmailExist !== undefined); assert(emailPasswordSignIn !== undefined && _default.emailPasswordSignIn !== undefined); assert(emailPasswordSignUp !== undefined && _default.emailPasswordSignUp !== undefined); - assert( - generateStateToSendToOAuthProvider !== undefined && - _default.generateStateToSendToOAuthProvider !== undefined - ); - assert(getAuthCodeFromURL !== undefined && _default.getAuthCodeFromURL !== undefined); - assert(getAuthErrorFromURL !== undefined && _default.getAuthErrorFromURL !== undefined); - assert(getAuthStateFromURL !== undefined && _default.getAuthStateFromURL !== undefined); - assert( - getAuthorisationURLFromBackend !== undefined && _default.getAuthorisationURLFromBackend !== undefined - ); + assert( getAuthorisationURLWithQueryParamsAndSetState !== undefined && _default.getAuthorisationURLWithQueryParamsAndSetState !== undefined ); assert(getResetPasswordTokenFromURL !== undefined && _default.getResetPasswordTokenFromURL !== undefined); - assert( - getStateAndOtherInfoFromStorage !== undefined && _default.getStateAndOtherInfoFromStorage !== undefined - ); assert(sendPasswordResetEmail !== undefined && _default.sendPasswordResetEmail !== undefined); - assert(setStateAndOtherInfoToStorage !== undefined && _default.setStateAndOtherInfoToStorage !== undefined); assert(signOut !== undefined && _default.signOut !== undefined); assert(submitNewPassword !== undefined && _default.submitNewPassword !== undefined); assert(thirdPartySignInAndUp !== undefined && _default.thirdPartySignInAndUp !== undefined); - assert(verifyAndGetStateOrThrowError !== undefined && _default.verifyAndGetStateOrThrowError !== undefined); assert(redirectToThirdPartyLogin !== undefined && _default.redirectToThirdPartyLogin !== undefined); assert(Apple !== undefined && _default.Apple !== undefined); @@ -247,22 +205,14 @@ describe("Exports", function () { createPasswordlessCode, doesPasswordlessUserEmailExist, doesPasswordlessUserPhoneNumberExist, - generateThirdPartyStateToSendToOAuthProvider, - getAuthorisationURLFromBackend, getPasswordlessLinkCodeFromURL, getPasswordlessLoginAttemptInfo, getPasswordlessPreAuthSessionIdFromURL, - getThirdPartyAuthCodeFromURL, - getThirdPartyAuthErrorFromURL, - getThirdPartyAuthStateFromURL, getThirdPartyAuthorisationURLWithQueryParamsAndSetState, - getThirdPartyStateAndOtherInfoFromStorage, resendPasswordlessCode, setPasswordlessLoginAttemptInfo, - setThirdPartyStateAndOtherInfoToStorage, signOut, thirdPartySignInAndUp, - verifyAndGetThirdPartyStateOrThrowError, redirectToThirdPartyLogin, Apple, Facebook, @@ -291,13 +241,6 @@ describe("Exports", function () { doesPasswordlessUserPhoneNumberExist !== undefined && _default.doesPasswordlessUserPhoneNumberExist !== undefined ); - assert( - generateThirdPartyStateToSendToOAuthProvider !== undefined && - _default.generateThirdPartyStateToSendToOAuthProvider !== undefined - ); - assert( - getAuthorisationURLFromBackend !== undefined && _default.getAuthorisationURLFromBackend !== undefined - ); assert( getPasswordlessLinkCodeFromURL !== undefined && _default.getPasswordlessLinkCodeFromURL !== undefined ); @@ -308,31 +251,16 @@ describe("Exports", function () { getPasswordlessPreAuthSessionIdFromURL !== undefined && _default.getPasswordlessPreAuthSessionIdFromURL !== undefined ); - assert(getThirdPartyAuthCodeFromURL !== undefined && _default.getThirdPartyAuthCodeFromURL !== undefined); - assert(getThirdPartyAuthErrorFromURL !== undefined && _default.getThirdPartyAuthErrorFromURL !== undefined); - assert(getThirdPartyAuthStateFromURL !== undefined && _default.getThirdPartyAuthStateFromURL !== undefined); assert( getThirdPartyAuthorisationURLWithQueryParamsAndSetState !== undefined && _default.getThirdPartyAuthorisationURLWithQueryParamsAndSetState !== undefined ); - assert( - getThirdPartyStateAndOtherInfoFromStorage !== undefined && - _default.getThirdPartyStateAndOtherInfoFromStorage !== undefined - ); assert(resendPasswordlessCode !== undefined && _default.resendPasswordlessCode !== undefined); assert( setPasswordlessLoginAttemptInfo !== undefined && _default.setPasswordlessLoginAttemptInfo !== undefined ); - assert( - setThirdPartyStateAndOtherInfoToStorage !== undefined && - _default.setThirdPartyStateAndOtherInfoToStorage !== undefined - ); assert(signOut !== undefined && _default.signOut !== undefined); assert(thirdPartySignInAndUp !== undefined && _default.thirdPartySignInAndUp !== undefined); - assert( - verifyAndGetThirdPartyStateOrThrowError !== undefined && - _default.verifyAndGetThirdPartyStateOrThrowError !== undefined - ); assert(redirectToThirdPartyLogin !== undefined && _default.redirectToThirdPartyLogin !== undefined); assert(Apple !== undefined && _default.Apple !== undefined); diff --git a/test/unit/index.test.ts b/test/unit/index.test.ts index 6d47deffc..4bcbca5cc 100644 --- a/test/unit/index.test.ts +++ b/test/unit/index.test.ts @@ -207,7 +207,7 @@ describe("SuperTokens", function () { ...defaultConfigs, recipeList: [EmailPassword.init()], }); - assert.strictEqual(SuperTokens.getInstanceOrThrow().recipeList.length, 1); + assert.strictEqual(SuperTokens.getInstanceOrThrow().recipeList.length, 2); // EmailPassword + Multitenancy }); it("Recipe canHandleRoute should work appropriately", async function () { diff --git a/test/unit/recipe/emailpassword/emailPassword.test.tsx b/test/unit/recipe/emailpassword/emailPassword.test.tsx index d8ce69278..7718ea095 100644 --- a/test/unit/recipe/emailpassword/emailPassword.test.tsx +++ b/test/unit/recipe/emailpassword/emailPassword.test.tsx @@ -610,7 +610,7 @@ describe("EmailPassword", function () { }, }); authReact(SuperTokens.getInstanceOrThrow().appInfo, false); - webJS(SuperTokens.getInstanceOrThrow().appInfo, false); + webJS(SuperTokens.getInstanceOrThrow().appInfo, undefined, false); try { await EmailPasswordIndex.submitNewPassword({ diff --git a/test/unit/recipe/thirdparty/thirdParty.test.ts b/test/unit/recipe/thirdparty/thirdParty.test.ts index f6257fb3c..c9720ac77 100644 --- a/test/unit/recipe/thirdparty/thirdParty.test.ts +++ b/test/unit/recipe/thirdparty/thirdParty.test.ts @@ -299,7 +299,7 @@ describe("ThirdParty", function () { }, }).authReact(SuperTokens.getInstanceOrThrow().appInfo, false); assert.deepStrictEqual( - (ThirdParty.getInstanceOrThrow().config.signInAndUpFeature.providers[0] as any).buttonComponent, + (ThirdParty.getInstanceOrThrow().config.signInAndUpFeature.providers[0] as any).config.buttonComponent, CustomGoogle ); assert.deepStrictEqual( @@ -357,7 +357,7 @@ describe("ThirdParty", function () { return oI.getAuthorisationURLWithQueryParamsAndSetState(input); }, generateStateToSendToOAuthProvider: function (input) { - assert(input.userContext["key"] !== undefined); + assert(input?.userContext["key"] !== undefined); /** * generateStateToSendToOAuthProvider internally uses crypto, * which is not defined for mocha and jest @@ -384,7 +384,7 @@ describe("ThirdParty", function () { }, }); authReact(SuperTokens.getInstanceOrThrow().appInfo, false); - webJS(SuperTokens.getInstanceOrThrow().appInfo, false); + webJS(SuperTokens.getInstanceOrThrow().appInfo, undefined, false); try { await ThirdPartyIndex.redirectToThirdPartyLogin({ @@ -422,11 +422,7 @@ describe("ThirdParty", function () { assert(input.userContext["key"] !== undefined); return {} as any; }, - getAuthCodeFromURL: function (input) { - assert(input.userContext["key"] !== undefined); - return ""; - }, - getAuthErrorFromURL: function (input) { + signInAndUp: function (input) { assert(input.userContext["key"] !== undefined); throw new Error("Expected Test Error"); }, @@ -436,7 +432,7 @@ describe("ThirdParty", function () { }); authReact(SuperTokens.getInstanceOrThrow().appInfo, false); - webJS(SuperTokens.getInstanceOrThrow().appInfo, false); + webJS(SuperTokens.getInstanceOrThrow().appInfo, undefined, false); try { await ThirdPartyIndex.signInAndUp({ diff --git a/test/unit/recipe/thirdpartyemailpassword/thirdPartyEmailPassword.test.ts b/test/unit/recipe/thirdpartyemailpassword/thirdPartyEmailPassword.test.ts index be1bcd212..e3bf9f243 100644 --- a/test/unit/recipe/thirdpartyemailpassword/thirdPartyEmailPassword.test.ts +++ b/test/unit/recipe/thirdpartyemailpassword/thirdPartyEmailPassword.test.ts @@ -106,7 +106,10 @@ describe("ThirdPartyEmailPassword", function () { }); fail(); } catch (err) { - assert((err as any).message === "You need to enable either email password or third party providers login."); + assert.strictEqual( + (err as any).message, + "You need to enable either email password or third party providers login." + ); } }); }); diff --git a/test/with-typescript/package-lock.json b/test/with-typescript/package-lock.json index 18cffbed1..760b0ed8d 100644 --- a/test/with-typescript/package-lock.json +++ b/test/with-typescript/package-lock.json @@ -1,7 +1,7 @@ { "name": "with-typescript", "version": "0.1.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -16432,11791 +16432,5 @@ "url": "https://github.com/sponsors/sindresorhus" } } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==" - }, - "@babel/core": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", - "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.10", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", - "@babel/types": "^7.18.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/eslint-parser": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.9.tgz", - "integrity": "sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ==", - "requires": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/generator": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", - "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", - "requires": { - "@babel/types": "^7.18.10", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", - "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz", - "integrity": "sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.9", - "@babel/helper-split-export-declaration": "^7.18.6" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", - "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", - "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", - "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", - "requires": { - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-replace-supers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", - "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", - "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", - "requires": { - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==" - }, - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" - }, - "@babel/helper-wrap-function": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz", - "integrity": "sha512-95NLBP59VWdfK2lyLKe6eTMq9xg+yWKzxzxbJ1wcYNi1Auz200+83fMDADjRxBvc2QQor5zja2yTQzXGhk2GtQ==", - "requires": { - "@babel/helper-function-name": "^7.18.9", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", - "@babel/types": "^7.18.10" - } - }, - "@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz", - "integrity": "sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", - "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.10.tgz", - "integrity": "sha512-wdGTwWF5QtpTY/gbBtQLAiCnoxfD4qMbN87NYZle1dOZ9Os8Y6zXcKrIaOU8W+TIvFUWVGG9tUgNww3CjXRVVw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-replace-supers": "^7.18.9", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/plugin-syntax-decorators": "^7.18.6" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", - "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.8" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.18.6.tgz", - "integrity": "sha512-fqyLgjcxf/1yhyZ6A+yo1u9gJ7eleFQod2lkaUsF9DQ7sbbY3Ligym3L0+I2c0WmqNKDpoD9UTb1AKP3qRMOAQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz", - "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", - "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-replace-supers": "^7.18.9", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", - "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.18.9.tgz", - "integrity": "sha512-+G6rp2zRuOAInY5wcggsx4+QVao1qPM0osC9fTUVlAV3zOrzTCnrMAFVnR6+a3T8wz1wFIH7KhYMcMB3u1n80A==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-flow": "^7.18.6" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", - "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", - "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-react-constant-elements": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.9.tgz", - "integrity": "sha512-IrTYh1I3YCEL1trjknnlLKTp5JggjzhKl/d3ibzPc97JhpFcDTr38Jdek/oX4cFbS6By0bXJcOkpRvJ5ZHK2wQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", - "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz", - "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.18.10" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", - "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", - "requires": { - "@babel/plugin-transform-react-jsx": "^7.18.6" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", - "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz", - "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==", - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", - "babel-plugin-polyfill-corejs2": "^0.3.2", - "babel-plugin-polyfill-corejs3": "^0.5.3", - "babel-plugin-polyfill-regenerator": "^0.4.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", - "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.10.tgz", - "integrity": "sha512-j2HQCJuMbi88QftIb5zlRu3c7PU+sXNnscqsrjqegoGiCgXR569pEdben9vly5QHKL2ilYkfnSwu64zsZo/VYQ==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-typescript": "^7.18.6" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/preset-env": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", - "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", - "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.18.10", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.9", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.9", - "@babel/plugin-transform-classes": "^7.18.9", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.9", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.9", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.8", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.9", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.10", - "babel-plugin-polyfill-corejs2": "^0.3.2", - "babel-plugin-polyfill-corejs3": "^0.5.3", - "babel-plugin-polyfill-regenerator": "^0.4.0", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", - "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-react-display-name": "^7.18.6", - "@babel/plugin-transform-react-jsx": "^7.18.6", - "@babel/plugin-transform-react-jsx-development": "^7.18.6", - "@babel/plugin-transform-react-pure-annotations": "^7.18.6" - } - }, - "@babel/preset-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-typescript": "^7.18.6" - } - }, - "@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.9.tgz", - "integrity": "sha512-p6WSr71+5u/VBf1KDS/Y4dK3ZwbV+DD6wQO3X2EbUVluEOiyXUk09DzcwSaUH4WomYXrEPC+i2rqzuthhZhOJw==", - "requires": { - "core-js-pure": "^3.0.0", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - } - }, - "@babel/traverse": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz", - "integrity": "sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g==", - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", - "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "@csstools/normalize.css": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", - "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" - }, - "@csstools/postcss-cascade-layers": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.0.5.tgz", - "integrity": "sha512-Id/9wBT7FkgFzdEpiEWrsVd4ltDxN0rI0QS0SChbeQiSuux3z21SJCRLu6h2cvCEUmaRi+VD0mHFj+GJD4GFnw==", - "requires": { - "@csstools/selector-specificity": "^2.0.2", - "postcss-selector-parser": "^6.0.10" - } - }, - "@csstools/postcss-color-function": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", - "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-font-format-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", - "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-hwb-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", - "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-ic-unit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", - "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-is-pseudo-class": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", - "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", - "requires": { - "@csstools/selector-specificity": "^2.0.0", - "postcss-selector-parser": "^6.0.10" - } - }, - "@csstools/postcss-normalize-display-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", - "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-oklab-function": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", - "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-progressive-custom-properties": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", - "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-stepped-value-functions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", - "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-trigonometric-functions": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", - "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-unset-value": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", - "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", - "requires": {} - }, - "@csstools/selector-specificity": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", - "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", - "requires": {} - }, - "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - } - } - }, - "@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==" - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" - }, - "@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "requires": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "requires": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "requires": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "requires": { - "@sinclair/typebox": "^0.24.1" - } - }, - "@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "requires": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - } - }, - "@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.7.tgz", - "integrity": "sha512-bcKCAzF0DV2IIROp9ZHkRJa6O4jy7NlnHdWL3GmcUxYWNjLXkK5kfELELwEfSP5hXPfVL/qOGMAROuMQb9GG8Q==", - "requires": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.8.1", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" - } - } - }, - "@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - } - }, - "@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - } - } - }, - "@rushstack/eslint-patch": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz", - "integrity": "sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==" - }, - "@sinclair/typebox": { - "version": "0.24.25", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.25.tgz", - "integrity": "sha512-Z0b1gkfeHzRQen7juqXIZ4P2nvI6vZV+m/PhxBlVsNH/jSg2FuqJ+x4haFFIbbct6LMA7m6x2sBob/Giecj09A==" - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "requires": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } - }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==" - }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==" - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==" - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==" - }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==" - }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==" - }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==" - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==" - }, - "@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", - "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - } - }, - "@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", - "requires": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - } - }, - "@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", - "requires": { - "@babel/types": "^7.12.6" - } - }, - "@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", - "requires": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - } - }, - "@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", - "requires": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - } - }, - "@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", - "requires": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - } - }, - "@testing-library/dom": { - "version": "7.29.6", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.29.6.tgz", - "integrity": "sha512-vzTsAXa439ptdvav/4lsKRcGpAQX7b6wBIqia7+iNzqGJ5zjswApxA6jDAsexrc6ue9krWcbh8o+LYkBXW+GCQ==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^4.2.2", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.4", - "lz-string": "^1.4.4", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@testing-library/jest-dom": { - "version": "5.11.9", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.11.9.tgz", - "integrity": "sha512-Mn2gnA9d1wStlAIT2NU8J15LNob0YFBVjs2aEQ3j8rsfRQo+lAs7/ui1i2TGaJjapLmuNPLTsrm+nPjmZDwpcQ==", - "requires": { - "@babel/runtime": "^7.9.2", - "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^4.2.2", - "chalk": "^3.0.0", - "css": "^3.0.0", - "css.escape": "^1.5.1", - "lodash": "^4.17.15", - "redent": "^3.0.0" - } - }, - "@testing-library/react": { - "version": "11.2.5", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-11.2.5.tgz", - "integrity": "sha512-yEx7oIa/UWLe2F2dqK0FtMF9sJWNXD+2PPtp39BvE0Kh9MJ9Kl0HrZAgEuhUJR+Lx8Di6Xz+rKwSdEPY2UV8ZQ==", - "requires": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^7.28.1" - } - }, - "@testing-library/user-event": { - "version": "12.8.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.8.1.tgz", - "integrity": "sha512-u521YhkCKip0DQNDpfj9V97PU7UlCTkW5jURUD4JipuVe/xDJ32dJSIHlT2pqAs/I91OFB8p6LtqaLZpOu8BWQ==", - "requires": { - "@babel/runtime": "^7.12.5" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" - }, - "@types/aria-query": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.1.tgz", - "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==" - }, - "@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", - "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "requires": { - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.30", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz", - "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "requires": { - "@types/node": "*" - } - }, - "@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" - }, - "@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", - "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" - }, - "@types/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-fccbsHKqFDXClBZTDLA43zl0+TbxyIwyzIzwwhvoJvhNjOErCdeX2xJbURimv2EbSVUGav001PaCJg4mZxMl4w==" - }, - "@types/node": { - "version": "12.20.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.4.tgz", - "integrity": "sha512-xRCgeE0Q4pT5UZ189TJ3SpYuX/QGl6QIAOAIeDSbAVAd2gX1NxSZup4jNVK7cxIeP8KDSbJgcckun495isP1jQ==" - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "@types/prettier": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.4.tgz", - "integrity": "sha512-fOwvpvQYStpb/zHMx0Cauwywu9yLDmzWiiQBC7gJyq5tYLUXFZvDG7VK1B7WBxxjBJNKFOZ0zLoOQn8vmATbhw==" - }, - "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" - }, - "@types/q": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "@types/react": { - "version": "16.14.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.4.tgz", - "integrity": "sha512-ETj7GbkPGjca/A4trkVeGvoIakmLV6ZtX3J8dcmOpzKzWVybbrOxanwaIPG71GZwImoMDY6Fq4wIe34lEqZ0FQ==", - "requires": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-dom": { - "version": "16.9.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.11.tgz", - "integrity": "sha512-3UuR4MoWf5spNgrG6cwsmT9DdRghcR4IDFOzNZ6+wcmacxkFykcb5ji0nNVm9ckBT4BCxvCrJJbM4+EYsEEVIg==", - "requires": { - "@types/react": "^16" - } - }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "requires": { - "@types/node": "*" - } - }, - "@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" - }, - "@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "requires": { - "@types/express": "*" - } - }, - "@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", - "requires": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "requires": { - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - }, - "@types/testing-library__jest-dom": { - "version": "5.9.5", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.5.tgz", - "integrity": "sha512-ggn3ws+yRbOHog9GxnXiEZ/35Mow6YtPZpd7Z5mKDeZS/o7zx3yAle0ov/wjhVB5QT4N2Dt+GNoGCdqkBGCajQ==", - "requires": { - "@types/jest": "*" - } - }, - "@types/trusted-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", - "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" - }, - "@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "requires": { - "@types/node": "*" - } - }, - "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.32.0.tgz", - "integrity": "sha512-CHLuz5Uz7bHP2WgVlvoZGhf0BvFakBJKAD/43Ty0emn4wXWv5k01ND0C0fHcl/Im8Td2y/7h44E9pca9qAu2ew==", - "requires": { - "@typescript-eslint/scope-manager": "5.32.0", - "@typescript-eslint/type-utils": "5.32.0", - "@typescript-eslint/utils": "5.32.0", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.32.0.tgz", - "integrity": "sha512-/x72MkqLAoOQSOHFxdm17irJ1PNDWtdrMmfacaYniGT26nibak8vxEf9xmoVE+yTYL8N77I2icPtw89Yx6HvNg==", - "requires": { - "@typescript-eslint/utils": "5.32.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.32.0.tgz", - "integrity": "sha512-IxRtsehdGV9GFQ35IGm5oKKR2OGcazUoiNBxhRV160iF9FoyuXxjY+rIqs1gfnd+4eL98OjeGnMpE7RF/NBb3A==", - "requires": { - "@typescript-eslint/scope-manager": "5.32.0", - "@typescript-eslint/types": "5.32.0", - "@typescript-eslint/typescript-estree": "5.32.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.32.0.tgz", - "integrity": "sha512-KyAE+tUON0D7tNz92p1uetRqVJiiAkeluvwvZOqBmW9z2XApmk5WSMV9FrzOroAcVxJZB3GfUwVKr98Dr/OjOg==", - "requires": { - "@typescript-eslint/types": "5.32.0", - "@typescript-eslint/visitor-keys": "5.32.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.32.0.tgz", - "integrity": "sha512-0gSsIhFDduBz3QcHJIp3qRCvVYbqzHg8D6bHFsDMrm0rURYDj+skBK2zmYebdCp+4nrd9VWd13egvhYFJj/wZg==", - "requires": { - "@typescript-eslint/utils": "5.32.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.32.0.tgz", - "integrity": "sha512-EBUKs68DOcT/EjGfzywp+f8wG9Zw6gj6BjWu7KV/IYllqKJFPlZlLSYw/PTvVyiRw50t6wVbgv4p9uE2h6sZrQ==" - }, - "@typescript-eslint/typescript-estree": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.32.0.tgz", - "integrity": "sha512-ZVAUkvPk3ITGtCLU5J4atCw9RTxK+SRc6hXqLtllC2sGSeMFWN+YwbiJR9CFrSFJ3w4SJfcWtDwNb/DmUIHdhg==", - "requires": { - "@typescript-eslint/types": "5.32.0", - "@typescript-eslint/visitor-keys": "5.32.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.32.0.tgz", - "integrity": "sha512-W7lYIAI5Zlc5K082dGR27Fczjb3Q57ECcXefKU/f0ajM5ToM0P+N9NmJWip8GmGu/g6QISNT+K6KYB+iSHjXCQ==", - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.32.0", - "@typescript-eslint/types": "5.32.0", - "@typescript-eslint/typescript-estree": "5.32.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.32.0.tgz", - "integrity": "sha512-S54xOHZgfThiZ38/ZGTgB2rqx51CMJ5MCfVT2IplK4Q7hgzGfe0nLzLCcenDnc/cSjP568hdeKfeDcBgqNHD/g==", - "requires": { - "@typescript-eslint/types": "5.32.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - } - } - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "requires": {} - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "requires": {} - }, - "acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - } - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" - }, - "address": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.0.tgz", - "integrity": "sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==" - }, - "adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "requires": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - } - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "requires": {} - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.reduce": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz", - "integrity": "sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - } - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "autoprefixer": { - "version": "10.4.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.8.tgz", - "integrity": "sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==", - "requires": { - "browserslist": "^4.21.3", - "caniuse-lite": "^1.0.30001373", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "axe-core": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", - "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==" - }, - "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "requires": { - "follow-redirects": "^1.10.0" - } - }, - "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" - }, - "babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "requires": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "babel-loader": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", - "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "requires": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - } - }, - "babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "requires": {} - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", - "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.2", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", - "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.2", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", - "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.2" - } - }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "requires": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "babel-preset-react-app": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", - "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", - "requires": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" - }, - "bfj": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", - "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", - "requires": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "bonjour-service": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", - "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", - "requires": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" - }, - "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", - "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001373", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", - "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==" - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" - }, - "check-types": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", - "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" - }, - "ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==" - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" - }, - "clean-css": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", - "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", - "requires": { - "source-map": "~0.6.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" - }, - "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" - }, - "common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" - }, - "common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" - }, - "connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "core-js": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.24.1.tgz", - "integrity": "sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg==" - }, - "core-js-compat": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz", - "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", - "requires": { - "browserslist": "^4.21.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "core-js-pure": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.9.1.tgz", - "integrity": "sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A==" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, - "css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "requires": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, - "css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "css-declaration-sorter": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", - "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", - "requires": {} - }, - "css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "css-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", - "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.7", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" - } - }, - "css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", - "requires": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "css-prefers-color-scheme": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "requires": {} - }, - "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" - }, - "css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" - }, - "cssdb": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.6.3.tgz", - "integrity": "sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssnano": { - "version": "5.1.12", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz", - "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==", - "requires": { - "cssnano-preset-default": "^5.2.12", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "cssnano-preset-default": { - "version": "5.2.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", - "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", - "requires": { - "css-declaration-sorter": "^6.3.0", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.2", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.6", - "postcss-merge-rules": "^5.1.2", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.3", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.0", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.0", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - } - }, - "cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "requires": {} - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - } - } - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - } - } - }, - "csstype": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz", - "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==" - }, - "damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "requires": { - "execa": "^5.0.0" - } - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "detective": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", - "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", - "requires": { - "acorn-node": "^1.8.2", - "defined": "^1.0.0", - "minimist": "^1.2.6" - } - }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==" - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" - } - }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" - }, - "dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", - "requires": { - "@leichtgewicht/ip-codec": "^2.0.1" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-accessibility-api": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz", - "integrity": "sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ==" - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "~0.4" - } - }, - "dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" - } - } - }, - "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", - "requires": { - "jake": "^10.8.5" - } - }, - "electron-to-chromium": { - "version": "1.4.206", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz", - "integrity": "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==" - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - }, - "enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "requires": { - "stackframe": "^1.3.4" - } - }, - "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.21.0.tgz", - "integrity": "sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA==", - "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.3", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - } - } - }, - "eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", - "requires": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - } - }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "requires": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", - "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" - } - } - }, - "eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "requires": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - } - }, - "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "requires": { - "@typescript-eslint/experimental-utils": "^5.0.0" - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", - "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", - "requires": { - "@babel/runtime": "^7.18.9", - "aria-query": "^4.2.2", - "array-includes": "^3.1.5", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.4.3", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.2", - "language-tags": "^1.0.5", - "minimatch": "^3.1.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "eslint-plugin-react": { - "version": "7.30.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", - "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", - "requires": { - "array-includes": "^3.1.5", - "array.prototype.flatmap": "^1.3.0", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.1", - "object.values": "^1.1.5", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.7" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "requires": {} - }, - "eslint-plugin-testing-library": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.6.0.tgz", - "integrity": "sha512-y63TRzPhGCMNsnUwMGJU1MFWc/3GvYw+nzobp9QiyNTTKsgAt5RKAOT1I34+XqVBpX1lC8bScoOjCkP7iRv0Mw==", - "requires": { - "@typescript-eslint/utils": "^5.13.0" - } - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" - }, - "eslint-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", - "requires": { - "@types/eslint": "^7.29.0 || ^8.4.1", - "jest-worker": "^28.0.2", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "espree": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", - "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" - }, - "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - } - } - }, - "express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "requires": { - "reusify": "^1.0.4" - } - }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "requires": { - "bser": "2.1.1" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - } - }, - "filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "requires": { - "minimatch": "^5.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==" - }, - "follow-redirects": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", - "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==" - }, - "fork-ts-checker-webpack-plugin": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", - "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - } - } - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "requires": { - "is-glob": "^4.0.3" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - }, - "gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "requires": { - "duplexer": "^0.1.2" - } - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "harmony-reflect": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", - "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "history": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/history/-/history-5.1.0.tgz", - "integrity": "sha512-zPuQgPacm2vH2xdORvGGz1wQMuHSIB56yNAy5FnLuwOwgSYyPKptJtcMm6Ev+hRGeS+GzhbmRacHzvlESbFwDg==", - "requires": { - "@babel/runtime": "^7.7.6" - } - }, - "hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "requires": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - } - }, - "html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "requires": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - } - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "requires": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "requires": {} - }, - "idb": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.0.2.tgz", - "integrity": "sha512-jjKrT1EnyZewQ/gCBb/eyiYrhGzws2FeY92Yx8qT9S9GeQAmo4JFVIiWRIfKW/6Ob9A+UDAOW9j9jn58fy2HIg==" - }, - "identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "requires": { - "harmony-reflect": "^1.4.6" - } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - }, - "immer": { - "version": "9.0.15", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", - "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==" - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - } - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" - }, - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==" - }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" - }, - "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "requires": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - } - }, - "jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "requires": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - } - } - }, - "jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - } - } - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - } - } - }, - "jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" - }, - "jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - } - } - }, - "jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "requires": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - } - } - }, - "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - } - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - } - } - }, - "jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "requires": {} - }, - "jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" - }, - "jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "requires": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "requires": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - } - }, - "jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - } - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "requires": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - } - } - }, - "jest-watch-typeahead": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", - "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", - "requires": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^28.0.0", - "jest-watcher": "^28.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - } - } - }, - "@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "requires": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "requires": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", - "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==" - }, - "jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - } - } - }, - "jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==" - }, - "jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "requires": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - }, - "dependencies": { - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" - }, - "string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", - "requires": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "char-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", - "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==" - } - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - } - } - } - } - }, - "jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "requires": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==" - }, - "jsx-ast-utils": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz", - "integrity": "sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==", - "requires": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.2" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==" - }, - "language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" - }, - "language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==" - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "requires": { - "tslib": "^2.0.3" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "lz-string": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=" - }, - "magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "requires": { - "tmpl": "1.0.5" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - }, - "memfs": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz", - "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==", - "requires": { - "fs-monkey": "^1.0.3" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" - }, - "mini-css-extract-plugin": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", - "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", - "requires": { - "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "requires": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - } - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "requires": { - "boolbase": "^1.0.0" - } - }, - "nwsapi": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.1.tgz", - "integrity": "sha512-JYOWTeFoS0Z93587vRJgASD5Ut11fYl5NyihP3KrYBvMe1FRRs6RN7m20SA/16GM4P6hTnZjT+UmDOt38UeXNg==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz", - "integrity": "sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==", - "requires": { - "array.prototype.reduce": "^1.0.4", - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.1" - } - }, - "object.hasown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", - "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", - "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "requires": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" - } - } - }, - "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-attribute-case-insensitive": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", - "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", - "requires": { - "postcss-selector-parser": "^6.0.10" - } - }, - "postcss-browser-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", - "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", - "requires": {} - }, - "postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "requires": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-clamp": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", - "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-functional-notation": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", - "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-hex-alpha": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", - "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-rebeccapurple": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", - "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-convert-values": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", - "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", - "requires": { - "browserslist": "^4.20.3", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-custom-media": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", - "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-custom-properties": { - "version": "12.1.8", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.8.tgz", - "integrity": "sha512-8rbj8kVu00RQh2fQF81oBqtduiANu4MIxhyf0HbbStgPtnFlWn0yiaYTpLHrPnJbffVY1s9apWsIoVZcc68FxA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-custom-selectors": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", - "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-dir-pseudo-class": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", - "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", - "requires": { - "postcss-selector-parser": "^6.0.10" - } - }, - "postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "requires": {} - }, - "postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "requires": {} - }, - "postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "requires": {} - }, - "postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "requires": {} - }, - "postcss-double-position-gradients": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", - "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-env-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", - "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-flexbugs-fixes": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "requires": {} - }, - "postcss-focus-visible": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", - "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-focus-within": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", - "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "requires": {} - }, - "postcss-gap-properties": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", - "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", - "requires": {} - }, - "postcss-image-set-function": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", - "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-import": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", - "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", - "requires": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - } - }, - "postcss-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "requires": {} - }, - "postcss-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", - "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", - "requires": { - "camelcase-css": "^2.0.1" - } - }, - "postcss-lab-function": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", - "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", - "requires": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" - } - }, - "postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "requires": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - } - }, - "postcss-logical": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "requires": {} - }, - "postcss-media-minmax": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "requires": {} - }, - "postcss-merge-longhand": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", - "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", - "requires": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.0" - } - }, - "postcss-merge-rules": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", - "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "requires": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-params": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", - "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", - "requires": { - "browserslist": "^4.16.6", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "requires": {} - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", - "requires": { - "postcss-selector-parser": "^6.0.6" - } - }, - "postcss-nesting": { - "version": "10.1.10", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.10.tgz", - "integrity": "sha512-lqd7LXCq0gWc0wKXtoKDru5wEUNjm3OryLVNRZ8OnW8km6fSNUuFrjEhU3nklxXE2jvd4qrox566acgh+xQt8w==", - "requires": { - "@csstools/selector-specificity": "^2.0.0", - "postcss-selector-parser": "^6.0.10" - } - }, - "postcss-normalize": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", - "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", - "requires": { - "@csstools/normalize.css": "*", - "postcss-browser-comments": "^4", - "sanitize.css": "*" - } - }, - "postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "requires": {} - }, - "postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-unicode": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", - "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", - "requires": { - "browserslist": "^4.16.6", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "requires": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-opacity-percentage": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", - "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==" - }, - "postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "requires": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-overflow-shorthand": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", - "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "requires": {} - }, - "postcss-place": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", - "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-preset-env": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.7.2.tgz", - "integrity": "sha512-1q0ih7EDsZmCb/FMDRvosna7Gsbdx8CvYO5hYT120hcp2ZAuOHpSzibujZ4JpIUcAC02PG6b+eftxqjTFh5BNA==", - "requires": { - "@csstools/postcss-cascade-layers": "^1.0.4", - "@csstools/postcss-color-function": "^1.1.0", - "@csstools/postcss-font-format-keywords": "^1.0.0", - "@csstools/postcss-hwb-function": "^1.0.1", - "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.6", - "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.1.0", - "@csstools/postcss-progressive-custom-properties": "^1.3.0", - "@csstools/postcss-stepped-value-functions": "^1.0.0", - "@csstools/postcss-trigonometric-functions": "^1.0.1", - "@csstools/postcss-unset-value": "^1.0.1", - "autoprefixer": "^10.4.7", - "browserslist": "^4.21.0", - "css-blank-pseudo": "^3.0.3", - "css-has-pseudo": "^3.0.4", - "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.6.3", - "postcss-attribute-case-insensitive": "^5.0.1", - "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^4.2.3", - "postcss-color-hex-alpha": "^8.0.4", - "postcss-color-rebeccapurple": "^7.1.0", - "postcss-custom-media": "^8.0.2", - "postcss-custom-properties": "^12.1.8", - "postcss-custom-selectors": "^6.0.3", - "postcss-dir-pseudo-class": "^6.0.4", - "postcss-double-position-gradients": "^3.1.1", - "postcss-env-function": "^4.0.6", - "postcss-focus-visible": "^6.0.4", - "postcss-focus-within": "^5.0.4", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.3", - "postcss-image-set-function": "^4.0.6", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.2.0", - "postcss-logical": "^5.0.4", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.9", - "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.3", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.4", - "postcss-pseudo-class-any-link": "^7.1.5", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^6.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-pseudo-class-any-link": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", - "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", - "requires": { - "postcss-selector-parser": "^6.0.10" - } - }, - "postcss-reduce-initial": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", - "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "requires": {} - }, - "postcss-selector-not": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", - "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", - "requires": { - "postcss-selector-parser": "^6.0.10" - } - }, - "postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "requires": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "requires": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - } - } - } - }, - "postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" - }, - "pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" - }, - "pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "requires": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", - "requires": { - "asap": "~2.0.6" - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - } - } - }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "react": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", - "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-app-polyfill": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", - "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", - "requires": { - "core-js": "^3.19.2", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2" - } - }, - "react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "requires": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" - } - } - }, - "react-dom": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz", - "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.1" - } - }, - "react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" - }, - "react-is": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==" - }, - "react-refresh": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" - }, - "react-router": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.0.2.tgz", - "integrity": "sha512-8/Wm3Ed8t7TuedXjAvV39+c8j0vwrI5qVsYqjFr5WkJjsJpEvNSoLRUbtqSEYzqaTUj1IV+sbPJxvO+accvU0Q==", - "requires": { - "history": "^5.1.0" - } - }, - "react-router-dom": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.0.2.tgz", - "integrity": "sha512-cOpJ4B6raFutr0EG8O/M2fEoyQmwvZWomf1c6W2YXBZuFBx8oTk/zqjXghwScyhfrtnt0lANXV2182NQblRxFA==", - "requires": { - "history": "^5.1.0", - "react-router": "6.0.2" - } - }, - "react-scripts": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", - "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", - "requires": { - "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@svgr/webpack": "^5.5.0", - "babel-jest": "^27.4.2", - "babel-loader": "^8.2.3", - "babel-plugin-named-asset-import": "^0.3.8", - "babel-preset-react-app": "^10.0.1", - "bfj": "^7.0.2", - "browserslist": "^4.18.1", - "camelcase": "^6.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "css-loader": "^6.5.1", - "css-minimizer-webpack-plugin": "^3.2.0", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "eslint": "^8.3.0", - "eslint-config-react-app": "^7.0.1", - "eslint-webpack-plugin": "^3.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.0.0", - "fsevents": "^2.3.2", - "html-webpack-plugin": "^5.5.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.3", - "jest-resolve": "^27.4.2", - "jest-watch-typeahead": "^1.0.0", - "mini-css-extract-plugin": "^2.4.5", - "postcss": "^8.4.4", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^6.2.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^7.0.1", - "prompts": "^2.4.2", - "react-app-polyfill": "^3.0.0", - "react-dev-utils": "^12.0.1", - "react-refresh": "^0.11.0", - "resolve": "^1.20.0", - "resolve-url-loader": "^4.0.0", - "sass-loader": "^12.3.0", - "semver": "^7.3.5", - "source-map-loader": "^3.0.0", - "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", - "terser-webpack-plugin": "^5.2.5", - "webpack": "^5.64.4", - "webpack-dev-server": "^4.6.0", - "webpack-manifest-plugin": "^4.0.2", - "workbox-webpack-plugin": "^6.4.1" - } - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "requires": { - "pify": "^2.3.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "requires": { - "minimatch": "3.0.4" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" - }, - "regexpu-core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", - "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==" - }, - "renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "resolve-url-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", - "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", - "requires": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^7.0.35", - "source-map": "0.6.1" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - } - } - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "2.77.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.2.tgz", - "integrity": "sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g==", - "requires": { - "fsevents": "~2.3.2" - } - }, - "rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "requires": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "dependencies": { - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "requires": { - "randombytes": "^2.1.0" - } - } - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sanitize.css": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", - "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" - }, - "sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", - "requires": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "requires": { - "xmlchars": "^2.2.0" - } - }, - "scheduler": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz", - "integrity": "sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" - }, - "selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", - "requires": { - "node-forge": "^1" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - }, - "source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", - "requires": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - } - }, - "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - } - } - }, - "stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - } - } - }, - "string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - } - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" - }, - "strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - }, - "style-loader": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", - "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", - "requires": {} - }, - "stylehacks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", - "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", - "requires": { - "browserslist": "^4.16.6", - "postcss-selector-parser": "^6.0.4" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - }, - "dependencies": { - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - } - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { - "boolbase": "~1.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "tailwindcss": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.7.tgz", - "integrity": "sha512-r7mgumZ3k0InfVPpGWcX8X/Ut4xBfv+1O/+C73ar/m01LxGVzWvPxF/w6xIUPEztrCoz7axfx0SMdh8FH8ZvRQ==", - "requires": { - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "detective": "^5.2.1", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "lilconfig": "^2.0.6", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.14", - "postcss-import": "^14.1.0", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.4", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.10", - "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.1" - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" - }, - "temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==" - }, - "tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "requires": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "dependencies": { - "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" - } - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - } - } - }, - "terser-webpack-plugin": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", - "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", - "requires": { - "@jridgewell/trace-mapping": "^0.3.7", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.7.2" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "dependencies": { - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "requires": { - "punycode": "^2.1.1" - } - }, - "tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" - }, - "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" - } - } - }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", - "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==" - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" - }, - "v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" - } - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "requires": { - "makeerror": "1.0.12" - } - }, - "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "web-vitals": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-0.2.4.tgz", - "integrity": "sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg==" - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" - }, - "webpack": { - "version": "5.74.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", - "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - } - } - }, - "webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "requires": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "webpack-dev-server": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.3.tgz", - "integrity": "sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw==", - "requires": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.0.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - }, - "ws": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", - "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", - "requires": {} - } - } - }, - "webpack-manifest-plugin": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", - "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", - "requires": { - "tapable": "^2.0.0", - "webpack-sources": "^2.2.0" - }, - "dependencies": { - "webpack-sources": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - } - } - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "requires": { - "iconv-lite": "0.4.24" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "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" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "workbox-background-sync": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz", - "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==", - "requires": { - "idb": "^7.0.1", - "workbox-core": "6.5.4" - } - }, - "workbox-broadcast-update": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz", - "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-build": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz", - "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==", - "requires": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", - "source-map": "^0.8.0-beta.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "6.5.4", - "workbox-broadcast-update": "6.5.4", - "workbox-cacheable-response": "6.5.4", - "workbox-core": "6.5.4", - "workbox-expiration": "6.5.4", - "workbox-google-analytics": "6.5.4", - "workbox-navigation-preload": "6.5.4", - "workbox-precaching": "6.5.4", - "workbox-range-requests": "6.5.4", - "workbox-recipes": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4", - "workbox-streams": "6.5.4", - "workbox-sw": "6.5.4", - "workbox-window": "6.5.4" - }, - "dependencies": { - "@apideck/better-ajv-errors": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", - "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", - "requires": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - } - }, - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "requires": { - "whatwg-url": "^7.0.0" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "requires": { - "punycode": "^2.1.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "workbox-cacheable-response": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", - "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-core": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", - "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==" - }, - "workbox-expiration": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", - "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", - "requires": { - "idb": "^7.0.1", - "workbox-core": "6.5.4" - } - }, - "workbox-google-analytics": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz", - "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==", - "requires": { - "workbox-background-sync": "6.5.4", - "workbox-core": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4" - } - }, - "workbox-navigation-preload": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz", - "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-precaching": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", - "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", - "requires": { - "workbox-core": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4" - } - }, - "workbox-range-requests": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz", - "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-recipes": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz", - "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==", - "requires": { - "workbox-cacheable-response": "6.5.4", - "workbox-core": "6.5.4", - "workbox-expiration": "6.5.4", - "workbox-precaching": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4" - } - }, - "workbox-routing": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", - "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-strategies": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", - "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", - "requires": { - "workbox-core": "6.5.4" - } - }, - "workbox-streams": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz", - "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==", - "requires": { - "workbox-core": "6.5.4", - "workbox-routing": "6.5.4" - } - }, - "workbox-sw": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz", - "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==" - }, - "workbox-webpack-plugin": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz", - "integrity": "sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==", - "requires": { - "fast-json-stable-stringify": "^2.1.0", - "pretty-bytes": "^5.4.1", - "upath": "^1.2.0", - "webpack-sources": "^1.4.3", - "workbox-build": "6.5.4" - }, - "dependencies": { - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "workbox-window": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz", - "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==", - "requires": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.5.4" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" - } } } diff --git a/test/with-typescript/src/App.tsx b/test/with-typescript/src/App.tsx index 12d5361f0..268bdd8e4 100644 --- a/test/with-typescript/src/App.tsx +++ b/test/with-typescript/src/App.tsx @@ -9,6 +9,7 @@ import EmailPassword, { PreAPIHookContext as EmailPasswordPreAPIHookContext, } from "../../../recipe/emailpassword"; import Session, { SessionAuth } from "../../../recipe/session"; +import Multitenancy, { AllowedDomainsClaim } from "../../../recipe/multitenancy"; import ThirdParty, { GetRedirectionURLContext as ThirdPartyGetRedirectionURLContext, OnHandleEventContext as ThirdPartyOnHandleEventContext, @@ -168,6 +169,10 @@ function App() { "delete_user", "delete_post", ]), + AllowedDomainsClaim.validators.hasAccessToCurrentDomain(), + Multitenancy.AllowedDomainsClaim.validators.includes( + "asdf.com" + ), ]} accessDeniedScreen={({ validationError }) => (
{JSON.stringify(validationError)}
@@ -311,6 +316,9 @@ function getRecipeList() { validateClaims: (input) => { return oI.validateClaims(input); }, + shouldDoInterceptionBasedOnUrl: (...input) => { + return oI.shouldDoInterceptionBasedOnUrl(...input); + }, }; }, }, @@ -420,13 +428,15 @@ function getThirdPartyConfigs() { providers: [ ThirdParty.Github.init(), ThirdParty.Google.init({ - clientId: "some client ID", + id: "some client ID", + buttonComponent: ({ name }) => ASDF {name}, }), ThirdParty.Facebook.init(), ThirdParty.Apple.init(), { id: "custom", name: "Custom", + buttonComponent: ASDF Custom, }, ], }, @@ -827,145 +837,25 @@ Passwordless.signOut(undefined); Passwordless.signOut(); // Third party -ThirdParty.generateStateToSendToOAuthProvider({ - userContext: undefined, -}); -ThirdParty.generateStateToSendToOAuthProvider(undefined); -ThirdParty.generateStateToSendToOAuthProvider(); - -ThirdParty.getAuthCodeFromURL({ - userContext: undefined, -}); -ThirdParty.getAuthCodeFromURL(undefined); -ThirdParty.getAuthCodeFromURL(); - -ThirdParty.getAuthErrorFromURL({ - userContext: undefined, -}); -ThirdParty.getAuthErrorFromURL(undefined); -ThirdParty.getAuthErrorFromURL(); - -ThirdParty.getAuthStateFromURL({ - userContext: undefined, -}); -ThirdParty.getAuthStateFromURL(undefined); -ThirdParty.getAuthStateFromURL(); - -ThirdParty.getAuthorisationURLFromBackend({ - providerId: "", - userContext: undefined, - options: { - preAPIHook: undefined, - }, -}); // @ts-expect-error ThirdParty.getAuthorisationURLFromBackend(undefined); // @ts-expect-error ThirdParty.getAuthorisationURLFromBackend(); ThirdParty.getAuthorisationURLWithQueryParamsAndSetState({ - authorisationURL: "", - providerId: "", - providerClientId: "", + thirdPartyId: "", + frontendRedirectURI: "", + redirectURIOnProviderDashboard: undefined, + userContext: undefined, options: { preAPIHook: undefined, }, - userContext: undefined, }); // @ts-expect-error ThirdParty.getAuthorisationURLWithQueryParamsAndSetState(undefined); // @ts-expect-error ThirdParty.getAuthorisationURLWithQueryParamsAndSetState(); -function getStateAndOtherInfoFromStorage() { - // @ts-expect-error - const invalidCustomType: - | { - expiresAt: number; - providerId: string; - authorisationURL: string; - stateForAuthProvider: string; - providerClientId?: string; - customData: string; - } - | undefined = ThirdParty.getStateAndOtherInfoFromStorage<{ - customData: number; - }>({ - userContext: undefined, - }); - - const validCustomType: - | { - expiresAt: number; - providerId: string; - authorisationURL: string; - stateForAuthProvider: string; - providerClientId?: string; - customData: string; - } - | undefined = ThirdParty.getStateAndOtherInfoFromStorage<{ - customData: string; - }>(undefined); - - const defaultType: - | { - expiresAt: number; - providerId: string; - authorisationURL: string; - stateForAuthProvider: string; - providerClientId?: string; - } - | undefined = ThirdParty.getStateAndOtherInfoFromStorage(); -} - -ThirdParty.setStateAndOtherInfoToStorage({ - userContext: undefined, - state: { - authorisationURL: "", - expiresAt: 0, - providerId: "", - stateForAuthProvider: "", - providerClientId: "", - }, -}); -ThirdParty.setStateAndOtherInfoToStorage<{ - customData: string; -}>({ - userContext: undefined, - state: { - authorisationURL: "", - expiresAt: 0, - providerId: "", - stateForAuthProvider: "", - // @ts-expect-error - customData: 123, - }, -}); -ThirdParty.setStateAndOtherInfoToStorage<{ - customData: string; -}>({ - userContext: undefined, - // @ts-expect-error - state: { - authorisationURL: "", - expiresAt: 0, - providerId: "", - stateForAuthProvider: "", - }, -}); -ThirdParty.setStateAndOtherInfoToStorage<{ - customData: string; -}>({ - userContext: undefined, - state: { - authorisationURL: "", - expiresAt: 0, - providerId: "", - stateForAuthProvider: "", - customData: "", - }, -}); - ThirdParty.signInAndUp({ userContext: undefined, options: { @@ -981,61 +871,6 @@ ThirdParty.signOut({ ThirdParty.signOut(undefined); ThirdParty.signOut(); -ThirdParty.verifyAndGetStateOrThrowError({ - userContext: undefined, - stateFromAuthProvider: "", - stateObjectFromStorage: { - authorisationURL: "", - expiresAt: 0, - providerId: "", - stateForAuthProvider: "", - providerClientId: "", - }, -}); -ThirdParty.verifyAndGetStateOrThrowError<{ - customData: string; -}>({ - userContext: undefined, - stateFromAuthProvider: "", - // @ts-expect-error - stateObjectFromStorage: { - authorisationURL: "", - expiresAt: 0, - providerId: "", - stateForAuthProvider: "", - providerClientId: "", - }, -}); -ThirdParty.verifyAndGetStateOrThrowError<{ - customData: string; -}>({ - userContext: undefined, - stateFromAuthProvider: "", - stateObjectFromStorage: { - authorisationURL: "", - expiresAt: 0, - providerId: "", - stateForAuthProvider: "", - providerClientId: "", - // @ts-expect-error - customData: 123, - }, -}); -ThirdParty.verifyAndGetStateOrThrowError<{ - customData: string; -}>({ - userContext: undefined, - stateFromAuthProvider: "", - stateObjectFromStorage: { - authorisationURL: "", - expiresAt: 0, - providerId: "", - stateForAuthProvider: "", - providerClientId: "", - customData: "", - }, -}); - // TPEP ThirdPartyEmailPassword.doesEmailExist({ email: "", @@ -1083,50 +918,19 @@ ThirdPartyEmailPassword.emailPasswordSignUp(undefined); // @ts-expect-error ThirdPartyEmailPassword.emailPasswordSignUp(); -ThirdPartyEmailPassword.generateStateToSendToOAuthProvider({ - userContext: undefined, -}); -ThirdPartyEmailPassword.generateStateToSendToOAuthProvider(undefined); -ThirdPartyEmailPassword.generateStateToSendToOAuthProvider(); - -ThirdPartyEmailPassword.getAuthCodeFromURL({ - userContext: undefined, -}); -ThirdPartyEmailPassword.getAuthCodeFromURL(undefined); -ThirdPartyEmailPassword.getAuthCodeFromURL(); - -ThirdPartyEmailPassword.getAuthErrorFromURL({ - userContext: undefined, -}); -ThirdPartyEmailPassword.getAuthErrorFromURL(undefined); -ThirdPartyEmailPassword.getAuthErrorFromURL(); - -ThirdPartyEmailPassword.getAuthStateFromURL({ - userContext: undefined, -}); -ThirdPartyEmailPassword.getAuthStateFromURL(undefined); -ThirdPartyEmailPassword.getAuthStateFromURL(); - -ThirdPartyEmailPassword.getAuthorisationURLFromBackend({ - userContext: undefined, - options: { - preAPIHook: undefined, - }, - providerId: "", -}); // @ts-expect-error ThirdPartyEmailPassword.getAuthorisationURLFromBackend(undefined); // @ts-expect-error ThirdPartyEmailPassword.getAuthorisationURLFromBackend(); ThirdPartyEmailPassword.getAuthorisationURLWithQueryParamsAndSetState({ - authorisationURL: "", - providerId: "", + thirdPartyId: "", + frontendRedirectURI: "", + redirectURIOnProviderDashboard: undefined, + userContext: undefined, options: { preAPIHook: undefined, }, - providerClientId: "", - userContext: undefined, }); // @ts-expect-error ThirdPartyEmailPassword.getAuthorisationURLWithQueryParamsAndSetState(undefined); @@ -1139,51 +943,6 @@ ThirdPartyEmailPassword.getResetPasswordTokenFromURL({ ThirdPartyEmailPassword.getResetPasswordTokenFromURL(undefined); ThirdPartyEmailPassword.getResetPasswordTokenFromURL(); -function tpepgetStateAndOtherInfoFromStorage() { - // @ts-expect-error - const invalidCustomType: - | { - expiresAt: number; - providerId: string; - authorisationURL: string; - stateForAuthProvider: string; - providerClientId?: string; - customData: string; - } - | undefined = ThirdPartyEmailPassword.getStateAndOtherInfoFromStorage<{ - customData: number; - }>({ - userContext: undefined, - }); - - const validCustomType: - | { - expiresAt: number; - providerId: string; - authorisationURL: string; - stateForAuthProvider: string; - providerClientId?: string; - customData: string; - } - | undefined = ThirdPartyEmailPassword.getStateAndOtherInfoFromStorage<{ - customData: string; - }>({ - userContext: undefined, - }); - - const defaultType: - | { - expiresAt: number; - providerId: string; - authorisationURL: string; - stateForAuthProvider: string; - providerClientId?: string; - } - | undefined = ThirdPartyEmailPassword.getStateAndOtherInfoFromStorage({ - userContext: undefined, - }); -} - ThirdPartyEmailPassword.sendPasswordResetEmail({ userContext: undefined, options: { @@ -1201,54 +960,6 @@ ThirdPartyEmailPassword.sendPasswordResetEmail(undefined); // @ts-expect-error ThirdPartyEmailPassword.sendPasswordResetEmail(); -ThirdPartyEmailPassword.setStateAndOtherInfoToStorage({ - userContext: undefined, - state: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - providerClientId: "", - }, -}); -ThirdPartyEmailPassword.setStateAndOtherInfoToStorage<{ - customData: string; -}>({ - userContext: undefined, - // @ts-expect-error - state: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - }, -}); -ThirdPartyEmailPassword.setStateAndOtherInfoToStorage<{ - customData: string; -}>({ - userContext: undefined, - state: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - // @ts-expect-error - customData: 123, - }, -}); -ThirdPartyEmailPassword.setStateAndOtherInfoToStorage<{ - customData: string; -}>({ - userContext: undefined, - state: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - customData: "", - }, -}); - ThirdPartyEmailPassword.signOut({ userContext: undefined, }); @@ -1281,61 +992,6 @@ ThirdPartyEmailPassword.thirdPartySignInAndUp({ ThirdPartyEmailPassword.thirdPartySignInAndUp(undefined); ThirdPartyEmailPassword.thirdPartySignInAndUp(); -ThirdPartyEmailPassword.verifyAndGetStateOrThrowError({ - stateFromAuthProvider: "", - userContext: undefined, - stateObjectFromStorage: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - providerClientId: "", - }, -}); - -ThirdPartyEmailPassword.verifyAndGetStateOrThrowError<{ - customData: string; -}>({ - stateFromAuthProvider: "", - userContext: undefined, - // @ts-expect-error - stateObjectFromStorage: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - }, -}); - -ThirdPartyEmailPassword.verifyAndGetStateOrThrowError<{ - customData: string; -}>({ - stateFromAuthProvider: "", - userContext: undefined, - stateObjectFromStorage: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - // @ts-expect-error - customData: 123, - }, -}); - -ThirdPartyEmailPassword.verifyAndGetStateOrThrowError<{ - customData: string; -}>({ - stateFromAuthProvider: "", - userContext: undefined, - stateObjectFromStorage: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - customData: "", - }, -}); - // TPP ThirdPartyPasswordless.clearPasswordlessLoginAttemptInfo({ userContext: undefined, @@ -1396,152 +1052,37 @@ ThirdPartyPasswordless.doesPasswordlessUserPhoneNumberExist({ }, }); -ThirdPartyPasswordless.generateThirdPartyStateToSendToOAuthProvider({ - userContext: undefined, -}); -ThirdPartyPasswordless.generateThirdPartyStateToSendToOAuthProvider(undefined); -ThirdPartyPasswordless.generateThirdPartyStateToSendToOAuthProvider(); - -ThirdPartyPasswordless.getAuthorisationURLFromBackend({ - userContext: undefined, - options: { - preAPIHook: undefined, - }, - providerId: "", -}); - ThirdPartyPasswordless.getPasswordlessLinkCodeFromURL({ userContext: undefined, }); ThirdPartyPasswordless.getPasswordlessLinkCodeFromURL(undefined); ThirdPartyPasswordless.getPasswordlessLinkCodeFromURL(); -async function getPasswordlessLoginAttemptInfo() { - // @ts-expect-error - const invalidCustomType: - | { - deviceId: string; - preAuthSessionId: string; - flowType: PasswordlessFlowType; - customData: string; - } - | undefined = await ThirdPartyPasswordless.getPasswordlessLoginAttemptInfo<{ - customData: number; - }>({ - userContext: undefined, - }); - - const validCustomType: - | { - deviceId: string; - preAuthSessionId: string; - flowType: PasswordlessFlowType; - customData: string; - } - | undefined = await ThirdPartyPasswordless.getPasswordlessLoginAttemptInfo<{ - customData: string; - }>({ - userContext: undefined, - }); - - const defaultType: - | { - deviceId: string; - preAuthSessionId: string; - flowType: PasswordlessFlowType; - } - | undefined = await ThirdPartyPasswordless.getPasswordlessLoginAttemptInfo({ - userContext: undefined, - }); -} - ThirdPartyPasswordless.getPasswordlessPreAuthSessionIdFromURL({ userContext: undefined, }); ThirdPartyPasswordless.getPasswordlessPreAuthSessionIdFromURL(undefined); ThirdPartyPasswordless.getPasswordlessPreAuthSessionIdFromURL(); -ThirdPartyPasswordless.getThirdPartyAuthCodeFromURL({ - userContext: undefined, -}); -ThirdPartyPasswordless.getThirdPartyAuthCodeFromURL(undefined); -ThirdPartyPasswordless.getThirdPartyAuthCodeFromURL(); - -ThirdPartyPasswordless.getThirdPartyAuthErrorFromURL({ - userContext: undefined, -}); -ThirdPartyPasswordless.getThirdPartyAuthErrorFromURL(undefined); -ThirdPartyPasswordless.getThirdPartyAuthErrorFromURL(); - -ThirdPartyPasswordless.getThirdPartyAuthStateFromURL({ - userContext: undefined, -}); -ThirdPartyPasswordless.getThirdPartyAuthStateFromURL(undefined); -ThirdPartyPasswordless.getThirdPartyAuthStateFromURL(); - ThirdPartyPasswordless.getThirdPartyAuthorisationURLWithQueryParamsAndSetState({ - authorisationURL: "", - providerId: "", + thirdPartyId: "", + frontendRedirectURI: "", + redirectURIOnProviderDashboard: undefined, + userContext: undefined, options: { preAPIHook: undefined, }, - providerClientId: "", - userContext: undefined, }); ThirdPartyPasswordless.getThirdPartyAuthorisationURLWithQueryParamsAndSetState({ - authorisationURL: "", - providerId: "", + thirdPartyId: "", + frontendRedirectURI: "", + redirectURIOnProviderDashboard: undefined, + userContext: undefined, options: { preAPIHook: undefined, }, - userContext: undefined, }); -function tppgetThirdPartyStateAndOtherInfoFromStorage() { - // @ts-expect-error - const invalidCustomType: - | { - expiresAt: number; - providerId: string; - authorisationURL: string; - stateForAuthProvider: string; - providerClientId?: string; - customData: string; - } - | undefined = ThirdPartyPasswordless.getThirdPartyStateAndOtherInfoFromStorage<{ - customData: number; - }>({ - userContext: undefined, - }); - - const validCustomType: - | { - expiresAt: number; - providerId: string; - authorisationURL: string; - stateForAuthProvider: string; - providerClientId?: string; - customData: string; - } - | undefined = ThirdPartyPasswordless.getThirdPartyStateAndOtherInfoFromStorage<{ - customData: string; - }>({ - userContext: undefined, - }); - - const defaultType: - | { - expiresAt: number; - providerId: string; - authorisationURL: string; - stateForAuthProvider: string; - providerClientId?: string; - } - | undefined = ThirdPartyPasswordless.getThirdPartyStateAndOtherInfoFromStorage({ - userContext: undefined, - }); -} - ThirdPartyPasswordless.resendPasswordlessCode({ userContext: undefined, options: { @@ -1614,54 +1155,6 @@ ThirdPartyPasswordless.setPasswordlessLoginAttemptInfo(undefined); // @ts-expect-error ThirdPartyPasswordless.setPasswordlessLoginAttemptInfo(); -ThirdPartyPasswordless.setThirdPartyStateAndOtherInfoToStorage({ - userContext: undefined, - state: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - providerClientId: "", - }, -}); -ThirdPartyPasswordless.setThirdPartyStateAndOtherInfoToStorage<{ - customData: string; -}>({ - userContext: undefined, - // @ts-expect-error - state: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - }, -}); -ThirdPartyPasswordless.setThirdPartyStateAndOtherInfoToStorage<{ - customData: string; -}>({ - userContext: undefined, - state: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - // @ts-expect-error - customData: 123, - }, -}); -ThirdPartyPasswordless.setThirdPartyStateAndOtherInfoToStorage<{ - customData: string; -}>({ - userContext: undefined, - state: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - customData: "", - }, -}); - ThirdPartyPasswordless.signOut({ userContext: undefined, }); @@ -1677,61 +1170,6 @@ ThirdPartyPasswordless.thirdPartySignInAndUp({ ThirdPartyPasswordless.thirdPartySignInAndUp(undefined); ThirdPartyPasswordless.thirdPartySignInAndUp(); -ThirdPartyPasswordless.verifyAndGetThirdPartyStateOrThrowError({ - stateFromAuthProvider: "", - userContext: undefined, - stateObjectFromStorage: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - providerClientId: "", - }, -}); - -ThirdPartyPasswordless.verifyAndGetThirdPartyStateOrThrowError<{ - customData: string; -}>({ - stateFromAuthProvider: "", - userContext: undefined, - // @ts-expect-error - stateObjectFromStorage: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - }, -}); - -ThirdPartyPasswordless.verifyAndGetThirdPartyStateOrThrowError<{ - customData: string; -}>({ - stateFromAuthProvider: "", - userContext: undefined, - stateObjectFromStorage: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - // @ts-expect-error - customData: 123, - }, -}); - -ThirdPartyPasswordless.verifyAndGetThirdPartyStateOrThrowError<{ - customData: string; -}>({ - stateFromAuthProvider: "", - userContext: undefined, - stateObjectFromStorage: { - authorisationURL: "", - expiresAt: 123, - providerId: "", - stateForAuthProvider: "", - customData: "", - }, -}); - Session.addAxiosInterceptors({}); Session.validateClaims({ @@ -1795,3 +1233,14 @@ const AdminRoute: React.FC = (props) => { EmailVerification.init(); EmailVerification.init(undefined); EmailVerification.init({}); + +Multitenancy.init(); + +Multitenancy.init({ + override: { + functions: (oI) => ({ + ...oI, + getTenantId: () => "sub-tenant-1", + }), + }, +}); diff --git a/webJsInterfaceSupported.json b/webJsInterfaceSupported.json index 838cf8414..08af99f2d 100644 --- a/webJsInterfaceSupported.json +++ b/webJsInterfaceSupported.json @@ -1,4 +1,4 @@ { "_comment": "contains the web js interface version that this package supports", - "version": "0.5" + "version": "0.6" }