@firebase/auth 1.9.1 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth-public.d.ts +28 -1
- package/dist/auth.d.ts +40 -2
- package/dist/browser-cjs/{index-018c7ebd.js → index-eddc1dc3.js} +211 -15
- package/dist/browser-cjs/index-eddc1dc3.js.map +1 -0
- package/dist/browser-cjs/index.d.ts +2 -1
- package/dist/browser-cjs/index.js +2 -1
- package/dist/browser-cjs/index.js.map +1 -1
- package/dist/browser-cjs/internal.js +2 -1
- package/dist/browser-cjs/internal.js.map +1 -1
- package/dist/browser-cjs/src/api/index.d.ts +1 -1
- package/dist/browser-cjs/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/browser-cjs/src/core/persistence/index.d.ts +2 -1
- package/dist/browser-cjs/src/model/auth.d.ts +4 -1
- package/dist/browser-cjs/src/model/public_types.d.ts +2 -1
- package/dist/browser-cjs/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/browser-cjs/src/platform_node/index.d.ts +1 -0
- package/dist/cordova/auth-cordova-public.d.ts +26 -1
- package/dist/cordova/auth-cordova.d.ts +29 -2
- package/dist/cordova/index.d.ts +2 -1
- package/dist/cordova/index.js +2 -2
- package/dist/cordova/internal.js +147 -3
- package/dist/cordova/internal.js.map +1 -1
- package/dist/cordova/{popup_redirect-e795474a.js → popup_redirect-5323ec00.js} +66 -15
- package/dist/cordova/popup_redirect-5323ec00.js.map +1 -0
- package/dist/cordova/src/api/index.d.ts +1 -1
- package/dist/cordova/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/cordova/src/core/persistence/index.d.ts +2 -1
- package/dist/cordova/src/model/auth.d.ts +4 -1
- package/dist/cordova/src/model/public_types.d.ts +2 -1
- package/dist/cordova/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/cordova/src/platform_node/index.d.ts +1 -0
- package/dist/esm2017/{index-e84cf44d.js → index-c92d61ad.js} +211 -16
- package/dist/esm2017/index-c92d61ad.js.map +1 -0
- package/dist/esm2017/index.d.ts +2 -1
- package/dist/esm2017/index.js +1 -1
- package/dist/esm2017/internal.js +2 -2
- package/dist/esm2017/src/api/index.d.ts +1 -1
- package/dist/esm2017/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/esm2017/src/core/persistence/index.d.ts +2 -1
- package/dist/esm2017/src/model/auth.d.ts +4 -1
- package/dist/esm2017/src/model/public_types.d.ts +2 -1
- package/dist/esm2017/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/esm2017/src/platform_node/index.d.ts +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.webworker.js +65 -14
- package/dist/index.webworker.js.map +1 -1
- package/dist/node/index.d.ts +2 -1
- package/dist/node/index.js +2 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/internal.js +2 -1
- package/dist/node/internal.js.map +1 -1
- package/dist/node/src/api/index.d.ts +1 -1
- package/dist/node/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/node/src/core/persistence/index.d.ts +2 -1
- package/dist/node/src/model/auth.d.ts +4 -1
- package/dist/node/src/model/public_types.d.ts +2 -1
- package/dist/node/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/node/src/platform_node/index.d.ts +1 -0
- package/dist/node/{totp-06fa6909.js → totp-af329771.js} +68 -15
- package/dist/node/totp-af329771.js.map +1 -0
- package/dist/node-esm/index.d.ts +2 -1
- package/dist/node-esm/index.js +1 -1
- package/dist/node-esm/internal.js +2 -2
- package/dist/node-esm/internal.js.map +1 -1
- package/dist/node-esm/src/api/index.d.ts +1 -1
- package/dist/node-esm/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/node-esm/src/core/persistence/index.d.ts +2 -1
- package/dist/node-esm/src/model/auth.d.ts +4 -1
- package/dist/node-esm/src/model/public_types.d.ts +2 -1
- package/dist/node-esm/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/node-esm/src/platform_node/index.d.ts +1 -0
- package/dist/node-esm/{totp-d5ff2369.js → totp-7829abf2.js} +68 -16
- package/dist/node-esm/totp-7829abf2.js.map +1 -0
- package/dist/rn/{index-ee081591.js → index-e8d5e0fb.js} +66 -15
- package/dist/rn/index-e8d5e0fb.js.map +1 -0
- package/dist/rn/index.d.ts +2 -1
- package/dist/rn/index.js +1 -1
- package/dist/rn/internal.js +146 -1
- package/dist/rn/internal.js.map +1 -1
- package/dist/rn/src/api/index.d.ts +1 -1
- package/dist/rn/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/rn/src/core/persistence/index.d.ts +2 -1
- package/dist/rn/src/model/auth.d.ts +4 -1
- package/dist/rn/src/model/public_types.d.ts +2 -1
- package/dist/rn/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/rn/src/platform_node/index.d.ts +1 -0
- package/dist/src/api/index.d.ts +1 -1
- package/dist/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/src/core/persistence/index.d.ts +2 -1
- package/dist/src/model/auth.d.ts +4 -1
- package/dist/src/model/public_types.d.ts +2 -1
- package/dist/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/src/platform_node/index.d.ts +1 -0
- package/dist/web-extension-cjs/index.d.ts +2 -1
- package/dist/web-extension-cjs/index.js +1 -1
- package/dist/web-extension-cjs/internal.js +146 -1
- package/dist/web-extension-cjs/internal.js.map +1 -1
- package/dist/web-extension-cjs/{register-c2c7670d.js → register-b64ddc5e.js} +66 -15
- package/dist/web-extension-cjs/register-b64ddc5e.js.map +1 -0
- package/dist/web-extension-cjs/src/api/index.d.ts +1 -1
- package/dist/web-extension-cjs/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/web-extension-cjs/src/core/persistence/index.d.ts +2 -1
- package/dist/web-extension-cjs/src/model/auth.d.ts +4 -1
- package/dist/web-extension-cjs/src/model/public_types.d.ts +2 -1
- package/dist/web-extension-cjs/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/web-extension-cjs/src/platform_node/index.d.ts +1 -0
- package/dist/web-extension-esm2017/auth-web-extension-public.d.ts +26 -1
- package/dist/web-extension-esm2017/auth-web-extension.d.ts +29 -2
- package/dist/web-extension-esm2017/index.d.ts +2 -1
- package/dist/web-extension-esm2017/index.js +2 -2
- package/dist/web-extension-esm2017/internal.js +147 -3
- package/dist/web-extension-esm2017/internal.js.map +1 -1
- package/dist/web-extension-esm2017/{register-31c228e4.js → register-00522d81.js} +66 -15
- package/dist/web-extension-esm2017/register-00522d81.js.map +1 -0
- package/dist/web-extension-esm2017/src/api/index.d.ts +1 -1
- package/dist/web-extension-esm2017/src/core/auth/auth_impl.d.ts +4 -1
- package/dist/web-extension-esm2017/src/core/persistence/index.d.ts +2 -1
- package/dist/web-extension-esm2017/src/model/auth.d.ts +4 -1
- package/dist/web-extension-esm2017/src/model/public_types.d.ts +2 -1
- package/dist/web-extension-esm2017/src/platform_browser/persistence/cookie_storage.d.ts +40 -0
- package/dist/web-extension-esm2017/src/platform_node/index.d.ts +1 -0
- package/package.json +3 -2
- package/dist/browser-cjs/index-018c7ebd.js.map +0 -1
- package/dist/cordova/popup_redirect-e795474a.js.map +0 -1
- package/dist/esm2017/index-e84cf44d.js.map +0 -1
- package/dist/node/totp-06fa6909.js.map +0 -1
- package/dist/node-esm/totp-d5ff2369.js.map +0 -1
- package/dist/rn/index-ee081591.js.map +0 -1
- package/dist/web-extension-cjs/register-c2c7670d.js.map +0 -1
- package/dist/web-extension-esm2017/register-31c228e4.js.map +0 -1
|
@@ -770,6 +770,14 @@ const SERVER_ERROR_MAP = {
|
|
|
770
770
|
* See the License for the specific language governing permissions and
|
|
771
771
|
* limitations under the License.
|
|
772
772
|
*/
|
|
773
|
+
const CookieAuthProxiedEndpoints = [
|
|
774
|
+
"/v1/accounts:signInWithCustomToken" /* Endpoint.SIGN_IN_WITH_CUSTOM_TOKEN */,
|
|
775
|
+
"/v1/accounts:signInWithEmailLink" /* Endpoint.SIGN_IN_WITH_EMAIL_LINK */,
|
|
776
|
+
"/v1/accounts:signInWithIdp" /* Endpoint.SIGN_IN_WITH_IDP */,
|
|
777
|
+
"/v1/accounts:signInWithPassword" /* Endpoint.SIGN_IN_WITH_PASSWORD */,
|
|
778
|
+
"/v1/accounts:signInWithPhoneNumber" /* Endpoint.SIGN_IN_WITH_PHONE_NUMBER */,
|
|
779
|
+
"/v1/token" /* Endpoint.TOKEN */
|
|
780
|
+
];
|
|
773
781
|
const DEFAULT_API_TIMEOUT_MS = new Delay(30000, 60000);
|
|
774
782
|
function _addTidIfNecessary(auth, request) {
|
|
775
783
|
if (auth.tenantId && !request.tenantId) {
|
|
@@ -806,7 +814,7 @@ async function _performApiRequest(auth, method, path, request, customErrorMap =
|
|
|
806
814
|
if (!isCloudflareWorker()) {
|
|
807
815
|
fetchArgs.referrerPolicy = 'no-referrer';
|
|
808
816
|
}
|
|
809
|
-
return FetchProvider.fetch()(_getFinalTarget(auth, auth.config.apiHost, path, query), fetchArgs);
|
|
817
|
+
return FetchProvider.fetch()(await _getFinalTarget(auth, auth.config.apiHost, path, query), fetchArgs);
|
|
810
818
|
});
|
|
811
819
|
}
|
|
812
820
|
async function _performFetchWithErrorHandling(auth, customErrorMap, fetchFn) {
|
|
@@ -871,12 +879,25 @@ async function _performSignInRequest(auth, method, path, request, customErrorMap
|
|
|
871
879
|
}
|
|
872
880
|
return serverResponse;
|
|
873
881
|
}
|
|
874
|
-
function _getFinalTarget(auth, host, path, query) {
|
|
882
|
+
async function _getFinalTarget(auth, host, path, query) {
|
|
875
883
|
const base = `${host}${path}?${query}`;
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
884
|
+
const authInternal = auth;
|
|
885
|
+
const finalTarget = authInternal.config.emulator
|
|
886
|
+
? _emulatorUrl(auth.config, base)
|
|
887
|
+
: `${auth.config.apiScheme}://${base}`;
|
|
888
|
+
// Cookie auth works by MiTMing the signIn and token endpoints from the developer's backend,
|
|
889
|
+
// saving the idToken and refreshToken into cookies, and then redacting the refreshToken
|
|
890
|
+
// from the response
|
|
891
|
+
if (CookieAuthProxiedEndpoints.includes(path)) {
|
|
892
|
+
// Persistence manager is async, we need to await it. We can't just wait for auth initialized
|
|
893
|
+
// here since auth initialization calls this function.
|
|
894
|
+
await authInternal._persistenceManagerAvailable;
|
|
895
|
+
if (authInternal._getPersistenceType() === "COOKIE" /* PersistenceType.COOKIE */) {
|
|
896
|
+
const cookiePersistence = authInternal._getPersistence();
|
|
897
|
+
return cookiePersistence._getFinalTarget(finalTarget).toString();
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
return finalTarget;
|
|
880
901
|
}
|
|
881
902
|
function _parseEnforcementState(enforcementStateStr) {
|
|
882
903
|
switch (enforcementStateStr) {
|
|
@@ -1452,7 +1473,7 @@ async function requestStsToken(auth, refreshToken) {
|
|
|
1452
1473
|
'refresh_token': refreshToken
|
|
1453
1474
|
}).slice(1);
|
|
1454
1475
|
const { tokenApiHost, apiKey } = auth.config;
|
|
1455
|
-
const url = _getFinalTarget(auth, tokenApiHost, "/v1/token" /* Endpoint.TOKEN */, `key=${apiKey}`);
|
|
1476
|
+
const url = await _getFinalTarget(auth, tokenApiHost, "/v1/token" /* Endpoint.TOKEN */, `key=${apiKey}`);
|
|
1456
1477
|
const headers = await auth._getAdditionalHeaders();
|
|
1457
1478
|
headers["Content-Type" /* HttpHeader.CONTENT_TYPE */] = 'application/x-www-form-urlencoded';
|
|
1458
1479
|
return FetchProvider.fetch()(url, {
|
|
@@ -1943,7 +1964,17 @@ class PersistenceUserManager {
|
|
|
1943
1964
|
}
|
|
1944
1965
|
async getCurrentUser() {
|
|
1945
1966
|
const blob = await this.persistence._get(this.fullUserKey);
|
|
1946
|
-
|
|
1967
|
+
if (!blob) {
|
|
1968
|
+
return null;
|
|
1969
|
+
}
|
|
1970
|
+
if (typeof blob === 'string') {
|
|
1971
|
+
const response = await getAccountInfo(this.auth, { idToken: blob }).catch(() => undefined);
|
|
1972
|
+
if (!response) {
|
|
1973
|
+
return null;
|
|
1974
|
+
}
|
|
1975
|
+
return UserImpl._fromGetAccountInfoResponse(this.auth, response, blob);
|
|
1976
|
+
}
|
|
1977
|
+
return UserImpl._fromJSON(this.auth, blob);
|
|
1947
1978
|
}
|
|
1948
1979
|
removeCurrentUser() {
|
|
1949
1980
|
return this.persistence._remove(this.fullUserKey);
|
|
@@ -1990,7 +2021,19 @@ class PersistenceUserManager {
|
|
|
1990
2021
|
try {
|
|
1991
2022
|
const blob = await persistence._get(key);
|
|
1992
2023
|
if (blob) {
|
|
1993
|
-
|
|
2024
|
+
let user;
|
|
2025
|
+
if (typeof blob === 'string') {
|
|
2026
|
+
const response = await getAccountInfo(auth, {
|
|
2027
|
+
idToken: blob
|
|
2028
|
+
}).catch(() => undefined);
|
|
2029
|
+
if (!response) {
|
|
2030
|
+
break;
|
|
2031
|
+
}
|
|
2032
|
+
user = await UserImpl._fromGetAccountInfoResponse(auth, response, blob);
|
|
2033
|
+
}
|
|
2034
|
+
else {
|
|
2035
|
+
user = UserImpl._fromJSON(auth, blob); // throws for unparsable blob (wrong format)
|
|
2036
|
+
}
|
|
1994
2037
|
if (persistence !== selectedPersistence) {
|
|
1995
2038
|
userToMigrate = user;
|
|
1996
2039
|
}
|
|
@@ -2488,6 +2531,7 @@ class AuthImpl {
|
|
|
2488
2531
|
this._tenantRecaptchaConfigs = {};
|
|
2489
2532
|
this._projectPasswordPolicy = null;
|
|
2490
2533
|
this._tenantPasswordPolicies = {};
|
|
2534
|
+
this._resolvePersistenceManagerAvailable = undefined;
|
|
2491
2535
|
// Tracks the last notified UID for state change listeners to prevent
|
|
2492
2536
|
// repeated calls to the callbacks. Undefined means it's never been
|
|
2493
2537
|
// called, whereas null means it's been called with a signed out user
|
|
@@ -2498,6 +2542,9 @@ class AuthImpl {
|
|
|
2498
2542
|
this.frameworks = [];
|
|
2499
2543
|
this.name = app.name;
|
|
2500
2544
|
this.clientVersion = config.sdkClientVersion;
|
|
2545
|
+
// TODO(jamesdaniels) explore less hacky way to do this, cookie authentication needs
|
|
2546
|
+
// persistenceMananger to be available. see _getFinalTarget for more context
|
|
2547
|
+
this._persistenceManagerAvailable = new Promise(resolve => (this._resolvePersistenceManagerAvailable = resolve));
|
|
2501
2548
|
}
|
|
2502
2549
|
_initializeWithPersistence(persistenceHierarchy, popupRedirectResolver) {
|
|
2503
2550
|
if (popupRedirectResolver) {
|
|
@@ -2506,17 +2553,18 @@ class AuthImpl {
|
|
|
2506
2553
|
// Have to check for app deletion throughout initialization (after each
|
|
2507
2554
|
// promise resolution)
|
|
2508
2555
|
this._initializationPromise = this.queue(async () => {
|
|
2509
|
-
var _a, _b;
|
|
2556
|
+
var _a, _b, _c;
|
|
2510
2557
|
if (this._deleted) {
|
|
2511
2558
|
return;
|
|
2512
2559
|
}
|
|
2513
2560
|
this.persistenceManager = await PersistenceUserManager.create(this, persistenceHierarchy);
|
|
2561
|
+
(_a = this._resolvePersistenceManagerAvailable) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
2514
2562
|
if (this._deleted) {
|
|
2515
2563
|
return;
|
|
2516
2564
|
}
|
|
2517
2565
|
// Initialize the resolver early if necessary (only applicable to web:
|
|
2518
2566
|
// this will cause the iframe to load immediately in certain cases)
|
|
2519
|
-
if ((
|
|
2567
|
+
if ((_b = this._popupRedirectResolver) === null || _b === void 0 ? void 0 : _b._shouldInitProactively) {
|
|
2520
2568
|
// If this fails, don't halt auth loading
|
|
2521
2569
|
try {
|
|
2522
2570
|
await this._popupRedirectResolver._initialize(this);
|
|
@@ -2526,7 +2574,7 @@ class AuthImpl {
|
|
|
2526
2574
|
}
|
|
2527
2575
|
}
|
|
2528
2576
|
await this.initializeCurrentUser(popupRedirectResolver);
|
|
2529
|
-
this.lastNotifiedUid = ((
|
|
2577
|
+
this.lastNotifiedUid = ((_c = this.currentUser) === null || _c === void 0 ? void 0 : _c.uid) || null;
|
|
2530
2578
|
if (this._deleted) {
|
|
2531
2579
|
return;
|
|
2532
2580
|
}
|
|
@@ -2780,9 +2828,12 @@ class AuthImpl {
|
|
|
2780
2828
|
this._tenantPasswordPolicies[this.tenantId] = passwordPolicy;
|
|
2781
2829
|
}
|
|
2782
2830
|
}
|
|
2783
|
-
|
|
2831
|
+
_getPersistenceType() {
|
|
2784
2832
|
return this.assertedPersistence.persistence.type;
|
|
2785
2833
|
}
|
|
2834
|
+
_getPersistence() {
|
|
2835
|
+
return this.assertedPersistence.persistence;
|
|
2836
|
+
}
|
|
2786
2837
|
_updateErrorMap(errorMap) {
|
|
2787
2838
|
this._errorFactory = new ErrorFactory('auth', 'Firebase', errorMap());
|
|
2788
2839
|
}
|
|
@@ -8025,7 +8076,7 @@ function _isEmptyString(input) {
|
|
|
8025
8076
|
}
|
|
8026
8077
|
|
|
8027
8078
|
var name = "@firebase/auth";
|
|
8028
|
-
var version = "1.
|
|
8079
|
+
var version = "1.10.0";
|
|
8029
8080
|
|
|
8030
8081
|
/**
|
|
8031
8082
|
* @license
|
|
@@ -8172,4 +8223,4 @@ function registerAuth(clientPlatform) {
|
|
|
8172
8223
|
}
|
|
8173
8224
|
|
|
8174
8225
|
export { updateEmail as $, AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY as A, linkWithCredential as B, reauthenticateWithCredential as C, signInWithCustomToken as D, EmailAuthCredential as E, FacebookAuthProvider as F, GoogleAuthProvider as G, sendPasswordResetEmail as H, confirmPasswordReset as I, applyActionCode as J, checkActionCode as K, verifyPasswordResetCode as L, createUserWithEmailAndPassword as M, signInWithEmailAndPassword as N, OAuthCredential as O, PhoneAuthCredential as P, sendSignInLinkToEmail as Q, isSignInWithEmailLink as R, SAMLAuthProvider as S, TotpMultiFactorGenerator as T, signInWithEmailLink as U, fetchSignInMethodsForEmail as V, sendEmailVerification as W, verifyBeforeUpdateEmail as X, ActionCodeURL as Y, parseActionCodeURL as Z, updateProfile as _, indexedDBLocalPersistence as a, FetchProvider as a$, updatePassword as a0, getIdToken as a1, getIdTokenResult as a2, unlink as a3, getAdditionalUserInfo as a4, reload as a5, getMultiFactorResolver as a6, multiFactor as a7, STORAGE_AVAILABLE_KEY as a8, _isMobileBrowser as a9, signInWithIdp as aA, _fail as aB, debugAssert as aC, _assertInstanceOf as aD, _generateEventId as aE, FederatedAuthProvider as aF, _persistenceKeyName as aG, _performApiRequest as aH, _getCurrentUrl as aI, _gapiScriptUrl as aJ, _emulatorUrl as aK, _isChromeIOS as aL, _isFirefox as aM, _isIOSStandalone as aN, BaseOAuthProvider as aO, _setWindowLocation as aP, _isSafari as aQ, _isIOS as aR, MultiFactorAssertionImpl as aS, finalizeEnrollPhoneMfa as aT, finalizeSignInPhoneMfa as aU, _setExternalJSProvider as aV, _isAndroid as aW, _isIOS7Or8 as aX, UserImpl as aY, AuthImpl as aZ, _getClientVersion as a_, _isIE10 as aa, Delay as ab, _window as ac, _assert as ad, isV2 as ae, _createError as af, _recaptchaV2ScriptUrl as ag, _loadJS as ah, MockReCaptcha as ai, _generateCallbackName as aj, _castAuth as ak, _isHttpOrHttps as al, _isWorker as am, getRecaptchaParams as an, _serverAppCurrentUserOperationNotSupportedError as ao, _assertLinkedStatus as ap, _initializeRecaptchaConfig as aq, FAKE_TOKEN as ar, startEnrollPhoneMfa as as, handleRecaptchaFlow as at, startSignInPhoneMfa as au, sendPhoneVerificationCode as av, _link as aw, _getInstance as ax, _signInWithCredential as ay, _reauthenticate as az, TotpSecret as b, SAMLAuthCredential as b0, connectAuthEmulator as c, initializeRecaptchaConfig as d, beforeAuthStateChanged as e, onAuthStateChanged as f, updateCurrentUser as g, signOut as h, initializeAuth as i, revokeAccessToken as j, deleteUser as k, debugErrorMap as l, AuthCredential as m, inMemoryPersistence as n, onIdTokenChanged as o, prodErrorMap as p, EmailAuthProvider as q, registerAuth as r, setPersistence as s, GithubAuthProvider as t, useDeviceLanguage as u, validatePassword as v, OAuthProvider as w, TwitterAuthProvider as x, signInAnonymously as y, signInWithCredential as z };
|
|
8175
|
-
//# sourceMappingURL=register-
|
|
8226
|
+
//# sourceMappingURL=register-00522d81.js.map
|