@okta/okta-auth-js 6.3.1 → 6.4.1

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.
Files changed (156) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +6 -0
  3. package/cjs/AuthStateManager.js +1 -0
  4. package/cjs/AuthStateManager.js.map +1 -1
  5. package/cjs/OktaAuth.js +10 -11
  6. package/cjs/OktaAuth.js.map +1 -1
  7. package/cjs/OktaUserAgent.js +2 -2
  8. package/cjs/ServiceManager.js +1 -1
  9. package/cjs/ServiceManager.js.map +1 -1
  10. package/cjs/TokenManager.js.map +1 -1
  11. package/cjs/crypto/verifyToken.js +2 -1
  12. package/cjs/crypto/verifyToken.js.map +1 -1
  13. package/cjs/errors/AuthApiError.js.map +1 -1
  14. package/cjs/errors/OAuthError.js +7 -1
  15. package/cjs/errors/OAuthError.js.map +1 -1
  16. package/cjs/fetch/fetchRequest.js +17 -3
  17. package/cjs/fetch/fetchRequest.js.map +1 -1
  18. package/cjs/http/request.js +7 -3
  19. package/cjs/http/request.js.map +1 -1
  20. package/cjs/idx/idxState/index.js +55 -0
  21. package/cjs/idx/idxState/index.js.map +1 -0
  22. package/cjs/idx/{idx-js → idxState}/v1/actionParser.js +1 -0
  23. package/cjs/idx/idxState/v1/actionParser.js.map +1 -0
  24. package/cjs/idx/{idx-js → idxState}/v1/generateIdxAction.js +43 -30
  25. package/cjs/idx/idxState/v1/generateIdxAction.js.map +1 -0
  26. package/cjs/idx/{idx-js → idxState}/v1/idxResponseParser.js +8 -8
  27. package/cjs/idx/idxState/v1/idxResponseParser.js.map +1 -0
  28. package/cjs/idx/{idx-js → idxState}/v1/makeIdxState.js +3 -2
  29. package/cjs/idx/idxState/v1/makeIdxState.js.map +1 -0
  30. package/cjs/idx/{idx-js → idxState}/v1/parsers.js +1 -0
  31. package/cjs/idx/idxState/v1/parsers.js.map +1 -0
  32. package/cjs/idx/{idx-js → idxState}/v1/remediationParser.js +4 -2
  33. package/cjs/idx/idxState/v1/remediationParser.js.map +1 -0
  34. package/cjs/idx/interact.js +42 -21
  35. package/cjs/idx/interact.js.map +1 -1
  36. package/cjs/idx/introspect.js +37 -12
  37. package/cjs/idx/introspect.js.map +1 -1
  38. package/cjs/idx/remediate.js +56 -132
  39. package/cjs/idx/remediate.js.map +1 -1
  40. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
  41. package/cjs/idx/remediators/AuthenticatorVerificationData.js +7 -6
  42. package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
  43. package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
  44. package/cjs/idx/remediators/Base/Remediator.js +12 -2
  45. package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
  46. package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
  47. package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
  48. package/cjs/idx/remediators/ChallengeAuthenticator.js.map +1 -1
  49. package/cjs/idx/remediators/EnrollAuthenticator.js.map +1 -1
  50. package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
  51. package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
  52. package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
  53. package/cjs/idx/remediators/Identify.js.map +1 -1
  54. package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
  55. package/cjs/idx/remediators/ResetAuthenticator.js.map +1 -1
  56. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
  57. package/cjs/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -1
  58. package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -1
  59. package/cjs/idx/remediators/SelectEnrollProfile.js.map +1 -1
  60. package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  61. package/cjs/idx/remediators/Skip.js.map +1 -1
  62. package/cjs/idx/run.js +16 -12
  63. package/cjs/idx/run.js.map +1 -1
  64. package/cjs/idx/types/idx-js.js +2 -0
  65. package/cjs/idx/types/idx-js.js.map +1 -1
  66. package/cjs/idx/types/index.js +0 -138
  67. package/cjs/idx/types/index.js.map +1 -1
  68. package/cjs/idx/util.js +127 -5
  69. package/cjs/idx/util.js.map +1 -1
  70. package/cjs/server/serverStorage.js +1 -0
  71. package/cjs/server/serverStorage.js.map +1 -1
  72. package/cjs/tx/AuthTransaction.js.map +1 -1
  73. package/cjs/types/Token.js +0 -1
  74. package/cjs/types/Token.js.map +1 -1
  75. package/cjs/util/object.js.map +1 -1
  76. package/cjs/util/types.js.map +1 -1
  77. package/dist/okta-auth-js.min.js +1 -1
  78. package/dist/okta-auth-js.min.js.map +1 -1
  79. package/dist/okta-auth-js.umd.js +1 -1
  80. package/dist/okta-auth-js.umd.js.map +1 -1
  81. package/esm/esm.browser.js +744 -928
  82. package/esm/esm.browser.js.map +1 -1
  83. package/esm/esm.node.mjs +609 -730
  84. package/esm/esm.node.mjs.map +1 -1
  85. package/lib/TokenManager.d.ts +2 -2
  86. package/lib/errors/OAuthError.d.ts +2 -0
  87. package/lib/idx/flow/RemediationFlow.d.ts +2 -2
  88. package/lib/idx/idxState/index.d.ts +7 -0
  89. package/lib/idx/{idx-js → idxState}/v1/actionParser.d.ts +0 -0
  90. package/lib/idx/{idx-js → idxState}/v1/generateIdxAction.d.ts +3 -1
  91. package/lib/idx/{idx-js → idxState}/v1/idxResponseParser.d.ts +3 -2
  92. package/lib/idx/{idx-js → idxState}/v1/makeIdxState.d.ts +3 -2
  93. package/lib/idx/{idx-js → idxState}/v1/parsers.d.ts +0 -0
  94. package/lib/idx/{idx-js → idxState}/v1/remediationParser.d.ts +2 -1
  95. package/lib/idx/interact.d.ts +22 -0
  96. package/lib/idx/remediate.d.ts +9 -12
  97. package/lib/idx/remediators/AuthenticatorEnrollmentData.d.ts +1 -2
  98. package/lib/idx/remediators/AuthenticatorVerificationData.d.ts +3 -3
  99. package/lib/idx/remediators/Base/AuthenticatorData.d.ts +3 -4
  100. package/lib/idx/remediators/Base/Remediator.d.ts +8 -4
  101. package/lib/idx/remediators/Base/SelectAuthenticator.d.ts +2 -3
  102. package/lib/idx/remediators/Base/VerifyAuthenticator.d.ts +3 -4
  103. package/lib/idx/remediators/ChallengeAuthenticator.d.ts +1 -2
  104. package/lib/idx/remediators/EnrollAuthenticator.d.ts +1 -2
  105. package/lib/idx/remediators/EnrollPoll.d.ts +1 -2
  106. package/lib/idx/remediators/EnrollProfile.d.ts +1 -2
  107. package/lib/idx/remediators/EnrollmentChannelData.d.ts +1 -2
  108. package/lib/idx/remediators/Identify.d.ts +1 -2
  109. package/lib/idx/remediators/ReEnrollAuthenticator.d.ts +1 -2
  110. package/lib/idx/remediators/ResetAuthenticator.d.ts +1 -2
  111. package/lib/idx/remediators/SelectAuthenticatorAuthenticate.d.ts +1 -2
  112. package/lib/idx/remediators/SelectAuthenticatorEnroll.d.ts +1 -2
  113. package/lib/idx/remediators/SelectAuthenticatorUnlockAccount.d.ts +1 -2
  114. package/lib/idx/remediators/SelectEnrollProfile.d.ts +1 -2
  115. package/lib/idx/remediators/SelectEnrollmentChannel.d.ts +1 -2
  116. package/lib/idx/remediators/Skip.d.ts +1 -2
  117. package/lib/idx/types/idx-js.d.ts +5 -2
  118. package/lib/idx/types/index.d.ts +26 -17
  119. package/lib/idx/util.d.ts +7 -4
  120. package/lib/types/EventEmitter.d.ts +3 -3
  121. package/lib/types/Service.d.ts +6 -6
  122. package/lib/types/Storage.d.ts +6 -6
  123. package/lib/types/TokenManager.d.ts +5 -2
  124. package/lib/types/UserClaims.d.ts +1 -1
  125. package/lib/util/types.d.ts +1 -1
  126. package/package.json +10 -10
  127. package/cjs/idx/headers.js +0 -59
  128. package/cjs/idx/headers.js.map +0 -1
  129. package/cjs/idx/idx-js/client.js +0 -91
  130. package/cjs/idx/idx-js/client.js.map +0 -1
  131. package/cjs/idx/idx-js/index.js +0 -40
  132. package/cjs/idx/idx-js/index.js.map +0 -1
  133. package/cjs/idx/idx-js/interact.js +0 -83
  134. package/cjs/idx/idx-js/interact.js.map +0 -1
  135. package/cjs/idx/idx-js/introspect.js +0 -62
  136. package/cjs/idx/idx-js/introspect.js.map +0 -1
  137. package/cjs/idx/idx-js/parsers.js +0 -41
  138. package/cjs/idx/idx-js/parsers.js.map +0 -1
  139. package/cjs/idx/idx-js/util.js +0 -34
  140. package/cjs/idx/idx-js/util.js.map +0 -1
  141. package/cjs/idx/idx-js/v1/actionParser.js.map +0 -1
  142. package/cjs/idx/idx-js/v1/generateIdxAction.js.map +0 -1
  143. package/cjs/idx/idx-js/v1/idxResponseParser.js.map +0 -1
  144. package/cjs/idx/idx-js/v1/makeIdxState.js.map +0 -1
  145. package/cjs/idx/idx-js/v1/parsers.js.map +0 -1
  146. package/cjs/idx/idx-js/v1/remediationParser.js.map +0 -1
  147. package/cjs/options.js +0 -170
  148. package/cjs/options.js.map +0 -1
  149. package/lib/idx/headers.d.ts +0 -16
  150. package/lib/idx/idx-js/client.d.ts +0 -36
  151. package/lib/idx/idx-js/index.d.ts +0 -35
  152. package/lib/idx/idx-js/interact.d.ts +0 -25
  153. package/lib/idx/idx-js/introspect.d.ts +0 -21
  154. package/lib/idx/idx-js/parsers.d.ts +0 -15
  155. package/lib/idx/idx-js/util.d.ts +0 -12
  156. package/lib/options.d.ts +0 -14
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../lib/idx/types/index.ts"],"names":["IdxStatus","AuthenticatorKey","IdxFeature","isAuthenticator","obj","key","id"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA;;AAWA;;AAWA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AAlDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IA0CYA,S;;;WAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;GAAAA,S,yBAAAA,S;;IAQAC,gB;;;WAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;GAAAA,gB,gCAAAA,gB;;IAgCAC,U;;;WAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;GAAAA,U,0BAAAA,U;;AAsDL,SAASC,eAAT,CAAyBC,GAAzB,EAAyD;AAC9D,SAAOA,GAAG,KAAKA,GAAG,CAACC,GAAJ,IAAWD,GAAG,CAACE,EAApB,CAAV;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 { InteractOptions } from '../interact';\nimport { IntrospectOptions } from '../introspect';\nimport { APIError, Tokens } from '../../types';\nimport { PKCETransactionMeta } from '../../types/Transaction';\nimport { \n IdxActions, \n IdxAuthenticator, \n IdxContext,\n IdxForm,\n IdxMessage, \n IdxOption, \n IdxRemediation, \n IdxResponse, \n RawIdxResponse \n} from './idx-js';\nimport { FlowIdentifier } from './FlowIdentifier';\n\nexport {\n IdxMessage,\n IdxMessages,\n ChallengeData,\n ActivationData,\n IdxResponse,\n IdxContext,\n RawIdxResponse\n} from './idx-js';\nexport { AuthenticationOptions } from '../authenticate';\nexport { RegistrationOptions } from '../register';\nexport { PasswordRecoveryOptions } from '../recoverPassword';\nexport { AccountUnlockOptions } from '../unlockAccount';\nexport { ProceedOptions } from '../proceed';\nexport { CancelOptions } from '../cancel';\nexport { RemediateOptions } from '../remediate';\nexport { FlowIdentifier };\nexport { IdxAuthenticator };\nexport { EmailVerifyCallbackResponse } from '../emailVerify';\nexport { WebauthnEnrollValues } from '../authenticator/WebauthnEnrollment';\nexport { WebauthnVerificationValues } from '../authenticator/WebauthnVerification';\n\nexport enum IdxStatus {\n SUCCESS = 'SUCCESS',\n PENDING = 'PENDING',\n FAILURE = 'FAILURE',\n TERMINAL = 'TERMINAL',\n CANCELED = 'CANCELED',\n}\n\nexport enum AuthenticatorKey {\n OKTA_PASSWORD = 'okta_password',\n OKTA_EMAIL = 'okta_email',\n PHONE_NUMBER = 'phone_number',\n GOOGLE_AUTHENTICATOR = 'google_otp',\n SECURITY_QUESTION = 'security_question',\n OKTA_VERIFY = 'okta_verify',\n WEBAUTHN = 'webauthn',\n}\n\nexport type Input = {\n name: string;\n type?: string;\n label?: string;\n value?: string | {form: IdxForm};\n minLength?: number;\n maxLength?: number;\n secret?: boolean;\n required?: boolean;\n}\n\nexport type NextStep = {\n name: string;\n authenticator?: IdxAuthenticator;\n canSkip?: boolean;\n canResend?: boolean;\n inputs?: Input[];\n options?: IdxOption[];\n poll?: IdxPollOptions;\n authenticatorEnrollments?: IdxAuthenticator[];\n}\n\nexport enum IdxFeature {\n PASSWORD_RECOVERY = 'recover-password',\n REGISTRATION = 'enroll-profile',\n SOCIAL_IDP = 'redirect-idp',\n ACCOUNT_UNLOCK = 'unlock-account',\n}\n\nexport interface IdxTransactionMeta extends PKCETransactionMeta {\n interactionHandle?: string;\n remediations?: string[];\n flow?: FlowIdentifier;\n withCredentials?: boolean;\n activationToken?: string;\n recoveryToken?: string;\n}\n\nexport interface IdxTransaction {\n status: IdxStatus;\n tokens?: Tokens;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n error?: APIError | IdxResponse;\n meta?: IdxTransactionMeta;\n enabledFeatures?: IdxFeature[];\n availableSteps?: NextStep[];\n\n // from idx-js, used by signin widget\n proceed: (remediationName: string, params: unknown) => Promise<IdxResponse>;\n neededToProceed: IdxRemediation[];\n rawIdxState: RawIdxResponse;\n interactionCode?: string;\n actions: IdxActions;\n context: IdxContext;\n}\n\nexport type IdxOptions = InteractOptions & IntrospectOptions & {\n flow?: FlowIdentifier;\n exchangeCodeForTokens?: boolean;\n autoRemediate?: boolean;\n step?: string;\n};\n\nexport interface IdxPollOptions {\n required?: boolean;\n refresh?: number;\n}\n\nexport type Authenticator = {\n id?: string;\n key?: string;\n methodType?: string;\n phoneNumber?: string;\n};\n\nexport function isAuthenticator(obj: any): obj is Authenticator {\n return obj && (obj.key || obj.id);\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../lib/idx/types/index.ts"],"names":["IdxStatus","AuthenticatorKey","IdxFeature","isAuthenticator","obj","key","id"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IA0CYA,S;;;WAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;GAAAA,S,yBAAAA,S;;IAQAC,gB;;;WAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;GAAAA,gB,gCAAAA,gB;;IAuCAC,U;;;WAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;GAAAA,U,0BAAAA,U;;AAkDL,SAASC,eAAT,CAAyBC,GAAzB,EAAyD;AAC9D,SAAOA,GAAG,KAAKA,GAAG,CAACC,GAAJ,IAAWD,GAAG,CAACE,EAApB,CAAV;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 { InteractOptions } from '../interact';\nimport { IntrospectOptions } from '../introspect';\nimport { APIError, Tokens } from '../../types';\nimport { PKCETransactionMeta } from '../../types/Transaction';\nimport { \n IdxActions, \n IdxAuthenticator, \n IdxContext,\n IdxForm,\n IdxMessage, \n IdxOption, \n IdxRemediation, \n IdxResponse, \n RawIdxResponse \n} from './idx-js';\nimport { FlowIdentifier } from './FlowIdentifier';\n\nexport type {\n IdxMessage,\n IdxMessages,\n ChallengeData,\n ActivationData,\n IdxResponse,\n IdxContext,\n RawIdxResponse\n} from './idx-js';\nexport type { AuthenticationOptions } from '../authenticate';\nexport type { RegistrationOptions } from '../register';\nexport type { PasswordRecoveryOptions } from '../recoverPassword';\nexport type { AccountUnlockOptions } from '../unlockAccount';\nexport type { ProceedOptions } from '../proceed';\nexport type { CancelOptions } from '../cancel';\nexport type { RemediateOptions } from '../remediate';\nexport type { FlowIdentifier };\nexport type { IdxAuthenticator };\nexport type { EmailVerifyCallbackResponse } from '../emailVerify';\nexport type { WebauthnEnrollValues } from '../authenticator/WebauthnEnrollment';\nexport type { WebauthnVerificationValues } from '../authenticator/WebauthnVerification';\n\nexport enum IdxStatus {\n SUCCESS = 'SUCCESS',\n PENDING = 'PENDING',\n FAILURE = 'FAILURE',\n TERMINAL = 'TERMINAL',\n CANCELED = 'CANCELED',\n}\n\nexport enum AuthenticatorKey {\n OKTA_PASSWORD = 'okta_password',\n OKTA_EMAIL = 'okta_email',\n PHONE_NUMBER = 'phone_number',\n GOOGLE_AUTHENTICATOR = 'google_otp',\n SECURITY_QUESTION = 'security_question',\n OKTA_VERIFY = 'okta_verify',\n WEBAUTHN = 'webauthn',\n}\n\nexport type Input = {\n name: string;\n key?: string;\n type?: string;\n label?: string;\n value?: string | {form: IdxForm};\n minLength?: number;\n maxLength?: number;\n secret?: boolean;\n required?: boolean;\n}\n\n\nexport interface IdxPollOptions {\n required?: boolean;\n refresh?: number;\n}\n\nexport type NextStep = {\n name: string;\n authenticator?: IdxAuthenticator;\n canSkip?: boolean;\n canResend?: boolean;\n inputs?: Input[];\n options?: IdxOption[];\n poll?: IdxPollOptions;\n authenticatorEnrollments?: IdxAuthenticator[];\n}\n\nexport enum IdxFeature {\n PASSWORD_RECOVERY = 'recover-password',\n REGISTRATION = 'enroll-profile',\n SOCIAL_IDP = 'redirect-idp',\n ACCOUNT_UNLOCK = 'unlock-account',\n}\n\nexport interface IdxTransactionMeta extends PKCETransactionMeta {\n interactionHandle?: string;\n remediations?: string[];\n flow?: FlowIdentifier;\n withCredentials?: boolean;\n activationToken?: string;\n recoveryToken?: string;\n}\n\nexport interface IdxTransaction {\n status: IdxStatus;\n tokens?: Tokens;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n error?: APIError | IdxResponse;\n meta?: IdxTransactionMeta;\n enabledFeatures?: IdxFeature[];\n availableSteps?: NextStep[];\n requestDidSucceed?: boolean;\n\n // from idx-js, used by signin widget\n proceed: (remediationName: string, params: unknown) => Promise<IdxResponse>;\n neededToProceed: IdxRemediation[];\n rawIdxState: RawIdxResponse;\n interactionCode?: string;\n actions: IdxActions;\n context: IdxContext;\n}\n\nexport type IdxOptions = InteractOptions & IntrospectOptions & {\n flow?: FlowIdentifier;\n exchangeCodeForTokens?: boolean;\n autoRemediate?: boolean;\n step?: string;\n};\n\nexport type Authenticator = {\n id?: string;\n key?: string;\n methodType?: string;\n phoneNumber?: string;\n};\n\nexport function isAuthenticator(obj: any): obj is Authenticator {\n return obj && (obj.key || obj.id);\n}\n\nexport interface RemediationResponse {\n idxResponse: IdxResponse;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n terminal?: boolean;\n canceled?: boolean;\n}\n"],"file":"index.js"}
package/cjs/idx/util.js CHANGED
@@ -14,6 +14,9 @@ exports.getMessagesFromResponse = getMessagesFromResponse;
14
14
  exports.getEnabledFeatures = getEnabledFeatures;
15
15
  exports.getAvailableSteps = getAvailableSteps;
16
16
  exports.filterValuesForRemediation = filterValuesForRemediation;
17
+ exports.getRemediator = getRemediator;
18
+ exports.getNextStep = getNextStep;
19
+ exports.handleIdxError = handleIdxError;
17
20
 
18
21
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
19
22
 
@@ -25,10 +28,16 @@ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable
25
28
 
26
29
  var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
27
30
 
31
+ var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
32
+
33
+ var _util = require("../util");
34
+
28
35
  var remediators = _interopRequireWildcard(require("./remediators"));
29
36
 
30
37
  var _types = require("./types");
31
38
 
39
+ var _idxJs = require("./types/idx-js");
40
+
32
41
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
42
 
34
43
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -182,17 +191,130 @@ function getAvailableSteps(idxResponse) {
182
191
  return res;
183
192
  }
184
193
 
185
- function filterValuesForRemediation(idxResponse, values) {
194
+ function filterValuesForRemediation(idxResponse, remediationName, values) {
186
195
  var _context3;
187
196
 
188
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
189
- const valuesForRemediation = (0, _reduce.default)(_context3 = idxResponse.neededToProceed[0].value).call(_context3, (res, entry) => {
197
+ const remediations = idxResponse.neededToProceed || [];
198
+ const remediation = (0, _find.default)(remediations).call(remediations, r => r.name === remediationName);
199
+
200
+ if (!remediation) {
201
+ // step was specified, but remediation was not found. This is unexpected!
202
+ (0, _util.warn)(`filterValuesForRemediation: "${remediationName}" did not match any remediations`);
203
+ return values;
204
+ } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
205
+
206
+
207
+ const valuesForRemediation = (0, _reduce.default)(_context3 = remediation.value).call(_context3, (res, entry) => {
190
208
  const {
191
- name
209
+ name,
210
+ value
192
211
  } = entry;
193
- res[name] = values[name];
212
+
213
+ if (name === 'stateHandle') {
214
+ res[name] = value; // use the stateHandle value in the remediation
215
+ } else {
216
+ res[name] = values[name]; // use the value provided by the caller
217
+ }
218
+
194
219
  return res;
195
220
  }, {});
196
221
  return valuesForRemediation;
222
+ } // Return first match idxRemediation in allowed remediators
223
+ // eslint-disable-next-line complexity
224
+
225
+
226
+ function getRemediator(idxRemediations, values, options) {
227
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
228
+ const remediators = options.remediators;
229
+ let remediator; // remediation name specified by caller - fast-track remediator lookup
230
+
231
+ if (options.step) {
232
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
233
+ const remediation = (0, _find.default)(idxRemediations).call(idxRemediations, ({
234
+ name
235
+ }) => name === options.step);
236
+
237
+ if (remediation) {
238
+ const T = remediation ? remediators[remediation.name] : undefined;
239
+ return T ? new T(remediation, values, options) : undefined;
240
+ } else {
241
+ // step was specified, but remediation was not found. This is unexpected!
242
+ (0, _util.warn)(`step "${options.step}" did not match any remediations`);
243
+ return;
244
+ }
245
+ }
246
+
247
+ const remediatorCandidates = [];
248
+
249
+ for (let remediation of idxRemediations) {
250
+ var _context4;
251
+
252
+ const isRemeditionInFlow = (0, _includes.default)(_context4 = (0, _keys.default)(remediators)).call(_context4, remediation.name);
253
+
254
+ if (!isRemeditionInFlow) {
255
+ continue;
256
+ }
257
+
258
+ const T = remediators[remediation.name];
259
+ remediator = new T(remediation, values, options);
260
+
261
+ if (remediator.canRemediate()) {
262
+ // found the remediator
263
+ return remediator;
264
+ } // remediator cannot handle the current values
265
+ // maybe return for next step
266
+
267
+
268
+ remediatorCandidates.push(remediator);
269
+ }
270
+
271
+ return remediatorCandidates[0];
272
+ }
273
+
274
+ function getNextStep(remediator, idxResponse) {
275
+ const nextStep = remediator.getNextStep(idxResponse.context);
276
+ const canSkip = canSkipFn(idxResponse);
277
+ const canResend = canResendFn(idxResponse);
278
+ return { ...nextStep,
279
+ ...(canSkip && {
280
+ canSkip
281
+ }),
282
+ ...(canResend && {
283
+ canResend
284
+ })
285
+ };
286
+ }
287
+
288
+ function handleIdxError(e, remediator) {
289
+ // Handle idx messages
290
+ let idxResponse = (0, _idxJs.isIdxResponse)(e) ? e : null;
291
+
292
+ if (!idxResponse) {
293
+ // Thrown error terminates the interaction with idx
294
+ throw e;
295
+ }
296
+
297
+ idxResponse = { ...idxResponse,
298
+ requestDidSucceed: false
299
+ };
300
+ const terminal = isTerminalResponse(idxResponse);
301
+ const messages = getMessagesFromResponse(idxResponse);
302
+
303
+ if (terminal) {
304
+ return {
305
+ idxResponse,
306
+ terminal,
307
+ messages
308
+ };
309
+ } else {
310
+ const nextStep = remediator && getNextStep(remediator, idxResponse);
311
+ return {
312
+ idxResponse,
313
+ messages,
314
+ ...(nextStep && {
315
+ nextStep
316
+ })
317
+ };
318
+ }
197
319
  }
198
320
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/idx/util.ts"],"names":["isTerminalResponse","idxResponse","neededToProceed","interactionCode","length","canSkipFn","some","name","canResendFn","actions","actionName","getMessagesFromIdxRemediationValue","value","Array","isArray","messages","form","messagesFromForm","options","optionValues","forEach","option","messagesFromOptions","getMessagesFromResponse","rawIdxState","globalMessages","message","remediation","fieldMessages","seen","filtered","key","i18n","getEnabledFeatures","res","push","IdxFeature","PASSWORD_RECOVERY","REGISTRATION","SOCIAL_IDP","ACCOUNT_UNLOCK","getAvailableSteps","remediatorMap","remediators","map","remediatorClass","remediationName","T","remediator","getNextStep","context","filterValuesForRemediation","values","valuesForRemediation","entry"],"mappings":"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","sourcesContent":["import * as remediators from './remediators';\nimport { RemediationValues } from './remediators';\nimport { IdxFeature, NextStep } from './types';\nimport { IdxMessage, IdxRemediationValue, IdxResponse } from './types/idx-js';\n\nexport function isTerminalResponse(idxResponse: IdxResponse) {\n const { neededToProceed, interactionCode } = idxResponse;\n return !neededToProceed.length && !interactionCode;\n}\n\nexport function canSkipFn(idxResponse: IdxResponse) {\n return idxResponse.neededToProceed.some(({ name }) => name === 'skip');\n}\n\nexport function canResendFn(idxResponse: IdxResponse) {\n return Object.keys(idxResponse.actions).some(actionName => actionName.includes('resend'));\n}\n\nexport function getMessagesFromIdxRemediationValue(\n value?: IdxRemediationValue[]\n): IdxMessage[] | undefined {\n if (!value || !Array.isArray(value)) {\n return;\n }\n return value.reduce((messages, value) => {\n if (value.messages) {\n messages = [...messages, ...value.messages.value] as never;\n }\n if (value.form) {\n const messagesFromForm = getMessagesFromIdxRemediationValue(value.form.value) || [];\n messages = [...messages, ...messagesFromForm] as never;\n } \n if (value.options) {\n let optionValues = [];\n value.options.forEach(option => {\n if (!option.value || typeof option.value === 'string') {\n return;\n }\n optionValues = [...optionValues, option.value] as never;\n });\n const messagesFromOptions = getMessagesFromIdxRemediationValue(optionValues) || [];\n messages = [...messages, ...messagesFromOptions] as never;\n }\n return messages;\n }, []);\n}\n\nexport function getMessagesFromResponse(idxResponse: IdxResponse): IdxMessage[] {\n let messages: IdxMessage[] = [];\n const { rawIdxState, neededToProceed } = idxResponse;\n\n // Handle global messages\n const globalMessages = rawIdxState.messages?.value.map(message => message);\n if (globalMessages) {\n messages = [...messages, ...globalMessages] as never;\n }\n\n // Handle field messages for current flow\n for (let remediation of neededToProceed) {\n const fieldMessages = getMessagesFromIdxRemediationValue(remediation.value);\n if (fieldMessages) {\n messages = [...messages, ...fieldMessages] as never;\n }\n }\n\n // API may return identical error on same field, filter by i18n key\n const seen = {};\n messages = messages.reduce((filtered, message) => {\n const key = message.i18n?.key;\n if (key && seen[key]) {\n return filtered;\n }\n seen[key] = message;\n filtered = [...filtered, message] as never;\n return filtered;\n }, []);\n return messages;\n}\n\n\nexport function getEnabledFeatures(idxResponse: IdxResponse): IdxFeature[] {\n const res = [];\n const { actions, neededToProceed } = idxResponse;\n\n if (actions['currentAuthenticator-recover']) {\n res.push(IdxFeature.PASSWORD_RECOVERY as never);\n }\n\n if (neededToProceed.some(({ name }) => name === 'select-enroll-profile')) {\n res.push(IdxFeature.REGISTRATION as never);\n }\n\n if (neededToProceed.some(({ name }) => name === 'redirect-idp')) {\n res.push(IdxFeature.SOCIAL_IDP as never);\n }\n\n if (neededToProceed.some(({ name }) => name === 'unlock-account')) {\n res.push(IdxFeature.ACCOUNT_UNLOCK as never);\n }\n\n return res;\n}\n\nexport function getAvailableSteps(idxResponse: IdxResponse): NextStep[] {\n const res = [];\n\n const remediatorMap = Object.values(remediators).reduce((map, remediatorClass) => {\n // Only add concrete subclasses to the map\n if (remediatorClass.remediationName) {\n map[remediatorClass.remediationName] = remediatorClass;\n }\n return map;\n }, {});\n\n for (let remediation of idxResponse.neededToProceed) {\n const T = remediatorMap[remediation.name];\n if (T) {\n const remediator = new T(remediation);\n res.push (remediator.getNextStep(idxResponse.context) as never);\n }\n }\n\n return res;\n}\n\nexport function filterValuesForRemediation(idxResponse: IdxResponse, values: RemediationValues): RemediationValues {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const valuesForRemediation = idxResponse.neededToProceed![0]!.value!.reduce((res, entry) => {\n const { name } = entry;\n res[name] = values[name];\n return res;\n }, {});\n return valuesForRemediation;\n}\n"],"file":"util.js"}
1
+ {"version":3,"sources":["../../../lib/idx/util.ts"],"names":["isTerminalResponse","idxResponse","neededToProceed","interactionCode","length","canSkipFn","some","name","canResendFn","actions","actionName","getMessagesFromIdxRemediationValue","value","Array","isArray","messages","form","messagesFromForm","options","optionValues","forEach","option","messagesFromOptions","getMessagesFromResponse","rawIdxState","globalMessages","message","remediation","fieldMessages","seen","filtered","key","i18n","getEnabledFeatures","res","push","IdxFeature","PASSWORD_RECOVERY","REGISTRATION","SOCIAL_IDP","ACCOUNT_UNLOCK","getAvailableSteps","remediatorMap","remediators","map","remediatorClass","remediationName","T","remediator","getNextStep","context","filterValuesForRemediation","values","remediations","r","valuesForRemediation","entry","getRemediator","idxRemediations","step","undefined","remediatorCandidates","isRemeditionInFlow","canRemediate","nextStep","canSkip","canResend","handleIdxError","e","requestDidSucceed","terminal"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;AAEO,SAASA,kBAAT,CAA4BC,WAA5B,EAAsD;AAC3D,QAAM;AAAEC,IAAAA,eAAF;AAAmBC,IAAAA;AAAnB,MAAuCF,WAA7C;AACA,SAAO,CAACC,eAAe,CAACE,MAAjB,IAA2B,CAACD,eAAnC;AACD;;AAEM,SAASE,SAAT,CAAmBJ,WAAnB,EAA6C;AAClD,SAAOA,WAAW,CAACC,eAAZ,CAA4BI,IAA5B,CAAiC,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAcA,IAAI,KAAK,MAAxD,CAAP;AACD;;AAEM,SAASC,WAAT,CAAqBP,WAArB,EAA+C;AACpD,SAAO,mBAAYA,WAAW,CAACQ,OAAxB,EAAiCH,IAAjC,CAAsCI,UAAU,IAAI,uBAAAA,UAAU,MAAV,CAAAA,UAAU,EAAU,QAAV,CAA9D,CAAP;AACD;;AAEM,SAASC,kCAAT,CACLC,KADK,EAEqB;AAC1B,MAAI,CAACA,KAAD,IAAU,CAACC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAf,EAAqC;AACnC;AACD;;AACD,SAAO,qBAAAA,KAAK,MAAL,CAAAA,KAAK,EAAQ,CAACG,QAAD,EAAWH,KAAX,KAAqB;AACvC,QAAIA,KAAK,CAACG,QAAV,EAAoB;AAClBA,MAAAA,QAAQ,GAAG,CAAC,GAAGA,QAAJ,EAAc,GAAGH,KAAK,CAACG,QAAN,CAAeH,KAAhC,CAAX;AACD;;AACD,QAAIA,KAAK,CAACI,IAAV,EAAgB;AACd,YAAMC,gBAAgB,GAAGN,kCAAkC,CAACC,KAAK,CAACI,IAAN,CAAWJ,KAAZ,CAAlC,IAAwD,EAAjF;AACAG,MAAAA,QAAQ,GAAG,CAAC,GAAGA,QAAJ,EAAc,GAAGE,gBAAjB,CAAX;AACD;;AACD,QAAIL,KAAK,CAACM,OAAV,EAAmB;AACjB,UAAIC,YAAY,GAAG,EAAnB;AACAP,MAAAA,KAAK,CAACM,OAAN,CAAcE,OAAd,CAAsBC,MAAM,IAAI;AAC9B,YAAI,CAACA,MAAM,CAACT,KAAR,IAAiB,OAAOS,MAAM,CAACT,KAAd,KAAwB,QAA7C,EAAuD;AACrD;AACD;;AACDO,QAAAA,YAAY,GAAG,CAAC,GAAGA,YAAJ,EAAkBE,MAAM,CAACT,KAAzB,CAAf;AACD,OALD;AAMA,YAAMU,mBAAmB,GAAGX,kCAAkC,CAACQ,YAAD,CAAlC,IAAoD,EAAhF;AACAJ,MAAAA,QAAQ,GAAG,CAAC,GAAGA,QAAJ,EAAc,GAAGO,mBAAjB,CAAX;AACD;;AACD,WAAOP,QAAP;AACD,GApBW,EAoBT,EApBS,CAAZ;AAqBD;;AAEM,SAASQ,uBAAT,CAAiCtB,WAAjC,EAAyE;AAAA;;AAC9E,MAAIc,QAAsB,GAAG,EAA7B;AACA,QAAM;AAAES,IAAAA,WAAF;AAAetB,IAAAA;AAAf,MAAmCD,WAAzC,CAF8E,CAI9E;;AACA,QAAMwB,cAAc,4BAAGD,WAAW,CAACT,QAAf,0DAAG,mDAAsBH,KAAtB,iBAAgCc,OAAO,IAAIA,OAA3C,CAAvB;;AACA,MAAID,cAAJ,EAAoB;AAClBV,IAAAA,QAAQ,GAAG,CAAC,GAAGA,QAAJ,EAAc,GAAGU,cAAjB,CAAX;AACD,GAR6E,CAU9E;;;AACA,OAAK,IAAIE,WAAT,IAAwBzB,eAAxB,EAAyC;AACvC,UAAM0B,aAAa,GAAGjB,kCAAkC,CAACgB,WAAW,CAACf,KAAb,CAAxD;;AACA,QAAIgB,aAAJ,EAAmB;AACjBb,MAAAA,QAAQ,GAAG,CAAC,GAAGA,QAAJ,EAAc,GAAGa,aAAjB,CAAX;AACD;AACF,GAhB6E,CAkB9E;;;AACA,QAAMC,IAAI,GAAG,EAAb;AACAd,EAAAA,QAAQ,GAAG,qBAAAA,QAAQ,MAAR,CAAAA,QAAQ,EAAQ,CAACe,QAAD,EAAWJ,OAAX,KAAuB;AAAA;;AAChD,UAAMK,GAAG,oBAAGL,OAAO,CAACM,IAAX,kDAAG,cAAcD,GAA1B;;AACA,QAAIA,GAAG,IAAIF,IAAI,CAACE,GAAD,CAAf,EAAsB;AACpB,aAAOD,QAAP;AACD;;AACDD,IAAAA,IAAI,CAACE,GAAD,CAAJ,GAAYL,OAAZ;AACAI,IAAAA,QAAQ,GAAG,CAAC,GAAGA,QAAJ,EAAcJ,OAAd,CAAX;AACA,WAAOI,QAAP;AACD,GARkB,EAQhB,EARgB,CAAnB;AASA,SAAOf,QAAP;AACD;;AAGM,SAASkB,kBAAT,CAA4BhC,WAA5B,EAAoE;AACzE,QAAMiC,GAAG,GAAG,EAAZ;AACA,QAAM;AAAEzB,IAAAA,OAAF;AAAWP,IAAAA;AAAX,MAA+BD,WAArC;;AAEA,MAAIQ,OAAO,CAAC,8BAAD,CAAX,EAA6C;AAC3CyB,IAAAA,GAAG,CAACC,IAAJ,CAASC,kBAAWC,iBAApB;AACD;;AAED,MAAInC,eAAe,CAACI,IAAhB,CAAqB,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAcA,IAAI,KAAK,uBAA5C,CAAJ,EAA0E;AACxE2B,IAAAA,GAAG,CAACC,IAAJ,CAASC,kBAAWE,YAApB;AACD;;AAED,MAAIpC,eAAe,CAACI,IAAhB,CAAqB,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAcA,IAAI,KAAK,cAA5C,CAAJ,EAAiE;AAC/D2B,IAAAA,GAAG,CAACC,IAAJ,CAASC,kBAAWG,UAApB;AACD;;AAED,MAAIrC,eAAe,CAACI,IAAhB,CAAqB,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAcA,IAAI,KAAK,gBAA5C,CAAJ,EAAmE;AACjE2B,IAAAA,GAAG,CAACC,IAAJ,CAASC,kBAAWI,cAApB;AACD;;AAED,SAAON,GAAP;AACD;;AAEM,SAASO,iBAAT,CAA2BxC,WAA3B,EAAiE;AAAA;;AACtE,QAAMiC,GAAe,GAAG,EAAxB;AAEA,QAAMQ,aAAoD,GAAG,sDAAcC,WAAd,mBACnD,CAACC,GAAD,EAAMC,eAAN,KAA0B;AAChC;AACA,QAAIA,eAAe,CAACC,eAApB,EAAqC;AACnCF,MAAAA,GAAG,CAACC,eAAe,CAACC,eAAjB,CAAH,GAAuCD,eAAvC;AACD;;AACD,WAAOD,GAAP;AACD,GAP0D,EAOxD,EAPwD,CAA7D;;AASA,OAAK,IAAIjB,WAAT,IAAwB1B,WAAW,CAACC,eAApC,EAAqD;AACnD,UAAM6C,CAAC,GAAGL,aAAa,CAACf,WAAW,CAACpB,IAAb,CAAvB;;AACA,QAAIwC,CAAJ,EAAO;AACL,YAAMC,UAAsB,GAAG,IAAID,CAAJ,CAAMpB,WAAN,CAA/B;AACAO,MAAAA,GAAG,CAACC,IAAJ,CAAUa,UAAU,CAACC,WAAX,CAAuBhD,WAAW,CAACiD,OAAnC,CAAV;AACD;AACF;;AAED,SAAOhB,GAAP;AACD;;AAEM,SAASiB,0BAAT,CACLlD,WADK,EAEL6C,eAFK,EAGLM,MAHK,EAIc;AAAA;;AACnB,QAAMC,YAAY,GAAGpD,WAAW,CAACC,eAAZ,IAA+B,EAApD;AACA,QAAMyB,WAAW,GAAG,mBAAA0B,YAAY,MAAZ,CAAAA,YAAY,EAAMC,CAAC,IAAIA,CAAC,CAAC/C,IAAF,KAAWuC,eAAtB,CAAhC;;AACA,MAAI,CAACnB,WAAL,EAAkB;AAChB;AACA,oBAAM,gCAA+BmB,eAAgB,kCAArD;AACA,WAAOM,MAAP;AACD,GAPkB,CASnB;;;AACA,QAAMG,oBAAoB,GAAG,iCAAA5B,WAAW,CAACf,KAAZ,kBAA0B,CAACsB,GAAD,EAAMsB,KAAN,KAAgB;AACrE,UAAM;AAAEjD,MAAAA,IAAF;AAAQK,MAAAA;AAAR,QAAkB4C,KAAxB;;AACA,QAAIjD,IAAI,KAAK,aAAb,EAA4B;AAC1B2B,MAAAA,GAAG,CAAC3B,IAAD,CAAH,GAAYK,KAAZ,CAD0B,CACP;AACpB,KAFD,MAEO;AACLsB,MAAAA,GAAG,CAAC3B,IAAD,CAAH,GAAY6C,MAAM,CAAC7C,IAAD,CAAlB,CADK,CACqB;AAC3B;;AACD,WAAO2B,GAAP;AACD,GAR4B,EAQ1B,EAR0B,CAA7B;AASA,SAAOqB,oBAAP;AACD,C,CAED;AACA;;;AACO,SAASE,aAAT,CACLC,eADK,EAELN,MAFK,EAGLlC,OAHK,EAImB;AACxB;AACA,QAAMyB,WAAW,GAAGzB,OAAO,CAACyB,WAA5B;AAEA,MAAIK,UAAJ,CAJwB,CAKxB;;AACA,MAAI9B,OAAO,CAACyC,IAAZ,EAAkB;AAChB;AACA,UAAMhC,WAAW,GAAG,mBAAA+B,eAAe,MAAf,CAAAA,eAAe,EAAM,CAAC;AAAEnD,MAAAA;AAAF,KAAD,KAAcA,IAAI,KAAKW,OAAO,CAACyC,IAArC,CAAnC;;AACA,QAAIhC,WAAJ,EAAiB;AACf,YAAMoB,CAAC,GAAGpB,WAAW,GAAGgB,WAAW,CAAChB,WAAW,CAACpB,IAAb,CAAd,GAAmCqD,SAAxD;AACA,aAAOb,CAAC,GAAG,IAAIA,CAAJ,CAAMpB,WAAN,EAAmByB,MAAnB,EAA2BlC,OAA3B,CAAH,GAAyC0C,SAAjD;AACD,KAHD,MAGO;AACL;AACA,sBAAM,SAAQ1C,OAAO,CAACyC,IAAK,kCAA3B;AACA;AACD;AACF;;AAED,QAAME,oBAAkC,GAAG,EAA3C;;AACA,OAAK,IAAIlC,WAAT,IAAwB+B,eAAxB,EAAyC;AAAA;;AACvC,UAAMI,kBAAkB,GAAG,sDAAYnB,WAAZ,mBAA4ChB,WAAW,CAACpB,IAAxD,CAA3B;;AACA,QAAI,CAACuD,kBAAL,EAAyB;AACvB;AACD;;AAED,UAAMf,CAAC,GAAGJ,WAAW,CAAChB,WAAW,CAACpB,IAAb,CAArB;AACAyC,IAAAA,UAAU,GAAG,IAAID,CAAJ,CAAMpB,WAAN,EAAmByB,MAAnB,EAA2BlC,OAA3B,CAAb;;AACA,QAAI8B,UAAU,CAACe,YAAX,EAAJ,EAA+B;AAC7B;AACA,aAAOf,UAAP;AACD,KAXsC,CAYvC;AACA;;;AACAa,IAAAA,oBAAoB,CAAC1B,IAArB,CAA0Ba,UAA1B;AACD;;AAED,SAAOa,oBAAoB,CAAC,CAAD,CAA3B;AACD;;AAGM,SAASZ,WAAT,CACLD,UADK,EACmB/C,WADnB,EAEK;AACV,QAAM+D,QAAQ,GAAGhB,UAAU,CAACC,WAAX,CAAuBhD,WAAW,CAACiD,OAAnC,CAAjB;AACA,QAAMe,OAAO,GAAG5D,SAAS,CAACJ,WAAD,CAAzB;AACA,QAAMiE,SAAS,GAAG1D,WAAW,CAACP,WAAD,CAA7B;AACA,SAAO,EACL,GAAG+D,QADE;AAEL,QAAIC,OAAO,IAAI;AAACA,MAAAA;AAAD,KAAf,CAFK;AAGL,QAAIC,SAAS,IAAI;AAACA,MAAAA;AAAD,KAAjB;AAHK,GAAP;AAKD;;AAEM,SAASC,cAAT,CAAwBC,CAAxB,EAA2BpB,UAA3B,EAA6D;AAClE;AACA,MAAI/C,WAAW,GAAG,0BAAcmE,CAAd,IAAmBA,CAAnB,GAAuB,IAAzC;;AACA,MAAI,CAACnE,WAAL,EAAkB;AAChB;AACA,UAAMmE,CAAN;AACD;;AACDnE,EAAAA,WAAW,GAAG,EACZ,GAAGA,WADS;AAEZoE,IAAAA,iBAAiB,EAAE;AAFP,GAAd;AAIA,QAAMC,QAAQ,GAAGtE,kBAAkB,CAACC,WAAD,CAAnC;AACA,QAAMc,QAAQ,GAAGQ,uBAAuB,CAACtB,WAAD,CAAxC;;AACA,MAAIqE,QAAJ,EAAc;AACZ,WAAO;AAAErE,MAAAA,WAAF;AAAeqE,MAAAA,QAAf;AAAyBvD,MAAAA;AAAzB,KAAP;AACD,GAFD,MAEO;AACL,UAAMiD,QAAQ,GAAGhB,UAAU,IAAIC,WAAW,CAACD,UAAD,EAAa/C,WAAb,CAA1C;AACA,WAAO;AACLA,MAAAA,WADK;AAELc,MAAAA,QAFK;AAGL,UAAIiD,QAAQ,IAAI;AAAEA,QAAAA;AAAF,OAAhB;AAHK,KAAP;AAKD;AACF","sourcesContent":["import { warn } from '../util';\nimport * as remediators from './remediators';\nimport { RemediationValues, Remediator, RemediatorConstructor } from './remediators';\nimport { IdxFeature, NextStep, RemediateOptions, RemediationResponse } from './types';\nimport { IdxMessage, IdxRemediation, IdxRemediationValue, IdxResponse, isIdxResponse } from './types/idx-js';\n\nexport function isTerminalResponse(idxResponse: IdxResponse) {\n const { neededToProceed, interactionCode } = idxResponse;\n return !neededToProceed.length && !interactionCode;\n}\n\nexport function canSkipFn(idxResponse: IdxResponse) {\n return idxResponse.neededToProceed.some(({ name }) => name === 'skip');\n}\n\nexport function canResendFn(idxResponse: IdxResponse) {\n return Object.keys(idxResponse.actions).some(actionName => actionName.includes('resend'));\n}\n\nexport function getMessagesFromIdxRemediationValue(\n value?: IdxRemediationValue[]\n): IdxMessage[] | undefined {\n if (!value || !Array.isArray(value)) {\n return;\n }\n return value.reduce((messages, value) => {\n if (value.messages) {\n messages = [...messages, ...value.messages.value] as never;\n }\n if (value.form) {\n const messagesFromForm = getMessagesFromIdxRemediationValue(value.form.value) || [];\n messages = [...messages, ...messagesFromForm] as never;\n } \n if (value.options) {\n let optionValues = [];\n value.options.forEach(option => {\n if (!option.value || typeof option.value === 'string') {\n return;\n }\n optionValues = [...optionValues, option.value] as never;\n });\n const messagesFromOptions = getMessagesFromIdxRemediationValue(optionValues) || [];\n messages = [...messages, ...messagesFromOptions] as never;\n }\n return messages;\n }, []);\n}\n\nexport function getMessagesFromResponse(idxResponse: IdxResponse): IdxMessage[] {\n let messages: IdxMessage[] = [];\n const { rawIdxState, neededToProceed } = idxResponse;\n\n // Handle global messages\n const globalMessages = rawIdxState.messages?.value.map(message => message);\n if (globalMessages) {\n messages = [...messages, ...globalMessages] as never;\n }\n\n // Handle field messages for current flow\n for (let remediation of neededToProceed) {\n const fieldMessages = getMessagesFromIdxRemediationValue(remediation.value);\n if (fieldMessages) {\n messages = [...messages, ...fieldMessages] as never;\n }\n }\n\n // API may return identical error on same field, filter by i18n key\n const seen = {};\n messages = messages.reduce((filtered, message) => {\n const key = message.i18n?.key;\n if (key && seen[key]) {\n return filtered;\n }\n seen[key] = message;\n filtered = [...filtered, message] as never;\n return filtered;\n }, []);\n return messages;\n}\n\n\nexport function getEnabledFeatures(idxResponse: IdxResponse): IdxFeature[] {\n const res = [];\n const { actions, neededToProceed } = idxResponse;\n\n if (actions['currentAuthenticator-recover']) {\n res.push(IdxFeature.PASSWORD_RECOVERY as never);\n }\n\n if (neededToProceed.some(({ name }) => name === 'select-enroll-profile')) {\n res.push(IdxFeature.REGISTRATION as never);\n }\n\n if (neededToProceed.some(({ name }) => name === 'redirect-idp')) {\n res.push(IdxFeature.SOCIAL_IDP as never);\n }\n\n if (neededToProceed.some(({ name }) => name === 'unlock-account')) {\n res.push(IdxFeature.ACCOUNT_UNLOCK as never);\n }\n\n return res;\n}\n\nexport function getAvailableSteps(idxResponse: IdxResponse): NextStep[] {\n const res: NextStep[] = [];\n\n const remediatorMap: Record<string, RemediatorConstructor> = Object.values(remediators)\n .reduce((map, remediatorClass) => {\n // Only add concrete subclasses to the map\n if (remediatorClass.remediationName) {\n map[remediatorClass.remediationName] = remediatorClass;\n }\n return map;\n }, {});\n\n for (let remediation of idxResponse.neededToProceed) {\n const T = remediatorMap[remediation.name];\n if (T) {\n const remediator: Remediator = new T(remediation);\n res.push (remediator.getNextStep(idxResponse.context) as never);\n }\n }\n\n return res;\n}\n\nexport function filterValuesForRemediation(\n idxResponse: IdxResponse,\n remediationName: string,\n values: RemediationValues\n): RemediationValues {\n const remediations = idxResponse.neededToProceed || [];\n const remediation = remediations.find(r => r.name === remediationName);\n if (!remediation) {\n // step was specified, but remediation was not found. This is unexpected!\n warn(`filterValuesForRemediation: \"${remediationName}\" did not match any remediations`);\n return values;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const valuesForRemediation = remediation.value!.reduce((res, entry) => {\n const { name, value } = entry;\n if (name === 'stateHandle') {\n res[name] = value; // use the stateHandle value in the remediation\n } else {\n res[name] = values[name]; // use the value provided by the caller\n }\n return res;\n }, {});\n return valuesForRemediation;\n}\n\n// Return first match idxRemediation in allowed remediators\n// eslint-disable-next-line complexity\nexport function getRemediator(\n idxRemediations: IdxRemediation[],\n values: RemediationValues,\n options: RemediateOptions,\n): Remediator | undefined {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediators = options.remediators!;\n\n let remediator: Remediator;\n // remediation name specified by caller - fast-track remediator lookup \n if (options.step) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediation = idxRemediations.find(({ name }) => name === options.step)!;\n if (remediation) {\n const T = remediation ? remediators[remediation.name] : undefined;\n return T ? new T(remediation, values, options) : undefined;\n } else {\n // step was specified, but remediation was not found. This is unexpected!\n warn(`step \"${options.step}\" did not match any remediations`);\n return;\n }\n }\n\n const remediatorCandidates: Remediator[] = [];\n for (let remediation of idxRemediations) {\n const isRemeditionInFlow = Object.keys(remediators as object).includes(remediation.name);\n if (!isRemeditionInFlow) {\n continue;\n }\n\n const T = remediators[remediation.name];\n remediator = new T(remediation, values, options);\n if (remediator.canRemediate()) {\n // found the remediator\n return remediator;\n }\n // remediator cannot handle the current values\n // maybe return for next step\n remediatorCandidates.push(remediator); \n }\n \n return remediatorCandidates[0];\n}\n\n\nexport function getNextStep(\n remediator: Remediator, idxResponse: IdxResponse\n): NextStep {\n const nextStep = remediator.getNextStep(idxResponse.context);\n const canSkip = canSkipFn(idxResponse);\n const canResend = canResendFn(idxResponse);\n return {\n ...nextStep,\n ...(canSkip && {canSkip}),\n ...(canResend && {canResend}),\n };\n}\n\nexport function handleIdxError(e, remediator?): RemediationResponse {\n // Handle idx messages\n let idxResponse = isIdxResponse(e) ? e : null;\n if (!idxResponse) {\n // Thrown error terminates the interaction with idx\n throw e;\n }\n idxResponse = {\n ...idxResponse,\n requestDidSucceed: false\n };\n const terminal = isTerminalResponse(idxResponse);\n const messages = getMessagesFromResponse(idxResponse);\n if (terminal) {\n return { idxResponse, terminal, messages };\n } else {\n const nextStep = remediator && getNextStep(remediator, idxResponse);\n return { \n idxResponse,\n messages, \n ...(nextStep && { nextStep }) \n };\n }\n}\n"],"file":"util.js"}
@@ -20,6 +20,7 @@ var _errors = require("../errors");
20
20
  * See the License for the specific language governing permissions and limitations under the License.
21
21
  *
22
22
  */
23
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
23
24
  // @ts-ignore
24
25
  // Do not use this type in code, so it won't be emitted in the declaration output
25
26
  // eslint-disable-next-line import/no-commonjs
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/server/serverStorage.ts"],"names":["sharedStorage","NodeCache","ServerCookies","constructor","nodeCache","set","name","value","expiresAt","Date","parse","ttl","now","get","delete","del","ServerStorage","storage","testStorageType","storageType","supported","getStorageByType","storageProvider","getStorage","AuthSdkError","findStorageType","getHttpCache","getItem","setItem","key"],"mappings":";;;;;;AAeA;;AAEA;;AAjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAIA;AAEA;AACA,MAAMA,aAAa,GAAG,OAAOC,kBAAP,KAAqB,UAArB,GAAkC,IAAIA,kBAAJ,EAAlC,GAAoD,IAA1E;;AAEA,MAAMC,aAAN,CAAuC;AACrB;AAEhBC,EAAAA,WAAW,CAACC,SAAD,EAAY;AACrB,SAAKA,SAAL,GAAiBA,SAAjB;AACD;;AAEDC,EAAAA,GAAG,CAACC,IAAD,EAAeC,KAAf,EAA8BC,SAA9B,EAAyD;AAC1D;AACA,QAAI,CAAC,CAAEC,IAAI,CAACC,KAAL,CAAWF,SAAX,CAAP,EAA+B;AAC7B;AACA,UAAIG,GAAG,GAAG,CAACF,IAAI,CAACC,KAAL,CAAWF,SAAX,IAAwBC,IAAI,CAACG,GAAL,EAAzB,IAAuC,IAAjD;AACA,WAAKR,SAAL,CAAeC,GAAf,CAAmBC,IAAnB,EAAyBC,KAAzB,EAAgCI,GAAhC;AACD,KAJD,MAIO;AACL,WAAKP,SAAL,CAAeC,GAAf,CAAmBC,IAAnB,EAAyBC,KAAzB;AACD;;AAED,WAAO,KAAKM,GAAL,CAASP,IAAT,CAAP;AACD;;AAEDO,EAAAA,GAAG,CAACP,IAAD,EAAe;AAChB,WAAO,KAAKF,SAAL,CAAeS,GAAf,CAAmBP,IAAnB,CAAP;AACD;;AAEDQ,EAAAA,MAAM,CAACR,IAAD,EAAO;AACX,WAAO,KAAKF,SAAL,CAAeW,GAAf,CAAmBT,IAAnB,CAAP;AACD;;AA1BoC,C,CA4BvC;;;AACA,MAAMU,aAAN,CAA2C;AACzB;AAEhBb,EAAAA,WAAW,CAACC,SAAD,EAAY;AACrB,SAAKA,SAAL,GAAiBA,SAAjB;AACA,SAAKa,OAAL,GAAe,IAAIf,aAAJ,CAAkBE,SAAlB,CAAf;AACD;;AAEDc,EAAAA,eAAe,CAACC,WAAD,EAAoC;AACjD,QAAIC,SAAS,GAAG,KAAhB;;AACA,YAAQD,WAAR;AACE,WAAK,QAAL;AACEC,QAAAA,SAAS,GAAG,IAAZ;AACA;;AACF;AACE;AALJ;;AAOA,WAAOA,SAAP;AACD;;AAEDC,EAAAA,gBAAgB,CAACF,WAAD,EAA0C;AACxD,QAAIG,eAAJ;;AACA,YAAQH,WAAR;AACE,WAAK,QAAL;AACEG,QAAAA,eAAe,GAAG,KAAKC,UAAL,EAAlB;AACA;;AACF;AACE,cAAM,IAAIC,oBAAJ,CAAkB,gCAA+BL,WAAY,EAA7D,CAAN;AACA;AANJ;;AAQA,WAAOG,eAAP;AACD;;AAEDG,EAAAA,eAAe,GAAgB;AAC7B,WAAO,QAAP;AACD,GAnCwC,CAqCzC;;;AACAC,EAAAA,YAAY,GAAG;AACb,WAAO,IAAP,CADa,CACA;AACd,GAxCwC,CA0CzC;;;AACAH,EAAAA,UAAU,GAAkB;AAC1B,WAAO;AACLI,MAAAA,OAAO,EAAE,KAAKvB,SAAL,CAAeS,GADnB;AAELe,MAAAA,OAAO,EAAE,CAACC,GAAD,EAAMtB,KAAN,KAAgB;AACvB,aAAKH,SAAL,CAAeC,GAAf,CAAmBwB,GAAnB,EAAwBtB,KAAxB,EAA+B,0BAA/B;AACD;AAJI,KAAP;AAMD;;AAlDwC;;eAqD5B,IAAIS,aAAJ,CAAkBhB,aAAlB,C","sourcesContent":["/*!\n * Copyright (c) 2018-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// @ts-ignore \n// Do not use this type in code, so it won't be emitted in the declaration output\nimport NodeCache from 'node-cache';\nimport { SimpleStorage, StorageType, StorageUtil, Cookies } from '../types';\nimport { AuthSdkError } from '../errors';\n// eslint-disable-next-line import/no-commonjs\n\n// this is a SHARED memory storage to support a stateless http server\nconst sharedStorage = typeof NodeCache === 'function' ? new NodeCache() : null;\n\nclass ServerCookies implements Cookies {\n nodeCache: any; // NodeCache\n \n constructor(nodeCache) {\n this.nodeCache = nodeCache;\n }\n\n set(name: string, value: string, expiresAt: string): string {\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!(Date.parse(expiresAt))) {\n // Time to expiration in seconds\n var ttl = (Date.parse(expiresAt) - Date.now()) / 1000;\n this.nodeCache.set(name, value, ttl);\n } else {\n this.nodeCache.set(name, value);\n }\n\n return this.get(name);\n }\n\n get(name): string {\n return this.nodeCache.get(name);\n }\n\n delete(name) {\n return this.nodeCache.del(name);\n }\n}\n// Building this as an object allows us to mock the functions in our tests\nclass ServerStorage implements StorageUtil {\n nodeCache: any; // NodeCache\n storage: Cookies;\n constructor(nodeCache) {\n this.nodeCache = nodeCache;\n this.storage = new ServerCookies(nodeCache);\n }\n\n testStorageType(storageType: StorageType): boolean {\n var supported = false;\n switch (storageType) {\n case 'memory':\n supported = true;\n break;\n default:\n break;\n }\n return supported;\n }\n\n getStorageByType(storageType: StorageType): SimpleStorage {\n let storageProvider;\n switch (storageType) {\n case 'memory':\n storageProvider = this.getStorage();\n break;\n default:\n throw new AuthSdkError(`Unrecognized storage option: ${storageType}`);\n break;\n }\n return storageProvider;\n }\n\n findStorageType(): StorageType {\n return 'memory';\n }\n\n // will be removed in next version. OKTA-362589\n getHttpCache() {\n return null; // stubbed in server.js\n }\n\n // shared in-memory using node cache\n getStorage(): SimpleStorage {\n return {\n getItem: this.nodeCache.get,\n setItem: (key, value) => {\n this.nodeCache.set(key, value, '2200-01-01T00:00:00.000Z');\n }\n };\n }\n}\n\nexport default new ServerStorage(sharedStorage);\n"],"file":"serverStorage.js"}
1
+ {"version":3,"sources":["../../../lib/server/serverStorage.ts"],"names":["sharedStorage","NodeCache","ServerCookies","constructor","nodeCache","set","name","value","expiresAt","Date","parse","ttl","now","get","delete","del","ServerStorage","storage","testStorageType","storageType","supported","getStorageByType","storageProvider","getStorage","AuthSdkError","findStorageType","getHttpCache","getItem","setItem","key"],"mappings":";;;;;;AAgBA;;AAEA;;AAlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAIA;AAEA;AACA,MAAMA,aAAa,GAAG,OAAOC,kBAAP,KAAqB,UAArB,GAAkC,IAAIA,kBAAJ,EAAlC,GAAoD,IAA1E;;AAEA,MAAMC,aAAN,CAAuC;AACrB;AAEhBC,EAAAA,WAAW,CAACC,SAAD,EAAY;AACrB,SAAKA,SAAL,GAAiBA,SAAjB;AACD;;AAEDC,EAAAA,GAAG,CAACC,IAAD,EAAeC,KAAf,EAA8BC,SAA9B,EAAyD;AAC1D;AACA,QAAI,CAAC,CAAEC,IAAI,CAACC,KAAL,CAAWF,SAAX,CAAP,EAA+B;AAC7B;AACA,UAAIG,GAAG,GAAG,CAACF,IAAI,CAACC,KAAL,CAAWF,SAAX,IAAwBC,IAAI,CAACG,GAAL,EAAzB,IAAuC,IAAjD;AACA,WAAKR,SAAL,CAAeC,GAAf,CAAmBC,IAAnB,EAAyBC,KAAzB,EAAgCI,GAAhC;AACD,KAJD,MAIO;AACL,WAAKP,SAAL,CAAeC,GAAf,CAAmBC,IAAnB,EAAyBC,KAAzB;AACD;;AAED,WAAO,KAAKM,GAAL,CAASP,IAAT,CAAP;AACD;;AAEDO,EAAAA,GAAG,CAACP,IAAD,EAAe;AAChB,WAAO,KAAKF,SAAL,CAAeS,GAAf,CAAmBP,IAAnB,CAAP;AACD;;AAEDQ,EAAAA,MAAM,CAACR,IAAD,EAAO;AACX,WAAO,KAAKF,SAAL,CAAeW,GAAf,CAAmBT,IAAnB,CAAP;AACD;;AA1BoC,C,CA4BvC;;;AACA,MAAMU,aAAN,CAA2C;AACzB;AAEhBb,EAAAA,WAAW,CAACC,SAAD,EAAY;AACrB,SAAKA,SAAL,GAAiBA,SAAjB;AACA,SAAKa,OAAL,GAAe,IAAIf,aAAJ,CAAkBE,SAAlB,CAAf;AACD;;AAEDc,EAAAA,eAAe,CAACC,WAAD,EAAoC;AACjD,QAAIC,SAAS,GAAG,KAAhB;;AACA,YAAQD,WAAR;AACE,WAAK,QAAL;AACEC,QAAAA,SAAS,GAAG,IAAZ;AACA;;AACF;AACE;AALJ;;AAOA,WAAOA,SAAP;AACD;;AAEDC,EAAAA,gBAAgB,CAACF,WAAD,EAA0C;AACxD,QAAIG,eAAJ;;AACA,YAAQH,WAAR;AACE,WAAK,QAAL;AACEG,QAAAA,eAAe,GAAG,KAAKC,UAAL,EAAlB;AACA;;AACF;AACE,cAAM,IAAIC,oBAAJ,CAAkB,gCAA+BL,WAAY,EAA7D,CAAN;AACA;AANJ;;AAQA,WAAOG,eAAP;AACD;;AAEDG,EAAAA,eAAe,GAAgB;AAC7B,WAAO,QAAP;AACD,GAnCwC,CAqCzC;;;AACAC,EAAAA,YAAY,GAAG;AACb,WAAO,IAAP,CADa,CACA;AACd,GAxCwC,CA0CzC;;;AACAH,EAAAA,UAAU,GAAkB;AAC1B,WAAO;AACLI,MAAAA,OAAO,EAAE,KAAKvB,SAAL,CAAeS,GADnB;AAELe,MAAAA,OAAO,EAAE,CAACC,GAAD,EAAMtB,KAAN,KAAgB;AACvB,aAAKH,SAAL,CAAeC,GAAf,CAAmBwB,GAAnB,EAAwBtB,KAAxB,EAA+B,0BAA/B;AACD;AAJI,KAAP;AAMD;;AAlDwC;;eAqD5B,IAAIS,aAAJ,CAAkBhB,aAAlB,C","sourcesContent":["/*!\n * Copyright (c) 2018-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-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \n// Do not use this type in code, so it won't be emitted in the declaration output\nimport NodeCache from 'node-cache';\nimport { SimpleStorage, StorageType, StorageUtil, Cookies } from '../types';\nimport { AuthSdkError } from '../errors';\n// eslint-disable-next-line import/no-commonjs\n\n// this is a SHARED memory storage to support a stateless http server\nconst sharedStorage = typeof NodeCache === 'function' ? new NodeCache() : null;\n\nclass ServerCookies implements Cookies {\n nodeCache: any; // NodeCache\n \n constructor(nodeCache) {\n this.nodeCache = nodeCache;\n }\n\n set(name: string, value: string, expiresAt: string): string {\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!(Date.parse(expiresAt))) {\n // Time to expiration in seconds\n var ttl = (Date.parse(expiresAt) - Date.now()) / 1000;\n this.nodeCache.set(name, value, ttl);\n } else {\n this.nodeCache.set(name, value);\n }\n\n return this.get(name);\n }\n\n get(name): string {\n return this.nodeCache.get(name);\n }\n\n delete(name) {\n return this.nodeCache.del(name);\n }\n}\n// Building this as an object allows us to mock the functions in our tests\nclass ServerStorage implements StorageUtil {\n nodeCache: any; // NodeCache\n storage: Cookies;\n constructor(nodeCache) {\n this.nodeCache = nodeCache;\n this.storage = new ServerCookies(nodeCache);\n }\n\n testStorageType(storageType: StorageType): boolean {\n var supported = false;\n switch (storageType) {\n case 'memory':\n supported = true;\n break;\n default:\n break;\n }\n return supported;\n }\n\n getStorageByType(storageType: StorageType): SimpleStorage {\n let storageProvider;\n switch (storageType) {\n case 'memory':\n storageProvider = this.getStorage();\n break;\n default:\n throw new AuthSdkError(`Unrecognized storage option: ${storageType}`);\n break;\n }\n return storageProvider;\n }\n\n findStorageType(): StorageType {\n return 'memory';\n }\n\n // will be removed in next version. OKTA-362589\n getHttpCache() {\n return null; // stubbed in server.js\n }\n\n // shared in-memory using node cache\n getStorage(): SimpleStorage {\n return {\n getItem: this.nodeCache.get,\n setItem: (key, value) => {\n this.nodeCache.set(key, value, '2200-01-01T00:00:00.000Z');\n }\n };\n }\n}\n\nexport default new ServerStorage(sharedStorage);\n"],"file":"serverStorage.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/tx/AuthTransaction.ts"],"names":["AuthTransaction","constructor","sdk","res","data","undefined","status","interactionHandle","flattenEmbedded","stateToken","_links","cancel","resolve","link2fn","obj","link","ref","Array","isArray","name","opts","AuthSdkError","lk","hints","allow","length","method","href","withCredentials","isPolling","factorType","provider","params","autoPush","e","reject","rememberDevice","profile","updatePhone","links2fns","fns","linkName","Object","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: TransactionState | null = null) {\n this.data = undefined;\n this.status = undefined as unknown as string;\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) as never);\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","undefined","status","interactionHandle","flattenEmbedded","stateToken","_links","cancel","resolve","link2fn","obj","link","ref","Array","isArray","name","opts","AuthSdkError","lk","hints","allow","length","method","href","withCredentials","isPolling","factorType","provider","params","autoPush","e","reject","rememberDevice","profile","updatePhone","links2fns","fns","linkName","Object","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\n// eslint-disable-next-line no-use-before-define\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: TransactionState | null = null) {\n this.data = undefined;\n this.status = undefined as unknown as string;\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) as never);\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"}
@@ -16,7 +16,6 @@ exports.isRefreshToken = isRefreshToken;
16
16
  *
17
17
  * See the License for the specific language governing permissions and limitations under the License.
18
18
  */
19
- // eslint-disable-next-line @typescript-eslint/interface-name-prefix
20
19
  function isToken(obj) {
21
20
  if (obj && (obj.accessToken || obj.idToken || obj.refreshToken) && Array.isArray(obj.scopes)) {
22
21
  return true;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/types/Token.ts"],"names":["isToken","obj","accessToken","idToken","refreshToken","Array","isArray","scopes","isAccessToken","isIDToken","isRefreshToken"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAwBA;AAaO,SAASA,OAAT,CAAiBC,GAAjB,EAAyC;AAC9C,MAAIA,GAAG,KACFA,GAAG,CAACC,WAAJ,IAAmBD,GAAG,CAACE,OAAvB,IAAkCF,GAAG,CAACG,YADpC,CAAH,IAEAC,KAAK,CAACC,OAAN,CAAcL,GAAG,CAACM,MAAlB,CAFJ,EAE+B;AAC7B,WAAO,IAAP;AACD;;AACD,SAAO,KAAP;AACD;;AAEM,SAASC,aAAT,CAAuBP,GAAvB,EAAqD;AAC1D,SAAOA,GAAG,IAAIA,GAAG,CAACC,WAAlB;AACD;;AAEM,SAASO,SAAT,CAAmBR,GAAnB,EAA6C;AAClD,SAAOA,GAAG,IAAIA,GAAG,CAACE,OAAlB;AACD;;AAEM,SAASO,cAAT,CAAwBT,GAAxB,EAAuD;AAC5D,SAAOA,GAAG,IAAIA,GAAG,CAACG,YAAlB;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\nimport { UserClaims } from './UserClaims';\n\nexport interface AbstractToken {\n expiresAt: number;\n authorizeUrl: string;\n scopes: string[];\n pendingRemove?: boolean;\n}\n\nexport interface AccessToken extends AbstractToken {\n accessToken: string;\n claims: UserClaims;\n tokenType: string;\n userinfoUrl: string;\n}\n\nexport interface RefreshToken extends AbstractToken {\n refreshToken: string;\n tokenUrl: string;\n issuer: string;\n}\n\n// eslint-disable-next-line @typescript-eslint/interface-name-prefix\nexport interface IDToken extends AbstractToken {\n idToken: string;\n claims: UserClaims;\n issuer: string;\n clientId: string;\n}\n\nexport type Token = AccessToken | IDToken | RefreshToken;\nexport type RevocableToken = AccessToken | RefreshToken;\n\nexport type TokenType = 'accessToken' | 'idToken' | 'refreshToken';\n\nexport function isToken(obj: any): obj is Token {\n if (obj &&\n (obj.accessToken || obj.idToken || obj.refreshToken) &&\n Array.isArray(obj.scopes)) {\n return true;\n }\n return false;\n}\n\nexport function isAccessToken(obj: any): obj is AccessToken {\n return obj && obj.accessToken;\n}\n\nexport function isIDToken(obj: any): obj is IDToken {\n return obj && obj.idToken;\n}\n\nexport function isRefreshToken(obj: any): obj is RefreshToken {\n return obj && obj.refreshToken;\n}\n\nexport interface Tokens {\n accessToken?: AccessToken;\n idToken?: IDToken;\n refreshToken?: RefreshToken;\n}\n"],"file":"Token.js"}
1
+ {"version":3,"sources":["../../../lib/types/Token.ts"],"names":["isToken","obj","accessToken","idToken","refreshToken","Array","isArray","scopes","isAccessToken","isIDToken","isRefreshToken"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoCO,SAASA,OAAT,CAAiBC,GAAjB,EAAyC;AAC9C,MAAIA,GAAG,KACFA,GAAG,CAACC,WAAJ,IAAmBD,GAAG,CAACE,OAAvB,IAAkCF,GAAG,CAACG,YADpC,CAAH,IAEAC,KAAK,CAACC,OAAN,CAAcL,GAAG,CAACM,MAAlB,CAFJ,EAE+B;AAC7B,WAAO,IAAP;AACD;;AACD,SAAO,KAAP;AACD;;AAEM,SAASC,aAAT,CAAuBP,GAAvB,EAAqD;AAC1D,SAAOA,GAAG,IAAIA,GAAG,CAACC,WAAlB;AACD;;AAEM,SAASO,SAAT,CAAmBR,GAAnB,EAA6C;AAClD,SAAOA,GAAG,IAAIA,GAAG,CAACE,OAAlB;AACD;;AAEM,SAASO,cAAT,CAAwBT,GAAxB,EAAuD;AAC5D,SAAOA,GAAG,IAAIA,GAAG,CAACG,YAAlB;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\nimport { UserClaims } from './UserClaims';\n\nexport interface AbstractToken {\n expiresAt: number;\n authorizeUrl: string;\n scopes: string[];\n pendingRemove?: boolean;\n}\n\nexport interface AccessToken extends AbstractToken {\n accessToken: string;\n claims: UserClaims;\n tokenType: string;\n userinfoUrl: string;\n}\n\nexport interface RefreshToken extends AbstractToken {\n refreshToken: string;\n tokenUrl: string;\n issuer: string;\n}\n\nexport interface IDToken extends AbstractToken {\n idToken: string;\n claims: UserClaims;\n issuer: string;\n clientId: string;\n}\n\nexport type Token = AccessToken | IDToken | RefreshToken;\nexport type RevocableToken = AccessToken | RefreshToken;\n\nexport type TokenType = 'accessToken' | 'idToken' | 'refreshToken';\n\nexport function isToken(obj: any): obj is Token {\n if (obj &&\n (obj.accessToken || obj.idToken || obj.refreshToken) &&\n Array.isArray(obj.scopes)) {\n return true;\n }\n return false;\n}\n\nexport function isAccessToken(obj: any): obj is AccessToken {\n return obj && obj.accessToken;\n}\n\nexport function isIDToken(obj: any): obj is IDToken {\n return obj && obj.idToken;\n}\n\nexport function isRefreshToken(obj: any): obj is RefreshToken {\n return obj && obj.refreshToken;\n}\n\nexport interface Tokens {\n accessToken?: AccessToken;\n idToken?: IDToken;\n refreshToken?: RefreshToken;\n}\n"],"file":"Token.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/util/object.ts"],"names":["bind","fn","ctx","additionalArgs","Array","prototype","call","arguments","args","apply","extend","obj1","objArray","forEach","obj","prop","Object","hasOwnProperty","undefined","removeNils","cleaned","value","clone","str","JSON","parse","omit","props","newobj","p","find","collection","searchParams","c","length","item","found","getLink","linkName","altName","_links","link","name"],"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\nexport function bind(fn, ctx) {\n var additionalArgs = Array.prototype.slice.call(arguments, 2);\n return function() {\n var args = Array.prototype.slice.call(arguments);\n args = additionalArgs.concat(args);\n return fn.apply(ctx, args);\n };\n}\n\n// TODO: replace all references with `Object.assign` then remove this function\nexport function extend() {\n // First object will be modified!\n var obj1 = arguments[0];\n // Properties from other objects will be copied over\n var objArray = [].slice.call(arguments, 1);\n objArray.forEach(function(obj) {\n for (var prop in obj) {\n // copy over all properties with defined values\n if (Object.prototype.hasOwnProperty.call(obj, prop) && obj[prop] !== undefined) {\n obj1[prop] = obj[prop];\n }\n }\n });\n return obj1; // return the modified object\n}\n\nexport function removeNils(obj) {\n var cleaned = {};\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n var value = obj[prop];\n if (value !== null && value !== undefined) {\n cleaned[prop] = value;\n }\n }\n }\n return cleaned;\n}\n\nexport function clone(obj) {\n if (obj) {\n var str = JSON.stringify(obj);\n if (str) {\n return JSON.parse(str);\n }\n }\n return obj;\n}\n\n// Analogous to _.omit\nexport function omit(obj, ...props: any[]) {\n // var props = Array.prototype.slice.call(arguments, 1);\n var newobj = {};\n for (var p in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, p) && props.indexOf(p) == -1) {\n newobj[p] = obj[p];\n }\n }\n return clone(newobj);\n}\n\nexport function find(collection, searchParams) {\n var c = collection.length;\n while (c--) {\n var item = collection[c];\n var found = true;\n for (var prop in searchParams) {\n if (!Object.prototype.hasOwnProperty.call(searchParams, prop)) {\n continue;\n }\n if (item[prop] !== searchParams[prop]) {\n found = false;\n break;\n }\n }\n if (found) {\n return item;\n }\n }\n}\n\nexport function getLink(obj, linkName, altName?) {\n if (!obj || !obj._links) {\n return;\n }\n\n var link = clone(obj._links[linkName]);\n\n // If a link has a name and we have an altName, return if they match\n if (link && link.name && altName) {\n if (link.name === altName) {\n return link;\n }\n } else {\n return link;\n }\n}\n\n\n\n"],"file":"object.js"}
1
+ {"version":3,"sources":["../../../lib/util/object.ts"],"names":["bind","fn","ctx","additionalArgs","Array","prototype","call","arguments","args","apply","extend","obj1","objArray","forEach","obj","prop","Object","hasOwnProperty","undefined","removeNils","cleaned","value","clone","str","JSON","parse","omit","props","newobj","p","find","collection","searchParams","c","length","item","found","getLink","linkName","altName","_links","link","name"],"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\nexport function bind(fn, ctx) {\n var additionalArgs = Array.prototype.slice.call(arguments, 2);\n return function() {\n var args = Array.prototype.slice.call(arguments);\n args = additionalArgs.concat(args);\n return fn.apply(ctx, args);\n };\n}\n\n// TODO: replace all references with `Object.assign` then remove this function\nexport function extend() {\n // First object will be modified!\n var obj1 = arguments[0];\n // Properties from other objects will be copied over\n var objArray = [].slice.call(arguments, 1);\n objArray.forEach(function(obj) {\n for (var prop in obj) {\n // copy over all properties with defined values\n if (Object.prototype.hasOwnProperty.call(obj, prop) && obj[prop] !== undefined) {\n obj1[prop] = obj[prop];\n }\n }\n });\n return obj1; // return the modified object\n}\n\nexport function removeNils(obj) {\n var cleaned = {};\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n var value = obj[prop];\n if (value !== null && value !== undefined) {\n cleaned[prop] = value;\n }\n }\n }\n return cleaned;\n}\n\nexport function clone(obj) {\n if (obj) {\n var str = JSON.stringify(obj);\n if (str) {\n return JSON.parse(str);\n }\n }\n return obj;\n}\n\n// Analogous to _.omit\nexport function omit(obj, ...props: any[]) {\n // var props = Array.prototype.slice.call(arguments, 1);\n var newobj = {};\n for (var p in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, p) && props.indexOf(p) == -1) {\n newobj[p] = obj[p];\n }\n }\n return clone(newobj);\n}\n\nexport function find(collection, searchParams) {\n var c = collection.length;\n while (c--) {\n var item = collection[c];\n var found = true;\n for (var prop in searchParams) {\n if (!Object.prototype.hasOwnProperty.call(searchParams, prop)) {\n continue;\n }\n if (item[prop] !== searchParams[prop]) {\n found = false;\n break;\n }\n }\n if (found) {\n return item;\n }\n }\n}\n\nexport function getLink(obj, linkName, altName?) {\n if (!obj || !obj._links) {\n return;\n }\n\n var link = clone(obj._links[linkName]);\n\n // If a link has a name and we have an altName, return if they match\n if (link && link.name && altName) {\n if (link.name === altName) {\n return link;\n }\n } else {\n return link;\n }\n}\n\n"],"file":"object.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/util/types.ts"],"names":["isString","obj","Object","prototype","toString","call","isObject","isNumber","isFunction","fn","isPromise","finally"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,SAASA,QAAT,CAAkBC,GAAlB,EAA2C;AAChD,SAAOC,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,GAA/B,MAAwC,iBAA/C;AACD;;AAEM,SAASK,QAAT,CAAkBL,GAAlB,EAA2C;AAChD,SAAOC,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,GAA/B,MAAwC,iBAA/C;AACD;;AAEM,SAASM,QAAT,CAAkBN,GAAlB,EAA2C;AAChD,SAAOC,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,GAA/B,MAAwC,iBAA/C;AACD;;AAEM,SAASO,UAAT,CAAoBC,EAApB,EAA6C;AAClD,SAAO,CAAC,CAACA,EAAF,IAAQ,GAAGL,QAAH,CAAYC,IAAZ,CAAiBI,EAAjB,MAAyB,mBAAxC;AACD;;AAEM,SAASC,SAAT,CAAmBT,GAAnB,EAAwB;AAC7B,SAAOA,GAAG,IAAIA,GAAG,CAACU,OAAX,IAAuB,OAAOV,GAAG,CAACU,OAAX,KAAuB,UAArD;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\nexport function isString(obj: any): obj is string {\n return Object.prototype.toString.call(obj) === '[object String]';\n}\n\nexport function isObject(obj: any): obj is object {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nexport function isNumber(obj: any): obj is number {\n return Object.prototype.toString.call(obj) === '[object Number]';\n}\n\nexport function isFunction(fn: any): fn is Function {\n return !!fn && {}.toString.call(fn) === '[object Function]';\n}\n\nexport function isPromise(obj) {\n return obj && obj.finally && (typeof obj.finally === 'function');\n}\n"],"file":"types.js"}
1
+ {"version":3,"sources":["../../../lib/util/types.ts"],"names":["isString","obj","Object","prototype","toString","call","isObject","isNumber","isFunction","fn","isPromise","finally"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,SAASA,QAAT,CAAkBC,GAAlB,EAA2C;AAChD,SAAOC,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,GAA/B,MAAwC,iBAA/C;AACD;;AAEM,SAASK,QAAT,CAAkBL,GAAlB,EAA2C;AAChD,SAAOC,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,GAA/B,MAAwC,iBAA/C;AACD;;AAEM,SAASM,QAAT,CAAkBN,GAAlB,EAA2C;AAChD,SAAOC,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,GAA/B,MAAwC,iBAA/C;AACD;;AAEM,SAASO,UAAT,CAAoBC,EAApB,EAA2D;AAChE,SAAO,CAAC,CAACA,EAAF,IAAQ,GAAGL,QAAH,CAAYC,IAAZ,CAAiBI,EAAjB,MAAyB,mBAAxC;AACD;;AAEM,SAASC,SAAT,CAAmBT,GAAnB,EAAwB;AAC7B,SAAOA,GAAG,IAAIA,GAAG,CAACU,OAAX,IAAuB,OAAOV,GAAG,CAACU,OAAX,KAAuB,UAArD;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\nexport function isString(obj: any): obj is string {\n return Object.prototype.toString.call(obj) === '[object String]';\n}\n\nexport function isObject(obj: any): obj is object {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nexport function isNumber(obj: any): obj is number {\n return Object.prototype.toString.call(obj) === '[object Number]';\n}\n\nexport function isFunction(fn: any): fn is (...any: any[]) => any {\n return !!fn && {}.toString.call(fn) === '[object Function]';\n}\n\nexport function isPromise(obj) {\n return obj && obj.finally && (typeof obj.finally === 'function');\n}\n"],"file":"types.js"}