@okta/okta-auth-js 5.4.2 → 5.7.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/CHANGELOG.md +60 -5
- package/README.md +66 -977
- package/cjs/AuthStateManager.js +5 -0
- package/cjs/AuthStateManager.js.map +1 -1
- package/cjs/OktaAuth.js +32 -11
- package/cjs/OktaAuth.js.map +1 -1
- package/cjs/OktaUserAgent.js +2 -2
- package/cjs/StorageManager.js +8 -0
- package/cjs/StorageManager.js.map +1 -1
- package/cjs/TransactionManager.js +32 -4
- package/cjs/TransactionManager.js.map +1 -1
- package/cjs/browser/browserStorage.js +5 -5
- package/cjs/browser/browserStorage.js.map +1 -1
- package/cjs/builderUtil.js +6 -0
- package/cjs/builderUtil.js.map +1 -1
- package/cjs/constants.js +3 -1
- package/cjs/constants.js.map +1 -1
- package/cjs/fetch/fetchRequest.js +10 -3
- package/cjs/fetch/fetchRequest.js.map +1 -1
- package/cjs/http/request.js +4 -0
- package/cjs/http/request.js.map +1 -1
- package/cjs/idx/remediate.js +33 -23
- package/cjs/idx/remediate.js.map +1 -1
- package/cjs/idx/remediators/Base/AuthenticatorData.js +7 -7
- package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
- package/cjs/idx/remediators/Base/Remediator.js +13 -7
- package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
- package/cjs/idx/remediators/Base/SelectAuthenticator.js +6 -6
- package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js +18 -14
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/EnrollProfile.js +14 -0
- package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
- package/cjs/idx/remediators/Identify.js +5 -2
- package/cjs/idx/remediators/Identify.js.map +1 -1
- package/cjs/idx/remediators/ReEnrollAuthenticator.js +1 -1
- package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
- package/cjs/idx/transactionMeta.js +3 -1
- package/cjs/idx/transactionMeta.js.map +1 -1
- package/cjs/idx/types/idx-js.js.map +1 -1
- package/cjs/idx/types/index.js +17 -6
- package/cjs/idx/types/index.js.map +1 -1
- package/cjs/index.js +6 -6
- package/cjs/index.js.map +1 -1
- package/cjs/oidc/getToken.js +14 -9
- package/cjs/oidc/getToken.js.map +1 -1
- package/cjs/oidc/getWithPopup.js +9 -2
- package/cjs/oidc/getWithPopup.js.map +1 -1
- package/cjs/oidc/getWithRedirect.js +6 -2
- package/cjs/oidc/getWithRedirect.js.map +1 -1
- package/cjs/oidc/parseFromUrl.js +59 -20
- package/cjs/oidc/parseFromUrl.js.map +1 -1
- package/cjs/oidc/renewTokens.js +28 -5
- package/cjs/oidc/renewTokens.js.map +1 -1
- package/cjs/oidc/util/browser.js +1 -13
- package/cjs/oidc/util/browser.js.map +1 -1
- package/cjs/oidc/util/validateClaims.js +8 -6
- package/cjs/oidc/util/validateClaims.js.map +1 -1
- package/cjs/options.js +3 -0
- package/cjs/options.js.map +1 -1
- package/cjs/tx/AuthTransaction.js +1 -3
- package/cjs/tx/AuthTransaction.js.map +1 -1
- package/cjs/tx/api.js +3 -0
- package/cjs/tx/api.js.map +1 -1
- package/cjs/types/Transaction.js.map +1 -1
- package/cjs/util/sharedStorage.js +54 -0
- package/cjs/util/sharedStorage.js.map +1 -0
- package/dist/okta-auth-js.min.js +8 -8
- package/dist/okta-auth-js.min.js.map +1 -1
- package/dist/okta-auth-js.umd.js +8 -8
- package/dist/okta-auth-js.umd.js.map +1 -1
- package/esm/AuthStateManager.js +5 -0
- package/esm/AuthStateManager.js.map +1 -1
- package/esm/OktaAuth.js +32 -12
- package/esm/OktaAuth.js.map +1 -1
- package/esm/OktaUserAgent.js +2 -2
- package/esm/StorageManager.js +9 -1
- package/esm/StorageManager.js.map +1 -1
- package/esm/TransactionManager.js +31 -4
- package/esm/TransactionManager.js.map +1 -1
- package/esm/browser/browserStorage.js +5 -5
- package/esm/browser/browserStorage.js.map +1 -1
- package/esm/builderUtil.js +6 -0
- package/esm/builderUtil.js.map +1 -1
- package/esm/constants.js +1 -0
- package/esm/constants.js.map +1 -1
- package/esm/fetch/fetchRequest.js +10 -3
- package/esm/fetch/fetchRequest.js.map +1 -1
- package/esm/http/request.js +4 -0
- package/esm/http/request.js.map +1 -1
- package/esm/idx/remediate.js +41 -29
- package/esm/idx/remediate.js.map +1 -1
- package/esm/idx/remediators/Base/AuthenticatorData.js +7 -7
- package/esm/idx/remediators/Base/AuthenticatorData.js.map +1 -1
- package/esm/idx/remediators/Base/Remediator.js +13 -8
- package/esm/idx/remediators/Base/Remediator.js.map +1 -1
- package/esm/idx/remediators/Base/SelectAuthenticator.js +6 -6
- package/esm/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
- package/esm/idx/remediators/Base/VerifyAuthenticator.js +18 -15
- package/esm/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
- package/esm/idx/remediators/EnrollProfile.js +21 -4
- package/esm/idx/remediators/EnrollProfile.js.map +1 -1
- package/esm/idx/remediators/Identify.js +4 -2
- package/esm/idx/remediators/Identify.js.map +1 -1
- package/esm/idx/remediators/ReEnrollAuthenticator.js +1 -1
- package/esm/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
- package/esm/idx/transactionMeta.js +3 -1
- package/esm/idx/transactionMeta.js.map +1 -1
- package/esm/idx/types/idx-js.js.map +1 -1
- package/esm/idx/types/index.js +15 -5
- package/esm/idx/types/index.js.map +1 -1
- package/esm/index.js +2 -2
- package/esm/index.js.map +1 -1
- package/esm/oidc/getToken.js +15 -10
- package/esm/oidc/getToken.js.map +1 -1
- package/esm/oidc/getWithPopup.js +8 -2
- package/esm/oidc/getWithPopup.js.map +1 -1
- package/esm/oidc/getWithRedirect.js +6 -2
- package/esm/oidc/getWithRedirect.js.map +1 -1
- package/esm/oidc/parseFromUrl.js +59 -17
- package/esm/oidc/parseFromUrl.js.map +1 -1
- package/esm/oidc/renewTokens.js +27 -5
- package/esm/oidc/renewTokens.js.map +1 -1
- package/esm/oidc/util/browser.js +1 -12
- package/esm/oidc/util/browser.js.map +1 -1
- package/esm/oidc/util/validateClaims.js +8 -6
- package/esm/oidc/util/validateClaims.js.map +1 -1
- package/esm/options.js +3 -0
- package/esm/options.js.map +1 -1
- package/esm/tx/AuthTransaction.js +1 -3
- package/esm/tx/AuthTransaction.js.map +1 -1
- package/esm/tx/api.js +3 -0
- package/esm/tx/api.js.map +1 -1
- package/esm/types/Transaction.js.map +1 -1
- package/esm/util/sharedStorage.js +43 -0
- package/esm/util/sharedStorage.js.map +1 -0
- package/lib/AuthStateManager.d.ts +4 -2
- package/lib/OktaAuth.d.ts +3 -2
- package/lib/StorageManager.d.ts +1 -0
- package/lib/TransactionManager.d.ts +1 -0
- package/lib/constants.d.ts +1 -0
- package/lib/idx/remediators/Base/AuthenticatorData.d.ts +2 -5
- package/lib/idx/remediators/Base/Remediator.d.ts +3 -6
- package/lib/idx/remediators/Base/SelectAuthenticator.d.ts +3 -6
- package/lib/idx/remediators/Base/VerifyAuthenticator.d.ts +1 -1
- package/lib/idx/remediators/EnrollProfile.d.ts +1 -0
- package/lib/idx/remediators/Identify.d.ts +1 -5
- package/lib/idx/types/idx-js.d.ts +1 -0
- package/lib/idx/types/index.d.ts +19 -9
- package/lib/index.d.ts +2 -1
- package/lib/oidc/getToken.d.ts +2 -2
- package/lib/oidc/parseFromUrl.d.ts +4 -1
- package/lib/oidc/renewTokens.d.ts +0 -12
- package/lib/types/AuthState.d.ts +1 -0
- package/lib/types/OktaAuthOptions.d.ts +2 -1
- package/lib/types/Storage.d.ts +3 -0
- package/lib/types/Transaction.d.ts +5 -1
- package/lib/types/api.d.ts +9 -4
- package/lib/types/http.d.ts +1 -0
- package/lib/util/sharedStorage.d.ts +6 -0
- package/package.json +5 -4
|
@@ -142,9 +142,7 @@ function link2fn(sdk, res, obj, link, ref) {
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
var href = link.href + (0, _util.toQueryString)(params);
|
|
145
|
-
return (0, _api.postToTransaction)(sdk, href, data
|
|
146
|
-
withCredentials: true
|
|
147
|
-
});
|
|
145
|
+
return (0, _api.postToTransaction)(sdk, href, data);
|
|
148
146
|
};
|
|
149
147
|
}
|
|
150
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/tx/AuthTransaction.ts"],"names":["AuthTransaction","constructor","sdk","res","data","interactionHandle","status","Object","assign","flattenEmbedded","stateToken","_links","cancel","Promise","resolve","link2fn","obj","link","ref","Array","isArray","name","opts","AuthSdkError","lk","hints","allow","length","method","href","withCredentials","isPolling","factorType","provider","params","autoPush","undefined","e","reject","rememberDevice","profile","updatePhone","links2fns","fns","linkName","prototype","hasOwnProperty","call","type","poll","fn","objArr","o","ol","push","embedded","_embedded","key"],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\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.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\nimport { get } from '../http';\nimport { find, omit, toQueryString, clone, isObject } from '../util';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { TransactionState } from './TransactionState';\nimport { addStateToken } from './util';\nimport { getPollFn } from './poll';\nimport { postToTransaction } from './api';\nimport { IdxStatus } from '../idx/types';\n\ninterface PostToTransactionParams {\n autoPush?: boolean;\n rememberDevice?: boolean;\n updatePhone?: boolean;\n}\n\ntype AuthTransactionFunction = (obj?: any) => Promise<AuthTransaction>;\n\ninterface AuthTransactionFunctions {\n // common\n next?: AuthTransactionFunction;\n cancel?: AuthTransactionFunction;\n skip?: AuthTransactionFunction;\n // locked_out\n unlock?: AuthTransactionFunction;\n // password\n changePassword?: AuthTransactionFunction;\n resetPassword?: AuthTransactionFunction;\n // recovery\n answer?: AuthTransactionFunction;\n recovery?: AuthTransactionFunction;\n // recovery_challenge\n verify?: AuthTransactionFunction;\n resend?: AuthTransactionFunction;\n // mfa_enroll_activate\n activate?: AuthTransactionFunction;\n poll?: AuthTransactionFunction;\n prev?: AuthTransactionFunction;\n}\n\nexport class AuthTransaction implements TransactionState, AuthTransactionFunctions {\n next?: AuthTransactionFunction;\n cancel?: AuthTransactionFunction;\n skip?: AuthTransactionFunction;\n unlock?: AuthTransactionFunction;\n changePassword?: AuthTransactionFunction;\n resetPassword?: AuthTransactionFunction;\n answer?: AuthTransactionFunction;\n recovery?: AuthTransactionFunction;\n verify?: AuthTransactionFunction;\n resend?: AuthTransactionFunction;\n activate?: AuthTransactionFunction;\n poll?: AuthTransactionFunction;\n prev?: AuthTransactionFunction;\n\n data: TransactionState;\n stateToken?: string;\n sessionToken?: string;\n status: string | IdxStatus;\n user?: Record<string, any>;\n factor?: Record<string, any>;\n factors?: Array<Record<string, any> >;\n policy?: Record<string, any>;\n scopes?: Array<Record<string, any> >;\n target?: Record<string, any>;\n authentication?: Record<string, any>;\n constructor(sdk, res = null) {\n if (res) {\n this.data = res;\n\n if (this.data.interactionHandle) {\n this.status = res.status;\n return;\n }\n\n // Parse response from Authn V1\n Object.assign(this, flattenEmbedded(sdk, res, res, {}));\n delete this.stateToken;\n\n // RECOVERY_CHALLENGE has some responses without _links.\n // Without _links, we emulate cancel to make it intuitive\n // to return to the starting state. We may remove this\n // when OKTA-75434 is resolved\n if (res.status === 'RECOVERY_CHALLENGE' && !res._links) {\n this.cancel = function() {\n return Promise.resolve(new AuthTransaction(sdk));\n };\n }\n }\n }\n}\n\nfunction link2fn(sdk, res, obj, link, ref) {\n if (Array.isArray(link)) {\n return function(name, opts?) {\n if (!name) {\n throw new AuthSdkError('Must provide a link name');\n }\n\n var lk = find(link, {name: name});\n if (!lk) {\n throw new AuthSdkError('No link found for that name');\n }\n\n return link2fn(sdk, res, obj, lk, ref)(opts);\n };\n\n } else if (link.hints &&\n link.hints.allow &&\n link.hints.allow.length === 1) {\n var method = link.hints.allow[0];\n switch (method) {\n\n case 'GET':\n return function() {\n return get(sdk, link.href, { withCredentials: true });\n };\n\n case 'POST':\n // eslint-disable-next-line max-statements,complexity\n return function(opts: TransactionState) {\n if (ref && ref.isPolling) {\n ref.isPolling = false;\n }\n\n var data = addStateToken(res, opts);\n\n if (res.status === 'MFA_ENROLL' || res.status === 'FACTOR_ENROLL') {\n // Add factorType and provider\n Object.assign(data, {\n factorType: obj.factorType,\n provider: obj.provider\n });\n }\n\n var params = {} as PostToTransactionParams;\n var autoPush = data.autoPush;\n if (autoPush !== undefined) {\n if (typeof autoPush === 'function') {\n try {\n params.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== null) {\n params.autoPush = !!autoPush;\n }\n data = omit(data, 'autoPush');\n }\n\n var rememberDevice = data.rememberDevice;\n if (rememberDevice !== undefined) {\n if (typeof rememberDevice === 'function') {\n try {\n params.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== null) {\n params.rememberDevice = !!rememberDevice;\n }\n data = omit(data, 'rememberDevice');\n\n } else if (data.profile &&\n data.profile.updatePhone !== undefined) {\n if (data.profile.updatePhone) {\n params.updatePhone = true;\n }\n data.profile = omit(data.profile, 'updatePhone');\n }\n var href = link.href + toQueryString(params);\n return postToTransaction(sdk, href, data, { withCredentials: true });\n };\n }\n }\n}\n\nfunction links2fns(sdk, res, obj, ref) {\n var fns = {} as AuthTransactionFunctions;\n for (var linkName in obj._links) {\n if (!Object.prototype.hasOwnProperty.call(obj._links, linkName)) {\n continue;\n }\n\n var link = obj._links[linkName];\n \n if (linkName === 'next') {\n linkName = link.name;\n }\n\n if (link.type) {\n fns[linkName] = link;\n continue;\n }\n\n switch (linkName) {\n // poll is only found at the transaction\n // level, so we don't need to pass the link\n case 'poll':\n fns.poll = getPollFn(sdk, res, ref);\n break;\n\n default:\n var fn = link2fn(sdk, res, obj, link, ref);\n if (fn) {\n fns[linkName] = fn;\n }\n }\n }\n return fns;\n}\n\n// eslint-disable-next-line complexity\nfunction flattenEmbedded(sdk, res, obj, ref) {\n obj = obj || res;\n obj = clone(obj);\n\n if (Array.isArray(obj)) {\n var objArr = [];\n for (var o = 0, ol = obj.length; o < ol; o++) {\n objArr.push(flattenEmbedded(sdk, res, obj[o], ref));\n }\n return objArr;\n }\n\n var embedded = obj._embedded || {};\n\n for (var key in embedded) {\n if (!Object.prototype.hasOwnProperty.call(embedded, key)) {\n continue;\n }\n\n // Flatten any nested _embedded objects\n if (isObject(embedded[key]) || Array.isArray(embedded[key])) {\n embedded[key] = flattenEmbedded(sdk, res, embedded[key], ref);\n }\n }\n\n // Convert any links on the embedded object\n var fns = links2fns(sdk, res, obj, ref);\n Object.assign(embedded, fns);\n\n obj = omit(obj, '_embedded', '_links');\n Object.assign(obj, embedded);\n return obj;\n}\n"],"file":"AuthTransaction.js"}
|
|
1
|
+
{"version":3,"sources":["../../../lib/tx/AuthTransaction.ts"],"names":["AuthTransaction","constructor","sdk","res","data","interactionHandle","status","Object","assign","flattenEmbedded","stateToken","_links","cancel","Promise","resolve","link2fn","obj","link","ref","Array","isArray","name","opts","AuthSdkError","lk","hints","allow","length","method","href","withCredentials","isPolling","factorType","provider","params","autoPush","undefined","e","reject","rememberDevice","profile","updatePhone","links2fns","fns","linkName","prototype","hasOwnProperty","call","type","poll","fn","objArr","o","ol","push","embedded","_embedded","key"],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\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.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\nimport { get } from '../http';\nimport { find, omit, toQueryString, clone, isObject } from '../util';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { TransactionState } from './TransactionState';\nimport { addStateToken } from './util';\nimport { getPollFn } from './poll';\nimport { postToTransaction } from './api';\nimport { IdxStatus } from '../idx/types';\n\ninterface PostToTransactionParams {\n autoPush?: boolean;\n rememberDevice?: boolean;\n updatePhone?: boolean;\n}\n\ntype AuthTransactionFunction = (obj?: any) => Promise<AuthTransaction>;\n\ninterface AuthTransactionFunctions {\n // common\n next?: AuthTransactionFunction;\n cancel?: AuthTransactionFunction;\n skip?: AuthTransactionFunction;\n // locked_out\n unlock?: AuthTransactionFunction;\n // password\n changePassword?: AuthTransactionFunction;\n resetPassword?: AuthTransactionFunction;\n // recovery\n answer?: AuthTransactionFunction;\n recovery?: AuthTransactionFunction;\n // recovery_challenge\n verify?: AuthTransactionFunction;\n resend?: AuthTransactionFunction;\n // mfa_enroll_activate\n activate?: AuthTransactionFunction;\n poll?: AuthTransactionFunction;\n prev?: AuthTransactionFunction;\n}\n\nexport class AuthTransaction implements TransactionState, AuthTransactionFunctions {\n next?: AuthTransactionFunction;\n cancel?: AuthTransactionFunction;\n skip?: AuthTransactionFunction;\n unlock?: AuthTransactionFunction;\n changePassword?: AuthTransactionFunction;\n resetPassword?: AuthTransactionFunction;\n answer?: AuthTransactionFunction;\n recovery?: AuthTransactionFunction;\n verify?: AuthTransactionFunction;\n resend?: AuthTransactionFunction;\n activate?: AuthTransactionFunction;\n poll?: AuthTransactionFunction;\n prev?: AuthTransactionFunction;\n\n data: TransactionState;\n stateToken?: string;\n sessionToken?: string;\n status: string | IdxStatus;\n user?: Record<string, any>;\n factor?: Record<string, any>;\n factors?: Array<Record<string, any> >;\n policy?: Record<string, any>;\n scopes?: Array<Record<string, any> >;\n target?: Record<string, any>;\n authentication?: Record<string, any>;\n constructor(sdk, res = null) {\n if (res) {\n this.data = res;\n\n if (this.data.interactionHandle) {\n this.status = res.status;\n return;\n }\n\n // Parse response from Authn V1\n Object.assign(this, flattenEmbedded(sdk, res, res, {}));\n delete this.stateToken;\n\n // RECOVERY_CHALLENGE has some responses without _links.\n // Without _links, we emulate cancel to make it intuitive\n // to return to the starting state. We may remove this\n // when OKTA-75434 is resolved\n if (res.status === 'RECOVERY_CHALLENGE' && !res._links) {\n this.cancel = function() {\n return Promise.resolve(new AuthTransaction(sdk));\n };\n }\n }\n }\n}\n\nfunction link2fn(sdk, res, obj, link, ref) {\n if (Array.isArray(link)) {\n return function(name, opts?) {\n if (!name) {\n throw new AuthSdkError('Must provide a link name');\n }\n\n var lk = find(link, {name: name});\n if (!lk) {\n throw new AuthSdkError('No link found for that name');\n }\n\n return link2fn(sdk, res, obj, lk, ref)(opts);\n };\n\n } else if (link.hints &&\n link.hints.allow &&\n link.hints.allow.length === 1) {\n var method = link.hints.allow[0];\n switch (method) {\n\n case 'GET':\n return function() {\n return get(sdk, link.href, { withCredentials: true });\n };\n\n case 'POST':\n // eslint-disable-next-line max-statements,complexity\n return function(opts: TransactionState) {\n if (ref && ref.isPolling) {\n ref.isPolling = false;\n }\n\n var data = addStateToken(res, opts);\n\n if (res.status === 'MFA_ENROLL' || res.status === 'FACTOR_ENROLL') {\n // Add factorType and provider\n Object.assign(data, {\n factorType: obj.factorType,\n provider: obj.provider\n });\n }\n\n var params = {} as PostToTransactionParams;\n var autoPush = data.autoPush;\n if (autoPush !== undefined) {\n if (typeof autoPush === 'function') {\n try {\n params.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== null) {\n params.autoPush = !!autoPush;\n }\n data = omit(data, 'autoPush');\n }\n\n var rememberDevice = data.rememberDevice;\n if (rememberDevice !== undefined) {\n if (typeof rememberDevice === 'function') {\n try {\n params.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== null) {\n params.rememberDevice = !!rememberDevice;\n }\n data = omit(data, 'rememberDevice');\n\n } else if (data.profile &&\n data.profile.updatePhone !== undefined) {\n if (data.profile.updatePhone) {\n params.updatePhone = true;\n }\n data.profile = omit(data.profile, 'updatePhone');\n }\n var href = link.href + toQueryString(params);\n return postToTransaction(sdk, href, data);\n };\n }\n }\n}\n\nfunction links2fns(sdk, res, obj, ref) {\n var fns = {} as AuthTransactionFunctions;\n for (var linkName in obj._links) {\n if (!Object.prototype.hasOwnProperty.call(obj._links, linkName)) {\n continue;\n }\n\n var link = obj._links[linkName];\n \n if (linkName === 'next') {\n linkName = link.name;\n }\n\n if (link.type) {\n fns[linkName] = link;\n continue;\n }\n\n switch (linkName) {\n // poll is only found at the transaction\n // level, so we don't need to pass the link\n case 'poll':\n fns.poll = getPollFn(sdk, res, ref);\n break;\n\n default:\n var fn = link2fn(sdk, res, obj, link, ref);\n if (fn) {\n fns[linkName] = fn;\n }\n }\n }\n return fns;\n}\n\n// eslint-disable-next-line complexity\nfunction flattenEmbedded(sdk, res, obj, ref) {\n obj = obj || res;\n obj = clone(obj);\n\n if (Array.isArray(obj)) {\n var objArr = [];\n for (var o = 0, ol = obj.length; o < ol; o++) {\n objArr.push(flattenEmbedded(sdk, res, obj[o], ref));\n }\n return objArr;\n }\n\n var embedded = obj._embedded || {};\n\n for (var key in embedded) {\n if (!Object.prototype.hasOwnProperty.call(embedded, key)) {\n continue;\n }\n\n // Flatten any nested _embedded objects\n if (isObject(embedded[key]) || Array.isArray(embedded[key])) {\n embedded[key] = flattenEmbedded(sdk, res, embedded[key], ref);\n }\n }\n\n // Convert any links on the embedded object\n var fns = links2fns(sdk, res, obj, ref);\n Object.assign(embedded, fns);\n\n obj = omit(obj, '_embedded', '_links');\n Object.assign(obj, embedded);\n return obj;\n}\n"],"file":"AuthTransaction.js"}
|
package/cjs/tx/api.js
CHANGED
|
@@ -89,6 +89,9 @@ function transactionExists(sdk) {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
function postToTransaction(sdk, url, args, options) {
|
|
92
|
+
options = Object.assign({
|
|
93
|
+
withCredentials: true
|
|
94
|
+
}, options);
|
|
92
95
|
return (0, _http.post)(sdk, url, args, options).then(function (res) {
|
|
93
96
|
return new _AuthTransaction.AuthTransaction(sdk, res);
|
|
94
97
|
});
|
package/cjs/tx/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/tx/api.ts"],"names":["transactionStatus","sdk","args","getIssuerOrigin","withCredentials","resumeTransaction","stateToken","tx","exists","_get","STATE_TOKEN_KEY_NAME","Promise","reject","AuthSdkError","status","then","res","AuthTransaction","introspect","transactionStep","transactionExists","postToTransaction","url","options"],"mappings":";;;;;;;;;;AAcA;;AACA;;AACA;;AACA;;AACA;;AAlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAOA,SAASA,iBAAT,CAA2BC,GAA3B,EAAgCC,IAAhC,EAAsC;AACpCA,EAAAA,IAAI,GAAG,yBAAcD,GAAd,EAAmBC,IAAnB,CAAP;AACA,SAAO,gBAAKD,GAAL,EAAUA,GAAG,CAACE,eAAJ,KAAwB,eAAlC,EAAmDD,IAAnD,EAAyD;AAAEE,IAAAA,eAAe,EAAE;AAAnB,GAAzD,CAAP;AACD;;AAED,SAASC,iBAAT,CAA2BJ,GAA3B,EAAgCC,IAAhC,EAAsC;AACpC,MAAI,CAACA,IAAD,IAAS,CAACA,IAAI,CAACI,UAAnB,EAA+B;AAC7B,QAAIA,UAAU,GAAGL,GAAG,CAACM,EAAJ,CAAOC,MAAP,CAAcC,IAAd,CAAmBC,+BAAnB,CAAjB;;AACA,QAAIJ,UAAJ,EAAgB;AACdJ,MAAAA,IAAI,GAAG;AACLI,QAAAA,UAAU,EAAEA;AADP,OAAP;AAGD,KAJD,MAIO;AACL,aAAOK,OAAO,CAACC,MAAR,CAAe,IAAIC,qBAAJ,CAAiB,0BAAjB,CAAf,CAAP;AACD;AACF;;AACD,SAAOZ,GAAG,CAACM,EAAJ,CAAOO,MAAP,CAAcZ,IAAd,EACJa,IADI,CACC,UAASC,GAAT,EAAc;AAClB,WAAO,IAAIC,gCAAJ,CAAoBhB,GAApB,EAAyBe,GAAzB,CAAP;AACD,GAHI,CAAP;AAID;;AAED,SAASE,UAAT,CAAqBjB,GAArB,EAA0BC,IAA1B,EAAgC;AAC9B,MAAI,CAACA,IAAD,IAAS,CAACA,IAAI,CAACI,UAAnB,EAA+B;AAC7B,QAAIA,UAAU,GAAGL,GAAG,CAACM,EAAJ,CAAOC,MAAP,CAAcC,IAAd,CAAmBC,+BAAnB,CAAjB;;AACA,QAAIJ,UAAJ,EAAgB;AACdJ,MAAAA,IAAI,GAAG;AACLI,QAAAA,UAAU,EAAEA;AADP,OAAP;AAGD,KAJD,MAIO;AACL,aAAOK,OAAO,CAACC,MAAR,CAAe,IAAIC,qBAAJ,CAAiB,4BAAjB,CAAf,CAAP;AACD;AACF;;AACD,SAAOM,eAAe,CAAClB,GAAD,EAAMC,IAAN,CAAf,CACJa,IADI,CACC,UAAUC,GAAV,EAAe;AACnB,WAAO,IAAIC,gCAAJ,CAAoBhB,GAApB,EAAyBe,GAAzB,CAAP;AACD,GAHI,CAAP;AAID;;AAED,SAASG,eAAT,CAAyBlB,GAAzB,EAA8BC,IAA9B,EAAoC;AAClCA,EAAAA,IAAI,GAAG,yBAAcD,GAAd,EAAmBC,IAAnB,CAAP,CADkC,CAElC;;AACA,SAAO,gBAAKD,GAAL,EAAUA,GAAG,CAACE,eAAJ,KAAwB,0BAAlC,EAA8DD,IAA9D,EAAoE;AAAEE,IAAAA,eAAe,EAAE;AAAnB,GAApE,CAAP;AACD;;AAED,SAASgB,iBAAT,CAA2BnB,GAA3B,EAAgC;AAC9B;AACA,SAAO,CAAC,CAACA,GAAG,CAACM,EAAJ,CAAOC,MAAP,CAAcC,IAAd,CAAmBC,+BAAnB,CAAT;AACD;;AAED,SAASW,iBAAT,CAA2BpB,GAA3B,EAAgCqB,GAAhC,EAAqCpB,IAArC,EAA2CqB,OAA3C,EAAqD;
|
|
1
|
+
{"version":3,"sources":["../../../lib/tx/api.ts"],"names":["transactionStatus","sdk","args","getIssuerOrigin","withCredentials","resumeTransaction","stateToken","tx","exists","_get","STATE_TOKEN_KEY_NAME","Promise","reject","AuthSdkError","status","then","res","AuthTransaction","introspect","transactionStep","transactionExists","postToTransaction","url","options","Object","assign"],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\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.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\n/* eslint-disable complexity, max-statements */\nimport { post } from '../http';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { STATE_TOKEN_KEY_NAME } from '../constants';\nimport { addStateToken } from './util';\nimport { AuthTransaction } from './AuthTransaction';\n\nfunction transactionStatus(sdk, args) {\n args = addStateToken(sdk, args);\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn', args, { withCredentials: true });\n}\n\nfunction resumeTransaction(sdk, args) {\n if (!args || !args.stateToken) {\n var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n } else {\n return Promise.reject(new AuthSdkError('No transaction to resume'));\n }\n }\n return sdk.tx.status(args)\n .then(function(res) {\n return new AuthTransaction(sdk, res);\n });\n}\n\nfunction introspect (sdk, args) {\n if (!args || !args.stateToken) {\n var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n } else {\n return Promise.reject(new AuthSdkError('No transaction to evaluate'));\n }\n }\n return transactionStep(sdk, args)\n .then(function (res) {\n return new AuthTransaction(sdk, res);\n });\n}\n\nfunction transactionStep(sdk, args) {\n args = addStateToken(sdk, args);\n // v1 pipeline introspect API\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn/introspect', args, { withCredentials: true });\n}\n\nfunction transactionExists(sdk) {\n // We have a cookie state token\n return !!sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n}\n\nfunction postToTransaction(sdk, url, args, options?) {\n options = Object.assign({ withCredentials: true }, options);\n return post(sdk, url, args, options)\n .then(function(res) {\n return new AuthTransaction(sdk, res);\n });\n}\n\nexport {\n transactionStatus,\n resumeTransaction,\n transactionExists,\n postToTransaction,\n introspect,\n};\n"],"file":"api.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/types/Transaction.ts"],"names":["isObjectWithProperties","obj","Object","values","length","isOAuthTransactionMeta","redirectUri","responseType","isPKCETransactionMeta","codeVerifier","isIdxTransactionMeta","interactionHandle","isCustomAuthTransactionMeta","isAllStringValues","find","value","undefined","isTransactionMeta"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"sources":["../../../lib/types/Transaction.ts"],"names":["isObjectWithProperties","obj","Object","values","length","isOAuthTransactionMeta","redirectUri","responseType","isPKCETransactionMeta","codeVerifier","isIdxTransactionMeta","interactionHandle","isCustomAuthTransactionMeta","isAllStringValues","find","value","undefined","isTransactionMeta"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsBA;AAiCA,SAASA,sBAAT,CAAgCC,GAAhC,EAAqC;AACnC,MAAI,CAACA,GAAD,IAAQ,OAAOA,GAAP,KAAe,QAAvB,IAAmCC,MAAM,CAACC,MAAP,CAAcF,GAAd,EAAmBG,MAAnB,KAA8B,CAArE,EAAwE;AACtE,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD;;AAEM,SAASC,sBAAT,CAAgCJ,GAAhC,EAAuE;AAC5E,MAAI,CAACD,sBAAsB,CAACC,GAAD,CAA3B,EAAkC;AAChC,WAAO,KAAP;AACD;;AACD,SAAO,CAAC,CAACA,GAAG,CAACK,WAAN,IAAqB,CAAC,CAACL,GAAG,CAACM,YAAlC;AACD;;AAEM,SAASC,qBAAT,CAA+BP,GAA/B,EAAqE;AAC1E,MAAI,CAACI,sBAAsB,CAACJ,GAAD,CAA3B,EAAkC;AAChC,WAAO,KAAP;AACD;;AACD,SAAO,CAAC,CAAEA,GAAD,CAAaQ,YAAtB;AACD;;AAEM,SAASC,oBAAT,CAA8BT,GAA9B,EAAmE;AACxE,MAAI,CAACO,qBAAqB,CAACP,GAAD,CAA1B,EAAiC;AAC/B,WAAO,KAAP;AACD;;AACD,SAAO,CAAC,CAAEA,GAAD,CAAaU,iBAAtB;AACD;;AAEM,SAASC,2BAAT,CAAqCX,GAArC,EAAiF;AACtF,MAAI,CAACD,sBAAsB,CAACC,GAAD,CAA3B,EAAkC;AAChC,WAAO,KAAP;AACD;;AACD,QAAMY,iBAAiB,GAAGX,MAAM,CAACC,MAAP,CAAcF,GAAd,EAAmBa,IAAnB,CAAyBC,KAAD,IAAY,OAAOA,KAAP,KAAiB,QAArD,MAAoEC,SAA9F;AACA,SAAOH,iBAAP;AACD;;AAEM,SAASI,iBAAT,CAA2BhB,GAA3B,EAA6D;AAClE,MAAII,sBAAsB,CAACJ,GAAD,CAAtB,IAA+BW,2BAA2B,CAACX,GAAD,CAA9D,EAAqE;AACnE,WAAO,IAAP;AACD;;AACD,SAAO,KAAP;AACD","sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\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.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport StorageManager from '../StorageManager';\nimport { CustomUrls } from './OktaAuthOptions';\n\nexport interface TransactionManagerOptions {\n storageManager?: StorageManager;\n enableSharedStorage?: boolean; // default true\n legacyWidgetSupport?: boolean; // default true\n saveNonceCookie?: boolean; // default true\n saveStateCookie?: boolean; // default true\n saveParamsCookie?: boolean; // default true\n}\n\nexport interface TransactionMetaOptions {\n pkce?: boolean;\n oauth?: boolean;\n muteWarning?: boolean;\n state?: string;\n}\n\n// formerly known as \"Redirect OAuth Params\"\nexport interface OAuthTransactionMeta {\n issuer: string;\n redirectUri: string;\n state: string;\n nonce: string;\n responseType: string | string [];\n scopes: string[];\n clientId: string;\n urls: CustomUrls;\n ignoreSignature: boolean;\n originalUri?: string;\n}\n\nexport interface PKCETransactionMeta extends OAuthTransactionMeta {\n codeVerifier: string;\n codeChallengeMethod: string;\n codeChallenge: string;\n}\n\nexport interface IdxTransactionMeta extends PKCETransactionMeta {\n interactionHandle?: string;\n remediations?: string[];\n}\n\nexport type CustomAuthTransactionMeta = Record<string, string | undefined>;\n\nexport type TransactionMeta =\n IdxTransactionMeta |\n PKCETransactionMeta |\n OAuthTransactionMeta |\n CustomAuthTransactionMeta;\n\nfunction isObjectWithProperties(obj) {\n if (!obj || typeof obj !== 'object' || Object.values(obj).length === 0) {\n return false;\n }\n return true;\n}\n\nexport function isOAuthTransactionMeta(obj: any): obj is OAuthTransactionMeta {\n if (!isObjectWithProperties(obj)) {\n return false;\n }\n return !!obj.redirectUri || !!obj.responseType;\n}\n\nexport function isPKCETransactionMeta(obj: any): obj is PKCETransactionMeta {\n if (!isOAuthTransactionMeta(obj)) {\n return false;\n }\n return !!(obj as any).codeVerifier;\n}\n\nexport function isIdxTransactionMeta(obj: any): obj is IdxTransactionMeta {\n if (!isPKCETransactionMeta(obj)) {\n return false;\n }\n return !!(obj as any).interactionHandle;\n}\n\nexport function isCustomAuthTransactionMeta(obj: any): obj is CustomAuthTransactionMeta {\n if (!isObjectWithProperties(obj)) {\n return false;\n }\n const isAllStringValues = Object.values(obj).find((value) => (typeof value !== 'string')) === undefined;\n return isAllStringValues;\n}\n\nexport function isTransactionMeta(obj: any): obj is TransactionMeta {\n if (isOAuthTransactionMeta(obj) || isCustomAuthTransactionMeta(obj)) {\n return true;\n }\n return false;\n}\n"],"file":"Transaction.js"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.pruneSharedStorage = pruneSharedStorage;
|
|
4
|
+
exports.saveTransactionToSharedStorage = saveTransactionToSharedStorage;
|
|
5
|
+
exports.loadTransactionFromSharedStorage = loadTransactionFromSharedStorage;
|
|
6
|
+
exports.clearTransactionFromSharedStorage = clearTransactionFromSharedStorage;
|
|
7
|
+
|
|
8
|
+
var _types = require("../types");
|
|
9
|
+
|
|
10
|
+
const MAX_ENTRY_LIFETIME = 30 * 60 * 1000; // 30 minutes
|
|
11
|
+
|
|
12
|
+
function pruneSharedStorage(storageManager) {
|
|
13
|
+
const sharedStorage = storageManager.getSharedTansactionStorage();
|
|
14
|
+
const entries = sharedStorage.getStorage();
|
|
15
|
+
Object.keys(entries).forEach(state => {
|
|
16
|
+
const entry = entries[state];
|
|
17
|
+
const age = Date.now() - entry.dateCreated;
|
|
18
|
+
|
|
19
|
+
if (age > MAX_ENTRY_LIFETIME) {
|
|
20
|
+
delete entries[state];
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
sharedStorage.setStorage(entries);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function saveTransactionToSharedStorage(storageManager, state, meta) {
|
|
27
|
+
const sharedStorage = storageManager.getSharedTansactionStorage();
|
|
28
|
+
const entries = sharedStorage.getStorage();
|
|
29
|
+
entries[state] = {
|
|
30
|
+
dateCreated: Date.now(),
|
|
31
|
+
transaction: meta
|
|
32
|
+
};
|
|
33
|
+
sharedStorage.setStorage(entries);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function loadTransactionFromSharedStorage(storageManager, state) {
|
|
37
|
+
const sharedStorage = storageManager.getSharedTansactionStorage();
|
|
38
|
+
const entries = sharedStorage.getStorage();
|
|
39
|
+
const entry = entries[state];
|
|
40
|
+
|
|
41
|
+
if (entry && entry.transaction && (0, _types.isTransactionMeta)(entry.transaction)) {
|
|
42
|
+
return entry.transaction;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function clearTransactionFromSharedStorage(storageManager, state) {
|
|
49
|
+
const sharedStorage = storageManager.getSharedTansactionStorage();
|
|
50
|
+
const entries = sharedStorage.getStorage();
|
|
51
|
+
delete entries[state];
|
|
52
|
+
sharedStorage.setStorage(entries);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=sharedStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../lib/util/sharedStorage.ts"],"names":["MAX_ENTRY_LIFETIME","pruneSharedStorage","storageManager","sharedStorage","getSharedTansactionStorage","entries","getStorage","Object","keys","forEach","state","entry","age","Date","now","dateCreated","setStorage","saveTransactionToSharedStorage","meta","transaction","loadTransactionFromSharedStorage","clearTransactionFromSharedStorage"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,kBAAkB,GAAG,KAAK,EAAL,GAAU,IAArC,C,CAA2C;;AAEpC,SAASC,kBAAT,CAA4BC,cAA5B,EAA4D;AACjE,QAAMC,aAAa,GAAGD,cAAc,CAACE,0BAAf,EAAtB;AACA,QAAMC,OAAO,GAAGF,aAAa,CAACG,UAAd,EAAhB;AACAC,EAAAA,MAAM,CAACC,IAAP,CAAYH,OAAZ,EAAqBI,OAArB,CAA6BC,KAAK,IAAI;AACpC,UAAMC,KAAK,GAAGN,OAAO,CAACK,KAAD,CAArB;AACA,UAAME,GAAG,GAAGC,IAAI,CAACC,GAAL,KAAaH,KAAK,CAACI,WAA/B;;AACA,QAAIH,GAAG,GAAGZ,kBAAV,EAA8B;AAC5B,aAAOK,OAAO,CAACK,KAAD,CAAd;AACD;AACF,GAND;AAOAP,EAAAA,aAAa,CAACa,UAAd,CAAyBX,OAAzB;AACD;;AAEM,SAASY,8BAAT,CAAwCf,cAAxC,EAAwEQ,KAAxE,EAAuFQ,IAAvF,EAA8G;AACnH,QAAMf,aAAa,GAAGD,cAAc,CAACE,0BAAf,EAAtB;AACA,QAAMC,OAAO,GAAGF,aAAa,CAACG,UAAd,EAAhB;AACAD,EAAAA,OAAO,CAACK,KAAD,CAAP,GAAiB;AACfK,IAAAA,WAAW,EAAEF,IAAI,CAACC,GAAL,EADE;AAEfK,IAAAA,WAAW,EAAED;AAFE,GAAjB;AAIAf,EAAAA,aAAa,CAACa,UAAd,CAAyBX,OAAzB;AACD;;AAGM,SAASe,gCAAT,CAA0ClB,cAA1C,EAA0EQ,KAA1E,EAAyF;AAC9F,QAAMP,aAAa,GAAGD,cAAc,CAACE,0BAAf,EAAtB;AACA,QAAMC,OAAO,GAAGF,aAAa,CAACG,UAAd,EAAhB;AACA,QAAMK,KAAK,GAAGN,OAAO,CAACK,KAAD,CAArB;;AACA,MAAIC,KAAK,IAAIA,KAAK,CAACQ,WAAf,IAA8B,8BAAkBR,KAAK,CAACQ,WAAxB,CAAlC,EAAwE;AACtE,WAAOR,KAAK,CAACQ,WAAb;AACD;;AACD,SAAO,IAAP;AACD;;AAEM,SAASE,iCAAT,CAA2CnB,cAA3C,EAA2EQ,KAA3E,EAA0F;AAC/F,QAAMP,aAAa,GAAGD,cAAc,CAACE,0BAAf,EAAtB;AACA,QAAMC,OAAO,GAAGF,aAAa,CAACG,UAAd,EAAhB;AACA,SAAOD,OAAO,CAACK,KAAD,CAAd;AACAP,EAAAA,aAAa,CAACa,UAAd,CAAyBX,OAAzB;AACD","sourcesContent":["import { isTransactionMeta, TransactionMeta } from '../types';\nimport StorageManager from '../StorageManager';\n\nconst MAX_ENTRY_LIFETIME = 30 * 60 * 1000; // 30 minutes\n\nexport function pruneSharedStorage(storageManager: StorageManager) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n Object.keys(entries).forEach(state => {\n const entry = entries[state];\n const age = Date.now() - entry.dateCreated;\n if (age > MAX_ENTRY_LIFETIME) {\n delete entries[state];\n }\n });\n sharedStorage.setStorage(entries);\n}\n\nexport function saveTransactionToSharedStorage(storageManager: StorageManager, state: string, meta: TransactionMeta) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n entries[state] = {\n dateCreated: Date.now(),\n transaction: meta\n };\n sharedStorage.setStorage(entries);\n}\n\n\nexport function loadTransactionFromSharedStorage(storageManager: StorageManager, state: string) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n const entry = entries[state];\n if (entry && entry.transaction && isTransactionMeta(entry.transaction)) {\n return entry.transaction;\n }\n return null;\n}\n\nexport function clearTransactionFromSharedStorage(storageManager: StorageManager, state: string) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n delete entries[state];\n sharedStorage.setStorage(entries);\n}\n"],"file":"sharedStorage.js"}
|