@aws-amplify/auth 6.7.1-unstable.ab33a03.0 → 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 (398) hide show
  1. package/dist/cjs/client/apis/associateWebAuthnCredential.js +62 -0
  2. package/dist/cjs/client/apis/associateWebAuthnCredential.js.map +1 -0
  3. package/dist/cjs/client/apis/deleteWebAuthnCredential.js +22 -0
  4. package/dist/cjs/client/apis/deleteWebAuthnCredential.js.map +1 -0
  5. package/dist/cjs/client/apis/index.js +13 -0
  6. package/dist/cjs/client/apis/index.js.map +1 -0
  7. package/dist/cjs/client/apis/listWebAuthnCredentials.js +23 -0
  8. package/dist/cjs/client/apis/listWebAuthnCredentials.js.map +1 -0
  9. package/dist/cjs/client/flows/shared/handlePasswordSRP.js +79 -0
  10. package/dist/cjs/client/flows/shared/handlePasswordSRP.js.map +1 -0
  11. package/dist/cjs/client/flows/userAuth/handleSelectChallenge.js +46 -0
  12. package/dist/cjs/client/flows/userAuth/handleSelectChallenge.js.map +1 -0
  13. package/dist/cjs/client/flows/userAuth/handleSelectChallengeWithPassword.js +59 -0
  14. package/dist/cjs/client/flows/userAuth/handleSelectChallengeWithPassword.js.map +1 -0
  15. package/dist/cjs/client/flows/userAuth/handleSelectChallengeWithPasswordSRP.js +74 -0
  16. package/dist/cjs/client/flows/userAuth/handleSelectChallengeWithPasswordSRP.js.map +1 -0
  17. package/dist/cjs/client/flows/userAuth/handleUserAuthFlow.js +84 -0
  18. package/dist/cjs/client/flows/userAuth/handleUserAuthFlow.js.map +1 -0
  19. package/dist/cjs/client/flows/userAuth/handleWebAuthnSignInResult.js +88 -0
  20. package/dist/cjs/client/flows/userAuth/handleWebAuthnSignInResult.js.map +1 -0
  21. package/dist/cjs/client/utils/index.js +9 -0
  22. package/dist/cjs/client/utils/index.js.map +1 -0
  23. package/dist/cjs/client/utils/passkey/errors.js +180 -0
  24. package/dist/cjs/client/utils/passkey/errors.js.map +1 -0
  25. package/dist/cjs/client/utils/passkey/getIsPasskeySupported.js +20 -0
  26. package/dist/cjs/client/utils/passkey/getIsPasskeySupported.js.map +1 -0
  27. package/dist/cjs/client/utils/passkey/getIsPasskeySupported.native.js +12 -0
  28. package/dist/cjs/client/utils/passkey/getIsPasskeySupported.native.js.map +1 -0
  29. package/dist/cjs/client/utils/passkey/getPasskey.js +27 -0
  30. package/dist/cjs/client/utils/passkey/getPasskey.js.map +1 -0
  31. package/dist/cjs/client/utils/passkey/getPasskey.native.js +12 -0
  32. package/dist/cjs/client/utils/passkey/getPasskey.native.js.map +1 -0
  33. package/dist/cjs/client/utils/passkey/index.js +11 -0
  34. package/dist/cjs/client/utils/passkey/index.js.map +1 -0
  35. package/dist/cjs/client/utils/passkey/registerPasskey.js +32 -0
  36. package/dist/cjs/client/utils/passkey/registerPasskey.js.map +1 -0
  37. package/dist/cjs/client/utils/passkey/registerPasskey.native.js +12 -0
  38. package/dist/cjs/client/utils/passkey/registerPasskey.native.js.map +1 -0
  39. package/dist/cjs/client/utils/passkey/serde.js +106 -0
  40. package/dist/cjs/client/utils/passkey/serde.js.map +1 -0
  41. package/dist/cjs/client/utils/passkey/types/index.js +25 -0
  42. package/dist/cjs/client/utils/passkey/types/index.js.map +1 -0
  43. package/dist/cjs/client/utils/passkey/types/shared.js +18 -0
  44. package/dist/cjs/client/utils/passkey/types/shared.js.map +1 -0
  45. package/dist/cjs/client/utils/store/autoSignInStore.js +45 -0
  46. package/dist/cjs/client/utils/store/autoSignInStore.js.map +1 -0
  47. package/dist/cjs/client/utils/store/index.js +9 -0
  48. package/dist/cjs/client/utils/store/index.js.map +1 -0
  49. package/dist/cjs/client/utils/store/signInStore.js.map +1 -0
  50. package/dist/cjs/client/utils/store/types.js +6 -0
  51. package/dist/cjs/client/utils/store/types.js.map +1 -0
  52. package/dist/cjs/foundation/apis/deleteWebAuthnCredential.js +33 -0
  53. package/dist/cjs/foundation/apis/deleteWebAuthnCredential.js.map +1 -0
  54. package/dist/cjs/foundation/apis/index.js +11 -0
  55. package/dist/cjs/foundation/apis/index.js.map +1 -0
  56. package/dist/cjs/foundation/apis/listWebAuthnCredentials.js +46 -0
  57. package/dist/cjs/foundation/apis/listWebAuthnCredentials.js.map +1 -0
  58. package/dist/cjs/foundation/convert/base64url/convertArrayBufferToBase64Url.js +21 -0
  59. package/dist/cjs/foundation/convert/base64url/convertArrayBufferToBase64Url.js.map +1 -0
  60. package/dist/cjs/foundation/convert/base64url/convertBase64UrlToArrayBuffer.js +17 -0
  61. package/dist/cjs/foundation/convert/base64url/convertBase64UrlToArrayBuffer.js.map +1 -0
  62. package/dist/cjs/foundation/convert/base64url/index.js +11 -0
  63. package/dist/cjs/foundation/convert/base64url/index.js.map +1 -0
  64. package/dist/cjs/foundation/convert/index.js +10 -0
  65. package/dist/cjs/foundation/convert/index.js.map +1 -0
  66. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/createCompleteWebAuthnRegistrationClient.js +16 -0
  67. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/createCompleteWebAuthnRegistrationClient.js.map +1 -0
  68. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteWebAuthnCredentialClient.js +16 -0
  69. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteWebAuthnCredentialClient.js.map +1 -0
  70. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/createListWebAuthnCredentialsClient.js +16 -0
  71. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/createListWebAuthnCredentialsClient.js.map +1 -0
  72. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/createSignUpClient.js +33 -4
  73. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/createSignUpClient.js.map +1 -1
  74. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/createStartWebAuthnRegistrationClient.js +16 -0
  75. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/createStartWebAuthnRegistrationClient.js.map +1 -0
  76. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/index.js +9 -1
  77. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/index.js.map +1 -1
  78. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/types/errors.js +44 -0
  79. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/types/errors.js.map +1 -0
  80. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/types/index.js +3 -2
  81. package/dist/cjs/foundation/factories/serviceClients/cognitoIdentityProvider/types/index.js.map +1 -1
  82. package/dist/cjs/foundation/types/index.js +6 -0
  83. package/dist/cjs/foundation/types/index.js.map +1 -0
  84. package/dist/cjs/foundation/types/inputs.js +6 -0
  85. package/dist/cjs/foundation/types/inputs.js.map +1 -0
  86. package/dist/cjs/foundation/types/models.js +6 -0
  87. package/dist/cjs/foundation/types/models.js.map +1 -0
  88. package/dist/cjs/foundation/types/outputs.js +6 -0
  89. package/dist/cjs/foundation/types/outputs.js.map +1 -0
  90. package/dist/cjs/index.js +6 -1
  91. package/dist/cjs/index.js.map +1 -1
  92. package/dist/cjs/providers/cognito/apis/autoSignIn.js +6 -2
  93. package/dist/cjs/providers/cognito/apis/autoSignIn.js.map +1 -1
  94. package/dist/cjs/providers/cognito/apis/confirmSignIn.js +4 -4
  95. package/dist/cjs/providers/cognito/apis/confirmSignIn.js.map +1 -1
  96. package/dist/cjs/providers/cognito/apis/confirmSignUp.js +8 -5
  97. package/dist/cjs/providers/cognito/apis/confirmSignUp.js.map +1 -1
  98. package/dist/cjs/providers/cognito/apis/signIn.js +9 -0
  99. package/dist/cjs/providers/cognito/apis/signIn.js.map +1 -1
  100. package/dist/cjs/providers/cognito/apis/signInWithCustomAuth.js +4 -4
  101. package/dist/cjs/providers/cognito/apis/signInWithCustomAuth.js.map +1 -1
  102. package/dist/cjs/providers/cognito/apis/signInWithCustomSRPAuth.js +4 -4
  103. package/dist/cjs/providers/cognito/apis/signInWithCustomSRPAuth.js.map +1 -1
  104. package/dist/cjs/providers/cognito/apis/signInWithSRP.js +7 -4
  105. package/dist/cjs/providers/cognito/apis/signInWithSRP.js.map +1 -1
  106. package/dist/cjs/providers/cognito/apis/signInWithUserAuth.js +102 -0
  107. package/dist/cjs/providers/cognito/apis/signInWithUserAuth.js.map +1 -0
  108. package/dist/cjs/providers/cognito/apis/signInWithUserPassword.js +7 -4
  109. package/dist/cjs/providers/cognito/apis/signInWithUserPassword.js.map +1 -1
  110. package/dist/cjs/providers/cognito/apis/signUp.js +56 -49
  111. package/dist/cjs/providers/cognito/apis/signUp.js.map +1 -1
  112. package/dist/cjs/providers/cognito/utils/signInHelpers.js +60 -42
  113. package/dist/cjs/providers/cognito/utils/signInHelpers.js.map +1 -1
  114. package/dist/cjs/providers/cognito/utils/signUpHelpers.js +5 -31
  115. package/dist/cjs/providers/cognito/utils/signUpHelpers.js.map +1 -1
  116. package/dist/esm/client/apis/associateWebAuthnCredential.d.ts +14 -0
  117. package/dist/esm/client/apis/associateWebAuthnCredential.mjs +69 -0
  118. package/dist/esm/client/apis/associateWebAuthnCredential.mjs.map +1 -0
  119. package/dist/esm/client/apis/deleteWebAuthnCredential.d.ts +11 -0
  120. package/dist/esm/client/apis/deleteWebAuthnCredential.mjs +29 -0
  121. package/dist/esm/client/apis/deleteWebAuthnCredential.mjs.map +1 -0
  122. package/dist/esm/client/apis/index.d.ts +3 -0
  123. package/dist/esm/client/apis/index.mjs +4 -0
  124. package/dist/esm/client/apis/index.mjs.map +1 -0
  125. package/dist/esm/client/apis/listWebAuthnCredentials.d.ts +12 -0
  126. package/dist/esm/client/apis/listWebAuthnCredentials.mjs +30 -0
  127. package/dist/esm/client/apis/listWebAuthnCredentials.mjs.map +1 -0
  128. package/dist/esm/client/flows/shared/handlePasswordSRP.d.ts +31 -0
  129. package/dist/esm/client/flows/shared/handlePasswordSRP.mjs +86 -0
  130. package/dist/esm/client/flows/shared/handlePasswordSRP.mjs.map +1 -0
  131. package/dist/esm/client/flows/userAuth/handleSelectChallenge.d.ts +23 -0
  132. package/dist/esm/client/flows/userAuth/handleSelectChallenge.mjs +51 -0
  133. package/dist/esm/client/flows/userAuth/handleSelectChallenge.mjs.map +1 -0
  134. package/dist/esm/client/flows/userAuth/handleSelectChallengeWithPassword.d.ts +16 -0
  135. package/dist/esm/client/flows/userAuth/handleSelectChallengeWithPassword.mjs +64 -0
  136. package/dist/esm/client/flows/userAuth/handleSelectChallengeWithPassword.mjs.map +1 -0
  137. package/dist/esm/client/flows/userAuth/handleSelectChallengeWithPasswordSRP.d.ts +18 -0
  138. package/dist/esm/client/flows/userAuth/handleSelectChallengeWithPasswordSRP.mjs +81 -0
  139. package/dist/esm/client/flows/userAuth/handleSelectChallengeWithPasswordSRP.mjs.map +1 -0
  140. package/dist/esm/client/flows/userAuth/handleUserAuthFlow.d.ts +27 -0
  141. package/dist/esm/client/flows/userAuth/handleUserAuthFlow.mjs +88 -0
  142. package/dist/esm/client/flows/userAuth/handleUserAuthFlow.mjs.map +1 -0
  143. package/dist/esm/client/flows/userAuth/handleWebAuthnSignInResult.d.ts +3 -0
  144. package/dist/esm/client/flows/userAuth/handleWebAuthnSignInResult.mjs +93 -0
  145. package/dist/esm/client/flows/userAuth/handleWebAuthnSignInResult.mjs.map +1 -0
  146. package/dist/esm/client/utils/index.d.ts +1 -0
  147. package/dist/esm/client/utils/index.mjs +4 -0
  148. package/dist/esm/client/utils/index.mjs.map +1 -0
  149. package/dist/esm/client/utils/passkey/errors.d.ts +33 -0
  150. package/dist/esm/client/utils/passkey/errors.mjs +176 -0
  151. package/dist/esm/client/utils/passkey/errors.mjs.map +1 -0
  152. package/dist/esm/client/utils/passkey/getIsPasskeySupported.d.ts +6 -0
  153. package/dist/esm/client/utils/passkey/getIsPasskeySupported.mjs +18 -0
  154. package/dist/esm/client/utils/passkey/getIsPasskeySupported.mjs.map +1 -0
  155. package/dist/esm/client/utils/passkey/getIsPasskeySupported.native.d.ts +1 -0
  156. package/dist/esm/client/utils/passkey/getIsPasskeySupported.native.mjs +10 -0
  157. package/dist/esm/client/utils/passkey/getIsPasskeySupported.native.mjs.map +1 -0
  158. package/dist/esm/client/utils/passkey/getPasskey.d.ts +2 -0
  159. package/dist/esm/client/utils/passkey/getPasskey.mjs +25 -0
  160. package/dist/esm/client/utils/passkey/getPasskey.mjs.map +1 -0
  161. package/dist/esm/client/utils/passkey/getPasskey.native.d.ts +1 -0
  162. package/dist/esm/client/utils/passkey/getPasskey.native.mjs +10 -0
  163. package/dist/esm/client/utils/passkey/getPasskey.native.mjs.map +1 -0
  164. package/dist/esm/client/utils/passkey/index.d.ts +2 -0
  165. package/dist/esm/client/utils/passkey/index.mjs +3 -0
  166. package/dist/esm/client/utils/passkey/index.mjs.map +1 -0
  167. package/dist/esm/client/utils/passkey/registerPasskey.d.ts +7 -0
  168. package/dist/esm/client/utils/passkey/registerPasskey.mjs +30 -0
  169. package/dist/esm/client/utils/passkey/registerPasskey.mjs.map +1 -0
  170. package/dist/esm/client/utils/passkey/registerPasskey.native.d.ts +1 -0
  171. package/dist/esm/client/utils/passkey/registerPasskey.native.mjs +10 -0
  172. package/dist/esm/client/utils/passkey/registerPasskey.native.mjs.map +1 -0
  173. package/dist/esm/client/utils/passkey/serde.d.ts +25 -0
  174. package/dist/esm/client/utils/passkey/serde.mjs +102 -0
  175. package/dist/esm/client/utils/passkey/serde.mjs.map +1 -0
  176. package/dist/esm/client/utils/passkey/types/index.d.ts +16 -0
  177. package/dist/esm/client/utils/passkey/types/index.mjs +18 -0
  178. package/dist/esm/client/utils/passkey/types/index.mjs.map +1 -0
  179. package/dist/esm/client/utils/passkey/types/shared.d.ts +106 -0
  180. package/dist/esm/client/utils/passkey/types/shared.mjs +16 -0
  181. package/dist/esm/client/utils/passkey/types/shared.mjs.map +1 -0
  182. package/dist/esm/client/utils/store/autoSignInStore.d.ts +21 -0
  183. package/dist/esm/client/utils/store/autoSignInStore.mjs +43 -0
  184. package/dist/esm/client/utils/store/autoSignInStore.mjs.map +1 -0
  185. package/dist/esm/client/utils/store/index.d.ts +2 -0
  186. package/dist/esm/client/utils/store/index.mjs +3 -0
  187. package/dist/esm/client/utils/store/index.mjs.map +1 -0
  188. package/dist/esm/{providers/cognito/utils → client/utils/store}/signInStore.d.ts +1 -1
  189. package/dist/esm/client/utils/store/signInStore.mjs.map +1 -0
  190. package/dist/esm/client/utils/store/types.d.ts +5 -0
  191. package/dist/esm/client/utils/store/types.mjs +2 -0
  192. package/dist/esm/client/utils/store/types.mjs.map +1 -0
  193. package/dist/esm/foundation/apis/deleteWebAuthnCredential.d.ts +3 -0
  194. package/dist/esm/foundation/apis/deleteWebAuthnCredential.mjs +38 -0
  195. package/dist/esm/foundation/apis/deleteWebAuthnCredential.mjs.map +1 -0
  196. package/dist/esm/foundation/apis/index.d.ts +2 -0
  197. package/dist/esm/foundation/apis/index.mjs +3 -0
  198. package/dist/esm/foundation/apis/index.mjs.map +1 -0
  199. package/dist/esm/foundation/apis/listWebAuthnCredentials.d.ts +3 -0
  200. package/dist/esm/foundation/apis/listWebAuthnCredentials.mjs +51 -0
  201. package/dist/esm/foundation/apis/listWebAuthnCredentials.mjs.map +1 -0
  202. package/dist/esm/foundation/convert/base64url/convertArrayBufferToBase64Url.d.ts +6 -0
  203. package/dist/esm/foundation/convert/base64url/convertArrayBufferToBase64Url.mjs +19 -0
  204. package/dist/esm/foundation/convert/base64url/convertArrayBufferToBase64Url.mjs.map +1 -0
  205. package/dist/esm/foundation/convert/base64url/convertBase64UrlToArrayBuffer.d.ts +6 -0
  206. package/dist/esm/foundation/convert/base64url/convertBase64UrlToArrayBuffer.mjs +15 -0
  207. package/dist/esm/foundation/convert/base64url/convertBase64UrlToArrayBuffer.mjs.map +1 -0
  208. package/dist/esm/foundation/convert/base64url/index.d.ts +2 -0
  209. package/dist/esm/foundation/convert/base64url/index.mjs +3 -0
  210. package/dist/esm/foundation/convert/base64url/index.mjs.map +1 -0
  211. package/dist/esm/foundation/convert/index.d.ts +1 -0
  212. package/dist/esm/foundation/convert/index.mjs +3 -0
  213. package/dist/esm/foundation/convert/index.mjs.map +1 -0
  214. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createCompleteWebAuthnRegistrationClient.d.ts +13 -0
  215. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createCompleteWebAuthnRegistrationClient.mjs +17 -0
  216. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createCompleteWebAuthnRegistrationClient.mjs.map +1 -0
  217. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteWebAuthnCredentialClient.d.ts +13 -0
  218. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteWebAuthnCredentialClient.mjs +17 -0
  219. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteWebAuthnCredentialClient.mjs.map +1 -0
  220. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createListWebAuthnCredentialsClient.d.ts +13 -0
  221. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createListWebAuthnCredentialsClient.mjs +17 -0
  222. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createListWebAuthnCredentialsClient.mjs.map +1 -0
  223. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createSignUpClient.d.ts +3 -1
  224. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createSignUpClient.mjs +32 -7
  225. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createSignUpClient.mjs.map +1 -1
  226. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createStartWebAuthnRegistrationClient.d.ts +13 -0
  227. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createStartWebAuthnRegistrationClient.mjs +17 -0
  228. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/createStartWebAuthnRegistrationClient.mjs.map +1 -0
  229. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/index.d.ts +4 -0
  230. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/index.mjs +4 -0
  231. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/index.mjs.map +1 -1
  232. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolSerializer.d.ts +1 -1
  233. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/types/errors.d.ts +37 -0
  234. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/types/errors.mjs +46 -0
  235. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/types/errors.mjs.map +1 -0
  236. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/types/index.d.ts +1 -0
  237. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/types/index.mjs +1 -1
  238. package/dist/esm/foundation/factories/serviceClients/cognitoIdentityProvider/types/sdk.d.ts +109 -5
  239. package/dist/esm/foundation/types/index.d.ts +3 -0
  240. package/dist/esm/foundation/types/index.mjs +2 -0
  241. package/dist/esm/foundation/types/index.mjs.map +1 -0
  242. package/dist/esm/foundation/types/inputs.d.ts +10 -0
  243. package/dist/esm/foundation/types/inputs.mjs +2 -0
  244. package/dist/esm/foundation/types/inputs.mjs.map +1 -0
  245. package/dist/esm/foundation/types/models.d.ts +11 -0
  246. package/dist/esm/foundation/types/models.mjs +2 -0
  247. package/dist/esm/foundation/types/models.mjs.map +1 -0
  248. package/dist/esm/foundation/types/outputs.d.ts +8 -0
  249. package/dist/esm/foundation/types/outputs.mjs +2 -0
  250. package/dist/esm/foundation/types/outputs.mjs.map +1 -0
  251. package/dist/esm/index.d.ts +3 -0
  252. package/dist/esm/index.mjs +3 -0
  253. package/dist/esm/index.mjs.map +1 -1
  254. package/dist/esm/providers/cognito/apis/autoSignIn.d.ts +1 -1
  255. package/dist/esm/providers/cognito/apis/autoSignIn.mjs +7 -2
  256. package/dist/esm/providers/cognito/apis/autoSignIn.mjs.map +1 -1
  257. package/dist/esm/providers/cognito/apis/confirmResetPassword.mjs +2 -0
  258. package/dist/esm/providers/cognito/apis/confirmResetPassword.mjs.map +1 -1
  259. package/dist/esm/providers/cognito/apis/confirmSignIn.mjs +2 -1
  260. package/dist/esm/providers/cognito/apis/confirmSignIn.mjs.map +1 -1
  261. package/dist/esm/providers/cognito/apis/confirmSignUp.mjs +11 -5
  262. package/dist/esm/providers/cognito/apis/confirmSignUp.mjs.map +1 -1
  263. package/dist/esm/providers/cognito/apis/confirmUserAttribute.mjs +2 -0
  264. package/dist/esm/providers/cognito/apis/confirmUserAttribute.mjs.map +1 -1
  265. package/dist/esm/providers/cognito/apis/deleteUser.mjs +3 -0
  266. package/dist/esm/providers/cognito/apis/deleteUser.mjs.map +1 -1
  267. package/dist/esm/providers/cognito/apis/deleteUserAttributes.mjs +3 -0
  268. package/dist/esm/providers/cognito/apis/deleteUserAttributes.mjs.map +1 -1
  269. package/dist/esm/providers/cognito/apis/fetchDevices.mjs +3 -0
  270. package/dist/esm/providers/cognito/apis/fetchDevices.mjs.map +1 -1
  271. package/dist/esm/providers/cognito/apis/fetchMFAPreference.mjs +3 -0
  272. package/dist/esm/providers/cognito/apis/fetchMFAPreference.mjs.map +1 -1
  273. package/dist/esm/providers/cognito/apis/forgetDevice.mjs +3 -0
  274. package/dist/esm/providers/cognito/apis/forgetDevice.mjs.map +1 -1
  275. package/dist/esm/providers/cognito/apis/internal/fetchUserAttributes.mjs +3 -0
  276. package/dist/esm/providers/cognito/apis/internal/fetchUserAttributes.mjs.map +1 -1
  277. package/dist/esm/providers/cognito/apis/rememberDevice.mjs +3 -0
  278. package/dist/esm/providers/cognito/apis/rememberDevice.mjs.map +1 -1
  279. package/dist/esm/providers/cognito/apis/resendSignUpCode.mjs +2 -0
  280. package/dist/esm/providers/cognito/apis/resendSignUpCode.mjs.map +1 -1
  281. package/dist/esm/providers/cognito/apis/resetPassword.mjs +2 -0
  282. package/dist/esm/providers/cognito/apis/resetPassword.mjs.map +1 -1
  283. package/dist/esm/providers/cognito/apis/sendUserAttributeVerificationCode.mjs +3 -0
  284. package/dist/esm/providers/cognito/apis/sendUserAttributeVerificationCode.mjs.map +1 -1
  285. package/dist/esm/providers/cognito/apis/setUpTOTP.mjs +2 -0
  286. package/dist/esm/providers/cognito/apis/setUpTOTP.mjs.map +1 -1
  287. package/dist/esm/providers/cognito/apis/signIn.mjs +9 -0
  288. package/dist/esm/providers/cognito/apis/signIn.mjs.map +1 -1
  289. package/dist/esm/providers/cognito/apis/signInWithCustomAuth.mjs +2 -1
  290. package/dist/esm/providers/cognito/apis/signInWithCustomAuth.mjs.map +1 -1
  291. package/dist/esm/providers/cognito/apis/signInWithCustomSRPAuth.mjs +2 -1
  292. package/dist/esm/providers/cognito/apis/signInWithCustomSRPAuth.mjs.map +1 -1
  293. package/dist/esm/providers/cognito/apis/signInWithSRP.mjs +5 -1
  294. package/dist/esm/providers/cognito/apis/signInWithSRP.mjs.map +1 -1
  295. package/dist/esm/providers/cognito/apis/signInWithUserAuth.d.ts +13 -0
  296. package/dist/esm/providers/cognito/apis/signInWithUserAuth.mjs +104 -0
  297. package/dist/esm/providers/cognito/apis/signInWithUserAuth.mjs.map +1 -0
  298. package/dist/esm/providers/cognito/apis/signInWithUserPassword.mjs +6 -2
  299. package/dist/esm/providers/cognito/apis/signInWithUserPassword.mjs.map +1 -1
  300. package/dist/esm/providers/cognito/apis/signOut.mjs +2 -0
  301. package/dist/esm/providers/cognito/apis/signOut.mjs.map +1 -1
  302. package/dist/esm/providers/cognito/apis/signUp.mjs +58 -50
  303. package/dist/esm/providers/cognito/apis/signUp.mjs.map +1 -1
  304. package/dist/esm/providers/cognito/apis/updateMFAPreference.mjs +3 -0
  305. package/dist/esm/providers/cognito/apis/updateMFAPreference.mjs.map +1 -1
  306. package/dist/esm/providers/cognito/apis/updatePassword.mjs +2 -0
  307. package/dist/esm/providers/cognito/apis/updatePassword.mjs.map +1 -1
  308. package/dist/esm/providers/cognito/apis/updateUserAttributes.mjs +3 -0
  309. package/dist/esm/providers/cognito/apis/updateUserAttributes.mjs.map +1 -1
  310. package/dist/esm/providers/cognito/apis/verifyTOTPSetup.mjs +2 -0
  311. package/dist/esm/providers/cognito/apis/verifyTOTPSetup.mjs.map +1 -1
  312. package/dist/esm/providers/cognito/types/index.d.ts +2 -2
  313. package/dist/esm/providers/cognito/types/inputs.d.ts +4 -0
  314. package/dist/esm/providers/cognito/types/models.d.ts +7 -1
  315. package/dist/esm/providers/cognito/types/options.d.ts +2 -1
  316. package/dist/esm/providers/cognito/types/outputs.d.ts +4 -0
  317. package/dist/esm/providers/cognito/utils/refreshAuthTokens.mjs +3 -0
  318. package/dist/esm/providers/cognito/utils/refreshAuthTokens.mjs.map +1 -1
  319. package/dist/esm/providers/cognito/utils/signInHelpers.d.ts +2 -1
  320. package/dist/esm/providers/cognito/utils/signInHelpers.mjs +56 -37
  321. package/dist/esm/providers/cognito/utils/signInHelpers.mjs.map +1 -1
  322. package/dist/esm/providers/cognito/utils/signUpHelpers.d.ts +0 -6
  323. package/dist/esm/providers/cognito/utils/signUpHelpers.mjs +5 -26
  324. package/dist/esm/providers/cognito/utils/signUpHelpers.mjs.map +1 -1
  325. package/dist/esm/types/inputs.d.ts +2 -2
  326. package/dist/esm/types/models.d.ts +9 -1
  327. package/package.json +104 -104
  328. package/src/client/apis/associateWebAuthnCredential.ts +94 -0
  329. package/src/client/apis/deleteWebAuthnCredential.ts +24 -0
  330. package/src/client/apis/index.ts +6 -0
  331. package/src/client/apis/listWebAuthnCredentials.ts +28 -0
  332. package/src/client/flows/shared/handlePasswordSRP.ts +123 -0
  333. package/src/client/flows/userAuth/handleSelectChallenge.ts +62 -0
  334. package/src/client/flows/userAuth/handleSelectChallengeWithPassword.ts +74 -0
  335. package/src/client/flows/userAuth/handleSelectChallengeWithPasswordSRP.ts +105 -0
  336. package/src/client/flows/userAuth/handleUserAuthFlow.ts +125 -0
  337. package/src/client/flows/userAuth/handleWebAuthnSignInResult.ts +130 -0
  338. package/src/client/utils/index.ts +4 -0
  339. package/src/client/utils/passkey/errors.ts +214 -0
  340. package/src/client/utils/passkey/getIsPasskeySupported.native.ts +8 -0
  341. package/src/client/utils/passkey/getIsPasskeySupported.ts +18 -0
  342. package/src/client/utils/passkey/getPasskey.native.ts +8 -0
  343. package/src/client/utils/passkey/getPasskey.ts +40 -0
  344. package/src/client/utils/passkey/index.ts +5 -0
  345. package/src/client/utils/passkey/registerPasskey.native.ts +8 -0
  346. package/src/client/utils/passkey/registerPasskey.ts +48 -0
  347. package/src/client/utils/passkey/serde.ts +151 -0
  348. package/src/client/utils/passkey/types/index.ts +61 -0
  349. package/src/client/utils/passkey/types/shared.ts +131 -0
  350. package/src/client/utils/store/autoSignInStore.ts +64 -0
  351. package/src/client/utils/store/index.ts +5 -0
  352. package/src/{providers/cognito/utils → client/utils/store}/signInStore.ts +3 -8
  353. package/src/client/utils/store/types.ts +9 -0
  354. package/src/foundation/apis/deleteWebAuthnCredential.ts +45 -0
  355. package/src/foundation/apis/index.ts +5 -0
  356. package/src/foundation/apis/listWebAuthnCredentials.ts +68 -0
  357. package/src/foundation/convert/base64url/convertArrayBufferToBase64Url.ts +18 -0
  358. package/src/foundation/convert/base64url/convertBase64UrlToArrayBuffer.ts +18 -0
  359. package/src/foundation/convert/base64url/index.ts +5 -0
  360. package/src/foundation/convert/index.ts +7 -0
  361. package/src/foundation/factories/serviceClients/cognitoIdentityProvider/createCompleteWebAuthnRegistrationClient.ts +31 -0
  362. package/src/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteWebAuthnCredentialClient.ts +31 -0
  363. package/src/foundation/factories/serviceClients/cognitoIdentityProvider/createListWebAuthnCredentialsClient.ts +31 -0
  364. package/src/foundation/factories/serviceClients/cognitoIdentityProvider/createSignUpClient.ts +44 -7
  365. package/src/foundation/factories/serviceClients/cognitoIdentityProvider/createStartWebAuthnRegistrationClient.ts +31 -0
  366. package/src/foundation/factories/serviceClients/cognitoIdentityProvider/index.ts +4 -0
  367. package/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolSerializer.ts +5 -1
  368. package/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/errors.ts +43 -0
  369. package/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/index.ts +2 -0
  370. package/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/sdk.ts +141 -5
  371. package/src/foundation/types/index.ts +9 -0
  372. package/src/foundation/types/inputs.ts +14 -0
  373. package/src/foundation/types/models.ts +14 -0
  374. package/src/foundation/types/outputs.ts +12 -0
  375. package/src/index.ts +14 -0
  376. package/src/providers/cognito/apis/autoSignIn.ts +6 -2
  377. package/src/providers/cognito/apis/confirmSignIn.ts +1 -1
  378. package/src/providers/cognito/apis/confirmSignUp.ts +10 -9
  379. package/src/providers/cognito/apis/signIn.ts +10 -0
  380. package/src/providers/cognito/apis/signInWithCustomAuth.ts +1 -1
  381. package/src/providers/cognito/apis/signInWithCustomSRPAuth.ts +1 -1
  382. package/src/providers/cognito/apis/signInWithSRP.ts +6 -1
  383. package/src/providers/cognito/apis/signInWithUserAuth.ts +141 -0
  384. package/src/providers/cognito/apis/signInWithUserPassword.ts +7 -2
  385. package/src/providers/cognito/apis/signUp.ts +81 -72
  386. package/src/providers/cognito/types/index.ts +2 -0
  387. package/src/providers/cognito/types/inputs.ts +5 -0
  388. package/src/providers/cognito/types/models.ts +13 -0
  389. package/src/providers/cognito/types/options.ts +7 -1
  390. package/src/providers/cognito/types/outputs.ts +5 -0
  391. package/src/providers/cognito/utils/signInHelpers.ts +77 -55
  392. package/src/providers/cognito/utils/signUpHelpers.ts +6 -31
  393. package/src/types/inputs.ts +2 -2
  394. package/src/types/models.ts +13 -0
  395. package/dist/cjs/providers/cognito/utils/signInStore.js.map +0 -1
  396. package/dist/esm/providers/cognito/utils/signInStore.mjs.map +0 -1
  397. /package/dist/cjs/{providers/cognito/utils → client/utils/store}/signInStore.js +0 -0
  398. /package/dist/esm/{providers/cognito/utils → client/utils/store}/signInStore.mjs +0 -0
@@ -0,0 +1,62 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { CognitoUserPoolConfig } from '@aws-amplify/core';
5
+ import { AuthAction } from '@aws-amplify/core/internals/utils';
6
+
7
+ import { ClientMetadata } from '../../../providers/cognito/types';
8
+ import { createRespondToAuthChallengeClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider';
9
+ import { createCognitoUserPoolEndpointResolver } from '../../../providers/cognito/factories';
10
+ import { getRegionFromUserPoolId } from '../../../foundation/parsers';
11
+ import { getAuthUserAgentValue } from '../../../utils';
12
+ import { RespondToAuthChallengeCommandOutput } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types';
13
+
14
+ /**
15
+ * Handles the SELECT_CHALLENGE response for authentication.
16
+ * Initiates the selected authentication challenge based on user choice.
17
+ *
18
+ * @param {Object} params - The parameters for handling the selected challenge
19
+ * @param {string} params.username - The username for authentication
20
+ * @param {string} params.session - The current authentication session token
21
+ * @param {string} params.selectedChallenge - The challenge type selected by the user
22
+ * @param {CognitoUserPoolConfig} params.config - Cognito User Pool configuration
23
+ * @param {ClientMetadata} [params.clientMetadata] - Optional metadata to be sent with auth requests
24
+ *
25
+ * @returns {Promise<RespondToAuthChallengeCommandOutput>} The challenge response
26
+ */
27
+ export async function initiateSelectedChallenge({
28
+ username,
29
+ session,
30
+ selectedChallenge,
31
+ config,
32
+ clientMetadata,
33
+ }: {
34
+ username: string;
35
+ session: string;
36
+ selectedChallenge: string;
37
+ config: CognitoUserPoolConfig;
38
+ clientMetadata?: ClientMetadata;
39
+ }): Promise<RespondToAuthChallengeCommandOutput> {
40
+ const respondToAuthChallenge = createRespondToAuthChallengeClient({
41
+ endpointResolver: createCognitoUserPoolEndpointResolver({
42
+ endpointOverride: config.userPoolEndpoint,
43
+ }),
44
+ });
45
+
46
+ return respondToAuthChallenge(
47
+ {
48
+ region: getRegionFromUserPoolId(config.userPoolId),
49
+ userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),
50
+ },
51
+ {
52
+ ChallengeName: 'SELECT_CHALLENGE',
53
+ ChallengeResponses: {
54
+ USERNAME: username,
55
+ ANSWER: selectedChallenge,
56
+ },
57
+ ClientId: config.userPoolClientId,
58
+ Session: session,
59
+ ClientMetadata: clientMetadata,
60
+ },
61
+ );
62
+ }
@@ -0,0 +1,74 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { CognitoUserPoolConfig } from '@aws-amplify/core';
5
+ import { AuthAction } from '@aws-amplify/core/internals/utils';
6
+
7
+ import { ClientMetadata } from '../../../providers/cognito/types';
8
+ import { createRespondToAuthChallengeClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider';
9
+ import { createCognitoUserPoolEndpointResolver } from '../../../providers/cognito/factories';
10
+ import { getRegionFromUserPoolId } from '../../../foundation/parsers';
11
+ import { getAuthUserAgentValue } from '../../../utils';
12
+ import { getUserContextData } from '../../../providers/cognito/utils/userContextData';
13
+ import { RespondToAuthChallengeCommandOutput } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types';
14
+ import { setActiveSignInUsername } from '../../../providers/cognito/utils/signInHelpers';
15
+
16
+ /**
17
+ * Handles the SELECT_CHALLENGE response specifically for Password authentication.
18
+ * This function combines the SELECT_CHALLENGE flow with standard password authentication.
19
+ *
20
+ * @param {string} username - The username for authentication
21
+ * @param {string} password - The user's password
22
+ * @param {ClientMetadata} [clientMetadata] - Optional metadata to be sent with auth requests
23
+ * @param {CognitoUserPoolConfig} config - Cognito User Pool configuration
24
+ * @param {string} session - The current authentication session token
25
+ *
26
+ * @returns {Promise<RespondToAuthChallengeCommandOutput>} The challenge response
27
+ */
28
+ export async function handleSelectChallengeWithPassword(
29
+ username: string,
30
+ password: string,
31
+ clientMetadata: ClientMetadata | undefined,
32
+ config: CognitoUserPoolConfig,
33
+ session: string,
34
+ ): Promise<RespondToAuthChallengeCommandOutput> {
35
+ const { userPoolId, userPoolClientId, userPoolEndpoint } = config;
36
+
37
+ const authParameters: Record<string, string> = {
38
+ ANSWER: 'PASSWORD',
39
+ USERNAME: username,
40
+ PASSWORD: password,
41
+ };
42
+
43
+ const userContextData = getUserContextData({
44
+ username,
45
+ userPoolId,
46
+ userPoolClientId,
47
+ });
48
+
49
+ const respondToAuthChallenge = createRespondToAuthChallengeClient({
50
+ endpointResolver: createCognitoUserPoolEndpointResolver({
51
+ endpointOverride: userPoolEndpoint,
52
+ }),
53
+ });
54
+
55
+ const response = await respondToAuthChallenge(
56
+ {
57
+ region: getRegionFromUserPoolId(userPoolId),
58
+ userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),
59
+ },
60
+ {
61
+ ChallengeName: 'SELECT_CHALLENGE',
62
+ ChallengeResponses: authParameters,
63
+ ClientId: userPoolClientId,
64
+ ClientMetadata: clientMetadata,
65
+ Session: session,
66
+ UserContextData: userContextData,
67
+ },
68
+ );
69
+
70
+ const activeUsername = response.ChallengeParameters?.USERNAME ?? username;
71
+ setActiveSignInUsername(activeUsername);
72
+
73
+ return response;
74
+ }
@@ -0,0 +1,105 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { CognitoUserPoolConfig } from '@aws-amplify/core';
5
+ import { AuthAction } from '@aws-amplify/core/internals/utils';
6
+
7
+ import { AuthTokenOrchestrator } from '../../../providers/cognito/tokenProvider/types';
8
+ import {
9
+ ChallengeParameters,
10
+ RespondToAuthChallengeCommandOutput,
11
+ } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types';
12
+ import { ClientMetadata } from '../../../providers/cognito/types';
13
+ import { createRespondToAuthChallengeClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider';
14
+ import { createCognitoUserPoolEndpointResolver } from '../../../providers/cognito/factories';
15
+ import { getRegionFromUserPoolId } from '../../../foundation/parsers';
16
+ import { getAuthUserAgentValue } from '../../../utils';
17
+ import { getAuthenticationHelper } from '../../../providers/cognito/utils/srp';
18
+ import { getUserContextData } from '../../../providers/cognito/utils/userContextData';
19
+ import {
20
+ handlePasswordVerifierChallenge,
21
+ retryOnResourceNotFoundException,
22
+ setActiveSignInUsername,
23
+ } from '../../../providers/cognito/utils/signInHelpers';
24
+
25
+ /**
26
+ * Handles the SELECT_CHALLENGE response specifically for Password SRP authentication.
27
+ * This function combines the SELECT_CHALLENGE flow with Password SRP protocol.
28
+ *
29
+ * @param {string} username - The username for authentication
30
+ * @param {string} password - The user's password
31
+ * @param {ClientMetadata} [clientMetadata] - Optional metadata to be sent with auth requests
32
+ * @param {CognitoUserPoolConfig} config - Cognito User Pool configuration
33
+ * @param {string} session - The current authentication session token
34
+ * @param {AuthTokenOrchestrator} tokenOrchestrator - Token orchestrator for managing auth tokens
35
+ *
36
+ * @returns {Promise<RespondToAuthChallengeCommandOutput>} The challenge response
37
+ */
38
+ export async function handleSelectChallengeWithPasswordSRP(
39
+ username: string,
40
+ password: string,
41
+ clientMetadata: ClientMetadata | undefined,
42
+ config: CognitoUserPoolConfig,
43
+ session: string,
44
+ tokenOrchestrator: AuthTokenOrchestrator,
45
+ ): Promise<RespondToAuthChallengeCommandOutput> {
46
+ const { userPoolId, userPoolClientId, userPoolEndpoint } = config;
47
+ const userPoolName = userPoolId.split('_')[1] || '';
48
+
49
+ const authenticationHelper = await getAuthenticationHelper(userPoolName);
50
+
51
+ const authParameters: Record<string, string> = {
52
+ ANSWER: 'PASSWORD_SRP',
53
+ USERNAME: username,
54
+ SRP_A: authenticationHelper.A.toString(16),
55
+ };
56
+
57
+ const userContextData = getUserContextData({
58
+ username,
59
+ userPoolId,
60
+ userPoolClientId,
61
+ });
62
+
63
+ const respondToAuthChallenge = createRespondToAuthChallengeClient({
64
+ endpointResolver: createCognitoUserPoolEndpointResolver({
65
+ endpointOverride: userPoolEndpoint,
66
+ }),
67
+ });
68
+
69
+ const response = await respondToAuthChallenge(
70
+ {
71
+ region: getRegionFromUserPoolId(userPoolId),
72
+ userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),
73
+ },
74
+ {
75
+ ChallengeName: 'SELECT_CHALLENGE',
76
+ ChallengeResponses: authParameters,
77
+ ClientId: userPoolClientId,
78
+ ClientMetadata: clientMetadata,
79
+ Session: session,
80
+ UserContextData: userContextData,
81
+ },
82
+ );
83
+
84
+ const activeUsername = response.ChallengeParameters?.USERNAME ?? username;
85
+ setActiveSignInUsername(activeUsername);
86
+
87
+ if (response.ChallengeName === 'PASSWORD_VERIFIER') {
88
+ return retryOnResourceNotFoundException(
89
+ handlePasswordVerifierChallenge,
90
+ [
91
+ password,
92
+ response.ChallengeParameters as ChallengeParameters,
93
+ clientMetadata,
94
+ response.Session,
95
+ authenticationHelper,
96
+ config,
97
+ tokenOrchestrator,
98
+ ],
99
+ activeUsername,
100
+ tokenOrchestrator,
101
+ );
102
+ }
103
+
104
+ return response;
105
+ }
@@ -0,0 +1,125 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { CognitoUserPoolConfig } from '@aws-amplify/core';
5
+ import { AuthAction } from '@aws-amplify/core/internals/utils';
6
+
7
+ import { getUserContextData } from '../../../providers/cognito/utils/userContextData';
8
+ import { AuthTokenOrchestrator } from '../../../providers/cognito/tokenProvider/types';
9
+ import { AuthFactorType } from '../../../providers/cognito/types/models';
10
+ import {
11
+ InitiateAuthCommandInput,
12
+ InitiateAuthCommandOutput,
13
+ } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types';
14
+ import { createInitiateAuthClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider';
15
+ import { createCognitoUserPoolEndpointResolver } from '../../../providers/cognito/factories';
16
+ import { getRegionFromUserPoolId } from '../../../foundation/parsers';
17
+ import { getAuthUserAgentValue } from '../../../utils';
18
+ import { handlePasswordSRP } from '../shared/handlePasswordSRP';
19
+ import { assertValidationError } from '../../../errors/utils/assertValidationError';
20
+ import { AuthValidationErrorCode } from '../../../errors/types/validation';
21
+ import { setActiveSignInUsername } from '../../../providers/cognito/utils/signInHelpers';
22
+
23
+ export interface HandleUserAuthFlowInput {
24
+ username: string;
25
+ config: CognitoUserPoolConfig;
26
+ tokenOrchestrator: AuthTokenOrchestrator;
27
+ clientMetadata?: Record<string, string>;
28
+ preferredChallenge?: AuthFactorType;
29
+ password?: string;
30
+ session?: string;
31
+ }
32
+
33
+ /**
34
+ * Handles user authentication flow with configurable challenge preferences.
35
+ * Supports AuthFactorType challenges through the USER_AUTH flow.
36
+ *
37
+ * @param {HandleUserAuthFlowInput} params - Authentication flow parameters
38
+ * @param {string} params.username - The username for authentication
39
+ * @param {Record<string, string>} [params.clientMetadata] - Optional metadata to pass to authentication service
40
+ * @param {CognitoUserPoolConfig} params.config - Cognito User Pool configuration
41
+ * @param {AuthTokenOrchestrator} params.tokenOrchestrator - Manages authentication tokens and device tracking
42
+ * @param {AuthFactorType} [params.preferredChallenge] - Optional preferred authentication method
43
+ * @param {string} [params.password] - Required when preferredChallenge is 'PASSWORD' or 'PASSWORD_SRP'
44
+ *
45
+ * @returns {Promise<InitiateAuthCommandOutput>} The authentication response from Cognito
46
+ */
47
+ export async function handleUserAuthFlow({
48
+ username,
49
+ clientMetadata,
50
+ config,
51
+ tokenOrchestrator,
52
+ preferredChallenge,
53
+ password,
54
+ session,
55
+ }: HandleUserAuthFlowInput) {
56
+ const { userPoolId, userPoolClientId, userPoolEndpoint } = config;
57
+ const UserContextData = getUserContextData({
58
+ username,
59
+ userPoolId,
60
+ userPoolClientId,
61
+ });
62
+ const authParameters: Record<string, string> = { USERNAME: username };
63
+
64
+ if (preferredChallenge) {
65
+ if (preferredChallenge === 'PASSWORD_SRP') {
66
+ assertValidationError(
67
+ !!password,
68
+ AuthValidationErrorCode.EmptySignInPassword,
69
+ );
70
+
71
+ return handlePasswordSRP({
72
+ username,
73
+ password,
74
+ clientMetadata,
75
+ config,
76
+ tokenOrchestrator,
77
+ authFlow: 'USER_AUTH',
78
+ preferredChallenge,
79
+ });
80
+ }
81
+
82
+ if (preferredChallenge === 'PASSWORD') {
83
+ assertValidationError(
84
+ !!password,
85
+ AuthValidationErrorCode.EmptySignInPassword,
86
+ );
87
+ authParameters.PASSWORD = password;
88
+ }
89
+
90
+ authParameters.PREFERRED_CHALLENGE = preferredChallenge;
91
+ }
92
+
93
+ const jsonReq: InitiateAuthCommandInput = {
94
+ AuthFlow: 'USER_AUTH',
95
+ AuthParameters: authParameters,
96
+ ClientMetadata: clientMetadata,
97
+ ClientId: userPoolClientId,
98
+ UserContextData,
99
+ };
100
+
101
+ if (session) {
102
+ jsonReq.Session = session;
103
+ }
104
+
105
+ const initiateAuth = createInitiateAuthClient({
106
+ endpointResolver: createCognitoUserPoolEndpointResolver({
107
+ endpointOverride: userPoolEndpoint,
108
+ }),
109
+ });
110
+
111
+ const response = await initiateAuth(
112
+ {
113
+ region: getRegionFromUserPoolId(userPoolId),
114
+ userAgentValue: getAuthUserAgentValue(AuthAction.SignIn),
115
+ },
116
+ jsonReq,
117
+ );
118
+
119
+ // Set the active username immediately after successful authentication attempt
120
+ // If a user starts a new sign-in while another sign-in is incomplete,
121
+ // this ensures we're tracking the correct user for subsequent auth challenges.
122
+ setActiveSignInUsername(username);
123
+
124
+ return response;
125
+ }
@@ -0,0 +1,130 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { Amplify } from '@aws-amplify/core';
5
+ import {
6
+ AuthAction,
7
+ assertTokenProviderConfig,
8
+ } from '@aws-amplify/core/internals/utils';
9
+
10
+ import { AuthErrorCodes } from '../../../common/AuthErrorStrings';
11
+ import { createRespondToAuthChallengeClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider';
12
+ import {
13
+ ChallengeName,
14
+ ChallengeParameters,
15
+ } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types';
16
+ import { getRegionFromUserPoolId } from '../../../foundation/parsers';
17
+ import { createCognitoUserPoolEndpointResolver } from '../../../providers/cognito/factories';
18
+ import { cacheCognitoTokens } from '../../../providers/cognito/tokenProvider/cacheTokens';
19
+ import { dispatchSignedInHubEvent } from '../../../providers/cognito/utils/dispatchSignedInHubEvent';
20
+ import {
21
+ getNewDeviceMetadata,
22
+ getSignInResult,
23
+ } from '../../../providers/cognito/utils/signInHelpers';
24
+ import {
25
+ cleanActiveSignInState,
26
+ setActiveSignInState,
27
+ signInStore,
28
+ } from '../../../client/utils/store';
29
+ import { AuthSignInOutput } from '../../../types';
30
+ import { getAuthUserAgentValue } from '../../../utils';
31
+ import { getPasskey } from '../../utils/passkey';
32
+ import {
33
+ PasskeyErrorCode,
34
+ assertPasskeyError,
35
+ } from '../../utils/passkey/errors';
36
+ import { AuthError } from '../../../errors/AuthError';
37
+
38
+ export async function handleWebAuthnSignInResult(
39
+ challengeParameters: ChallengeParameters,
40
+ ): Promise<AuthSignInOutput> {
41
+ const authConfig = Amplify.getConfig().Auth?.Cognito;
42
+ assertTokenProviderConfig(authConfig);
43
+ const { username, signInSession, signInDetails, challengeName } =
44
+ signInStore.getState();
45
+
46
+ if (challengeName !== 'WEB_AUTHN' || !username) {
47
+ throw new AuthError({
48
+ name: AuthErrorCodes.SignInException,
49
+ message: 'Unable to proceed due to invalid sign in state.',
50
+ });
51
+ }
52
+
53
+ const { CREDENTIAL_REQUEST_OPTIONS: credentialRequestOptions } =
54
+ challengeParameters;
55
+
56
+ assertPasskeyError(
57
+ !!credentialRequestOptions,
58
+ PasskeyErrorCode.InvalidPasskeyAuthenticationOptions,
59
+ );
60
+
61
+ const cred = await getPasskey(JSON.parse(credentialRequestOptions));
62
+
63
+ const respondToAuthChallenge = createRespondToAuthChallengeClient({
64
+ endpointResolver: createCognitoUserPoolEndpointResolver({
65
+ endpointOverride: authConfig.userPoolEndpoint,
66
+ }),
67
+ });
68
+
69
+ const {
70
+ ChallengeName: nextChallengeName,
71
+ ChallengeParameters: nextChallengeParameters,
72
+ AuthenticationResult: authenticationResult,
73
+ Session: nextSession,
74
+ } = await respondToAuthChallenge(
75
+ {
76
+ region: getRegionFromUserPoolId(authConfig.userPoolId),
77
+ userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),
78
+ },
79
+ {
80
+ ChallengeName: 'WEB_AUTHN',
81
+ ChallengeResponses: {
82
+ USERNAME: username,
83
+ CREDENTIAL: JSON.stringify(cred),
84
+ },
85
+ ClientId: authConfig.userPoolClientId,
86
+ Session: signInSession,
87
+ },
88
+ );
89
+
90
+ setActiveSignInState({
91
+ signInSession: nextSession,
92
+ username,
93
+ challengeName: nextChallengeName as ChallengeName,
94
+ signInDetails,
95
+ });
96
+
97
+ if (authenticationResult) {
98
+ await cacheCognitoTokens({
99
+ ...authenticationResult,
100
+ username,
101
+ NewDeviceMetadata: await getNewDeviceMetadata({
102
+ userPoolId: authConfig.userPoolId,
103
+ userPoolEndpoint: authConfig.userPoolEndpoint,
104
+ newDeviceMetadata: authenticationResult.NewDeviceMetadata,
105
+ accessToken: authenticationResult.AccessToken,
106
+ }),
107
+ signInDetails,
108
+ });
109
+ cleanActiveSignInState();
110
+ await dispatchSignedInHubEvent();
111
+
112
+ return {
113
+ isSignedIn: true,
114
+ nextStep: { signInStep: 'DONE' },
115
+ };
116
+ }
117
+
118
+ if (nextChallengeName === 'WEB_AUTHN') {
119
+ throw new AuthError({
120
+ name: AuthErrorCodes.SignInException,
121
+ message:
122
+ 'Sequential WEB_AUTHN challenges returned from underlying service cannot be handled.',
123
+ });
124
+ }
125
+
126
+ return getSignInResult({
127
+ challengeName: nextChallengeName as ChallengeName,
128
+ challengeParameters: nextChallengeParameters as ChallengeParameters,
129
+ });
130
+ }
@@ -0,0 +1,4 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export { registerPasskey } from './passkey';