@okta/okta-auth-js 6.7.5 → 6.8.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.
Files changed (220) hide show
  1. package/CHANGELOG.md +28 -1
  2. package/README.md +3 -2
  3. package/cjs/AuthStateManager.js +1 -1
  4. package/cjs/AuthStateManager.js.map +1 -1
  5. package/cjs/OktaAuth.js +1 -8
  6. package/cjs/OktaAuth.js.map +1 -1
  7. package/cjs/OktaUserAgent.js +2 -2
  8. package/cjs/OktaUserAgent.js.map +1 -1
  9. package/cjs/PromiseQueue.js.map +1 -1
  10. package/cjs/SavedObject.js +4 -1
  11. package/cjs/SavedObject.js.map +1 -1
  12. package/cjs/ServiceManager.js.map +1 -1
  13. package/cjs/StorageManager.js.map +1 -1
  14. package/cjs/TokenManager.js +2 -1
  15. package/cjs/TokenManager.js.map +1 -1
  16. package/cjs/TransactionManager.js.map +1 -1
  17. package/cjs/browser/browserStorage.js +3 -0
  18. package/cjs/browser/browserStorage.js.map +1 -1
  19. package/cjs/browser/fingerprint.js.map +1 -1
  20. package/cjs/constants.js +1 -1
  21. package/cjs/crypto/base64.js +4 -4
  22. package/cjs/crypto/base64.js.map +1 -1
  23. package/cjs/crypto/oidcHash.js.map +1 -1
  24. package/cjs/crypto/verifyToken.js.map +1 -1
  25. package/cjs/crypto/webauthn.js +1 -1
  26. package/cjs/crypto/webauthn.js.map +1 -1
  27. package/cjs/errors/index.js +2 -2
  28. package/cjs/features.js +6 -6
  29. package/cjs/features.js.map +1 -1
  30. package/cjs/http/request.js +1 -1
  31. package/cjs/http/request.js.map +1 -1
  32. package/cjs/idx/authenticate.js.map +1 -1
  33. package/cjs/idx/authenticator/OktaPassword.js +5 -4
  34. package/cjs/idx/authenticator/OktaPassword.js.map +1 -1
  35. package/cjs/idx/authenticator/getAuthenticator.js.map +1 -1
  36. package/cjs/idx/authenticator/util.js +1 -1
  37. package/cjs/idx/authenticator/util.js.map +1 -1
  38. package/cjs/idx/cancel.js.map +1 -1
  39. package/cjs/idx/emailVerify.js +3 -3
  40. package/cjs/idx/emailVerify.js.map +1 -1
  41. package/cjs/idx/idxState/index.js +1 -1
  42. package/cjs/idx/idxState/v1/generateIdxAction.js.map +1 -1
  43. package/cjs/idx/idxState/v1/idxResponseParser.js +1 -1
  44. package/cjs/idx/idxState/v1/idxResponseParser.js.map +1 -1
  45. package/cjs/idx/idxState/v1/makeIdxState.js.map +1 -1
  46. package/cjs/idx/idxState/v1/remediationParser.js.map +1 -1
  47. package/cjs/idx/index.js +24 -24
  48. package/cjs/idx/interact.js.map +1 -1
  49. package/cjs/idx/introspect.js.map +1 -1
  50. package/cjs/idx/poll.js.map +1 -1
  51. package/cjs/idx/proceed.js.map +1 -1
  52. package/cjs/idx/recoverPassword.js.map +1 -1
  53. package/cjs/idx/register.js.map +1 -1
  54. package/cjs/idx/remediate.js.map +1 -1
  55. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
  56. package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
  57. package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
  58. package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
  59. package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
  60. package/cjs/idx/remediators/EnrollProfile.js +46 -4
  61. package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
  62. package/cjs/idx/remediators/GenericRemediator/util.js +1 -1
  63. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
  64. package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  65. package/cjs/idx/remediators/util.js +1 -1
  66. package/cjs/idx/run.js.map +1 -1
  67. package/cjs/idx/startTransaction.js.map +1 -1
  68. package/cjs/idx/transactionMeta.js +3 -3
  69. package/cjs/idx/transactionMeta.js.map +1 -1
  70. package/cjs/idx/types/api.js +1 -1
  71. package/cjs/idx/types/idx-js.js +1 -1
  72. package/cjs/idx/types/idx-js.js.map +1 -1
  73. package/cjs/idx/unlockAccount.js.map +1 -1
  74. package/cjs/idx/util.js +25 -17
  75. package/cjs/idx/util.js.map +1 -1
  76. package/cjs/myaccount/emailApi.js +1 -1
  77. package/cjs/myaccount/emailApi.js.map +1 -1
  78. package/cjs/myaccount/phoneApi.js +1 -1
  79. package/cjs/myaccount/phoneApi.js.map +1 -1
  80. package/cjs/myaccount/profileApi.js +1 -1
  81. package/cjs/myaccount/profileApi.js.map +1 -1
  82. package/cjs/myaccount/request.js +1 -1
  83. package/cjs/myaccount/request.js.map +1 -1
  84. package/cjs/myaccount/transactions/EmailChallengeTransaction.js.map +1 -1
  85. package/cjs/myaccount/transactions/EmailTransaction.js.map +1 -1
  86. package/cjs/myaccount/transactions/PhoneTransaction.js.map +1 -1
  87. package/cjs/myaccount/transactions/index.js +14 -14
  88. package/cjs/myaccount/types.js +14 -13
  89. package/cjs/myaccount/types.js.map +1 -1
  90. package/cjs/oidc/decodeToken.js.map +1 -1
  91. package/cjs/oidc/endpoints/authorize.js +1 -1
  92. package/cjs/oidc/endpoints/authorize.js.map +1 -1
  93. package/cjs/oidc/endpoints/token.js +1 -1
  94. package/cjs/oidc/endpoints/token.js.map +1 -1
  95. package/cjs/oidc/endpoints/well-known.js +1 -1
  96. package/cjs/oidc/endpoints/well-known.js.map +1 -1
  97. package/cjs/oidc/exchangeCodeForTokens.js.map +1 -1
  98. package/cjs/oidc/getToken.js.map +1 -1
  99. package/cjs/oidc/getUserInfo.js.map +1 -1
  100. package/cjs/oidc/getWithPopup.js.map +1 -1
  101. package/cjs/oidc/getWithRedirect.js.map +1 -1
  102. package/cjs/oidc/getWithoutPrompt.js.map +1 -1
  103. package/cjs/oidc/handleOAuthResponse.js.map +1 -1
  104. package/cjs/oidc/index.js +24 -24
  105. package/cjs/oidc/parseFromUrl.js +2 -2
  106. package/cjs/oidc/parseFromUrl.js.map +1 -1
  107. package/cjs/oidc/renewToken.js.map +1 -1
  108. package/cjs/oidc/renewTokens.js.map +1 -1
  109. package/cjs/oidc/renewTokensWithRefresh.js.map +1 -1
  110. package/cjs/oidc/revokeToken.js.map +1 -1
  111. package/cjs/oidc/util/browser.js +2 -2
  112. package/cjs/oidc/util/defaultTokenParams.js.map +1 -1
  113. package/cjs/oidc/util/errors.js +1 -1
  114. package/cjs/oidc/util/errors.js.map +1 -1
  115. package/cjs/oidc/util/loginRedirect.js +5 -5
  116. package/cjs/oidc/util/oauth.js +1 -1
  117. package/cjs/oidc/util/oauth.js.map +1 -1
  118. package/cjs/oidc/util/oauthMeta.js.map +1 -1
  119. package/cjs/oidc/util/pkce.js.map +1 -1
  120. package/cjs/oidc/util/prepareTokenParams.js +1 -1
  121. package/cjs/oidc/util/prepareTokenParams.js.map +1 -1
  122. package/cjs/oidc/util/refreshToken.js +1 -1
  123. package/cjs/oidc/util/refreshToken.js.map +1 -1
  124. package/cjs/oidc/util/validateToken.js.map +1 -1
  125. package/cjs/oidc/verifyToken.js.map +1 -1
  126. package/cjs/options/browser.js +2 -2
  127. package/cjs/options/browser.js.map +1 -1
  128. package/cjs/options/index.js +1 -1
  129. package/cjs/options/index.js.map +1 -1
  130. package/cjs/options/node.js +2 -2
  131. package/cjs/server/serverStorage.js +1 -0
  132. package/cjs/server/serverStorage.js.map +1 -1
  133. package/cjs/services/AutoRenewService.js.map +1 -1
  134. package/cjs/services/LeaderElectionService.js.map +1 -1
  135. package/cjs/services/SyncStorageService.js +4 -1
  136. package/cjs/services/SyncStorageService.js.map +1 -1
  137. package/cjs/session.js +2 -2
  138. package/cjs/session.js.map +1 -1
  139. package/cjs/tx/AuthTransaction.js.map +1 -1
  140. package/cjs/tx/api.js +4 -4
  141. package/cjs/tx/api.js.map +1 -1
  142. package/cjs/tx/poll.js.map +1 -1
  143. package/cjs/types/Storage.js.map +1 -1
  144. package/cjs/types/Token.js +1 -1
  145. package/cjs/types/TokenManager.js +1 -1
  146. package/cjs/types/Transaction.js +2 -2
  147. package/cjs/util/console.js +3 -3
  148. package/cjs/util/index.js +13 -0
  149. package/cjs/util/index.js.map +1 -1
  150. package/cjs/util/misc.js +2 -2
  151. package/cjs/util/object.js +3 -3
  152. package/cjs/util/sharedStorage.js +2 -2
  153. package/cjs/util/sharedStorage.js.map +1 -1
  154. package/cjs/util/storage.js +29 -0
  155. package/cjs/util/storage.js.map +1 -0
  156. package/cjs/util/types.js +3 -3
  157. package/cjs/util/url.js +3 -3
  158. package/cjs/util/url.js.map +1 -1
  159. package/dist/myaccount.umd.js +1 -1
  160. package/dist/myaccount.umd.js.map +1 -1
  161. package/dist/okta-auth-js.min.js +1 -1
  162. package/dist/okta-auth-js.min.js.map +1 -1
  163. package/dist/okta-auth-js.polyfill.js +1 -1
  164. package/dist/okta-auth-js.polyfill.js.map +1 -1
  165. package/dist/okta-auth-js.umd.js +1 -1
  166. package/dist/okta-auth-js.umd.js.map +1 -1
  167. package/esm/browser/OktaAuth.js +0 -3
  168. package/esm/browser/OktaAuth.js.map +1 -1
  169. package/esm/browser/OktaUserAgent.js +2 -2
  170. package/esm/browser/SavedObject.js +2 -1
  171. package/esm/browser/SavedObject.js.map +1 -1
  172. package/esm/browser/TokenManager.js.map +1 -1
  173. package/esm/browser/browser/browserStorage.js.map +1 -1
  174. package/esm/browser/idx/authenticator/OktaPassword.js +4 -4
  175. package/esm/browser/idx/authenticator/OktaPassword.js.map +1 -1
  176. package/esm/browser/idx/remediators/Base/Remediator.js.map +1 -1
  177. package/esm/browser/idx/remediators/EnrollProfile.js +26 -0
  178. package/esm/browser/idx/remediators/EnrollProfile.js.map +1 -1
  179. package/esm/browser/idx/types/idx-js.js.map +1 -1
  180. package/esm/browser/idx/util.js +10 -3
  181. package/esm/browser/idx/util.js.map +1 -1
  182. package/esm/browser/index.js +1 -0
  183. package/esm/browser/index.js.map +1 -1
  184. package/esm/browser/services/SyncStorageService.js +1 -1
  185. package/esm/browser/services/SyncStorageService.js.map +1 -1
  186. package/esm/browser/util/storage.js +26 -0
  187. package/esm/browser/util/storage.js.map +1 -0
  188. package/esm/browser/util/url.js +1 -1
  189. package/esm/browser/util/url.js.map +1 -1
  190. package/esm/node/OktaAuth.js +0 -3
  191. package/esm/node/OktaAuth.js.map +1 -1
  192. package/esm/node/OktaUserAgent.js +2 -2
  193. package/esm/node/SavedObject.js +2 -1
  194. package/esm/node/SavedObject.js.map +1 -1
  195. package/esm/node/TokenManager.js.map +1 -1
  196. package/esm/node/browser/browserStorage.js.map +1 -1
  197. package/esm/node/idx/authenticator/OktaPassword.js +4 -4
  198. package/esm/node/idx/authenticator/OktaPassword.js.map +1 -1
  199. package/esm/node/idx/remediators/Base/Remediator.js.map +1 -1
  200. package/esm/node/idx/remediators/EnrollProfile.js +26 -0
  201. package/esm/node/idx/remediators/EnrollProfile.js.map +1 -1
  202. package/esm/node/idx/types/idx-js.js.map +1 -1
  203. package/esm/node/idx/util.js +10 -3
  204. package/esm/node/idx/util.js.map +1 -1
  205. package/esm/node/index.js +1 -0
  206. package/esm/node/index.js.map +1 -1
  207. package/esm/node/server/serverStorage.js.map +1 -1
  208. package/esm/node/services/SyncStorageService.js +1 -1
  209. package/esm/node/services/SyncStorageService.js.map +1 -1
  210. package/esm/node/util/storage.js +26 -0
  211. package/esm/node/util/storage.js.map +1 -0
  212. package/esm/node/util/url.js +1 -1
  213. package/esm/node/util/url.js.map +1 -1
  214. package/esm/package.json +1 -1
  215. package/lib/idx/authenticator/OktaPassword.d.ts +1 -0
  216. package/lib/idx/remediators/EnrollProfile.d.ts +11 -0
  217. package/lib/idx/types/idx-js.d.ts +4 -0
  218. package/lib/util/index.d.ts +1 -0
  219. package/lib/util/storage.d.ts +12 -0
  220. package/package.json +15 -26
@@ -1 +1 @@
1
- {"version":3,"file":"SelectEnrollmentChannel.js","names":["SelectEnrollmentChannel","Remediator","canRemediate","channel","authenticator","id","getNextStep","authClient","context","common","options","getChannels","currentAuthenticator","value","remediation","remediationValue","form","name","getData","stateHandle","getValuesAfterProceed","values","authenticators","filterKey","trimmedValues","valueKey"],"sources":["../../../../lib/idx/remediators/SelectEnrollmentChannel.ts"],"sourcesContent":["/*!\n * Copyright (c) 2021-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 { Remediator, RemediationValues } from './Base/Remediator';\nimport { IdxRemediationValueForm, IdxOption, IdxRemediationValue, IdxContext } from '../types/idx-js';\nimport { Authenticator } from '../types';\nimport { getAuthenticatorFromRemediation } from './util';\nimport { OktaAuthIdxInterface } from '../../types';\n\n\nexport type SelectEnrollmentChannelValues = RemediationValues & {\n channel?: string;\n};\n\nexport class SelectEnrollmentChannel extends Remediator<SelectEnrollmentChannelValues> {\n static remediationName = 'select-enrollment-channel';\n\n canRemediate() {\n if (this.values.channel) {\n return true;\n }\n\n if (this.values.authenticator) {\n const { id, channel } = this.values.authenticator as Authenticator;\n if (!!id && !!channel) {\n return true;\n }\n }\n\n return false;\n }\n\n getNextStep(authClient: OktaAuthIdxInterface, context: IdxContext) {\n const common = super.getNextStep(authClient, context);\n const options = this.getChannels();\n const authenticator = context.currentAuthenticator.value;\n return {\n ...common,\n // TODO: remove options field in the next major version - OKTA-491236\n ...(options && { options }),\n authenticator,\n };\n }\n\n private getChannels(): IdxOption[] | undefined {\n const authenticator: IdxRemediationValue = getAuthenticatorFromRemediation(this.remediation);\n const remediationValue = authenticator.value as IdxRemediationValueForm;\n return remediationValue.form.value.find(({ name }) => name === 'channel')?.options;\n }\n\n getData() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediationValue = this.remediation!.value![0].value as IdxRemediationValueForm;\n return {\n authenticator: {\n id: remediationValue.form.value[0].value,\n channel: (this.values.authenticator as Authenticator)?.channel || this.values.channel,\n },\n stateHandle: this.values.stateHandle,\n\n };\n }\n\n getValuesAfterProceed(): SelectEnrollmentChannelValues {\n this.values = super.getValuesAfterProceed();\n delete this.values.authenticators; // required to prevent infinite loops from auto-remediating via values\n const filterKey = this.values.channel ? 'channel' : 'authenticator';\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== filterKey);\n return trimmedValues.reduce((values, valueKey) => ({...values, [valueKey]: this.values[valueKey]}), {});\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAaA;;AAGA;;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAcO,MAAMA,uBAAN,SAAsCC,sBAAtC,CAAgF;EAGrFC,YAAY,GAAG;IACb,IAAI,2BAAYC,OAAhB,EAAyB;MACvB,OAAO,IAAP;IACD;;IAED,IAAI,2BAAYC,aAAhB,EAA+B;MAC7B,MAAM;QAAEC,EAAF;QAAMF;MAAN,IAAkB,2BAAYC,aAApC;;MACA,IAAI,CAAC,CAACC,EAAF,IAAQ,CAAC,CAACF,OAAd,EAAuB;QACrB,OAAO,IAAP;MACD;IACF;;IAED,OAAO,KAAP;EACD;;EAEDG,WAAW,CAACC,UAAD,EAAmCC,OAAnC,EAAwD;IACjE,MAAMC,MAAM,GAAG,MAAMH,WAAN,CAAkBC,UAAlB,EAA8BC,OAA9B,CAAf;IACA,MAAME,OAAO,GAAG,KAAKC,WAAL,EAAhB;IACA,MAAMP,aAAa,GAAGI,OAAO,CAACI,oBAAR,CAA6BC,KAAnD;IACA,OAAO,EACL,GAAGJ,MADE;MAEL;MACA,IAAIC,OAAO,IAAI;QAAEA;MAAF,CAAf,CAHK;MAILN;IAJK,CAAP;EAMD;;EAEOO,WAAW,GAA4B;IAAA;;IAC7C,MAAMP,aAAkC,GAAG,2CAAgC,KAAKU,WAArC,CAA3C;IACA,MAAMC,gBAAgB,GAAGX,aAAa,CAACS,KAAvC;IACA,gCAAO,8BAAAE,gBAAgB,CAACC,IAAjB,CAAsBH,KAAtB,iBAAiC,CAAC;MAAEI;IAAF,CAAD,KAAcA,IAAI,KAAK,SAAxD,CAAP,0DAAO,sBAAoEP,OAA3E;EACD;;EAEDQ,OAAO,GAAG;IAAA;;IACR;IACA,MAAMH,gBAAgB,GAAG,KAAKD,WAAL,CAAkBD,KAAlB,CAAyB,CAAzB,EAA4BA,KAArD;IACA,OAAO;MACLT,aAAa,EAAE;QACbC,EAAE,EAAEU,gBAAgB,CAACC,IAAjB,CAAsBH,KAAtB,CAA4B,CAA5B,EAA+BA,KADtB;QAEbV,OAAO,EAAE,0BAAC,2BAAYC,aAAb,gFAA8CD,OAA9C,KAAyD,2BAAYA;MAFjE,CADV;MAKLgB,WAAW,EAAE,2BAAYA;IALpB,CAAP;EAQD;;EAEDC,qBAAqB,GAAkC;IAAA;;IACrD,KAAKC,MAAL,GAAc,MAAMD,qBAAN,EAAd;IACA,OAAO,2BAAYE,cAAnB,CAFqD,CAEf;;IACtC,MAAMC,SAAS,GAAG,2BAAYpB,OAAZ,GAAsB,SAAtB,GAAkC,eAApD;IACA,IAAIqB,aAAa,GAAG,yEAAY,IAAZ,oBAAgCC,QAAQ,IAAIA,QAAQ,KAAKF,SAAzD,CAApB;IACA,OAAO,qBAAAC,aAAa,MAAb,CAAAA,aAAa,EAAQ,CAACH,MAAD,EAASI,QAAT,MAAuB,EAAC,GAAGJ,MAAJ;MAAY,CAACI,QAAD,GAAY,2BAAYA,QAAZ;IAAxB,CAAvB,CAAR,EAAgF,EAAhF,CAApB;EACD;;AAvDoF;;;8BAA1EzB,uB,qBACc,2B"}
1
+ {"version":3,"file":"SelectEnrollmentChannel.js","names":["SelectEnrollmentChannel","Remediator","canRemediate","channel","authenticator","id","getNextStep","authClient","context","common","options","getChannels","currentAuthenticator","value","getAuthenticatorFromRemediation","remediation","remediationValue","form","name","getData","stateHandle","getValuesAfterProceed","values","authenticators","filterKey","trimmedValues","valueKey"],"sources":["../../../../lib/idx/remediators/SelectEnrollmentChannel.ts"],"sourcesContent":["/*!\n * Copyright (c) 2021-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 { Remediator, RemediationValues } from './Base/Remediator';\nimport { IdxRemediationValueForm, IdxOption, IdxRemediationValue, IdxContext } from '../types/idx-js';\nimport { Authenticator } from '../types';\nimport { getAuthenticatorFromRemediation } from './util';\nimport { OktaAuthIdxInterface } from '../../types';\n\n\nexport type SelectEnrollmentChannelValues = RemediationValues & {\n channel?: string;\n};\n\nexport class SelectEnrollmentChannel extends Remediator<SelectEnrollmentChannelValues> {\n static remediationName = 'select-enrollment-channel';\n\n canRemediate() {\n if (this.values.channel) {\n return true;\n }\n\n if (this.values.authenticator) {\n const { id, channel } = this.values.authenticator as Authenticator;\n if (!!id && !!channel) {\n return true;\n }\n }\n\n return false;\n }\n\n getNextStep(authClient: OktaAuthIdxInterface, context: IdxContext) {\n const common = super.getNextStep(authClient, context);\n const options = this.getChannels();\n const authenticator = context.currentAuthenticator.value;\n return {\n ...common,\n // TODO: remove options field in the next major version - OKTA-491236\n ...(options && { options }),\n authenticator,\n };\n }\n\n private getChannels(): IdxOption[] | undefined {\n const authenticator: IdxRemediationValue = getAuthenticatorFromRemediation(this.remediation);\n const remediationValue = authenticator.value as IdxRemediationValueForm;\n return remediationValue.form.value.find(({ name }) => name === 'channel')?.options;\n }\n\n getData() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediationValue = this.remediation!.value![0].value as IdxRemediationValueForm;\n return {\n authenticator: {\n id: remediationValue.form.value[0].value,\n channel: (this.values.authenticator as Authenticator)?.channel || this.values.channel,\n },\n stateHandle: this.values.stateHandle,\n\n };\n }\n\n getValuesAfterProceed(): SelectEnrollmentChannelValues {\n this.values = super.getValuesAfterProceed();\n delete this.values.authenticators; // required to prevent infinite loops from auto-remediating via values\n const filterKey = this.values.channel ? 'channel' : 'authenticator';\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== filterKey);\n return trimmedValues.reduce((values, valueKey) => ({...values, [valueKey]: this.values[valueKey]}), {});\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAaA;;AAGA;;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAcO,MAAMA,uBAAN,SAAsCC,sBAAtC,CAAgF;EAGrFC,YAAY,GAAG;IACb,IAAI,2BAAYC,OAAhB,EAAyB;MACvB,OAAO,IAAP;IACD;;IAED,IAAI,2BAAYC,aAAhB,EAA+B;MAC7B,MAAM;QAAEC,EAAF;QAAMF;MAAN,IAAkB,2BAAYC,aAApC;;MACA,IAAI,CAAC,CAACC,EAAF,IAAQ,CAAC,CAACF,OAAd,EAAuB;QACrB,OAAO,IAAP;MACD;IACF;;IAED,OAAO,KAAP;EACD;;EAEDG,WAAW,CAACC,UAAD,EAAmCC,OAAnC,EAAwD;IACjE,MAAMC,MAAM,GAAG,MAAMH,WAAN,CAAkBC,UAAlB,EAA8BC,OAA9B,CAAf;IACA,MAAME,OAAO,GAAG,KAAKC,WAAL,EAAhB;IACA,MAAMP,aAAa,GAAGI,OAAO,CAACI,oBAAR,CAA6BC,KAAnD;IACA,OAAO,EACL,GAAGJ,MADE;MAEL;MACA,IAAIC,OAAO,IAAI;QAAEA;MAAF,CAAf,CAHK;MAILN;IAJK,CAAP;EAMD;;EAEOO,WAAW,GAA4B;IAAA;;IAC7C,MAAMP,aAAkC,GAAG,IAAAU,qCAAA,EAAgC,KAAKC,WAArC,CAA3C;IACA,MAAMC,gBAAgB,GAAGZ,aAAa,CAACS,KAAvC;IACA,gCAAO,8BAAAG,gBAAgB,CAACC,IAAjB,CAAsBJ,KAAtB,iBAAiC,CAAC;MAAEK;IAAF,CAAD,KAAcA,IAAI,KAAK,SAAxD,CAAP,0DAAO,sBAAoER,OAA3E;EACD;;EAEDS,OAAO,GAAG;IAAA;;IACR;IACA,MAAMH,gBAAgB,GAAG,KAAKD,WAAL,CAAkBF,KAAlB,CAAyB,CAAzB,EAA4BA,KAArD;IACA,OAAO;MACLT,aAAa,EAAE;QACbC,EAAE,EAAEW,gBAAgB,CAACC,IAAjB,CAAsBJ,KAAtB,CAA4B,CAA5B,EAA+BA,KADtB;QAEbV,OAAO,EAAE,0BAAC,2BAAYC,aAAb,gFAA8CD,OAA9C,KAAyD,2BAAYA;MAFjE,CADV;MAKLiB,WAAW,EAAE,2BAAYA;IALpB,CAAP;EAQD;;EAEDC,qBAAqB,GAAkC;IAAA;;IACrD,KAAKC,MAAL,GAAc,MAAMD,qBAAN,EAAd;IACA,OAAO,2BAAYE,cAAnB,CAFqD,CAEf;;IACtC,MAAMC,SAAS,GAAG,2BAAYrB,OAAZ,GAAsB,SAAtB,GAAkC,eAApD;IACA,IAAIsB,aAAa,GAAG,yEAAY,IAAZ,oBAAgCC,QAAQ,IAAIA,QAAQ,KAAKF,SAAzD,CAApB;IACA,OAAO,qBAAAC,aAAa,MAAb,CAAAA,aAAa,EAAQ,CAACH,MAAD,EAASI,QAAT,MAAuB,EAAC,GAAGJ,MAAJ;MAAY,CAACI,QAAD,GAAY,2BAAYA,QAAZ;IAAxB,CAAvB,CAAR,EAAgF,EAAhF,CAApB;EACD;;AAvDoF;;;8BAA1E1B,uB,qBACc,2B"}
@@ -3,9 +3,9 @@
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
4
 
5
5
  exports.getAllValues = getAllValues;
6
+ exports.getAuthenticatorFromRemediation = getAuthenticatorFromRemediation;
6
7
  exports.getRequiredValues = getRequiredValues;
7
8
  exports.titleCase = titleCase;
8
- exports.getAuthenticatorFromRemediation = getAuthenticatorFromRemediation;
9
9
 
10
10
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
11
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","names":["initializeValues","options","knownOptions","values","forEach","option","initializeData","authClient","data","idx","flow","withCredentials","remediators","actions","status","IdxStatus","PENDING","getFlow","setFlow","flowSpec","getDataFromIntrospect","stateHandle","version","state","scopes","recoveryToken","activationToken","maxAge","idxResponse","meta","interactionHandle","transactionManager","clear","interactResponse","getDataFromRemediate","autoRemediate","step","shouldProceedWithEmailAuthenticator","useGenericRemediator","shouldRemediate","rawIdxState","idxResponseFromRemediation","nextStep","canceled","getTokens","interactionCode","clientId","codeVerifier","ignoreSignature","redirectUri","urls","tokenResponse","token","exchangeCodeForTokens","tokens","finalizeData","shouldSaveResponse","shouldClearTransaction","clearSharedStorage","enabledFeatures","availableSteps","messages","terminal","requestDidSucceed","stepUp","TERMINAL","hasActions","length","hasErrors","msg","class","isTerminalSuccess","CANCELED","SUCCESS","handleError","err","error","FAILURE","run","rawIdxResponse","saveIdxResponse","context","neededToProceed","proceed"],"sources":["../../../lib/idx/run.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\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 max-statements, complexity, max-depth */\nimport { interact } from './interact';\nimport { introspect } from './introspect';\nimport { remediate } from './remediate';\nimport { getFlowSpecification } from './flow';\nimport * as remediators from './remediators';\nimport { \n OktaAuthIdxInterface,\n IdxStatus,\n IdxTransaction,\n IdxFeature,\n NextStep,\n RunOptions,\n IdxTransactionMeta,\n Tokens,\n APIError,\n} from '../types';\nimport { IdxMessage, IdxResponse, isIdxResponse } from './types/idx-js';\nimport { getSavedTransactionMeta, saveTransactionMeta } from './transactionMeta';\nimport { getAvailableSteps, getEnabledFeatures, getMessagesFromResponse, isTerminalResponse } from './util';\ndeclare interface RunData {\n options: RunOptions;\n values: remediators.RemediationValues;\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 idxResponse?: IdxResponse;\n canceled?: boolean;\n interactionCode?: string;\n shouldSaveResponse?: boolean;\n shouldClearTransaction?: boolean;\n clearSharedStorage?: boolean;\n terminal?: boolean;\n}\n\nfunction initializeValues(options: RunOptions) {\n // remove known options, everything else is assumed to be a value\n const knownOptions = [\n 'flow', \n 'remediators', \n 'actions', \n 'withCredentials', \n 'step',\n 'useGenericRemediator',\n 'exchangeCodeForTokens',\n 'shouldProceedWithEmailAuthenticator'\n ];\n const values = { ...options };\n knownOptions.forEach(option => {\n delete values[option];\n });\n return values;\n}\n\nfunction initializeData(authClient, data: RunData): RunData {\n let { options } = data;\n options = {\n ...authClient.options.idx,\n ...options\n };\n let {\n flow,\n withCredentials,\n remediators,\n actions,\n } = options;\n\n const status = IdxStatus.PENDING;\n\n // certain options can be set by the flow specification\n flow = flow || authClient.idx.getFlow() || 'default';\n if (flow) {\n authClient.idx.setFlow(flow);\n const flowSpec = getFlowSpecification(authClient, flow);\n // Favor option values over flow spec\n withCredentials = (typeof withCredentials !== 'undefined') ? withCredentials : flowSpec.withCredentials;\n remediators = remediators || flowSpec.remediators;\n actions = actions || flowSpec.actions;\n }\n\n return { \n ...data,\n options: { \n ...options, \n flow, \n withCredentials, \n remediators, \n actions,\n },\n status\n };\n}\n\nasync function getDataFromIntrospect(authClient, data: RunData): Promise<RunData> {\n const { options } = data;\n const {\n stateHandle,\n withCredentials,\n version,\n state,\n scopes,\n recoveryToken,\n activationToken,\n maxAge,\n } = options;\n\n let idxResponse;\n let meta = getSavedTransactionMeta(authClient, { state, recoveryToken, activationToken }); // may be undefined\n\n if (stateHandle) {\n idxResponse = await introspect(authClient, { withCredentials, version, stateHandle });\n } else {\n let interactionHandle = meta?.interactionHandle; // may be undefined\n if (!interactionHandle) {\n // start a new transaction\n authClient.transactionManager.clear();\n const interactResponse = await interact(authClient, {\n withCredentials,\n state,\n scopes,\n activationToken,\n recoveryToken,\n maxAge,\n }); \n interactionHandle = interactResponse.interactionHandle;\n meta = interactResponse.meta;\n }\n \n // Introspect to get idx response\n idxResponse = await introspect(authClient, { withCredentials, version, interactionHandle });\n }\n return { ...data, idxResponse, meta };\n}\n\nasync function getDataFromRemediate(authClient, data: RunData): Promise<RunData> {\n let {\n idxResponse,\n options,\n values\n } = data;\n\n const {\n autoRemediate,\n remediators,\n actions,\n flow,\n step,\n shouldProceedWithEmailAuthenticator, // will be removed in next major version\n useGenericRemediator,\n } = options;\n \n const shouldRemediate = (autoRemediate !== false && (remediators || actions || step));\n if (!shouldRemediate) {\n return data;\n }\n\n values = { \n ...values, \n stateHandle: idxResponse!.rawIdxState.stateHandle \n };\n\n // Can we handle the remediations?\n const { \n idxResponse: idxResponseFromRemediation, \n nextStep,\n canceled,\n } = await remediate(\n authClient,\n idxResponse!, \n values, \n {\n remediators,\n actions,\n flow,\n step,\n shouldProceedWithEmailAuthenticator, // will be removed in next major version\n useGenericRemediator,\n }\n );\n idxResponse = idxResponseFromRemediation;\n\n return { ...data, idxResponse, nextStep, canceled };\n}\n\nasync function getTokens(authClient, data: RunData): Promise<Tokens> {\n let { meta, idxResponse } = data;\n const { interactionCode } = idxResponse as IdxResponse;\n const {\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n urls,\n scopes,\n } = meta as IdxTransactionMeta;\n const tokenResponse = await authClient.token.exchangeCodeForTokens({\n interactionCode,\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n scopes\n }, urls);\n return tokenResponse.tokens;\n}\n\nasync function finalizeData(authClient, data: RunData): Promise<RunData> {\n let {\n options,\n idxResponse,\n canceled,\n status,\n } = data;\n const { exchangeCodeForTokens } = options;\n let shouldSaveResponse = false;\n let shouldClearTransaction = false;\n let clearSharedStorage = true;\n let interactionCode;\n let tokens;\n let enabledFeatures;\n let availableSteps;\n let messages;\n let terminal;\n\n if (idxResponse) {\n shouldSaveResponse = !!(idxResponse.requestDidSucceed || idxResponse.stepUp);\n enabledFeatures = getEnabledFeatures(idxResponse);\n availableSteps = getAvailableSteps(authClient, idxResponse, options.useGenericRemediator);\n messages = getMessagesFromResponse(idxResponse, options);\n terminal = isTerminalResponse(idxResponse);\n }\n\n if (terminal) {\n status = IdxStatus.TERMINAL;\n\n // In most cases a terminal response should not clear transaction data. The user should cancel or skip to continue.\n // A terminal \"success\" is a non-error response with no further actions available.\n // In these narrow cases, saved transaction data should be cleared.\n // One example of a terminal success is when the email verify flow is continued in another tab\n const hasActions = Object.keys(idxResponse!.actions).length > 0;\n const hasErrors = !!messages.find(msg => msg.class === 'ERROR');\n const isTerminalSuccess = !hasActions && !hasErrors && idxResponse!.requestDidSucceed === true;\n if (isTerminalSuccess) {\n shouldClearTransaction = true;\n } else {\n // only save response if there are actions available (ignore messages)\n shouldSaveResponse = shouldSaveResponse && hasActions;\n }\n // leave shared storage intact so the transaction can be continued in another tab\n clearSharedStorage = false;\n } else if (canceled) {\n status = IdxStatus.CANCELED;\n shouldClearTransaction = true;\n } else if (idxResponse?.interactionCode) { \n interactionCode = idxResponse.interactionCode;\n if (exchangeCodeForTokens === false) {\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = false;\n } else {\n tokens = await getTokens(authClient, data);\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = true;\n }\n }\n return {\n ...data,\n status,\n interactionCode,\n tokens,\n shouldSaveResponse,\n shouldClearTransaction,\n clearSharedStorage,\n enabledFeatures,\n availableSteps,\n messages,\n terminal\n };\n}\n\nfunction handleError(err, data: RunData): RunData {\n let { error, status, shouldClearTransaction } = data;\n\n // current version of idx-js will throw/reject IDX responses. Handle these differently than regular errors\n if (isIdxResponse(err)) {\n error = err;\n status = IdxStatus.FAILURE;\n shouldClearTransaction = true;\n } else {\n // error is not an IDX response, throw it like a regular error\n throw err;\n }\n\n return { ...data, error, status, shouldClearTransaction };\n}\n\nexport async function run(\n authClient: OktaAuthIdxInterface, \n options: RunOptions = {},\n): Promise<IdxTransaction> {\n let data: RunData = {\n options,\n values: initializeValues(options)\n };\n\n data = initializeData(authClient, data);\n try {\n data = await getDataFromIntrospect(authClient, data);\n data = await getDataFromRemediate(authClient, data);\n } catch (err) {\n data = handleError(err, data);\n }\n data = await finalizeData(authClient, data);\n\n const {\n idxResponse,\n meta,\n shouldSaveResponse,\n shouldClearTransaction,\n clearSharedStorage,\n status,\n enabledFeatures,\n availableSteps,\n tokens,\n nextStep,\n messages,\n error,\n interactionCode\n } = data;\n\n if (shouldClearTransaction) {\n authClient.transactionManager.clear({ clearSharedStorage });\n }\n else {\n // ensures state is saved to sessionStorage\n saveTransactionMeta(authClient, { ...meta });\n\n if (shouldSaveResponse) {\n // Save intermediate idx response in storage to reduce introspect call\n const { rawIdxState: rawIdxResponse, requestDidSucceed } = idxResponse!;\n authClient.transactionManager.saveIdxResponse({\n rawIdxResponse,\n requestDidSucceed,\n stateHandle: idxResponse!.context?.stateHandle,\n interactionHandle: meta?.interactionHandle\n });\n }\n }\n \n // copy all fields from idxResponse which are needed by the widget\n const { actions, context, neededToProceed, proceed, rawIdxState, requestDidSucceed, stepUp } = idxResponse || {};\n return {\n status: status!,\n ...(meta && { meta }),\n ...(enabledFeatures && { enabledFeatures }),\n ...(availableSteps && { availableSteps }),\n ...(tokens && { tokens }),\n ...(nextStep && { nextStep }),\n ...(messages && messages.length && { messages }),\n ...(error && { error }),\n ...(stepUp && { stepUp }),\n interactionCode, // if options.exchangeCodeForTokens is false\n\n // from idx-js\n actions: actions!,\n context: context!,\n neededToProceed: neededToProceed!,\n proceed: proceed!,\n rawIdxState: rawIdxState!,\n requestDidSucceed\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"run.js","names":["initializeValues","options","knownOptions","values","forEach","option","initializeData","authClient","data","idx","flow","withCredentials","remediators","actions","status","IdxStatus","PENDING","getFlow","setFlow","flowSpec","getFlowSpecification","getDataFromIntrospect","stateHandle","version","state","scopes","recoveryToken","activationToken","maxAge","idxResponse","meta","getSavedTransactionMeta","introspect","interactionHandle","transactionManager","clear","interactResponse","interact","getDataFromRemediate","autoRemediate","step","shouldProceedWithEmailAuthenticator","useGenericRemediator","shouldRemediate","rawIdxState","idxResponseFromRemediation","nextStep","canceled","remediate","getTokens","interactionCode","clientId","codeVerifier","ignoreSignature","redirectUri","urls","tokenResponse","token","exchangeCodeForTokens","tokens","finalizeData","shouldSaveResponse","shouldClearTransaction","clearSharedStorage","enabledFeatures","availableSteps","messages","terminal","requestDidSucceed","stepUp","getEnabledFeatures","getAvailableSteps","getMessagesFromResponse","isTerminalResponse","TERMINAL","hasActions","length","hasErrors","msg","class","isTerminalSuccess","CANCELED","SUCCESS","handleError","err","error","isIdxResponse","FAILURE","run","saveTransactionMeta","rawIdxResponse","saveIdxResponse","context","neededToProceed","proceed"],"sources":["../../../lib/idx/run.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\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 max-statements, complexity, max-depth */\nimport { interact } from './interact';\nimport { introspect } from './introspect';\nimport { remediate } from './remediate';\nimport { getFlowSpecification } from './flow';\nimport * as remediators from './remediators';\nimport { \n OktaAuthIdxInterface,\n IdxStatus,\n IdxTransaction,\n IdxFeature,\n NextStep,\n RunOptions,\n IdxTransactionMeta,\n Tokens,\n APIError,\n} from '../types';\nimport { IdxMessage, IdxResponse, isIdxResponse } from './types/idx-js';\nimport { getSavedTransactionMeta, saveTransactionMeta } from './transactionMeta';\nimport { getAvailableSteps, getEnabledFeatures, getMessagesFromResponse, isTerminalResponse } from './util';\ndeclare interface RunData {\n options: RunOptions;\n values: remediators.RemediationValues;\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 idxResponse?: IdxResponse;\n canceled?: boolean;\n interactionCode?: string;\n shouldSaveResponse?: boolean;\n shouldClearTransaction?: boolean;\n clearSharedStorage?: boolean;\n terminal?: boolean;\n}\n\nfunction initializeValues(options: RunOptions) {\n // remove known options, everything else is assumed to be a value\n const knownOptions = [\n 'flow', \n 'remediators', \n 'actions', \n 'withCredentials', \n 'step',\n 'useGenericRemediator',\n 'exchangeCodeForTokens',\n 'shouldProceedWithEmailAuthenticator'\n ];\n const values = { ...options };\n knownOptions.forEach(option => {\n delete values[option];\n });\n return values;\n}\n\nfunction initializeData(authClient, data: RunData): RunData {\n let { options } = data;\n options = {\n ...authClient.options.idx,\n ...options\n };\n let {\n flow,\n withCredentials,\n remediators,\n actions,\n } = options;\n\n const status = IdxStatus.PENDING;\n\n // certain options can be set by the flow specification\n flow = flow || authClient.idx.getFlow() || 'default';\n if (flow) {\n authClient.idx.setFlow(flow);\n const flowSpec = getFlowSpecification(authClient, flow);\n // Favor option values over flow spec\n withCredentials = (typeof withCredentials !== 'undefined') ? withCredentials : flowSpec.withCredentials;\n remediators = remediators || flowSpec.remediators;\n actions = actions || flowSpec.actions;\n }\n\n return { \n ...data,\n options: { \n ...options, \n flow, \n withCredentials, \n remediators, \n actions,\n },\n status\n };\n}\n\nasync function getDataFromIntrospect(authClient, data: RunData): Promise<RunData> {\n const { options } = data;\n const {\n stateHandle,\n withCredentials,\n version,\n state,\n scopes,\n recoveryToken,\n activationToken,\n maxAge,\n } = options;\n\n let idxResponse;\n let meta = getSavedTransactionMeta(authClient, { state, recoveryToken, activationToken }); // may be undefined\n\n if (stateHandle) {\n idxResponse = await introspect(authClient, { withCredentials, version, stateHandle });\n } else {\n let interactionHandle = meta?.interactionHandle; // may be undefined\n if (!interactionHandle) {\n // start a new transaction\n authClient.transactionManager.clear();\n const interactResponse = await interact(authClient, {\n withCredentials,\n state,\n scopes,\n activationToken,\n recoveryToken,\n maxAge,\n }); \n interactionHandle = interactResponse.interactionHandle;\n meta = interactResponse.meta;\n }\n \n // Introspect to get idx response\n idxResponse = await introspect(authClient, { withCredentials, version, interactionHandle });\n }\n return { ...data, idxResponse, meta };\n}\n\nasync function getDataFromRemediate(authClient, data: RunData): Promise<RunData> {\n let {\n idxResponse,\n options,\n values\n } = data;\n\n const {\n autoRemediate,\n remediators,\n actions,\n flow,\n step,\n shouldProceedWithEmailAuthenticator, // will be removed in next major version\n useGenericRemediator,\n } = options;\n \n const shouldRemediate = (autoRemediate !== false && (remediators || actions || step));\n if (!shouldRemediate) {\n return data;\n }\n\n values = { \n ...values, \n stateHandle: idxResponse!.rawIdxState.stateHandle \n };\n\n // Can we handle the remediations?\n const { \n idxResponse: idxResponseFromRemediation, \n nextStep,\n canceled,\n } = await remediate(\n authClient,\n idxResponse!, \n values, \n {\n remediators,\n actions,\n flow,\n step,\n shouldProceedWithEmailAuthenticator, // will be removed in next major version\n useGenericRemediator,\n }\n );\n idxResponse = idxResponseFromRemediation;\n\n return { ...data, idxResponse, nextStep, canceled };\n}\n\nasync function getTokens(authClient, data: RunData): Promise<Tokens> {\n let { meta, idxResponse } = data;\n const { interactionCode } = idxResponse as IdxResponse;\n const {\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n urls,\n scopes,\n } = meta as IdxTransactionMeta;\n const tokenResponse = await authClient.token.exchangeCodeForTokens({\n interactionCode,\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n scopes\n }, urls);\n return tokenResponse.tokens;\n}\n\nasync function finalizeData(authClient, data: RunData): Promise<RunData> {\n let {\n options,\n idxResponse,\n canceled,\n status,\n } = data;\n const { exchangeCodeForTokens } = options;\n let shouldSaveResponse = false;\n let shouldClearTransaction = false;\n let clearSharedStorage = true;\n let interactionCode;\n let tokens;\n let enabledFeatures;\n let availableSteps;\n let messages;\n let terminal;\n\n if (idxResponse) {\n shouldSaveResponse = !!(idxResponse.requestDidSucceed || idxResponse.stepUp);\n enabledFeatures = getEnabledFeatures(idxResponse);\n availableSteps = getAvailableSteps(authClient, idxResponse, options.useGenericRemediator);\n messages = getMessagesFromResponse(idxResponse, options);\n terminal = isTerminalResponse(idxResponse);\n }\n\n if (terminal) {\n status = IdxStatus.TERMINAL;\n\n // In most cases a terminal response should not clear transaction data. The user should cancel or skip to continue.\n // A terminal \"success\" is a non-error response with no further actions available.\n // In these narrow cases, saved transaction data should be cleared.\n // One example of a terminal success is when the email verify flow is continued in another tab\n const hasActions = Object.keys(idxResponse!.actions).length > 0;\n const hasErrors = !!messages.find(msg => msg.class === 'ERROR');\n const isTerminalSuccess = !hasActions && !hasErrors && idxResponse!.requestDidSucceed === true;\n if (isTerminalSuccess) {\n shouldClearTransaction = true;\n } else {\n // only save response if there are actions available (ignore messages)\n shouldSaveResponse = shouldSaveResponse && hasActions;\n }\n // leave shared storage intact so the transaction can be continued in another tab\n clearSharedStorage = false;\n } else if (canceled) {\n status = IdxStatus.CANCELED;\n shouldClearTransaction = true;\n } else if (idxResponse?.interactionCode) { \n interactionCode = idxResponse.interactionCode;\n if (exchangeCodeForTokens === false) {\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = false;\n } else {\n tokens = await getTokens(authClient, data);\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = true;\n }\n }\n return {\n ...data,\n status,\n interactionCode,\n tokens,\n shouldSaveResponse,\n shouldClearTransaction,\n clearSharedStorage,\n enabledFeatures,\n availableSteps,\n messages,\n terminal\n };\n}\n\nfunction handleError(err, data: RunData): RunData {\n let { error, status, shouldClearTransaction } = data;\n\n // current version of idx-js will throw/reject IDX responses. Handle these differently than regular errors\n if (isIdxResponse(err)) {\n error = err;\n status = IdxStatus.FAILURE;\n shouldClearTransaction = true;\n } else {\n // error is not an IDX response, throw it like a regular error\n throw err;\n }\n\n return { ...data, error, status, shouldClearTransaction };\n}\n\nexport async function run(\n authClient: OktaAuthIdxInterface, \n options: RunOptions = {},\n): Promise<IdxTransaction> {\n let data: RunData = {\n options,\n values: initializeValues(options)\n };\n\n data = initializeData(authClient, data);\n try {\n data = await getDataFromIntrospect(authClient, data);\n data = await getDataFromRemediate(authClient, data);\n } catch (err) {\n data = handleError(err, data);\n }\n data = await finalizeData(authClient, data);\n\n const {\n idxResponse,\n meta,\n shouldSaveResponse,\n shouldClearTransaction,\n clearSharedStorage,\n status,\n enabledFeatures,\n availableSteps,\n tokens,\n nextStep,\n messages,\n error,\n interactionCode\n } = data;\n\n if (shouldClearTransaction) {\n authClient.transactionManager.clear({ clearSharedStorage });\n }\n else {\n // ensures state is saved to sessionStorage\n saveTransactionMeta(authClient, { ...meta });\n\n if (shouldSaveResponse) {\n // Save intermediate idx response in storage to reduce introspect call\n const { rawIdxState: rawIdxResponse, requestDidSucceed } = idxResponse!;\n authClient.transactionManager.saveIdxResponse({\n rawIdxResponse,\n requestDidSucceed,\n stateHandle: idxResponse!.context?.stateHandle,\n interactionHandle: meta?.interactionHandle\n });\n }\n }\n \n // copy all fields from idxResponse which are needed by the widget\n const { actions, context, neededToProceed, proceed, rawIdxState, requestDidSucceed, stepUp } = idxResponse || {};\n return {\n status: status!,\n ...(meta && { meta }),\n ...(enabledFeatures && { enabledFeatures }),\n ...(availableSteps && { availableSteps }),\n ...(tokens && { tokens }),\n ...(nextStep && { nextStep }),\n ...(messages && messages.length && { messages }),\n ...(error && { error }),\n ...(stepUp && { stepUp }),\n interactionCode, // if options.exchangeCodeForTokens is false\n\n // from idx-js\n actions: actions!,\n context: context!,\n neededToProceed: neededToProceed!,\n proceed: proceed!,\n rawIdxState: rawIdxState!,\n requestDidSucceed\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"startTransaction.js","names":["startTransaction","authClient","options","transactionManager","clear","exchangeCodeForTokens"],"sources":["../../../lib/idx/startTransaction.ts"],"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 { run } from './run';\nimport { OktaAuthIdxInterface, IdxTransaction, StartOptions } from '../types';\n\nexport async function startTransaction(\n authClient: OktaAuthIdxInterface, \n options: StartOptions = {}\n): Promise<IdxTransaction> {\n // Clear IDX response cache and saved transaction meta (if any)\n authClient.transactionManager.clear();\n\n return run(authClient, {\n exchangeCodeForTokens: false,\n ...options\n });\n}\n"],"mappings":";;;;AAaA;;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMO,eAAeA,gBAAf,CACLC,UADK,EAELC,OAAqB,GAAG,EAFnB,EAGoB;EACzB;EACAD,UAAU,CAACE,kBAAX,CAA8BC,KAA9B;EAEA,OAAO,cAAIH,UAAJ,EAAgB;IACrBI,qBAAqB,EAAE,KADF;IAErB,GAAGH;EAFkB,CAAhB,CAAP;AAID"}
1
+ {"version":3,"file":"startTransaction.js","names":["startTransaction","authClient","options","transactionManager","clear","run","exchangeCodeForTokens"],"sources":["../../../lib/idx/startTransaction.ts"],"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 { run } from './run';\nimport { OktaAuthIdxInterface, IdxTransaction, StartOptions } from '../types';\n\nexport async function startTransaction(\n authClient: OktaAuthIdxInterface, \n options: StartOptions = {}\n): Promise<IdxTransaction> {\n // Clear IDX response cache and saved transaction meta (if any)\n authClient.transactionManager.clear();\n\n return run(authClient, {\n exchangeCodeForTokens: false,\n ...options\n });\n}\n"],"mappings":";;;;AAaA;;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMO,eAAeA,gBAAf,CACLC,UADK,EAELC,OAAqB,GAAG,EAFnB,EAGoB;EACzB;EACAD,UAAU,CAACE,kBAAX,CAA8BC,KAA9B;EAEA,OAAO,IAAAC,QAAA,EAAIJ,UAAJ,EAAgB;IACrBK,qBAAqB,EAAE,KADF;IAErB,GAAGJ;EAFkB,CAAhB,CAAP;AAID"}
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
 
3
+ exports.clearTransactionMeta = clearTransactionMeta;
3
4
  exports.createTransactionMeta = createTransactionMeta;
4
- exports.hasSavedInteractionHandle = hasSavedInteractionHandle;
5
5
  exports.getSavedTransactionMeta = getSavedTransactionMeta;
6
6
  exports.getTransactionMeta = getTransactionMeta;
7
- exports.saveTransactionMeta = saveTransactionMeta;
8
- exports.clearTransactionMeta = clearTransactionMeta;
7
+ exports.hasSavedInteractionHandle = hasSavedInteractionHandle;
9
8
  exports.isTransactionMetaValid = isTransactionMetaValid;
10
9
  exports.isTransactionMetaValidForFlow = isTransactionMetaValidForFlow;
11
10
  exports.isTransactionMetaValidForOptions = isTransactionMetaValidForOptions;
11
+ exports.saveTransactionMeta = saveTransactionMeta;
12
12
 
13
13
  var _util = require("../util");
14
14
 
@@ -1 +1 @@
1
- {"version":3,"file":"transactionMeta.js","names":["createTransactionMeta","authClient","options","tokenParams","token","prepareTokenParams","pkceMeta","flow","withCredentials","activationToken","undefined","recoveryToken","maxAge","meta","hasSavedInteractionHandle","savedMeta","getSavedTransactionMeta","interactionHandle","transactionManager","load","e","isTransactionMetaValid","getTransactionMeta","validExistingMeta","saveTransactionMeta","save","muteWarning","clearTransactionMeta","clear","keys","isTransactionMetaValidForOptions","isTransactionMetaValidForFlow","shouldValidateFlow","mismatch","some","key","value"],"sources":["../../../lib/idx/transactionMeta.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2021, 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 { OktaAuthIdxInterface, IdxTransactionMeta, TransactionMetaOptions, PKCETransactionMeta } from '../types';\nimport { removeNils, warn } from '../util';\nimport { createOAuthMeta } from '../oidc';\n\n// Calculate new values\nexport async function createTransactionMeta(\n authClient: OktaAuthIdxInterface,\n options: TransactionMetaOptions = {}\n): Promise<IdxTransactionMeta> {\n const tokenParams = await authClient.token.prepareTokenParams(options);\n const pkceMeta = createOAuthMeta(authClient, tokenParams) as PKCETransactionMeta;\n let {\n flow = 'default',\n withCredentials = true,\n activationToken = undefined,\n recoveryToken = undefined,\n maxAge = undefined,\n } = { ...authClient.options, ...options }; // local options override SDK options\n\n const meta: IdxTransactionMeta = {\n ...pkceMeta,\n flow,\n withCredentials,\n activationToken,\n recoveryToken,\n maxAge\n };\n return meta;\n}\n\nexport function hasSavedInteractionHandle(authClient: OktaAuthIdxInterface, options?: TransactionMetaOptions): boolean {\n const savedMeta = getSavedTransactionMeta(authClient, options);\n if (savedMeta?.interactionHandle) {\n return true;\n }\n return false;\n}\n\n// Returns the saved transaction meta, if it exists and is valid\nexport function getSavedTransactionMeta(\n authClient: OktaAuthIdxInterface,\n options?: TransactionMetaOptions\n): IdxTransactionMeta | undefined {\n options = removeNils(options);\n options = { ...authClient.options, ...options }; // local options override SDK options\n let savedMeta;\n try {\n savedMeta = authClient.transactionManager.load(options) as IdxTransactionMeta;\n } catch (e) {\n // ignore errors here\n }\n\n if (!savedMeta) {\n return;\n }\n\n if (isTransactionMetaValid(savedMeta, options)) {\n return savedMeta;\n }\n\n // existing meta is not valid for this configuration\n // this is common when changing configuration in local development environment\n // in a production environment, this may indicate that two apps are sharing a storage key\n warn('Saved transaction meta does not match the current configuration. ' + \n 'This may indicate that two apps are sharing a storage key.');\n\n}\n\nexport async function getTransactionMeta(\n authClient: OktaAuthIdxInterface,\n options?: TransactionMetaOptions\n): Promise<IdxTransactionMeta> {\n options = removeNils(options);\n options = { ...authClient.options, ...options }; // local options override SDK options\n // Load existing transaction meta from storage\n const validExistingMeta = getSavedTransactionMeta(authClient, options);\n if (validExistingMeta) {\n return validExistingMeta;\n }\n // No existing? Create new transaction meta.\n return createTransactionMeta(authClient, options);\n}\n\nexport function saveTransactionMeta (authClient: OktaAuthIdxInterface, meta): void {\n authClient.transactionManager.save(meta, { muteWarning: true });\n}\n\nexport function clearTransactionMeta (authClient: OktaAuthIdxInterface): void {\n authClient.transactionManager.clear();\n}\n\nexport function isTransactionMetaValid (meta, options: TransactionMetaOptions = {}): boolean {\n // Validate against certain options. If these exist in options, they must match in meta\n const keys = [\n 'issuer',\n 'clientId',\n 'redirectUri',\n 'state',\n 'codeChallenge',\n 'codeChallengeMethod',\n 'activationToken',\n 'recoveryToken'\n ];\n if (isTransactionMetaValidForOptions(meta, options, keys) === false) {\n return false;\n }\n\n // Validate configured flow\n const { flow } = options;\n if (isTransactionMetaValidForFlow(meta, flow) === false) {\n return false;\n }\n\n return true;\n}\n\nexport function isTransactionMetaValidForFlow(meta, flow) {\n // Specific flows should not share transaction data\n const shouldValidateFlow = flow && flow !== 'default' && flow !== 'proceed';\n if (shouldValidateFlow) {\n if (flow !== meta.flow) {\n // The flow has changed; abandon the old transaction\n return false;\n }\n }\n return true;\n}\n\nexport function isTransactionMetaValidForOptions(meta, options, keys) {\n // returns false if values in meta do not match options\n // if the option does not have a value for a specific key, it is ignored\n const mismatch = keys.some(key => {\n const value = options[key];\n if (value && value !== meta[key]) {\n return true;\n }\n });\n return !mismatch;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"transactionMeta.js","names":["createTransactionMeta","authClient","options","tokenParams","token","prepareTokenParams","pkceMeta","createOAuthMeta","flow","withCredentials","activationToken","undefined","recoveryToken","maxAge","meta","hasSavedInteractionHandle","savedMeta","getSavedTransactionMeta","interactionHandle","removeNils","transactionManager","load","e","isTransactionMetaValid","warn","getTransactionMeta","validExistingMeta","saveTransactionMeta","save","muteWarning","clearTransactionMeta","clear","keys","isTransactionMetaValidForOptions","isTransactionMetaValidForFlow","shouldValidateFlow","mismatch","some","key","value"],"sources":["../../../lib/idx/transactionMeta.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2021, 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 { OktaAuthIdxInterface, IdxTransactionMeta, TransactionMetaOptions, PKCETransactionMeta } from '../types';\nimport { removeNils, warn } from '../util';\nimport { createOAuthMeta } from '../oidc';\n\n// Calculate new values\nexport async function createTransactionMeta(\n authClient: OktaAuthIdxInterface,\n options: TransactionMetaOptions = {}\n): Promise<IdxTransactionMeta> {\n const tokenParams = await authClient.token.prepareTokenParams(options);\n const pkceMeta = createOAuthMeta(authClient, tokenParams) as PKCETransactionMeta;\n let {\n flow = 'default',\n withCredentials = true,\n activationToken = undefined,\n recoveryToken = undefined,\n maxAge = undefined,\n } = { ...authClient.options, ...options }; // local options override SDK options\n\n const meta: IdxTransactionMeta = {\n ...pkceMeta,\n flow,\n withCredentials,\n activationToken,\n recoveryToken,\n maxAge\n };\n return meta;\n}\n\nexport function hasSavedInteractionHandle(authClient: OktaAuthIdxInterface, options?: TransactionMetaOptions): boolean {\n const savedMeta = getSavedTransactionMeta(authClient, options);\n if (savedMeta?.interactionHandle) {\n return true;\n }\n return false;\n}\n\n// Returns the saved transaction meta, if it exists and is valid\nexport function getSavedTransactionMeta(\n authClient: OktaAuthIdxInterface,\n options?: TransactionMetaOptions\n): IdxTransactionMeta | undefined {\n options = removeNils(options);\n options = { ...authClient.options, ...options }; // local options override SDK options\n let savedMeta;\n try {\n savedMeta = authClient.transactionManager.load(options) as IdxTransactionMeta;\n } catch (e) {\n // ignore errors here\n }\n\n if (!savedMeta) {\n return;\n }\n\n if (isTransactionMetaValid(savedMeta, options)) {\n return savedMeta;\n }\n\n // existing meta is not valid for this configuration\n // this is common when changing configuration in local development environment\n // in a production environment, this may indicate that two apps are sharing a storage key\n warn('Saved transaction meta does not match the current configuration. ' + \n 'This may indicate that two apps are sharing a storage key.');\n\n}\n\nexport async function getTransactionMeta(\n authClient: OktaAuthIdxInterface,\n options?: TransactionMetaOptions\n): Promise<IdxTransactionMeta> {\n options = removeNils(options);\n options = { ...authClient.options, ...options }; // local options override SDK options\n // Load existing transaction meta from storage\n const validExistingMeta = getSavedTransactionMeta(authClient, options);\n if (validExistingMeta) {\n return validExistingMeta;\n }\n // No existing? Create new transaction meta.\n return createTransactionMeta(authClient, options);\n}\n\nexport function saveTransactionMeta (authClient: OktaAuthIdxInterface, meta): void {\n authClient.transactionManager.save(meta, { muteWarning: true });\n}\n\nexport function clearTransactionMeta (authClient: OktaAuthIdxInterface): void {\n authClient.transactionManager.clear();\n}\n\nexport function isTransactionMetaValid (meta, options: TransactionMetaOptions = {}): boolean {\n // Validate against certain options. If these exist in options, they must match in meta\n const keys = [\n 'issuer',\n 'clientId',\n 'redirectUri',\n 'state',\n 'codeChallenge',\n 'codeChallengeMethod',\n 'activationToken',\n 'recoveryToken'\n ];\n if (isTransactionMetaValidForOptions(meta, options, keys) === false) {\n return false;\n }\n\n // Validate configured flow\n const { flow } = options;\n if (isTransactionMetaValidForFlow(meta, flow) === false) {\n return false;\n }\n\n return true;\n}\n\nexport function isTransactionMetaValidForFlow(meta, flow) {\n // Specific flows should not share transaction data\n const shouldValidateFlow = flow && flow !== 'default' && flow !== 'proceed';\n if (shouldValidateFlow) {\n if (flow !== meta.flow) {\n // The flow has changed; abandon the old transaction\n return false;\n }\n }\n return true;\n}\n\nexport function isTransactionMetaValidForOptions(meta, options, keys) {\n // returns false if values in meta do not match options\n // if the option does not have a value for a specific key, it is ignored\n const mismatch = keys.some(key => {\n const value = options[key];\n if (value && value !== meta[key]) {\n return true;\n }\n });\n return !mismatch;\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ exports.IdxStatus = exports.IdxFeature = exports.AuthenticatorKey = void 0;
3
4
  exports.isAuthenticator = isAuthenticator;
4
- exports.IdxFeature = exports.AuthenticatorKey = exports.IdxStatus = void 0;
5
5
  let IdxStatus;
6
6
  exports.IdxStatus = IdxStatus;
7
7
 
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
- exports.isRawIdxResponse = isRawIdxResponse;
4
3
  exports.isIdxResponse = isIdxResponse;
4
+ exports.isRawIdxResponse = isRawIdxResponse;
5
5
 
6
6
  /* eslint-disable no-use-before-define */
7
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"idx-js.js","names":["isRawIdxResponse","obj","version","isIdxResponse","rawIdxState"],"sources":["../../../../lib/idx/types/idx-js.ts"],"sourcesContent":["/* eslint-disable no-use-before-define */\n/*!\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 { Input } from './api';\n\n\n// TODO: remove when idx-js provides type information\n\nexport interface ChallengeData {\n challenge: string; \n userVerification: string; \n extensions?: {\n appid: string;\n };\n}\nexport interface ActivationData {\n challenge: string;\n rp: {\n name: string;\n };\n user: {\n id: string;\n name: string;\n displayName: string;\n };\n pubKeyCredParams: {\n type: string;\n alg: number;\n }[];\n attestation?: string;\n authenticatorSelection?: {\n userVerification?: string;\n authenticatorAttachment?: string;\n requireResidentKey?: boolean;\n residentKey?: string;\n };\n excludeCredentials?: {\n id: string;\n type: string;\n }[];\n}\nexport interface IdxAuthenticatorMethod {\n type: string;\n}\nexport interface IdxAuthenticator {\n displayName: string;\n id: string;\n key: string;\n methods: IdxAuthenticatorMethod[];\n type: string;\n settings?: {\n complexity?: unknown;\n age?: unknown;\n };\n contextualData?: {\n enrolledQuestion?: {\n question: string;\n questionKey: string;\n };\n qrcode?: { \n href: string; \n method: string; \n type: string; \n };\n sharedSecret?: string;\n questions?: {\n questionKey: string;\n question: string;\n }[];\n questionKeys?: string[];\n selectedChannel?: string;\n activationData?: ActivationData;\n challengeData?: ChallengeData;\n };\n credentialId?: string;\n enrollmentId?: string;\n profile?: Record<string, unknown>;\n resend?: Record<string, unknown>;\n poll?: Record<string, unknown>;\n recover?: Record<string, unknown>;\n}\n\nexport interface IdxForm {\n value: IdxRemediationValue[];\n}\n\nexport interface IdxOption {\n value: string | {form: IdxForm} | Input[];\n label: string;\n relatesTo?: IdxAuthenticator;\n}\n\nexport interface IdpConfig {\n id: string;\n name: string;\n}\n\nexport interface IdxRemediationValueForm {\n form: IdxForm;\n}\n\nexport interface IdxRemediationValue {\n name: string;\n type?: string;\n required?: boolean;\n secret?: boolean;\n visible?: boolean;\n mutable?: boolean;\n value?: string | IdxRemediationValueForm;\n label?: string;\n form?: IdxForm;\n options?: IdxOption[];\n messages?: IdxMessages;\n minLength?: number;\n maxLength?: number;\n}\n\nexport interface IdxRemediation {\n name: string;\n label?: string;\n value?: IdxRemediationValue[];\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n idp?: IdpConfig;\n href?: string;\n method?: string;\n type?: string;\n accepts?: string;\n produces?: string;\n refresh?: number;\n rel?: string[];\n action?: (payload?: IdxActionParams) => Promise<IdxResponse>;\n}\n\nexport interface IdxContext {\n version: string;\n stateHandle: string;\n expiresAt: string;\n intent: string;\n currentAuthenticator: {\n type: string;\n value: IdxAuthenticator;\n };\n authenticators: {\n type: string;\n value: IdxAuthenticator[];\n };\n authenticatorEnrollments: {\n type: string;\n value: IdxAuthenticator[];\n };\n enrollmentAuthenticator: {\n type: string;\n value: IdxAuthenticator;\n };\n user?: {\n type: string;\n value: Record<string, unknown>;\n };\n app: {\n type: string;\n value: Record<string, unknown>;\n };\n messages?: IdxMessages;\n success?: IdxRemediation;\n failure?: IdxRemediation;\n}\n\nexport interface IdxMessage {\n message: string;\n class: string;\n i18n: {\n key: string;\n params?: unknown[];\n };\n}\n\nexport interface IdxMessages {\n type: 'array';\n value: IdxMessage[];\n}\n\n// JSON response from the server\nexport interface RawIdxResponse {\n version: string;\n stateHandle: string;\n intent?: string;\n expiresAt?: string;\n remediation?: {\n type: 'array';\n value: IdxRemediation[];\n };\n messages?: IdxMessages;\n success?: boolean;\n successWithInteractionCode?: IdxRemediation;\n currentAuthenticator?: {\n type: string;\n value: IdxAuthenticator;\n };\n currentAuthenticatorEnrollment?: {\n type: string;\n value: IdxAuthenticator;\n };\n}\n\nexport function isRawIdxResponse(obj: any): obj is RawIdxResponse {\n return obj && obj.version;\n}\n\nexport interface IdxActionParams {\n [key: string]: string | boolean | number | object;\n}\n\nexport interface IdxActions {\n [key: string]: (params?: IdxActionParams) => Promise<IdxResponse>;\n}\n\nexport interface IdxToPersist {\n interactionHandle?: string;\n withCredentials?: boolean;\n}\n\nexport interface IdxActionFunction {\n (params: IdxActionParams): Promise<IdxResponse>;\n neededParams?: Array<Array<IdxRemediationValue>>;\n}\n\nexport interface IdxResponse {\n proceed: (remediationName: string, params: unknown) => Promise<IdxResponse>;\n neededToProceed: IdxRemediation[];\n rawIdxState: RawIdxResponse;\n interactionCode?: string;\n actions: IdxActions;\n toPersist: IdxToPersist;\n context?: IdxContext;\n requestDidSucceed?: boolean;\n stepUp?: boolean;\n}\n\nexport function isIdxResponse(obj: any): obj is IdxResponse {\n return obj && isRawIdxResponse(obj.rawIdxState);\n}\n"],"mappings":";;;;;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAkLA;AAuBO,SAASA,gBAAT,CAA0BC,GAA1B,EAA2D;EAChE,OAAOA,GAAG,IAAIA,GAAG,CAACC,OAAlB;AACD;;AAgCM,SAASC,aAAT,CAAuBF,GAAvB,EAAqD;EAC1D,OAAOA,GAAG,IAAID,gBAAgB,CAACC,GAAG,CAACG,WAAL,CAA9B;AACD"}
1
+ {"version":3,"file":"idx-js.js","names":["isRawIdxResponse","obj","version","isIdxResponse","rawIdxState"],"sources":["../../../../lib/idx/types/idx-js.ts"],"sourcesContent":["/* eslint-disable no-use-before-define */\n/*!\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 { Input } from './api';\n\n\n// TODO: remove when idx-js provides type information\n\nexport interface ChallengeData {\n challenge: string; \n userVerification: string; \n extensions?: {\n appid: string;\n };\n}\nexport interface ActivationData {\n challenge: string;\n rp: {\n name: string;\n };\n user: {\n id: string;\n name: string;\n displayName: string;\n };\n pubKeyCredParams: {\n type: string;\n alg: number;\n }[];\n attestation?: string;\n authenticatorSelection?: {\n userVerification?: string;\n authenticatorAttachment?: string;\n requireResidentKey?: boolean;\n residentKey?: string;\n };\n excludeCredentials?: {\n id: string;\n type: string;\n }[];\n}\nexport interface IdxAuthenticatorMethod {\n type: string;\n}\nexport interface IdxAuthenticator {\n displayName: string;\n id: string;\n key: string;\n methods: IdxAuthenticatorMethod[];\n type: string;\n settings?: {\n complexity?: unknown;\n age?: unknown;\n };\n contextualData?: {\n enrolledQuestion?: {\n question: string;\n questionKey: string;\n };\n qrcode?: { \n href: string; \n method: string; \n type: string; \n };\n sharedSecret?: string;\n questions?: {\n questionKey: string;\n question: string;\n }[];\n questionKeys?: string[];\n selectedChannel?: string;\n activationData?: ActivationData;\n challengeData?: ChallengeData;\n };\n credentialId?: string;\n enrollmentId?: string;\n profile?: Record<string, unknown>;\n resend?: Record<string, unknown>;\n poll?: Record<string, unknown>;\n recover?: Record<string, unknown>;\n}\n\nexport interface IdxForm {\n value: IdxRemediationValue[];\n}\n\nexport interface IdxOption {\n value: string | {form: IdxForm} | Input[];\n label: string;\n relatesTo?: IdxAuthenticator;\n}\n\nexport interface IdpConfig {\n id: string;\n name: string;\n}\n\nexport interface IdxRemediationValueForm {\n form: IdxForm;\n}\n\nexport interface IdxRemediationValue {\n name: string;\n type?: string;\n required?: boolean;\n secret?: boolean;\n visible?: boolean;\n mutable?: boolean;\n value?: string | IdxRemediationValueForm;\n label?: string;\n form?: IdxForm;\n options?: IdxOption[];\n messages?: IdxMessages;\n minLength?: number;\n maxLength?: number;\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n}\n\nexport interface IdxRemediation {\n name: string;\n label?: string;\n value?: IdxRemediationValue[];\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n idp?: IdpConfig;\n href?: string;\n method?: string;\n type?: string;\n accepts?: string;\n produces?: string;\n refresh?: number;\n rel?: string[];\n action?: (payload?: IdxActionParams) => Promise<IdxResponse>;\n}\n\nexport interface IdxContext {\n version: string;\n stateHandle: string;\n expiresAt: string;\n intent: string;\n currentAuthenticator: {\n type: string;\n value: IdxAuthenticator;\n };\n authenticators: {\n type: string;\n value: IdxAuthenticator[];\n };\n authenticatorEnrollments: {\n type: string;\n value: IdxAuthenticator[];\n };\n enrollmentAuthenticator: {\n type: string;\n value: IdxAuthenticator;\n };\n user?: {\n type: string;\n value: Record<string, unknown>;\n };\n app: {\n type: string;\n value: Record<string, unknown>;\n };\n messages?: IdxMessages;\n success?: IdxRemediation;\n failure?: IdxRemediation;\n}\n\nexport interface IdxMessage {\n message: string;\n class: string;\n i18n: {\n key: string;\n params?: unknown[];\n };\n}\n\nexport interface IdxMessages {\n type: 'array';\n value: IdxMessage[];\n}\n\n// JSON response from the server\nexport interface RawIdxResponse {\n version: string;\n stateHandle: string;\n intent?: string;\n expiresAt?: string;\n remediation?: {\n type: 'array';\n value: IdxRemediation[];\n };\n messages?: IdxMessages;\n success?: boolean;\n successWithInteractionCode?: IdxRemediation;\n currentAuthenticator?: {\n type: string;\n value: IdxAuthenticator;\n };\n currentAuthenticatorEnrollment?: {\n type: string;\n value: IdxAuthenticator;\n };\n}\n\nexport function isRawIdxResponse(obj: any): obj is RawIdxResponse {\n return obj && obj.version;\n}\n\nexport interface IdxActionParams {\n [key: string]: string | boolean | number | object;\n}\n\nexport interface IdxActions {\n [key: string]: (params?: IdxActionParams) => Promise<IdxResponse>;\n}\n\nexport interface IdxToPersist {\n interactionHandle?: string;\n withCredentials?: boolean;\n}\n\nexport interface IdxActionFunction {\n (params: IdxActionParams): Promise<IdxResponse>;\n neededParams?: Array<Array<IdxRemediationValue>>;\n}\n\nexport interface IdxResponse {\n proceed: (remediationName: string, params: unknown) => Promise<IdxResponse>;\n neededToProceed: IdxRemediation[];\n rawIdxState: RawIdxResponse;\n interactionCode?: string;\n actions: IdxActions;\n toPersist: IdxToPersist;\n context?: IdxContext;\n requestDidSucceed?: boolean;\n stepUp?: boolean;\n}\n\nexport function isIdxResponse(obj: any): obj is IdxResponse {\n return obj && isRawIdxResponse(obj.rawIdxState);\n}\n"],"mappings":";;;;;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAsLA;AAuBO,SAASA,gBAAT,CAA0BC,GAA1B,EAA2D;EAChE,OAAOA,GAAG,IAAIA,GAAG,CAACC,OAAlB;AACD;;AAgCM,SAASC,aAAT,CAAuBF,GAAvB,EAAqD;EAC1D,OAAOA,GAAG,IAAID,gBAAgB,CAACC,GAAG,CAACG,WAAL,CAA9B;AACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"unlockAccount.js","names":["unlockAccount","authClient","options","flow","enabledFeatures","autoRemediate","IdxFeature","ACCOUNT_UNLOCK","AuthSdkError"],"sources":["../../../lib/idx/unlockAccount.ts"],"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 { run } from './run';\nimport { hasSavedInteractionHandle } from './transactionMeta';\nimport { startTransaction } from './startTransaction';\nimport { AuthSdkError } from '../errors';\nimport { \n OktaAuthIdxInterface, \n AccountUnlockOptions, \n IdxTransaction,\n IdxFeature,\n} from '../types';\n\nexport async function unlockAccount(\n authClient: OktaAuthIdxInterface, options: AccountUnlockOptions = {}\n): Promise<IdxTransaction> {\n options.flow = 'unlockAccount';\n\n // Only check at the beginning of the transaction\n if (!hasSavedInteractionHandle(authClient)) {\n const { enabledFeatures } = await startTransaction(authClient, { ...options, autoRemediate: false });\n if (enabledFeatures && !enabledFeatures.includes(IdxFeature.ACCOUNT_UNLOCK)) {\n throw new AuthSdkError(\n 'Self Service Account Unlock is not supported based on your current org configuration.'\n );\n }\n }\n\n return run(authClient, { ...options });\n}\n"],"mappings":";;;;;;;;AAaA;;AACA;;AACA;;AACA;;AACA;;AAjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAcO,eAAeA,aAAf,CACLC,UADK,EAC6BC,OAA6B,GAAG,EAD7D,EAEoB;EACzBA,OAAO,CAACC,IAAR,GAAe,eAAf,CADyB,CAGzB;;EACA,IAAI,CAAC,gDAA0BF,UAA1B,CAAL,EAA4C;IAC1C,MAAM;MAAEG;IAAF,IAAsB,MAAM,wCAAiBH,UAAjB,EAA6B,EAAE,GAAGC,OAAL;MAAcG,aAAa,EAAE;IAA7B,CAA7B,CAAlC;;IACA,IAAID,eAAe,IAAI,CAAC,uBAAAA,eAAe,MAAf,CAAAA,eAAe,EAAUE,kBAAWC,cAArB,CAAvC,EAA6E;MAC3E,MAAM,IAAIC,oBAAJ,CACJ,uFADI,CAAN;IAGD;EACF;;EAED,OAAO,cAAIP,UAAJ,EAAgB,EAAE,GAAGC;EAAL,CAAhB,CAAP;AACD"}
1
+ {"version":3,"file":"unlockAccount.js","names":["unlockAccount","authClient","options","flow","hasSavedInteractionHandle","enabledFeatures","startTransaction","autoRemediate","IdxFeature","ACCOUNT_UNLOCK","AuthSdkError","run"],"sources":["../../../lib/idx/unlockAccount.ts"],"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 { run } from './run';\nimport { hasSavedInteractionHandle } from './transactionMeta';\nimport { startTransaction } from './startTransaction';\nimport { AuthSdkError } from '../errors';\nimport { \n OktaAuthIdxInterface, \n AccountUnlockOptions, \n IdxTransaction,\n IdxFeature,\n} from '../types';\n\nexport async function unlockAccount(\n authClient: OktaAuthIdxInterface, options: AccountUnlockOptions = {}\n): Promise<IdxTransaction> {\n options.flow = 'unlockAccount';\n\n // Only check at the beginning of the transaction\n if (!hasSavedInteractionHandle(authClient)) {\n const { enabledFeatures } = await startTransaction(authClient, { ...options, autoRemediate: false });\n if (enabledFeatures && !enabledFeatures.includes(IdxFeature.ACCOUNT_UNLOCK)) {\n throw new AuthSdkError(\n 'Self Service Account Unlock is not supported based on your current org configuration.'\n );\n }\n }\n\n return run(authClient, { ...options });\n}\n"],"mappings":";;;;;;;;AAaA;;AACA;;AACA;;AACA;;AACA;;AAjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAcO,eAAeA,aAAf,CACLC,UADK,EAC6BC,OAA6B,GAAG,EAD7D,EAEoB;EACzBA,OAAO,CAACC,IAAR,GAAe,eAAf,CADyB,CAGzB;;EACA,IAAI,CAAC,IAAAC,0CAAA,EAA0BH,UAA1B,CAAL,EAA4C;IAC1C,MAAM;MAAEI;IAAF,IAAsB,MAAM,IAAAC,kCAAA,EAAiBL,UAAjB,EAA6B,EAAE,GAAGC,OAAL;MAAcK,aAAa,EAAE;IAA7B,CAA7B,CAAlC;;IACA,IAAIF,eAAe,IAAI,CAAC,uBAAAA,eAAe,MAAf,CAAAA,eAAe,EAAUG,iBAAA,CAAWC,cAArB,CAAvC,EAA6E;MAC3E,MAAM,IAAIC,oBAAJ,CACJ,uFADI,CAAN;IAGD;EACF;;EAED,OAAO,IAAAC,QAAA,EAAIV,UAAJ,EAAgB,EAAE,GAAGC;EAAL,CAAhB,CAAP;AACD"}
package/cjs/idx/util.js CHANGED
@@ -6,17 +6,17 @@ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-s
6
6
 
7
7
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
8
 
9
- exports.isTerminalResponse = isTerminalResponse;
10
- exports.canSkipFn = canSkipFn;
11
9
  exports.canResendFn = canResendFn;
10
+ exports.canSkipFn = canSkipFn;
11
+ exports.filterValuesForRemediation = filterValuesForRemediation;
12
+ exports.getAvailableSteps = getAvailableSteps;
13
+ exports.getEnabledFeatures = getEnabledFeatures;
12
14
  exports.getMessagesFromIdxRemediationValue = getMessagesFromIdxRemediationValue;
13
15
  exports.getMessagesFromResponse = getMessagesFromResponse;
14
- exports.getEnabledFeatures = getEnabledFeatures;
15
- exports.getAvailableSteps = getAvailableSteps;
16
- exports.filterValuesForRemediation = filterValuesForRemediation;
17
- exports.getRemediator = getRemediator;
18
16
  exports.getNextStep = getNextStep;
17
+ exports.getRemediator = getRemediator;
19
18
  exports.handleIdxError = handleIdxError;
19
+ exports.isTerminalResponse = isTerminalResponse;
20
20
 
21
21
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
22
22
 
@@ -380,16 +380,24 @@ function handleIdxError(authClient, e, options = {}) {
380
380
  requestDidSucceed: false
381
381
  };
382
382
  const terminal = isTerminalResponse(idxResponse);
383
- const remediator = getRemediator(idxResponse.neededToProceed, {}, options);
384
- const nextStep = remediator && getNextStep(authClient, remediator, idxResponse);
385
- return {
386
- idxResponse,
387
- ...(terminal && {
388
- terminal
389
- }),
390
- ...(!terminal && nextStep && {
391
- nextStep
392
- })
393
- };
383
+ const messages = getMessagesFromResponse(idxResponse, options);
384
+
385
+ if (terminal) {
386
+ return {
387
+ idxResponse,
388
+ terminal,
389
+ messages
390
+ };
391
+ } else {
392
+ const remediator = getRemediator(idxResponse.neededToProceed, {}, options);
393
+ const nextStep = remediator && getNextStep(authClient, remediator, idxResponse);
394
+ return {
395
+ idxResponse,
396
+ messages,
397
+ ...(nextStep && {
398
+ nextStep
399
+ })
400
+ };
401
+ }
394
402
  }
395
403
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","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","useGenericRemediator","remediation","fieldMessages","seen","filtered","key","i18n","getEnabledFeatures","res","push","IdxFeature","PASSWORD_RECOVERY","REGISTRATION","SOCIAL_IDP","ACCOUNT_UNLOCK","getAvailableSteps","authClient","remediatorMap","remediators","map","remediatorClass","remediationName","T","getRemediatorClass","remediator","getNextStep","context","stepObj","action","params","idx","proceed","part1","part2","actionObj","href","method","rel","accepts","produces","rest","item","filterValuesForRemediation","values","remediations","r","valuesForRemediation","entry","undefined","GenericRemediator","getRemediator","idxRemediations","step","remediatorCandidates","isRemeditionInFlow","canRemediate","nextStep","canSkip","canResend","handleIdxError","e","requestDidSucceed","terminal"],"sources":["../../../lib/idx/util.ts"],"sourcesContent":["import { warn, split2 } from '../util';\nimport * as remediators from './remediators';\nimport { RemediationValues, Remediator, RemediatorConstructor } from './remediators';\nimport { GenericRemediator } from './remediators/GenericRemediator';\nimport { IdxFeature, NextStep, RemediateOptions, RemediationResponse, RunOptions } from './types';\nimport { IdxMessage, IdxRemediation, IdxRemediationValue, IdxResponse, isIdxResponse } from './types/idx-js';\nimport { OktaAuthIdxInterface } from '../types';\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, options: RunOptions): 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 // Preserve existing logic for general cases, remove in the next major version\n // Follow ion response format for top level messages when useGenericRemediator is true\n if (!options.useGenericRemediator) {\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\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(\n authClient: OktaAuthIdxInterface, \n idxResponse: IdxResponse, \n useGenericRemediator?: boolean\n): 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 = getRemediatorClass(remediation, { useGenericRemediator, remediators: remediatorMap });\n if (T) {\n const remediator: Remediator = new T(remediation);\n res.push (remediator.getNextStep(authClient, idxResponse.context) as never);\n }\n }\n\n for (const [name] of Object.entries((idxResponse.actions || {}))) {\n let stepObj = {\n name, \n action: async (params?) => {\n return authClient.idx.proceed({ \n actions: [{ name, params }] \n });\n }\n };\n if (name.startsWith('currentAuthenticator')) {\n const [part1, part2] = split2(name, '-');\n const actionObj = idxResponse.rawIdxState[part1].value[part2];\n /* eslint-disable no-unused-vars, @typescript-eslint/no-unused-vars */\n const {\n href, \n method, \n rel, \n accepts, \n produces, \n ...rest\n } = actionObj;\n /* eslint-enable no-unused-vars, @typescript-eslint/no-unused-vars */\n const value = actionObj.value?.filter(item => item.name !== 'stateHandle');\n stepObj = { \n ...rest, \n ...(value && { value }),\n ...stepObj,\n };\n }\n res.push(stepObj);\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\nfunction getRemediatorClass(remediation: IdxRemediation, options: RemediateOptions) {\n const { useGenericRemediator, remediators } = options;\n \n if (!remediation) {\n return undefined;\n }\n\n if (useGenericRemediator) {\n return GenericRemediator;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return remediators![remediation.name];\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 const useGenericRemediator = options.useGenericRemediator;\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 = getRemediatorClass(remediation, options);\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 if (useGenericRemediator) {\n // always pick the first remediation for when use GenericRemediator\n remediatorCandidates.push(new GenericRemediator(idxRemediations[0], values, options));\n } else {\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 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const T = getRemediatorClass(remediation, options)!;\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 \n return remediatorCandidates[0];\n}\n\n\nexport function getNextStep(\n authClient: OktaAuthIdxInterface, remediator: Remediator, idxResponse: IdxResponse\n): NextStep {\n const nextStep = remediator.getNextStep(authClient, 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(authClient: OktaAuthIdxInterface, e, options = {}): 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 remediator = getRemediator(idxResponse.neededToProceed, {}, options);\n const nextStep = remediator && getNextStep(authClient, remediator, idxResponse);\n return {\n idxResponse,\n ...(terminal && { terminal }),\n ...(!terminal && nextStep && { nextStep }) \n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"util.js","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","useGenericRemediator","remediation","fieldMessages","seen","filtered","key","i18n","getEnabledFeatures","res","push","IdxFeature","PASSWORD_RECOVERY","REGISTRATION","SOCIAL_IDP","ACCOUNT_UNLOCK","getAvailableSteps","authClient","remediatorMap","remediators","map","remediatorClass","remediationName","T","getRemediatorClass","remediator","getNextStep","context","stepObj","action","params","idx","proceed","part1","part2","split2","actionObj","href","method","rel","accepts","produces","rest","item","filterValuesForRemediation","values","remediations","r","warn","valuesForRemediation","entry","undefined","GenericRemediator","getRemediator","idxRemediations","step","remediatorCandidates","isRemeditionInFlow","canRemediate","nextStep","canSkip","canResend","handleIdxError","e","isIdxResponse","requestDidSucceed","terminal"],"sources":["../../../lib/idx/util.ts"],"sourcesContent":["import { warn, split2 } from '../util';\nimport * as remediators from './remediators';\nimport { RemediationValues, Remediator, RemediatorConstructor } from './remediators';\nimport { GenericRemediator } from './remediators/GenericRemediator';\nimport { IdxFeature, NextStep, RemediateOptions, RemediationResponse, RunOptions } from './types';\nimport { IdxMessage, IdxRemediation, IdxRemediationValue, IdxResponse, isIdxResponse } from './types/idx-js';\nimport { OktaAuthIdxInterface } from '../types';\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, options: RunOptions): 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 // Preserve existing logic for general cases, remove in the next major version\n // Follow ion response format for top level messages when useGenericRemediator is true\n if (!options.useGenericRemediator) {\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\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(\n authClient: OktaAuthIdxInterface, \n idxResponse: IdxResponse, \n useGenericRemediator?: boolean\n): 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 = getRemediatorClass(remediation, { useGenericRemediator, remediators: remediatorMap });\n if (T) {\n const remediator: Remediator = new T(remediation);\n res.push (remediator.getNextStep(authClient, idxResponse.context) as never);\n }\n }\n\n for (const [name] of Object.entries((idxResponse.actions || {}))) {\n let stepObj = {\n name, \n action: async (params?) => {\n return authClient.idx.proceed({ \n actions: [{ name, params }] \n });\n }\n };\n if (name.startsWith('currentAuthenticator')) {\n const [part1, part2] = split2(name, '-');\n const actionObj = idxResponse.rawIdxState[part1].value[part2];\n /* eslint-disable no-unused-vars, @typescript-eslint/no-unused-vars */\n const {\n href, \n method, \n rel, \n accepts, \n produces, \n ...rest\n } = actionObj;\n /* eslint-enable no-unused-vars, @typescript-eslint/no-unused-vars */\n const value = actionObj.value?.filter(item => item.name !== 'stateHandle');\n stepObj = { \n ...rest, \n ...(value && { value }),\n ...stepObj,\n };\n }\n res.push(stepObj);\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\nfunction getRemediatorClass(remediation: IdxRemediation, options: RemediateOptions) {\n const { useGenericRemediator, remediators } = options;\n \n if (!remediation) {\n return undefined;\n }\n\n if (useGenericRemediator) {\n return GenericRemediator;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return remediators![remediation.name];\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 const useGenericRemediator = options.useGenericRemediator;\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 = getRemediatorClass(remediation, options);\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 if (useGenericRemediator) {\n // always pick the first remediation for when use GenericRemediator\n remediatorCandidates.push(new GenericRemediator(idxRemediations[0], values, options));\n } else {\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 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const T = getRemediatorClass(remediation, options)!;\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 \n return remediatorCandidates[0];\n}\n\n\nexport function getNextStep(\n authClient: OktaAuthIdxInterface, remediator: Remediator, idxResponse: IdxResponse\n): NextStep {\n const nextStep = remediator.getNextStep(authClient, 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(authClient: OktaAuthIdxInterface, e, options = {}): 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, options);\n if (terminal) {\n return { idxResponse, terminal, messages };\n } else {\n const remediator = getRemediator(idxResponse.neededToProceed, {}, options);\n const nextStep = remediator && getNextStep(authClient, remediator, idxResponse);\n return {\n idxResponse,\n messages,\n ...(nextStep && { nextStep }),\n };\n }\n \n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- exports.verifyEmailChallenge = exports.getEmailChallenge = exports.sendEmailChallenge = exports.deleteEmail = exports.addEmail = exports.getEmail = exports.getEmails = void 0;
3
+ exports.verifyEmailChallenge = exports.sendEmailChallenge = exports.getEmails = exports.getEmailChallenge = exports.getEmail = exports.deleteEmail = exports.addEmail = void 0;
4
4
 
5
5
  var _request = require("./request");
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"emailApi.js","names":["getEmails","oktaAuth","options","transaction","url","method","accessToken","transactionClassName","getEmail","id","addEmail","payload","deleteEmail","sendEmailChallenge","getEmailChallenge","emailId","challengeId","verifyEmailChallenge"],"sources":["../../../lib/myaccount/emailApi.ts"],"sourcesContent":["import { sendRequest } from './request';\nimport { \n IAPIFunction, \n BaseTransaction, \n EmailTransaction, \n EmailChallengeTransaction \n} from './types';\n\n/**\n * @scope: okta.myaccount.email.read\n */\nexport const getEmails: IAPIFunction<EmailTransaction[]> = async (\n oktaAuth,\n options?\n) => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/emails',\n method: 'GET',\n accessToken: options?.accessToken,\n transactionClassName: 'EmailTransaction'\n }) as EmailTransaction[];\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.email.read\n */\nexport const getEmail: IAPIFunction<EmailTransaction> = async (\n oktaAuth, \n options\n) => {\n const { id, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${id}`,\n method: 'GET',\n accessToken,\n transactionClassName: 'EmailTransaction'\n }) as EmailTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.email.manage\n */\nexport const addEmail: IAPIFunction<EmailTransaction> = async (\n oktaAuth, \n options\n): Promise<EmailTransaction> => {\n const { accessToken, payload } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/emails',\n method: 'POST',\n payload,\n accessToken,\n transactionClassName: 'EmailTransaction'\n }) as EmailTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.email.manage\n */\nexport const deleteEmail: IAPIFunction<BaseTransaction> = async (\n oktaAuth, \n options\n) => {\n const { id, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${id}`,\n method: 'DELETE',\n accessToken\n }) as BaseTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.email.read\n */\nexport const sendEmailChallenge: IAPIFunction<EmailChallengeTransaction> = async (\n oktaAuth, \n options\n) => {\n const { id, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${id}/challenge`,\n method: 'POST',\n accessToken,\n transactionClassName: 'EmailChallengeTransaction'\n }) as EmailChallengeTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.email.read\n */\nexport const getEmailChallenge: IAPIFunction<EmailChallengeTransaction> = async (\n oktaAuth, \n options\n) => {\n const { emailId, challengeId, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${emailId}/challenge/${challengeId}`,\n method: 'POST',\n accessToken,\n transactionClassName: 'EmailChallengeTransaction'\n }) as EmailChallengeTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.email.manage\n */\nexport const verifyEmailChallenge: IAPIFunction<BaseTransaction> = async (\n oktaAuth,\n options\n) => {\n const { emailId, challengeId, payload, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${emailId}/challenge/${challengeId}/verify`,\n method: 'POST',\n payload,\n accessToken\n }) as BaseTransaction;\n return transaction;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"emailApi.js","names":["getEmails","oktaAuth","options","transaction","sendRequest","url","method","accessToken","transactionClassName","getEmail","id","addEmail","payload","deleteEmail","sendEmailChallenge","getEmailChallenge","emailId","challengeId","verifyEmailChallenge"],"sources":["../../../lib/myaccount/emailApi.ts"],"sourcesContent":["import { sendRequest } from './request';\nimport { \n IAPIFunction, \n BaseTransaction, \n EmailTransaction, \n EmailChallengeTransaction \n} from './types';\n\n/**\n * @scope: okta.myaccount.email.read\n */\nexport const getEmails: IAPIFunction<EmailTransaction[]> = async (\n oktaAuth,\n options?\n) => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/emails',\n method: 'GET',\n accessToken: options?.accessToken,\n transactionClassName: 'EmailTransaction'\n }) as EmailTransaction[];\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.email.read\n */\nexport const getEmail: IAPIFunction<EmailTransaction> = async (\n oktaAuth, \n options\n) => {\n const { id, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${id}`,\n method: 'GET',\n accessToken,\n transactionClassName: 'EmailTransaction'\n }) as EmailTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.email.manage\n */\nexport const addEmail: IAPIFunction<EmailTransaction> = async (\n oktaAuth, \n options\n): Promise<EmailTransaction> => {\n const { accessToken, payload } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/emails',\n method: 'POST',\n payload,\n accessToken,\n transactionClassName: 'EmailTransaction'\n }) as EmailTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.email.manage\n */\nexport const deleteEmail: IAPIFunction<BaseTransaction> = async (\n oktaAuth, \n options\n) => {\n const { id, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${id}`,\n method: 'DELETE',\n accessToken\n }) as BaseTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.email.read\n */\nexport const sendEmailChallenge: IAPIFunction<EmailChallengeTransaction> = async (\n oktaAuth, \n options\n) => {\n const { id, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${id}/challenge`,\n method: 'POST',\n accessToken,\n transactionClassName: 'EmailChallengeTransaction'\n }) as EmailChallengeTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.email.read\n */\nexport const getEmailChallenge: IAPIFunction<EmailChallengeTransaction> = async (\n oktaAuth, \n options\n) => {\n const { emailId, challengeId, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${emailId}/challenge/${challengeId}`,\n method: 'POST',\n accessToken,\n transactionClassName: 'EmailChallengeTransaction'\n }) as EmailChallengeTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.email.manage\n */\nexport const verifyEmailChallenge: IAPIFunction<BaseTransaction> = async (\n oktaAuth,\n options\n) => {\n const { emailId, challengeId, payload, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${emailId}/challenge/${challengeId}/verify`,\n method: 'POST',\n payload,\n accessToken\n }) as BaseTransaction;\n return transaction;\n};\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- exports.verifyPhoneChallenge = exports.sendPhoneChallenge = exports.deletePhone = exports.addPhone = exports.getPhone = exports.getPhones = void 0;
3
+ exports.verifyPhoneChallenge = exports.sendPhoneChallenge = exports.getPhones = exports.getPhone = exports.deletePhone = exports.addPhone = void 0;
4
4
 
5
5
  var _request = require("./request");
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"phoneApi.js","names":["getPhones","oktaAuth","options","transaction","url","method","accessToken","transactionClassName","getPhone","id","addPhone","payload","deletePhone","sendPhoneChallenge","verifyPhoneChallenge"],"sources":["../../../lib/myaccount/phoneApi.ts"],"sourcesContent":["import { sendRequest } from './request';\nimport { \n IAPIFunction,\n BaseTransaction, \n PhoneTransaction\n} from './types';\n\n/**\n * @scope: okta.myaccount.phone.read\n */\nexport const getPhones: IAPIFunction<PhoneTransaction[]> = async (\n oktaAuth,\n options?\n) => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/phones',\n method: 'GET',\n accessToken: options?.accessToken,\n transactionClassName: 'PhoneTransaction'\n }) as PhoneTransaction[];\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.phone.read\n */\nexport const getPhone: IAPIFunction<PhoneTransaction> = async (\n oktaAuth,\n options\n) => {\n const { accessToken, id } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}`,\n method: 'GET',\n accessToken,\n transactionClassName: 'PhoneTransaction'\n }) as PhoneTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.phone.manage\n */\nexport const addPhone: IAPIFunction<PhoneTransaction> = async (\n oktaAuth, \n options\n): Promise<PhoneTransaction> => {\n const { accessToken, payload } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/phones',\n method: 'POST',\n payload,\n accessToken,\n transactionClassName: 'PhoneTransaction'\n }) as PhoneTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.phone.manage\n */\nexport const deletePhone: IAPIFunction<BaseTransaction> = async (\n oktaAuth, \n options\n) => {\n const { id, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}`,\n method: 'DELETE',\n accessToken,\n }) as BaseTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.phone.manage\n */\nexport const sendPhoneChallenge: IAPIFunction<BaseTransaction> = async (\n oktaAuth, \n options\n) => {\n const { accessToken, id, payload } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}/challenge`,\n method: 'POST',\n payload,\n accessToken\n }) as BaseTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.phone.manage\n */\nexport const verifyPhoneChallenge: IAPIFunction<BaseTransaction> = async (\n oktaAuth,\n options\n) => {\n const { id, payload, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}/verify`,\n method: 'POST',\n payload,\n accessToken\n }) as BaseTransaction;\n return transaction;\n};\n"],"mappings":";;;;AAAA;;AAOA;AACA;AACA;AACO,MAAMA,SAA2C,GAAG,OACzDC,QADyD,EAEzDC,OAFyD,KAGtD;EACH,MAAMC,WAAW,GAAG,MAAM,0BAAYF,QAAZ,EAAsB;IAC9CG,GAAG,EAAE,uBADyC;IAE9CC,MAAM,EAAE,KAFsC;IAG9CC,WAAW,EAAEJ,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEI,WAHwB;IAI9CC,oBAAoB,EAAE;EAJwB,CAAtB,CAA1B;EAMA,OAAOJ,WAAP;AACD,CAXM;AAaP;AACA;AACA;;;;;AACO,MAAMK,QAAwC,GAAG,OACtDP,QADsD,EAEtDC,OAFsD,KAGnD;EACH,MAAM;IAAEI,WAAF;IAAeG;EAAf,IAAsBP,OAA5B;EACA,MAAMC,WAAW,GAAG,MAAM,0BAAYF,QAAZ,EAAsB;IAC9CG,GAAG,EAAG,yBAAwBK,EAAG,EADa;IAE9CJ,MAAM,EAAE,KAFsC;IAG9CC,WAH8C;IAI9CC,oBAAoB,EAAE;EAJwB,CAAtB,CAA1B;EAMA,OAAOJ,WAAP;AACD,CAZM;AAcP;AACA;AACA;;;;;AACO,MAAMO,QAAwC,GAAG,OACtDT,QADsD,EAEtDC,OAFsD,KAGxB;EAC9B,MAAM;IAAEI,WAAF;IAAeK;EAAf,IAA2BT,OAAjC;EACA,MAAMC,WAAW,GAAG,MAAM,0BAAYF,QAAZ,EAAsB;IAC9CG,GAAG,EAAE,uBADyC;IAE9CC,MAAM,EAAE,MAFsC;IAG9CM,OAH8C;IAI9CL,WAJ8C;IAK9CC,oBAAoB,EAAE;EALwB,CAAtB,CAA1B;EAOA,OAAOJ,WAAP;AACD,CAbM;AAeP;AACA;AACA;;;;;AACO,MAAMS,WAA0C,GAAG,OACxDX,QADwD,EAExDC,OAFwD,KAGrD;EACH,MAAM;IAAEO,EAAF;IAAMH;EAAN,IAAsBJ,OAA5B;EACA,MAAMC,WAAW,GAAG,MAAM,0BAAYF,QAAZ,EAAsB;IAC9CG,GAAG,EAAG,yBAAwBK,EAAG,EADa;IAE9CJ,MAAM,EAAE,QAFsC;IAG9CC;EAH8C,CAAtB,CAA1B;EAKA,OAAOH,WAAP;AACD,CAXM;AAaP;AACA;AACA;;;;;AACO,MAAMU,kBAAiD,GAAG,OAC/DZ,QAD+D,EAE/DC,OAF+D,KAG5D;EACH,MAAM;IAAEI,WAAF;IAAeG,EAAf;IAAmBE;EAAnB,IAA+BT,OAArC;EACA,MAAMC,WAAW,GAAG,MAAM,0BAAYF,QAAZ,EAAsB;IAC9CG,GAAG,EAAG,yBAAwBK,EAAG,YADa;IAE9CJ,MAAM,EAAE,MAFsC;IAG9CM,OAH8C;IAI9CL;EAJ8C,CAAtB,CAA1B;EAMA,OAAOH,WAAP;AACD,CAZM;AAcP;AACA;AACA;;;;;AACO,MAAMW,oBAAmD,GAAG,OACjEb,QADiE,EAEjEC,OAFiE,KAG9D;EACH,MAAM;IAAEO,EAAF;IAAME,OAAN;IAAeL;EAAf,IAA+BJ,OAArC;EACA,MAAMC,WAAW,GAAG,MAAM,0BAAYF,QAAZ,EAAsB;IAC9CG,GAAG,EAAG,yBAAwBK,EAAG,SADa;IAE9CJ,MAAM,EAAE,MAFsC;IAG9CM,OAH8C;IAI9CL;EAJ8C,CAAtB,CAA1B;EAMA,OAAOH,WAAP;AACD,CAZM"}
1
+ {"version":3,"file":"phoneApi.js","names":["getPhones","oktaAuth","options","transaction","sendRequest","url","method","accessToken","transactionClassName","getPhone","id","addPhone","payload","deletePhone","sendPhoneChallenge","verifyPhoneChallenge"],"sources":["../../../lib/myaccount/phoneApi.ts"],"sourcesContent":["import { sendRequest } from './request';\nimport { \n IAPIFunction,\n BaseTransaction, \n PhoneTransaction\n} from './types';\n\n/**\n * @scope: okta.myaccount.phone.read\n */\nexport const getPhones: IAPIFunction<PhoneTransaction[]> = async (\n oktaAuth,\n options?\n) => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/phones',\n method: 'GET',\n accessToken: options?.accessToken,\n transactionClassName: 'PhoneTransaction'\n }) as PhoneTransaction[];\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.phone.read\n */\nexport const getPhone: IAPIFunction<PhoneTransaction> = async (\n oktaAuth,\n options\n) => {\n const { accessToken, id } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}`,\n method: 'GET',\n accessToken,\n transactionClassName: 'PhoneTransaction'\n }) as PhoneTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.phone.manage\n */\nexport const addPhone: IAPIFunction<PhoneTransaction> = async (\n oktaAuth, \n options\n): Promise<PhoneTransaction> => {\n const { accessToken, payload } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/phones',\n method: 'POST',\n payload,\n accessToken,\n transactionClassName: 'PhoneTransaction'\n }) as PhoneTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.phone.manage\n */\nexport const deletePhone: IAPIFunction<BaseTransaction> = async (\n oktaAuth, \n options\n) => {\n const { id, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}`,\n method: 'DELETE',\n accessToken,\n }) as BaseTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.phone.manage\n */\nexport const sendPhoneChallenge: IAPIFunction<BaseTransaction> = async (\n oktaAuth, \n options\n) => {\n const { accessToken, id, payload } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}/challenge`,\n method: 'POST',\n payload,\n accessToken\n }) as BaseTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.phone.manage\n */\nexport const verifyPhoneChallenge: IAPIFunction<BaseTransaction> = async (\n oktaAuth,\n options\n) => {\n const { id, payload, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}/verify`,\n method: 'POST',\n payload,\n accessToken\n }) as BaseTransaction;\n return transaction;\n};\n"],"mappings":";;;;AAAA;;AAOA;AACA;AACA;AACO,MAAMA,SAA2C,GAAG,OACzDC,QADyD,EAEzDC,OAFyD,KAGtD;EACH,MAAMC,WAAW,GAAG,MAAM,IAAAC,oBAAA,EAAYH,QAAZ,EAAsB;IAC9CI,GAAG,EAAE,uBADyC;IAE9CC,MAAM,EAAE,KAFsC;IAG9CC,WAAW,EAAEL,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEK,WAHwB;IAI9CC,oBAAoB,EAAE;EAJwB,CAAtB,CAA1B;EAMA,OAAOL,WAAP;AACD,CAXM;AAaP;AACA;AACA;;;;;AACO,MAAMM,QAAwC,GAAG,OACtDR,QADsD,EAEtDC,OAFsD,KAGnD;EACH,MAAM;IAAEK,WAAF;IAAeG;EAAf,IAAsBR,OAA5B;EACA,MAAMC,WAAW,GAAG,MAAM,IAAAC,oBAAA,EAAYH,QAAZ,EAAsB;IAC9CI,GAAG,EAAG,yBAAwBK,EAAG,EADa;IAE9CJ,MAAM,EAAE,KAFsC;IAG9CC,WAH8C;IAI9CC,oBAAoB,EAAE;EAJwB,CAAtB,CAA1B;EAMA,OAAOL,WAAP;AACD,CAZM;AAcP;AACA;AACA;;;;;AACO,MAAMQ,QAAwC,GAAG,OACtDV,QADsD,EAEtDC,OAFsD,KAGxB;EAC9B,MAAM;IAAEK,WAAF;IAAeK;EAAf,IAA2BV,OAAjC;EACA,MAAMC,WAAW,GAAG,MAAM,IAAAC,oBAAA,EAAYH,QAAZ,EAAsB;IAC9CI,GAAG,EAAE,uBADyC;IAE9CC,MAAM,EAAE,MAFsC;IAG9CM,OAH8C;IAI9CL,WAJ8C;IAK9CC,oBAAoB,EAAE;EALwB,CAAtB,CAA1B;EAOA,OAAOL,WAAP;AACD,CAbM;AAeP;AACA;AACA;;;;;AACO,MAAMU,WAA0C,GAAG,OACxDZ,QADwD,EAExDC,OAFwD,KAGrD;EACH,MAAM;IAAEQ,EAAF;IAAMH;EAAN,IAAsBL,OAA5B;EACA,MAAMC,WAAW,GAAG,MAAM,IAAAC,oBAAA,EAAYH,QAAZ,EAAsB;IAC9CI,GAAG,EAAG,yBAAwBK,EAAG,EADa;IAE9CJ,MAAM,EAAE,QAFsC;IAG9CC;EAH8C,CAAtB,CAA1B;EAKA,OAAOJ,WAAP;AACD,CAXM;AAaP;AACA;AACA;;;;;AACO,MAAMW,kBAAiD,GAAG,OAC/Db,QAD+D,EAE/DC,OAF+D,KAG5D;EACH,MAAM;IAAEK,WAAF;IAAeG,EAAf;IAAmBE;EAAnB,IAA+BV,OAArC;EACA,MAAMC,WAAW,GAAG,MAAM,IAAAC,oBAAA,EAAYH,QAAZ,EAAsB;IAC9CI,GAAG,EAAG,yBAAwBK,EAAG,YADa;IAE9CJ,MAAM,EAAE,MAFsC;IAG9CM,OAH8C;IAI9CL;EAJ8C,CAAtB,CAA1B;EAMA,OAAOJ,WAAP;AACD,CAZM;AAcP;AACA;AACA;;;;;AACO,MAAMY,oBAAmD,GAAG,OACjEd,QADiE,EAEjEC,OAFiE,KAG9D;EACH,MAAM;IAAEQ,EAAF;IAAME,OAAN;IAAeL;EAAf,IAA+BL,OAArC;EACA,MAAMC,WAAW,GAAG,MAAM,IAAAC,oBAAA,EAAYH,QAAZ,EAAsB;IAC9CI,GAAG,EAAG,yBAAwBK,EAAG,SADa;IAE9CJ,MAAM,EAAE,MAFsC;IAG9CM,OAH8C;IAI9CL;EAJ8C,CAAtB,CAA1B;EAMA,OAAOJ,WAAP;AACD,CAZM"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- exports.getProfileSchema = exports.updateProfile = exports.getProfile = void 0;
3
+ exports.updateProfile = exports.getProfileSchema = exports.getProfile = void 0;
4
4
 
5
5
  var _request = require("./request");
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"profileApi.js","names":["getProfile","oktaAuth","options","transaction","url","method","accessToken","transactionClassName","updateProfile","payload","getProfileSchema"],"sources":["../../../lib/myaccount/profileApi.ts"],"sourcesContent":["import { sendRequest } from './request';\nimport { \n IAPIFunction,\n ProfileTransaction,\n ProfileSchemaTransaction\n} from './types';\n\n/**\n * @scope: okta.myaccount.profile.read\n */\nexport const getProfile: IAPIFunction<ProfileTransaction> = async (oktaAuth, options?) => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/profile',\n method: 'GET',\n accessToken: options?.accessToken,\n transactionClassName: 'ProfileTransaction'\n }) as ProfileTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.profile.manage\n */\nexport const updateProfile: IAPIFunction<ProfileTransaction> = async (\n oktaAuth, \n options\n) => {\n const { payload, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/profile',\n method: 'PUT',\n payload,\n accessToken,\n transactionClassName: 'ProfileTransaction'\n }) as ProfileTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.profile.read\n */\nexport const getProfileSchema: IAPIFunction<ProfileSchemaTransaction> = async (\n oktaAuth, \n options?\n): Promise<ProfileSchemaTransaction> => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/profile/schema',\n method: 'GET',\n accessToken: options?.accessToken,\n transactionClassName: 'ProfileSchemaTransaction'\n }) as ProfileSchemaTransaction;\n return transaction;\n};\n"],"mappings":";;;;AAAA;;AAOA;AACA;AACA;AACO,MAAMA,UAA4C,GAAG,OAAOC,QAAP,EAAiBC,OAAjB,KAA8B;EACxF,MAAMC,WAAW,GAAG,MAAM,0BAAYF,QAAZ,EAAsB;IAC9CG,GAAG,EAAE,wBADyC;IAE9CC,MAAM,EAAE,KAFsC;IAG9CC,WAAW,EAAEJ,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEI,WAHwB;IAI9CC,oBAAoB,EAAE;EAJwB,CAAtB,CAA1B;EAMA,OAAOJ,WAAP;AACD,CARM;AAUP;AACA;AACA;;;;;AACO,MAAMK,aAA+C,GAAG,OAC7DP,QAD6D,EAE7DC,OAF6D,KAG1D;EACH,MAAM;IAAEO,OAAF;IAAWH;EAAX,IAA2BJ,OAAjC;EACA,MAAMC,WAAW,GAAG,MAAM,0BAAYF,QAAZ,EAAsB;IAC9CG,GAAG,EAAE,wBADyC;IAE9CC,MAAM,EAAE,KAFsC;IAG9CI,OAH8C;IAI9CH,WAJ8C;IAK9CC,oBAAoB,EAAE;EALwB,CAAtB,CAA1B;EAOA,OAAOJ,WAAP;AACD,CAbM;AAeP;AACA;AACA;;;;;AACO,MAAMO,gBAAwD,GAAG,OACtET,QADsE,EAEtEC,OAFsE,KAGhC;EACtC,MAAMC,WAAW,GAAG,MAAM,0BAAYF,QAAZ,EAAsB;IAC9CG,GAAG,EAAE,+BADyC;IAE9CC,MAAM,EAAE,KAFsC;IAG9CC,WAAW,EAAEJ,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEI,WAHwB;IAI9CC,oBAAoB,EAAE;EAJwB,CAAtB,CAA1B;EAMA,OAAOJ,WAAP;AACD,CAXM"}
1
+ {"version":3,"file":"profileApi.js","names":["getProfile","oktaAuth","options","transaction","sendRequest","url","method","accessToken","transactionClassName","updateProfile","payload","getProfileSchema"],"sources":["../../../lib/myaccount/profileApi.ts"],"sourcesContent":["import { sendRequest } from './request';\nimport { \n IAPIFunction,\n ProfileTransaction,\n ProfileSchemaTransaction\n} from './types';\n\n/**\n * @scope: okta.myaccount.profile.read\n */\nexport const getProfile: IAPIFunction<ProfileTransaction> = async (oktaAuth, options?) => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/profile',\n method: 'GET',\n accessToken: options?.accessToken,\n transactionClassName: 'ProfileTransaction'\n }) as ProfileTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.profile.manage\n */\nexport const updateProfile: IAPIFunction<ProfileTransaction> = async (\n oktaAuth, \n options\n) => {\n const { payload, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/profile',\n method: 'PUT',\n payload,\n accessToken,\n transactionClassName: 'ProfileTransaction'\n }) as ProfileTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myaccount.profile.read\n */\nexport const getProfileSchema: IAPIFunction<ProfileSchemaTransaction> = async (\n oktaAuth, \n options?\n): Promise<ProfileSchemaTransaction> => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/profile/schema',\n method: 'GET',\n accessToken: options?.accessToken,\n transactionClassName: 'ProfileSchemaTransaction'\n }) as ProfileSchemaTransaction;\n return transaction;\n};\n"],"mappings":";;;;AAAA;;AAOA;AACA;AACA;AACO,MAAMA,UAA4C,GAAG,OAAOC,QAAP,EAAiBC,OAAjB,KAA8B;EACxF,MAAMC,WAAW,GAAG,MAAM,IAAAC,oBAAA,EAAYH,QAAZ,EAAsB;IAC9CI,GAAG,EAAE,wBADyC;IAE9CC,MAAM,EAAE,KAFsC;IAG9CC,WAAW,EAAEL,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEK,WAHwB;IAI9CC,oBAAoB,EAAE;EAJwB,CAAtB,CAA1B;EAMA,OAAOL,WAAP;AACD,CARM;AAUP;AACA;AACA;;;;;AACO,MAAMM,aAA+C,GAAG,OAC7DR,QAD6D,EAE7DC,OAF6D,KAG1D;EACH,MAAM;IAAEQ,OAAF;IAAWH;EAAX,IAA2BL,OAAjC;EACA,MAAMC,WAAW,GAAG,MAAM,IAAAC,oBAAA,EAAYH,QAAZ,EAAsB;IAC9CI,GAAG,EAAE,wBADyC;IAE9CC,MAAM,EAAE,KAFsC;IAG9CI,OAH8C;IAI9CH,WAJ8C;IAK9CC,oBAAoB,EAAE;EALwB,CAAtB,CAA1B;EAOA,OAAOL,WAAP;AACD,CAbM;AAeP;AACA;AACA;;;;;AACO,MAAMQ,gBAAwD,GAAG,OACtEV,QADsE,EAEtEC,OAFsE,KAGhC;EACtC,MAAMC,WAAW,GAAG,MAAM,IAAAC,oBAAA,EAAYH,QAAZ,EAAsB;IAC9CI,GAAG,EAAE,+BADyC;IAE9CC,MAAM,EAAE,KAFsC;IAG9CC,WAAW,EAAEL,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEK,WAHwB;IAI9CC,oBAAoB,EAAE;EAJwB,CAAtB,CAA1B;EAMA,OAAOL,WAAP;AACD,CAXM"}
@@ -2,8 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
4
 
5
- exports.sendRequest = sendRequest;
6
5
  exports.generateRequestFnFromLinks = generateRequestFnFromLinks;
6
+ exports.sendRequest = sendRequest;
7
7
 
8
8
  var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
9
9