@forgerock/journey-client 0.0.0-beta-20251222204813

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 (528) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/LICENSE +21 -0
  3. package/README.md +143 -0
  4. package/coverage/base.css +224 -0
  5. package/coverage/block-navigation.js +87 -0
  6. package/coverage/coverage-final.json +1 -0
  7. package/coverage/favicon.png +0 -0
  8. package/coverage/index.html +101 -0
  9. package/coverage/prettify.css +1 -0
  10. package/coverage/prettify.js +2 -0
  11. package/coverage/sort-arrow-sprite.png +0 -0
  12. package/coverage/sorter.js +210 -0
  13. package/dist/package.json +62 -0
  14. package/dist/src/index.d.ts +2 -0
  15. package/dist/src/index.d.ts.map +1 -0
  16. package/dist/src/index.js +7 -0
  17. package/dist/src/lib/callbacks/attribute-input-callback.d.ts +44 -0
  18. package/dist/src/lib/callbacks/attribute-input-callback.d.ts.map +1 -0
  19. package/dist/src/lib/callbacks/attribute-input-callback.js +71 -0
  20. package/dist/src/lib/callbacks/base-callback.d.ts +45 -0
  21. package/dist/src/lib/callbacks/base-callback.d.ts.map +1 -0
  22. package/dist/src/lib/callbacks/base-callback.js +88 -0
  23. package/dist/src/lib/callbacks/choice-callback.d.ts +33 -0
  24. package/dist/src/lib/callbacks/choice-callback.d.ts.map +1 -0
  25. package/dist/src/lib/callbacks/choice-callback.js +57 -0
  26. package/dist/src/lib/callbacks/confirmation-callback.d.ts +41 -0
  27. package/dist/src/lib/callbacks/confirmation-callback.d.ts.map +1 -0
  28. package/dist/src/lib/callbacks/confirmation-callback.js +69 -0
  29. package/dist/src/lib/callbacks/device-profile-callback.d.ts +30 -0
  30. package/dist/src/lib/callbacks/device-profile-callback.d.ts.map +1 -0
  31. package/dist/src/lib/callbacks/device-profile-callback.js +43 -0
  32. package/dist/src/lib/callbacks/factory.d.ts +8 -0
  33. package/dist/src/lib/callbacks/factory.d.ts.map +1 -0
  34. package/dist/src/lib/callbacks/factory.js +87 -0
  35. package/dist/src/lib/callbacks/hidden-value-callback.d.ts +13 -0
  36. package/dist/src/lib/callbacks/hidden-value-callback.d.ts.map +1 -0
  37. package/dist/src/lib/callbacks/hidden-value-callback.js +19 -0
  38. package/dist/src/lib/callbacks/kba-create-callback.d.ts +34 -0
  39. package/dist/src/lib/callbacks/kba-create-callback.d.ts.map +1 -0
  40. package/dist/src/lib/callbacks/kba-create-callback.js +59 -0
  41. package/dist/src/lib/callbacks/metadata-callback.d.ts +17 -0
  42. package/dist/src/lib/callbacks/metadata-callback.d.ts.map +1 -0
  43. package/dist/src/lib/callbacks/metadata-callback.js +25 -0
  44. package/dist/src/lib/callbacks/name-callback.d.ts +21 -0
  45. package/dist/src/lib/callbacks/name-callback.d.ts.map +1 -0
  46. package/dist/src/lib/callbacks/name-callback.js +31 -0
  47. package/dist/src/lib/callbacks/password-callback.d.ts +29 -0
  48. package/dist/src/lib/callbacks/password-callback.d.ts.map +1 -0
  49. package/dist/src/lib/callbacks/password-callback.js +43 -0
  50. package/dist/src/lib/callbacks/ping-protect-evaluation-callback.d.ts +52 -0
  51. package/dist/src/lib/callbacks/ping-protect-evaluation-callback.d.ts.map +1 -0
  52. package/dist/src/lib/callbacks/ping-protect-evaluation-callback.js +64 -0
  53. package/dist/src/lib/callbacks/ping-protect-initialize-callback.d.ts +29 -0
  54. package/dist/src/lib/callbacks/ping-protect-initialize-callback.d.ts.map +1 -0
  55. package/dist/src/lib/callbacks/ping-protect-initialize-callback.js +40 -0
  56. package/dist/src/lib/callbacks/polling-wait-callback.d.ts +21 -0
  57. package/dist/src/lib/callbacks/polling-wait-callback.d.ts.map +1 -0
  58. package/dist/src/lib/callbacks/polling-wait-callback.js +31 -0
  59. package/dist/src/lib/callbacks/recaptcha-callback.d.ts +21 -0
  60. package/dist/src/lib/callbacks/recaptcha-callback.d.ts.map +1 -0
  61. package/dist/src/lib/callbacks/recaptcha-callback.js +31 -0
  62. package/dist/src/lib/callbacks/recaptcha-enterprise-callback.d.ts +41 -0
  63. package/dist/src/lib/callbacks/recaptcha-enterprise-callback.d.ts.map +1 -0
  64. package/dist/src/lib/callbacks/recaptcha-enterprise-callback.js +65 -0
  65. package/dist/src/lib/callbacks/redirect-callback.d.ts +17 -0
  66. package/dist/src/lib/callbacks/redirect-callback.d.ts.map +1 -0
  67. package/dist/src/lib/callbacks/redirect-callback.js +25 -0
  68. package/dist/src/lib/callbacks/select-idp-callback.d.ts +28 -0
  69. package/dist/src/lib/callbacks/select-idp-callback.d.ts.map +1 -0
  70. package/dist/src/lib/callbacks/select-idp-callback.js +35 -0
  71. package/dist/src/lib/callbacks/suspended-text-output-callback.d.ts +13 -0
  72. package/dist/src/lib/callbacks/suspended-text-output-callback.d.ts.map +1 -0
  73. package/dist/src/lib/callbacks/suspended-text-output-callback.js +19 -0
  74. package/dist/src/lib/callbacks/terms-and-conditions-callback.d.ts +29 -0
  75. package/dist/src/lib/callbacks/terms-and-conditions-callback.d.ts.map +1 -0
  76. package/dist/src/lib/callbacks/terms-and-conditions-callback.js +45 -0
  77. package/dist/src/lib/callbacks/text-input-callback.d.ts +21 -0
  78. package/dist/src/lib/callbacks/text-input-callback.d.ts.map +1 -0
  79. package/dist/src/lib/callbacks/text-input-callback.js +31 -0
  80. package/dist/src/lib/callbacks/text-output-callback.d.ts +22 -0
  81. package/dist/src/lib/callbacks/text-output-callback.d.ts.map +1 -0
  82. package/dist/src/lib/callbacks/text-output-callback.js +32 -0
  83. package/dist/src/lib/callbacks/validated-create-password-callback.d.ts +37 -0
  84. package/dist/src/lib/callbacks/validated-create-password-callback.d.ts.map +1 -0
  85. package/dist/src/lib/callbacks/validated-create-password-callback.js +63 -0
  86. package/dist/src/lib/callbacks/validated-create-username-callback.d.ts +37 -0
  87. package/dist/src/lib/callbacks/validated-create-username-callback.d.ts.map +1 -0
  88. package/dist/src/lib/callbacks/validated-create-username-callback.js +64 -0
  89. package/dist/src/lib/client.store.d.ts +37 -0
  90. package/dist/src/lib/client.store.d.ts.map +1 -0
  91. package/dist/src/lib/client.store.js +147 -0
  92. package/dist/src/lib/client.store.utils.d.ts +81 -0
  93. package/dist/src/lib/client.store.utils.d.ts.map +1 -0
  94. package/dist/src/lib/client.store.utils.js +28 -0
  95. package/dist/src/lib/config.types.d.ts +8 -0
  96. package/dist/src/lib/config.types.d.ts.map +1 -0
  97. package/dist/src/lib/config.types.js +7 -0
  98. package/dist/src/lib/device/defaults.d.ts +13 -0
  99. package/dist/src/lib/device/defaults.d.ts.map +1 -0
  100. package/dist/src/lib/device/defaults.js +78 -0
  101. package/dist/src/lib/device/device-profile.d.ts +41 -0
  102. package/dist/src/lib/device/device-profile.d.ts.map +1 -0
  103. package/dist/src/lib/device/device-profile.js +216 -0
  104. package/dist/src/lib/device/device-profile.mock.data.d.ts +109 -0
  105. package/dist/src/lib/device/device-profile.mock.data.d.ts.map +1 -0
  106. package/dist/src/lib/device/device-profile.mock.data.js +117 -0
  107. package/dist/src/lib/device/interfaces.d.ts +43 -0
  108. package/dist/src/lib/device/interfaces.d.ts.map +1 -0
  109. package/dist/src/lib/device/interfaces.js +10 -0
  110. package/dist/src/lib/interfaces.d.ts +15 -0
  111. package/dist/src/lib/interfaces.d.ts.map +1 -0
  112. package/dist/src/lib/interfaces.js +7 -0
  113. package/dist/src/lib/journey.api.d.ts +15 -0
  114. package/dist/src/lib/journey.api.d.ts.map +1 -0
  115. package/dist/src/lib/journey.api.js +129 -0
  116. package/dist/src/lib/journey.slice.d.ts +12 -0
  117. package/dist/src/lib/journey.slice.d.ts.map +1 -0
  118. package/dist/src/lib/journey.slice.js +18 -0
  119. package/dist/src/lib/journey.utils.d.ts +7 -0
  120. package/dist/src/lib/journey.utils.d.ts.map +1 -0
  121. package/dist/src/lib/journey.utils.js +33 -0
  122. package/dist/src/lib/login-failure.utils.d.ts +16 -0
  123. package/dist/src/lib/login-failure.utils.d.ts.map +1 -0
  124. package/dist/src/lib/login-failure.utils.js +34 -0
  125. package/dist/src/lib/login-success.utils.d.ts +16 -0
  126. package/dist/src/lib/login-success.utils.d.ts.map +1 -0
  127. package/dist/src/lib/login-success.utils.js +25 -0
  128. package/dist/src/lib/policy/interfaces.d.ts +11 -0
  129. package/dist/src/lib/policy/interfaces.d.ts.map +1 -0
  130. package/dist/src/lib/policy/interfaces.js +6 -0
  131. package/dist/src/lib/policy/message-creator.d.ts +3 -0
  132. package/dist/src/lib/policy/message-creator.d.ts.map +1 -0
  133. package/dist/src/lib/policy/message-creator.js +58 -0
  134. package/dist/src/lib/policy/policy.d.ts +57 -0
  135. package/dist/src/lib/policy/policy.d.ts.map +1 -0
  136. package/dist/src/lib/policy/policy.js +108 -0
  137. package/dist/src/lib/qr-code/qr-code.d.ts +35 -0
  138. package/dist/src/lib/qr-code/qr-code.d.ts.map +1 -0
  139. package/dist/src/lib/qr-code/qr-code.js +73 -0
  140. package/dist/src/lib/qr-code/qr-code.mock.data.d.ts +66 -0
  141. package/dist/src/lib/qr-code/qr-code.mock.data.d.ts.map +1 -0
  142. package/dist/src/lib/qr-code/qr-code.mock.data.js +175 -0
  143. package/dist/src/lib/recovery-codes/recovery-codes.d.ts +40 -0
  144. package/dist/src/lib/recovery-codes/recovery-codes.d.ts.map +1 -0
  145. package/dist/src/lib/recovery-codes/recovery-codes.js +64 -0
  146. package/dist/src/lib/recovery-codes/script-parser.d.ts +8 -0
  147. package/dist/src/lib/recovery-codes/script-parser.d.ts.map +1 -0
  148. package/dist/src/lib/recovery-codes/script-parser.js +45 -0
  149. package/dist/src/lib/recovery-codes/script-text.mock.data.d.ts +27 -0
  150. package/dist/src/lib/recovery-codes/script-text.mock.data.d.ts.map +1 -0
  151. package/dist/src/lib/recovery-codes/script-text.mock.data.js +103 -0
  152. package/dist/src/lib/step.types.d.ts +14 -0
  153. package/dist/src/lib/step.types.d.ts.map +1 -0
  154. package/dist/src/lib/step.types.js +7 -0
  155. package/dist/src/lib/step.utils.d.ts +10 -0
  156. package/dist/src/lib/step.utils.d.ts.map +1 -0
  157. package/dist/src/lib/step.utils.js +62 -0
  158. package/dist/src/lib/webauthn/enums.d.ts +24 -0
  159. package/dist/src/lib/webauthn/enums.d.ts.map +1 -0
  160. package/dist/src/lib/webauthn/enums.js +35 -0
  161. package/dist/src/lib/webauthn/helpers.d.ts +18 -0
  162. package/dist/src/lib/webauthn/helpers.d.ts.map +1 -0
  163. package/dist/src/lib/webauthn/helpers.js +103 -0
  164. package/dist/src/lib/webauthn/helpers.mock.data.d.ts +6 -0
  165. package/dist/src/lib/webauthn/helpers.mock.data.d.ts.map +1 -0
  166. package/dist/src/lib/webauthn/helpers.mock.data.js +14 -0
  167. package/dist/src/lib/webauthn/interfaces.d.ts +92 -0
  168. package/dist/src/lib/webauthn/interfaces.d.ts.map +1 -0
  169. package/dist/src/lib/webauthn/interfaces.js +34 -0
  170. package/dist/src/lib/webauthn/script-text.mock.data.d.ts +76 -0
  171. package/dist/src/lib/webauthn/script-text.mock.data.d.ts.map +1 -0
  172. package/dist/src/lib/webauthn/script-text.mock.data.js +451 -0
  173. package/dist/src/lib/webauthn/webauthn.d.ts +124 -0
  174. package/dist/src/lib/webauthn/webauthn.d.ts.map +1 -0
  175. package/dist/src/lib/webauthn/webauthn.js +383 -0
  176. package/dist/src/lib/webauthn/webauthn.mock.data.d.ts +331 -0
  177. package/dist/src/lib/webauthn/webauthn.mock.data.d.ts.map +1 -0
  178. package/dist/src/lib/webauthn/webauthn.mock.data.js +446 -0
  179. package/dist/src/types.d.ts +31 -0
  180. package/dist/src/types.d.ts.map +1 -0
  181. package/dist/src/types.js +34 -0
  182. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  183. package/eslint.config.mjs +19 -0
  184. package/out-tsc/vitest/packages/journey-client/src/lib/callbacks/attribute-input-callback.test.d.ts +1 -0
  185. package/out-tsc/vitest/packages/journey-client/src/lib/callbacks/fr-auth-callback.test.d.ts +1 -0
  186. package/out-tsc/vitest/packages/journey-client/src/lib/callbacks/ping-protect-evaluation-callback.test.d.ts +1 -0
  187. package/out-tsc/vitest/packages/journey-client/src/lib/callbacks/ping-protect-initialize-callback.test.d.ts +1 -0
  188. package/out-tsc/vitest/packages/journey-client/src/lib/callbacks/recaptcha-enterprise-callback.test.d.ts +1 -0
  189. package/out-tsc/vitest/packages/journey-client/src/lib/callbacks/text-input-callback.test.d.ts +1 -0
  190. package/out-tsc/vitest/packages/journey-client/src/lib/callbacks/validated-create-password-callback.test.d.ts +1 -0
  191. package/out-tsc/vitest/packages/journey-client/src/lib/callbacks/validated-create-username-callback.test.d.ts +1 -0
  192. package/out-tsc/vitest/packages/journey-client/src/lib/fr-device/device-profile.test.d.ts +1 -0
  193. package/out-tsc/vitest/packages/journey-client/src/lib/fr-policy/fr-policy.test.d.ts +1 -0
  194. package/out-tsc/vitest/packages/journey-client/tsconfig.spec.tsbuildinfo +1 -0
  195. package/out-tsc/vitest/packages/journey-client/vite.config.d.ts +2 -0
  196. package/out-tsc/vitest/src/lib/callbacks/attribute-input-callback-operators.test.d.ts +2 -0
  197. package/out-tsc/vitest/src/lib/callbacks/attribute-input-callback-operators.test.d.ts.map +1 -0
  198. package/out-tsc/vitest/src/lib/callbacks/attribute-input-callback.operators.test.d.ts +2 -0
  199. package/out-tsc/vitest/src/lib/callbacks/attribute-input-callback.operators.test.d.ts.map +1 -0
  200. package/out-tsc/vitest/src/lib/callbacks/attribute-input-callback.test.d.ts +2 -0
  201. package/out-tsc/vitest/src/lib/callbacks/attribute-input-callback.test.d.ts.map +1 -0
  202. package/out-tsc/vitest/src/lib/callbacks/base-callback.test.d.ts +2 -0
  203. package/out-tsc/vitest/src/lib/callbacks/base-callback.test.d.ts.map +1 -0
  204. package/out-tsc/vitest/src/lib/callbacks/callback-types.test.d.ts +2 -0
  205. package/out-tsc/vitest/src/lib/callbacks/callback-types.test.d.ts.map +1 -0
  206. package/out-tsc/vitest/src/lib/callbacks/callback-utils.test.d.ts +2 -0
  207. package/out-tsc/vitest/src/lib/callbacks/callback-utils.test.d.ts.map +1 -0
  208. package/out-tsc/vitest/src/lib/callbacks/choice-callback-operators.test.d.ts +2 -0
  209. package/out-tsc/vitest/src/lib/callbacks/choice-callback-operators.test.d.ts.map +1 -0
  210. package/out-tsc/vitest/src/lib/callbacks/choice-callback.operators.test.d.ts +2 -0
  211. package/out-tsc/vitest/src/lib/callbacks/choice-callback.operators.test.d.ts.map +1 -0
  212. package/out-tsc/vitest/src/lib/callbacks/choice-callback.test.d.ts +2 -0
  213. package/out-tsc/vitest/src/lib/callbacks/choice-callback.test.d.ts.map +1 -0
  214. package/out-tsc/vitest/src/lib/callbacks/confirmation-callback-operators.test.d.ts +2 -0
  215. package/out-tsc/vitest/src/lib/callbacks/confirmation-callback-operators.test.d.ts.map +1 -0
  216. package/out-tsc/vitest/src/lib/callbacks/confirmation-callback.operators.test.d.ts +2 -0
  217. package/out-tsc/vitest/src/lib/callbacks/confirmation-callback.operators.test.d.ts.map +1 -0
  218. package/out-tsc/vitest/src/lib/callbacks/confirmation-callback.test.d.ts +2 -0
  219. package/out-tsc/vitest/src/lib/callbacks/confirmation-callback.test.d.ts.map +1 -0
  220. package/out-tsc/vitest/src/lib/callbacks/device-profile-callback.test.d.ts +2 -0
  221. package/out-tsc/vitest/src/lib/callbacks/device-profile-callback.test.d.ts.map +1 -0
  222. package/out-tsc/vitest/src/lib/callbacks/factory.test.d.ts +2 -0
  223. package/out-tsc/vitest/src/lib/callbacks/factory.test.d.ts.map +1 -0
  224. package/out-tsc/vitest/src/lib/callbacks/fr-auth-callback.test.d.ts +2 -0
  225. package/out-tsc/vitest/src/lib/callbacks/fr-auth-callback.test.d.ts.map +1 -0
  226. package/out-tsc/vitest/src/lib/callbacks/hidden-value-callback-operators.test.d.ts +2 -0
  227. package/out-tsc/vitest/src/lib/callbacks/hidden-value-callback-operators.test.d.ts.map +1 -0
  228. package/out-tsc/vitest/src/lib/callbacks/hidden-value-callback.operators.test.d.ts +2 -0
  229. package/out-tsc/vitest/src/lib/callbacks/hidden-value-callback.operators.test.d.ts.map +1 -0
  230. package/out-tsc/vitest/src/lib/callbacks/hidden-value-callback.test.d.ts +2 -0
  231. package/out-tsc/vitest/src/lib/callbacks/hidden-value-callback.test.d.ts.map +1 -0
  232. package/out-tsc/vitest/src/lib/callbacks/kba-create-callback-operators.test.d.ts +2 -0
  233. package/out-tsc/vitest/src/lib/callbacks/kba-create-callback-operators.test.d.ts.map +1 -0
  234. package/out-tsc/vitest/src/lib/callbacks/kba-create-callback.operators.test.d.ts +2 -0
  235. package/out-tsc/vitest/src/lib/callbacks/kba-create-callback.operators.test.d.ts.map +1 -0
  236. package/out-tsc/vitest/src/lib/callbacks/kba-create-callback.test.d.ts +2 -0
  237. package/out-tsc/vitest/src/lib/callbacks/kba-create-callback.test.d.ts.map +1 -0
  238. package/out-tsc/vitest/src/lib/callbacks/metadata-callback-operators.test.d.ts +2 -0
  239. package/out-tsc/vitest/src/lib/callbacks/metadata-callback-operators.test.d.ts.map +1 -0
  240. package/out-tsc/vitest/src/lib/callbacks/metadata-callback.operators.test.d.ts +2 -0
  241. package/out-tsc/vitest/src/lib/callbacks/metadata-callback.operators.test.d.ts.map +1 -0
  242. package/out-tsc/vitest/src/lib/callbacks/metadata-callback.test.d.ts +2 -0
  243. package/out-tsc/vitest/src/lib/callbacks/metadata-callback.test.d.ts.map +1 -0
  244. package/out-tsc/vitest/src/lib/callbacks/name-callback-operators.test.d.ts +2 -0
  245. package/out-tsc/vitest/src/lib/callbacks/name-callback-operators.test.d.ts.map +1 -0
  246. package/out-tsc/vitest/src/lib/callbacks/name-callback.operators.test.d.ts +2 -0
  247. package/out-tsc/vitest/src/lib/callbacks/name-callback.operators.test.d.ts.map +1 -0
  248. package/out-tsc/vitest/src/lib/callbacks/name-callback.test.d.ts +2 -0
  249. package/out-tsc/vitest/src/lib/callbacks/name-callback.test.d.ts.map +1 -0
  250. package/out-tsc/vitest/src/lib/callbacks/password-callback-operators.test.d.ts +2 -0
  251. package/out-tsc/vitest/src/lib/callbacks/password-callback-operators.test.d.ts.map +1 -0
  252. package/out-tsc/vitest/src/lib/callbacks/password-callback.operators.test.d.ts +2 -0
  253. package/out-tsc/vitest/src/lib/callbacks/password-callback.operators.test.d.ts.map +1 -0
  254. package/out-tsc/vitest/src/lib/callbacks/password-callback.test.d.ts +2 -0
  255. package/out-tsc/vitest/src/lib/callbacks/password-callback.test.d.ts.map +1 -0
  256. package/out-tsc/vitest/src/lib/callbacks/ping-protect-evaluation-callback-operators.test.d.ts +2 -0
  257. package/out-tsc/vitest/src/lib/callbacks/ping-protect-evaluation-callback-operators.test.d.ts.map +1 -0
  258. package/out-tsc/vitest/src/lib/callbacks/ping-protect-evaluation-callback.operators.test.d.ts +2 -0
  259. package/out-tsc/vitest/src/lib/callbacks/ping-protect-evaluation-callback.operators.test.d.ts.map +1 -0
  260. package/out-tsc/vitest/src/lib/callbacks/ping-protect-evaluation-callback.test.d.ts +2 -0
  261. package/out-tsc/vitest/src/lib/callbacks/ping-protect-evaluation-callback.test.d.ts.map +1 -0
  262. package/out-tsc/vitest/src/lib/callbacks/ping-protect-initialize-callback-operators.test.d.ts +2 -0
  263. package/out-tsc/vitest/src/lib/callbacks/ping-protect-initialize-callback-operators.test.d.ts.map +1 -0
  264. package/out-tsc/vitest/src/lib/callbacks/ping-protect-initialize-callback.operators.test.d.ts +2 -0
  265. package/out-tsc/vitest/src/lib/callbacks/ping-protect-initialize-callback.operators.test.d.ts.map +1 -0
  266. package/out-tsc/vitest/src/lib/callbacks/ping-protect-initialize-callback.test.d.ts +2 -0
  267. package/out-tsc/vitest/src/lib/callbacks/ping-protect-initialize-callback.test.d.ts.map +1 -0
  268. package/out-tsc/vitest/src/lib/callbacks/polling-wait-callback-operators.test.d.ts +2 -0
  269. package/out-tsc/vitest/src/lib/callbacks/polling-wait-callback-operators.test.d.ts.map +1 -0
  270. package/out-tsc/vitest/src/lib/callbacks/polling-wait-callback.operators.test.d.ts +2 -0
  271. package/out-tsc/vitest/src/lib/callbacks/polling-wait-callback.operators.test.d.ts.map +1 -0
  272. package/out-tsc/vitest/src/lib/callbacks/polling-wait-callback.test.d.ts +2 -0
  273. package/out-tsc/vitest/src/lib/callbacks/polling-wait-callback.test.d.ts.map +1 -0
  274. package/out-tsc/vitest/src/lib/callbacks/recaptcha-callback-operators.test.d.ts +2 -0
  275. package/out-tsc/vitest/src/lib/callbacks/recaptcha-callback-operators.test.d.ts.map +1 -0
  276. package/out-tsc/vitest/src/lib/callbacks/recaptcha-callback.operators.test.d.ts +2 -0
  277. package/out-tsc/vitest/src/lib/callbacks/recaptcha-callback.operators.test.d.ts.map +1 -0
  278. package/out-tsc/vitest/src/lib/callbacks/recaptcha-callback.test.d.ts +2 -0
  279. package/out-tsc/vitest/src/lib/callbacks/recaptcha-callback.test.d.ts.map +1 -0
  280. package/out-tsc/vitest/src/lib/callbacks/recaptcha-enterprise-callback-operators.test.d.ts +2 -0
  281. package/out-tsc/vitest/src/lib/callbacks/recaptcha-enterprise-callback-operators.test.d.ts.map +1 -0
  282. package/out-tsc/vitest/src/lib/callbacks/recaptcha-enterprise-callback.operators.test.d.ts +2 -0
  283. package/out-tsc/vitest/src/lib/callbacks/recaptcha-enterprise-callback.operators.test.d.ts.map +1 -0
  284. package/out-tsc/vitest/src/lib/callbacks/recaptcha-enterprise-callback.test.d.ts +2 -0
  285. package/out-tsc/vitest/src/lib/callbacks/recaptcha-enterprise-callback.test.d.ts.map +1 -0
  286. package/out-tsc/vitest/src/lib/callbacks/redirect-callback-operators.test.d.ts +2 -0
  287. package/out-tsc/vitest/src/lib/callbacks/redirect-callback-operators.test.d.ts.map +1 -0
  288. package/out-tsc/vitest/src/lib/callbacks/redirect-callback.operators.test.d.ts +2 -0
  289. package/out-tsc/vitest/src/lib/callbacks/redirect-callback.operators.test.d.ts.map +1 -0
  290. package/out-tsc/vitest/src/lib/callbacks/redirect-callback.test.d.ts +2 -0
  291. package/out-tsc/vitest/src/lib/callbacks/redirect-callback.test.d.ts.map +1 -0
  292. package/out-tsc/vitest/src/lib/callbacks/select-idp-callback-operators.test.d.ts +2 -0
  293. package/out-tsc/vitest/src/lib/callbacks/select-idp-callback-operators.test.d.ts.map +1 -0
  294. package/out-tsc/vitest/src/lib/callbacks/select-idp-callback.operators.test.d.ts +2 -0
  295. package/out-tsc/vitest/src/lib/callbacks/select-idp-callback.operators.test.d.ts.map +1 -0
  296. package/out-tsc/vitest/src/lib/callbacks/select-idp-callback.test.d.ts +2 -0
  297. package/out-tsc/vitest/src/lib/callbacks/select-idp-callback.test.d.ts.map +1 -0
  298. package/out-tsc/vitest/src/lib/callbacks/suspended-text-output-callback-operators.test.d.ts +2 -0
  299. package/out-tsc/vitest/src/lib/callbacks/suspended-text-output-callback-operators.test.d.ts.map +1 -0
  300. package/out-tsc/vitest/src/lib/callbacks/suspended-text-output-callback.operators.test.d.ts +2 -0
  301. package/out-tsc/vitest/src/lib/callbacks/suspended-text-output-callback.operators.test.d.ts.map +1 -0
  302. package/out-tsc/vitest/src/lib/callbacks/suspended-text-output-callback.test.d.ts +2 -0
  303. package/out-tsc/vitest/src/lib/callbacks/suspended-text-output-callback.test.d.ts.map +1 -0
  304. package/out-tsc/vitest/src/lib/callbacks/terms-and-conditions-callback-operators.test.d.ts +2 -0
  305. package/out-tsc/vitest/src/lib/callbacks/terms-and-conditions-callback-operators.test.d.ts.map +1 -0
  306. package/out-tsc/vitest/src/lib/callbacks/terms-and-conditions-callback.operators.test.d.ts +2 -0
  307. package/out-tsc/vitest/src/lib/callbacks/terms-and-conditions-callback.operators.test.d.ts.map +1 -0
  308. package/out-tsc/vitest/src/lib/callbacks/terms-and-conditions-callback.test.d.ts +2 -0
  309. package/out-tsc/vitest/src/lib/callbacks/terms-and-conditions-callback.test.d.ts.map +1 -0
  310. package/out-tsc/vitest/src/lib/callbacks/text-input-callback-operators.test.d.ts +2 -0
  311. package/out-tsc/vitest/src/lib/callbacks/text-input-callback-operators.test.d.ts.map +1 -0
  312. package/out-tsc/vitest/src/lib/callbacks/text-input-callback.operators.test.d.ts +2 -0
  313. package/out-tsc/vitest/src/lib/callbacks/text-input-callback.operators.test.d.ts.map +1 -0
  314. package/out-tsc/vitest/src/lib/callbacks/text-input-callback.test.d.ts +2 -0
  315. package/out-tsc/vitest/src/lib/callbacks/text-input-callback.test.d.ts.map +1 -0
  316. package/out-tsc/vitest/src/lib/callbacks/text-output-callback-operators.test.d.ts +2 -0
  317. package/out-tsc/vitest/src/lib/callbacks/text-output-callback-operators.test.d.ts.map +1 -0
  318. package/out-tsc/vitest/src/lib/callbacks/text-output-callback.operators.test.d.ts +2 -0
  319. package/out-tsc/vitest/src/lib/callbacks/text-output-callback.operators.test.d.ts.map +1 -0
  320. package/out-tsc/vitest/src/lib/callbacks/text-output-callback.test.d.ts +2 -0
  321. package/out-tsc/vitest/src/lib/callbacks/text-output-callback.test.d.ts.map +1 -0
  322. package/out-tsc/vitest/src/lib/callbacks/validated-create-password-callback-operators.test.d.ts +2 -0
  323. package/out-tsc/vitest/src/lib/callbacks/validated-create-password-callback-operators.test.d.ts.map +1 -0
  324. package/out-tsc/vitest/src/lib/callbacks/validated-create-password-callback.operators.test.d.ts +2 -0
  325. package/out-tsc/vitest/src/lib/callbacks/validated-create-password-callback.operators.test.d.ts.map +1 -0
  326. package/out-tsc/vitest/src/lib/callbacks/validated-create-password-callback.test.d.ts +2 -0
  327. package/out-tsc/vitest/src/lib/callbacks/validated-create-password-callback.test.d.ts.map +1 -0
  328. package/out-tsc/vitest/src/lib/callbacks/validated-create-username-callback-operators.test.d.ts +2 -0
  329. package/out-tsc/vitest/src/lib/callbacks/validated-create-username-callback-operators.test.d.ts.map +1 -0
  330. package/out-tsc/vitest/src/lib/callbacks/validated-create-username-callback.operators.test.d.ts +2 -0
  331. package/out-tsc/vitest/src/lib/callbacks/validated-create-username-callback.operators.test.d.ts.map +1 -0
  332. package/out-tsc/vitest/src/lib/callbacks/validated-create-username-callback.test.d.ts +2 -0
  333. package/out-tsc/vitest/src/lib/callbacks/validated-create-username-callback.test.d.ts.map +1 -0
  334. package/out-tsc/vitest/src/lib/client.store.test.d.ts +2 -0
  335. package/out-tsc/vitest/src/lib/client.store.test.d.ts.map +1 -0
  336. package/out-tsc/vitest/src/lib/device/device-profile.test.d.ts +2 -0
  337. package/out-tsc/vitest/src/lib/device/device-profile.test.d.ts.map +1 -0
  338. package/out-tsc/vitest/src/lib/fr-device/device-profile.test.d.ts +2 -0
  339. package/out-tsc/vitest/src/lib/fr-device/device-profile.test.d.ts.map +1 -0
  340. package/out-tsc/vitest/src/lib/fr-policy/fr-policy.test.d.ts +2 -0
  341. package/out-tsc/vitest/src/lib/fr-policy/fr-policy.test.d.ts.map +1 -0
  342. package/out-tsc/vitest/src/lib/fr-qrcode/fr-qrcode.test.d.ts +2 -0
  343. package/out-tsc/vitest/src/lib/fr-qrcode/fr-qrcode.test.d.ts.map +1 -0
  344. package/out-tsc/vitest/src/lib/fr-recovery-codes/recovery-codes.test.d.ts +2 -0
  345. package/out-tsc/vitest/src/lib/fr-recovery-codes/recovery-codes.test.d.ts.map +1 -0
  346. package/out-tsc/vitest/src/lib/fr-recovery-codes/script-parser.test.d.ts +2 -0
  347. package/out-tsc/vitest/src/lib/fr-recovery-codes/script-parser.test.d.ts.map +1 -0
  348. package/out-tsc/vitest/src/lib/fr-step.test.d.ts +2 -0
  349. package/out-tsc/vitest/src/lib/fr-step.test.d.ts.map +1 -0
  350. package/out-tsc/vitest/src/lib/fr-webauthn/fr-webauthn.test.d.ts +2 -0
  351. package/out-tsc/vitest/src/lib/fr-webauthn/fr-webauthn.test.d.ts.map +1 -0
  352. package/out-tsc/vitest/src/lib/fr-webauthn/helpers.test.d.ts +2 -0
  353. package/out-tsc/vitest/src/lib/fr-webauthn/helpers.test.d.ts.map +1 -0
  354. package/out-tsc/vitest/src/lib/fr-webauthn/script-parser.test.d.ts +2 -0
  355. package/out-tsc/vitest/src/lib/fr-webauthn/script-parser.test.d.ts.map +1 -0
  356. package/out-tsc/vitest/src/lib/journey-client.test.d.ts +2 -0
  357. package/out-tsc/vitest/src/lib/journey-client.test.d.ts.map +1 -0
  358. package/out-tsc/vitest/src/lib/journey-device/device-profile.test.d.ts +2 -0
  359. package/out-tsc/vitest/src/lib/journey-device/device-profile.test.d.ts.map +1 -0
  360. package/out-tsc/vitest/src/lib/journey-login-failure.utils.test.d.ts +2 -0
  361. package/out-tsc/vitest/src/lib/journey-login-failure.utils.test.d.ts.map +1 -0
  362. package/out-tsc/vitest/src/lib/journey-login-success.utils.test.d.ts +2 -0
  363. package/out-tsc/vitest/src/lib/journey-login-success.utils.test.d.ts.map +1 -0
  364. package/out-tsc/vitest/src/lib/journey-policy/fr-policy.test.d.ts +2 -0
  365. package/out-tsc/vitest/src/lib/journey-policy/fr-policy.test.d.ts.map +1 -0
  366. package/out-tsc/vitest/src/lib/journey-policy/journey-policy.test.d.ts +2 -0
  367. package/out-tsc/vitest/src/lib/journey-policy/journey-policy.test.d.ts.map +1 -0
  368. package/out-tsc/vitest/src/lib/journey-qrcode/journey-qrcode.test.d.ts +2 -0
  369. package/out-tsc/vitest/src/lib/journey-qrcode/journey-qrcode.test.d.ts.map +1 -0
  370. package/out-tsc/vitest/src/lib/journey-step.test.d.ts +2 -0
  371. package/out-tsc/vitest/src/lib/journey-step.test.d.ts.map +1 -0
  372. package/out-tsc/vitest/src/lib/journey-webauthn/enums.d.ts +24 -0
  373. package/out-tsc/vitest/src/lib/journey-webauthn/enums.d.ts.map +1 -0
  374. package/out-tsc/vitest/src/lib/journey-webauthn/helpers.d.ts +18 -0
  375. package/out-tsc/vitest/src/lib/journey-webauthn/helpers.d.ts.map +1 -0
  376. package/out-tsc/vitest/src/lib/journey-webauthn/helpers.mock.data.d.ts +6 -0
  377. package/out-tsc/vitest/src/lib/journey-webauthn/helpers.mock.data.d.ts.map +1 -0
  378. package/out-tsc/vitest/src/lib/journey-webauthn/helpers.test.d.ts +2 -0
  379. package/out-tsc/vitest/src/lib/journey-webauthn/helpers.test.d.ts.map +1 -0
  380. package/out-tsc/vitest/src/lib/journey-webauthn/index.d.ts +123 -0
  381. package/out-tsc/vitest/src/lib/journey-webauthn/index.d.ts.map +1 -0
  382. package/out-tsc/vitest/src/lib/journey-webauthn/interfaces.d.ts +93 -0
  383. package/out-tsc/vitest/src/lib/journey-webauthn/interfaces.d.ts.map +1 -0
  384. package/out-tsc/vitest/src/lib/journey-webauthn/journey-webauthn.mock.data.d.ts +331 -0
  385. package/out-tsc/vitest/src/lib/journey-webauthn/journey-webauthn.mock.data.d.ts.map +1 -0
  386. package/out-tsc/vitest/src/lib/journey-webauthn/journey-webauthn.test.d.ts +2 -0
  387. package/out-tsc/vitest/src/lib/journey-webauthn/journey-webauthn.test.d.ts.map +1 -0
  388. package/out-tsc/vitest/src/lib/journey-webauthn/script-parser.d.ts +4 -0
  389. package/out-tsc/vitest/src/lib/journey-webauthn/script-parser.d.ts.map +1 -0
  390. package/out-tsc/vitest/src/lib/journey-webauthn/script-parser.test.d.ts +2 -0
  391. package/out-tsc/vitest/src/lib/journey-webauthn/script-parser.test.d.ts.map +1 -0
  392. package/out-tsc/vitest/src/lib/journey-webauthn/script-text.mock.data.d.ts +76 -0
  393. package/out-tsc/vitest/src/lib/journey-webauthn/script-text.mock.data.d.ts.map +1 -0
  394. package/out-tsc/vitest/src/lib/journey-webauthn/webauthn-utils.d.ts +38 -0
  395. package/out-tsc/vitest/src/lib/journey-webauthn/webauthn-utils.d.ts.map +1 -0
  396. package/out-tsc/vitest/src/lib/journey.api.test.d.ts +2 -0
  397. package/out-tsc/vitest/src/lib/journey.api.test.d.ts.map +1 -0
  398. package/out-tsc/vitest/src/lib/journey.store.test.d.ts +2 -0
  399. package/out-tsc/vitest/src/lib/journey.store.test.d.ts.map +1 -0
  400. package/out-tsc/vitest/src/lib/login-failure.utils.test.d.ts +2 -0
  401. package/out-tsc/vitest/src/lib/login-failure.utils.test.d.ts.map +1 -0
  402. package/out-tsc/vitest/src/lib/login-success.utils.test.d.ts +2 -0
  403. package/out-tsc/vitest/src/lib/login-success.utils.test.d.ts.map +1 -0
  404. package/out-tsc/vitest/src/lib/object-utils.test.d.ts +2 -0
  405. package/out-tsc/vitest/src/lib/object-utils.test.d.ts.map +1 -0
  406. package/out-tsc/vitest/src/lib/policy/policy.test.d.ts +2 -0
  407. package/out-tsc/vitest/src/lib/policy/policy.test.d.ts.map +1 -0
  408. package/out-tsc/vitest/src/lib/qr-code/qr-code.test.d.ts +2 -0
  409. package/out-tsc/vitest/src/lib/qr-code/qr-code.test.d.ts.map +1 -0
  410. package/out-tsc/vitest/src/lib/recovery-codes/index.d.ts +37 -0
  411. package/out-tsc/vitest/src/lib/recovery-codes/index.d.ts.map +1 -0
  412. package/out-tsc/vitest/src/lib/recovery-codes/recovery-codes.test.d.ts +2 -0
  413. package/out-tsc/vitest/src/lib/recovery-codes/recovery-codes.test.d.ts.map +1 -0
  414. package/out-tsc/vitest/src/lib/recovery-codes/script-parser.d.ts +9 -0
  415. package/out-tsc/vitest/src/lib/recovery-codes/script-parser.d.ts.map +1 -0
  416. package/out-tsc/vitest/src/lib/recovery-codes/script-parser.test.d.ts +2 -0
  417. package/out-tsc/vitest/src/lib/recovery-codes/script-parser.test.d.ts.map +1 -0
  418. package/out-tsc/vitest/src/lib/recovery-codes/script-text.mock.data.d.ts +27 -0
  419. package/out-tsc/vitest/src/lib/recovery-codes/script-text.mock.data.d.ts.map +1 -0
  420. package/out-tsc/vitest/src/lib/step-utils.test.d.ts +2 -0
  421. package/out-tsc/vitest/src/lib/step-utils.test.d.ts.map +1 -0
  422. package/out-tsc/vitest/src/lib/step.test.d.ts +2 -0
  423. package/out-tsc/vitest/src/lib/step.test.d.ts.map +1 -0
  424. package/out-tsc/vitest/src/lib/webauthn/helpers.test.d.ts +2 -0
  425. package/out-tsc/vitest/src/lib/webauthn/helpers.test.d.ts.map +1 -0
  426. package/out-tsc/vitest/src/lib/webauthn/webauthn.test.d.ts +2 -0
  427. package/out-tsc/vitest/src/lib/webauthn/webauthn.test.d.ts.map +1 -0
  428. package/out-tsc/vitest/tsconfig.spec.tsbuildinfo +1 -0
  429. package/out-tsc/vitest/vite.config.d.ts +3 -0
  430. package/out-tsc/vitest/vite.config.d.ts.map +1 -0
  431. package/package.json +62 -0
  432. package/src/index.ts +8 -0
  433. package/src/lib/callbacks/attribute-input-callback.test.ts +89 -0
  434. package/src/lib/callbacks/attribute-input-callback.ts +81 -0
  435. package/src/lib/callbacks/base-callback.test.ts +42 -0
  436. package/src/lib/callbacks/base-callback.ts +101 -0
  437. package/src/lib/callbacks/choice-callback.test.ts +77 -0
  438. package/src/lib/callbacks/choice-callback.ts +64 -0
  439. package/src/lib/callbacks/confirmation-callback.test.ts +94 -0
  440. package/src/lib/callbacks/confirmation-callback.ts +78 -0
  441. package/src/lib/callbacks/device-profile-callback.test.ts +68 -0
  442. package/src/lib/callbacks/device-profile-callback.ts +51 -0
  443. package/src/lib/callbacks/factory.test.ts +89 -0
  444. package/src/lib/callbacks/factory.ts +95 -0
  445. package/src/lib/callbacks/hidden-value-callback.test.ts +26 -0
  446. package/src/lib/callbacks/hidden-value-callback.ts +21 -0
  447. package/src/lib/callbacks/kba-create-callback.test.ts +62 -0
  448. package/src/lib/callbacks/kba-create-callback.ts +68 -0
  449. package/src/lib/callbacks/metadata-callback.test.ts +31 -0
  450. package/src/lib/callbacks/metadata-callback.ts +28 -0
  451. package/src/lib/callbacks/name-callback.test.ts +42 -0
  452. package/src/lib/callbacks/name-callback.ts +35 -0
  453. package/src/lib/callbacks/password-callback.test.ts +60 -0
  454. package/src/lib/callbacks/password-callback.ts +49 -0
  455. package/src/lib/callbacks/ping-protect-evaluation-callback.test.ts +69 -0
  456. package/src/lib/callbacks/ping-protect-evaluation-callback.ts +70 -0
  457. package/src/lib/callbacks/ping-protect-initialize-callback.test.ts +153 -0
  458. package/src/lib/callbacks/ping-protect-initialize-callback.ts +44 -0
  459. package/src/lib/callbacks/polling-wait-callback.test.ts +36 -0
  460. package/src/lib/callbacks/polling-wait-callback.ts +35 -0
  461. package/src/lib/callbacks/recaptcha-callback.test.ts +42 -0
  462. package/src/lib/callbacks/recaptcha-callback.ts +35 -0
  463. package/src/lib/callbacks/recaptcha-enterprise-callback.test.ts +86 -0
  464. package/src/lib/callbacks/recaptcha-enterprise-callback.ts +72 -0
  465. package/src/lib/callbacks/redirect-callback.test.ts +31 -0
  466. package/src/lib/callbacks/redirect-callback.ts +28 -0
  467. package/src/lib/callbacks/select-idp-callback.test.ts +51 -0
  468. package/src/lib/callbacks/select-idp-callback.ts +48 -0
  469. package/src/lib/callbacks/suspended-text-output-callback.test.ts +35 -0
  470. package/src/lib/callbacks/suspended-text-output-callback.ts +21 -0
  471. package/src/lib/callbacks/terms-and-conditions-callback.test.ts +55 -0
  472. package/src/lib/callbacks/terms-and-conditions-callback.ts +51 -0
  473. package/src/lib/callbacks/text-input-callback.test.ts +43 -0
  474. package/src/lib/callbacks/text-input-callback.ts +35 -0
  475. package/src/lib/callbacks/text-output-callback.test.ts +36 -0
  476. package/src/lib/callbacks/text-output-callback.ts +36 -0
  477. package/src/lib/callbacks/validated-create-password-callback.test.ts +84 -0
  478. package/src/lib/callbacks/validated-create-password-callback.ts +75 -0
  479. package/src/lib/callbacks/validated-create-username-callback.test.ts +84 -0
  480. package/src/lib/callbacks/validated-create-username-callback.ts +76 -0
  481. package/src/lib/client.store.test.ts +324 -0
  482. package/src/lib/client.store.ts +194 -0
  483. package/src/lib/client.store.utils.ts +46 -0
  484. package/src/lib/config.types.ts +17 -0
  485. package/src/lib/device/defaults.ts +79 -0
  486. package/src/lib/device/device-profile.mock.data.ts +120 -0
  487. package/src/lib/device/device-profile.test.ts +128 -0
  488. package/src/lib/device/device-profile.ts +287 -0
  489. package/src/lib/device/interfaces.ts +63 -0
  490. package/src/lib/device/sample-profile.json +45 -0
  491. package/src/lib/interfaces.ts +25 -0
  492. package/src/lib/journey.api.ts +198 -0
  493. package/src/lib/journey.slice.ts +33 -0
  494. package/src/lib/journey.utils.ts +44 -0
  495. package/src/lib/login-failure.utils.test.ts +31 -0
  496. package/src/lib/login-failure.utils.ts +62 -0
  497. package/src/lib/login-success.utils.test.ts +29 -0
  498. package/src/lib/login-success.utils.ts +43 -0
  499. package/src/lib/policy/interfaces.ts +16 -0
  500. package/src/lib/policy/message-creator.ts +66 -0
  501. package/src/lib/policy/policy.test.ts +202 -0
  502. package/src/lib/policy/policy.ts +134 -0
  503. package/src/lib/qr-code/qr-code.mock.data.ts +184 -0
  504. package/src/lib/qr-code/qr-code.test.ts +78 -0
  505. package/src/lib/qr-code/qr-code.ts +96 -0
  506. package/src/lib/recovery-codes/recovery-codes.test.ts +43 -0
  507. package/src/lib/recovery-codes/recovery-codes.ts +72 -0
  508. package/src/lib/recovery-codes/script-parser.test.ts +34 -0
  509. package/src/lib/recovery-codes/script-parser.ts +50 -0
  510. package/src/lib/recovery-codes/script-text.mock.data.ts +120 -0
  511. package/src/lib/step.test.ts +104 -0
  512. package/src/lib/step.types.ts +22 -0
  513. package/src/lib/step.utils.ts +99 -0
  514. package/src/lib/webauthn/enums.ts +36 -0
  515. package/src/lib/webauthn/helpers.mock.data.ts +24 -0
  516. package/src/lib/webauthn/helpers.test.ts +54 -0
  517. package/src/lib/webauthn/helpers.ts +124 -0
  518. package/src/lib/webauthn/interfaces.ts +112 -0
  519. package/src/lib/webauthn/script-text.mock.data.ts +463 -0
  520. package/src/lib/webauthn/webauthn.mock.data.ts +478 -0
  521. package/src/lib/webauthn/webauthn.test.ts +100 -0
  522. package/src/lib/webauthn/webauthn.ts +508 -0
  523. package/src/types.ts +50 -0
  524. package/tsconfig.json +28 -0
  525. package/tsconfig.lib.json +37 -0
  526. package/tsconfig.spec.json +42 -0
  527. package/vite.config.ts +0 -0
  528. package/vitest.setup.ts +1 -0
@@ -0,0 +1,198 @@
1
+ /*
2
+ * Copyright (c) 2020 - 2025 Ping Identity Corporation. All rights reserved.
3
+ *
4
+ * This software may be modified and distributed under the terms
5
+ * of the MIT license. See the LICENSE file for details.
6
+ */
7
+
8
+ import { initQuery, RequestMiddleware } from '@forgerock/sdk-request-middleware';
9
+ import { REQUESTED_WITH, getEndpointPath, stringify, resolve } from '@forgerock/sdk-utilities';
10
+ import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query';
11
+
12
+ import type { ServerConfig, Step } from '@forgerock/sdk-types';
13
+ import type { logger as loggerFn } from '@forgerock/sdk-logger';
14
+ import type {
15
+ BaseQueryApi,
16
+ BaseQueryFn,
17
+ FetchArgs,
18
+ FetchBaseQueryError,
19
+ FetchBaseQueryMeta,
20
+ QueryReturnValue,
21
+ } from '@reduxjs/toolkit/query';
22
+
23
+ import { JourneyStep } from './step.types.js';
24
+
25
+ import type { JourneyClientConfig } from './config.types.js';
26
+ import { NextOptions, StartParam } from './interfaces.js';
27
+
28
+ // Move these functions to the top, before journeyApi definition
29
+ function constructUrl(
30
+ serverConfig: ServerConfig,
31
+ realmPath?: string,
32
+ tree?: string,
33
+ query?: Record<string, string>,
34
+ ): string {
35
+ const treeParams = tree ? { authIndexType: 'service', authIndexValue: tree } : undefined;
36
+ const params: Record<string, string | undefined> = { ...query, ...treeParams };
37
+ const queryString = Object.keys(params).length > 0 ? `?${stringify(params)}` : '';
38
+ const path = getEndpointPath({
39
+ endpoint: 'authenticate',
40
+ realmPath,
41
+ customPaths: serverConfig.paths,
42
+ });
43
+ const url = resolve(serverConfig.baseUrl, `${path}${queryString}`);
44
+ return url;
45
+ }
46
+
47
+ function constructSessionsUrl(
48
+ serverConfig: ServerConfig,
49
+ realmPath?: string,
50
+ query?: Record<string, string>,
51
+ ): string {
52
+ const params: Record<string, string | undefined> = { ...query };
53
+ const queryString = Object.keys(params).length > 0 ? `?${stringify(params)}` : '';
54
+ const path = getEndpointPath({
55
+ endpoint: 'sessions',
56
+ realmPath,
57
+ customPaths: serverConfig.paths,
58
+ });
59
+ const url = resolve(serverConfig.baseUrl, `${path}${queryString}`);
60
+ return url;
61
+ }
62
+
63
+ function configureRequest(step?: JourneyStep): RequestInit {
64
+ const init: RequestInit = {
65
+ body: step ? JSON.stringify(step.payload) : undefined,
66
+ credentials: 'include',
67
+ headers: new Headers({}),
68
+ method: 'POST',
69
+ };
70
+
71
+ return init;
72
+ }
73
+
74
+ function configureSessionRequest(): RequestInit {
75
+ const init: RequestInit = {
76
+ credentials: 'include',
77
+ headers: new Headers({}),
78
+ method: 'POST',
79
+ };
80
+
81
+ return init;
82
+ }
83
+
84
+ interface Extras {
85
+ requestMiddleware: RequestMiddleware[];
86
+ logger: ReturnType<typeof loggerFn>;
87
+ config: JourneyClientConfig;
88
+ }
89
+
90
+ export const journeyApi = createApi({
91
+ reducerPath: 'journeyReducer',
92
+ baseQuery: fetchBaseQuery({
93
+ baseUrl: '/',
94
+ prepareHeaders: (headers: Headers) => {
95
+ headers.set('Accept', 'application/json');
96
+ headers.set('Accept-API-Version', 'protocol=1.0,resource=2.1');
97
+ headers.set('Content-Type', 'application/json');
98
+ headers.set('X-Requested-With', REQUESTED_WITH);
99
+
100
+ return headers;
101
+ },
102
+ }),
103
+ endpoints: (builder) => ({
104
+ start: builder.mutation<Step, StartParam | undefined>({
105
+ queryFn: async (
106
+ options: StartParam | undefined,
107
+ api: BaseQueryApi,
108
+ _: unknown,
109
+ baseQuery: BaseQueryFn,
110
+ ) => {
111
+ const { config } = api.extra as Extras;
112
+ if (!config.serverConfig) {
113
+ throw new Error('Server configuration is missing.');
114
+ }
115
+ const { realmPath, serverConfig } = config;
116
+
117
+ const query = options?.query || {};
118
+
119
+ const url = constructUrl(serverConfig, realmPath, options?.journey, query);
120
+ const request = configureRequest();
121
+
122
+ const { requestMiddleware } = api.extra as Extras;
123
+
124
+ const response = await initQuery({ ...request, url: url }, 'begin', {
125
+ type: 'service',
126
+ tree: options?.journey,
127
+ })
128
+ .applyMiddleware(requestMiddleware)
129
+ .applyQuery(async (req: FetchArgs) => {
130
+ const result = await baseQuery(req, api, api.extra as Extras);
131
+ return result as QueryReturnValue<unknown, FetchBaseQueryError, FetchBaseQueryMeta>;
132
+ });
133
+
134
+ return response as QueryReturnValue<Step, FetchBaseQueryError, FetchBaseQueryMeta>;
135
+ },
136
+ }),
137
+ next: builder.mutation<Step, { step: JourneyStep; options?: NextOptions }>({
138
+ queryFn: async (
139
+ { step, options }: { step: JourneyStep; options?: NextOptions },
140
+ api: BaseQueryApi,
141
+ _: unknown,
142
+ baseQuery: BaseQueryFn,
143
+ ) => {
144
+ const { config } = api.extra as Extras;
145
+ if (!config.serverConfig) {
146
+ throw new Error('Server configuration is missing.');
147
+ }
148
+ const { realmPath, serverConfig } = config;
149
+ const query = options?.query || {};
150
+
151
+ // TODO: Handle the `undefined` argument better
152
+ const url = constructUrl(serverConfig, realmPath, undefined, query);
153
+ const request = configureRequest(step);
154
+
155
+ const { requestMiddleware } = api.extra as Extras;
156
+
157
+ const response = await initQuery({ ...request, url }, 'continue')
158
+ .applyMiddleware(requestMiddleware)
159
+ .applyQuery(async (req: FetchArgs) => {
160
+ const result = await baseQuery(req, api, api.extra as Extras);
161
+ return result as QueryReturnValue<unknown, FetchBaseQueryError, FetchBaseQueryMeta>;
162
+ });
163
+
164
+ return response as QueryReturnValue<Step, FetchBaseQueryError, FetchBaseQueryMeta>;
165
+ },
166
+ }),
167
+ terminate: builder.mutation<void, { query?: Record<string, string> } | undefined>({
168
+ queryFn: async (
169
+ options: { query?: Record<string, string> } | undefined,
170
+ api: BaseQueryApi,
171
+ _: unknown,
172
+ baseQuery: BaseQueryFn,
173
+ ) => {
174
+ const { config } = api.extra as Extras;
175
+ if (!config.serverConfig) {
176
+ throw new Error('Server configuration is missing.');
177
+ }
178
+ const { realmPath, serverConfig } = config;
179
+
180
+ const query = { ...options?.query, _action: 'logout' };
181
+
182
+ const url = constructSessionsUrl(serverConfig, realmPath, query);
183
+ const request = configureSessionRequest();
184
+
185
+ const { requestMiddleware } = api.extra as Extras;
186
+
187
+ const response = await initQuery({ ...request, url }, 'terminate')
188
+ .applyMiddleware(requestMiddleware)
189
+ .applyQuery(async (req: FetchArgs) => {
190
+ const result = await baseQuery(req, api, api.extra as Extras);
191
+ return result as QueryReturnValue<unknown, FetchBaseQueryError, FetchBaseQueryMeta>;
192
+ });
193
+
194
+ return response as QueryReturnValue<void, FetchBaseQueryError, FetchBaseQueryMeta>;
195
+ },
196
+ }),
197
+ }),
198
+ });
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Copyright (c) 2025 Ping Identity Corporation. All rights reserved.
3
+ *
4
+ * This software may be modified and distributed under the terms
5
+ * of the MIT license. See the LICENSE file for details.
6
+ */
7
+
8
+ import { createSlice, PayloadAction, Slice } from '@reduxjs/toolkit';
9
+
10
+ import type { Step } from '@forgerock/sdk-types';
11
+
12
+ import type { JourneyClientConfig } from './config.types.js';
13
+
14
+ export interface JourneyState {
15
+ authId?: string;
16
+ step?: Step;
17
+ error?: Error;
18
+ config?: JourneyClientConfig;
19
+ }
20
+
21
+ const initialState: JourneyState = {};
22
+
23
+ export const journeySlice: Slice<JourneyState> = createSlice({
24
+ name: 'journey',
25
+ initialState,
26
+ reducers: {
27
+ setConfig: (state, action: PayloadAction<JourneyClientConfig>) => {
28
+ state.config = action.payload;
29
+ },
30
+ },
31
+ });
32
+
33
+ export const { setConfig } = journeySlice.actions;
@@ -0,0 +1,44 @@
1
+ /*
2
+ * Copyright (c) 2025 Ping Identity Corporation. All rights reserved.
3
+ *
4
+ * This software may be modified and distributed under the terms
5
+ * of the MIT license. See the LICENSE file for details.
6
+ */
7
+
8
+ import { StepType } from '@forgerock/sdk-types';
9
+
10
+ import type { Step } from '@forgerock/sdk-types';
11
+
12
+ import { createJourneyLoginSuccess } from './login-success.utils.js';
13
+ import { createJourneyLoginFailure } from './login-failure.utils.js';
14
+ import { createJourneyStep } from './step.utils.js';
15
+
16
+ import type { JourneyStep } from './step.utils.js';
17
+ import type { JourneyLoginFailure } from './login-failure.utils.js';
18
+ import type { JourneyLoginSuccess } from './login-success.utils.js';
19
+
20
+ function createJourneyObject(
21
+ step: Step,
22
+ ): JourneyStep | JourneyLoginSuccess | JourneyLoginFailure | undefined {
23
+ let type;
24
+ if (step.authId) {
25
+ type = StepType.Step;
26
+ } else if (step.successUrl) {
27
+ type = StepType.LoginSuccess;
28
+ } else {
29
+ type = StepType.LoginFailure;
30
+ }
31
+
32
+ switch (type) {
33
+ case StepType.LoginSuccess:
34
+ return createJourneyLoginSuccess(step);
35
+ case StepType.LoginFailure:
36
+ return createJourneyLoginFailure(step);
37
+ case StepType.Step:
38
+ return createJourneyStep(step);
39
+ default:
40
+ return undefined;
41
+ }
42
+ }
43
+
44
+ export { createJourneyObject };
@@ -0,0 +1,31 @@
1
+ /*
2
+ * Copyright (c) 2020 - 2025 Ping Identity Corporation. All rights reserved.
3
+ * This software may be modified and distributed under the terms
4
+ * of the MIT license. See the LICENSE file for details.
5
+ */
6
+
7
+ import { StepType } from '@forgerock/sdk-types';
8
+ import { describe, expect, it } from 'vitest';
9
+
10
+ import { createJourneyLoginFailure } from './login-failure.utils.js';
11
+
12
+ describe('createJourneyLoginFailure', () => {
13
+ it('should create a JourneyLoginFailure object', () => {
14
+ const step = {
15
+ code: 400,
16
+ detail: { failureUrl: 'failure-url' },
17
+ message: 'Invalid credentials',
18
+ reason: 'INVALID_CREDENTIALS',
19
+ };
20
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
21
+ // @ts-ignore
22
+ const journeyLoginFailure = createJourneyLoginFailure(step);
23
+
24
+ expect(journeyLoginFailure.type).toBe(StepType.LoginFailure);
25
+ expect(journeyLoginFailure.payload).toEqual(step);
26
+ expect(journeyLoginFailure.getCode()).toBe(400);
27
+ expect(journeyLoginFailure.getDetail()).toEqual({ failureUrl: 'failure-url' });
28
+ expect(journeyLoginFailure.getMessage()).toBe('Invalid credentials');
29
+ expect(journeyLoginFailure.getReason()).toBe('INVALID_CREDENTIALS');
30
+ });
31
+ });
@@ -0,0 +1,62 @@
1
+ /*
2
+ * Copyright (c) 2020 - 2025 Ping Identity Corporation. All rights reserved.
3
+ * This software may be modified and distributed under the terms
4
+ * of the MIT license. See the LICENSE file for details.
5
+ */
6
+ import { StepType } from '@forgerock/sdk-types';
7
+
8
+ import type { Step, AuthResponse, FailureDetail } from '@forgerock/sdk-types';
9
+
10
+ import { Policy } from './policy/policy.js';
11
+
12
+ import type { MessageCreator, ProcessedPropertyError } from './policy/interfaces.js';
13
+
14
+ type JourneyLoginFailure = AuthResponse & {
15
+ type: StepType.LoginFailure;
16
+ payload: Step;
17
+ getCode: () => number;
18
+ getDetail: () => FailureDetail | undefined;
19
+ getMessage: () => string | undefined;
20
+ getProcessedMessage: (messageCreator?: MessageCreator) => ProcessedPropertyError[];
21
+ getReason: () => string | undefined;
22
+ };
23
+
24
+ function getCode(payload: Step): number {
25
+ return Number(payload.code);
26
+ }
27
+
28
+ function getDetail(payload: Step): FailureDetail | undefined {
29
+ return payload.detail;
30
+ }
31
+
32
+ function getMessage(payload: Step): string | undefined {
33
+ return payload.message;
34
+ }
35
+
36
+ function getProcessedMessage(
37
+ payload: Step,
38
+ messageCreator?: MessageCreator,
39
+ ): ProcessedPropertyError[] {
40
+ return Policy.parseErrors(payload, messageCreator);
41
+ }
42
+
43
+ function getReason(payload: Step): string | undefined {
44
+ return payload.reason;
45
+ }
46
+
47
+ function createJourneyLoginFailure(payload: Step): JourneyLoginFailure {
48
+ return {
49
+ payload,
50
+ type: StepType.LoginFailure,
51
+ getCode: () => getCode(payload),
52
+ getDetail: () => getDetail(payload),
53
+ getMessage: () => getMessage(payload),
54
+ getProcessedMessage: (messageCreator?: MessageCreator) =>
55
+ getProcessedMessage(payload, messageCreator),
56
+ getReason: () => getReason(payload),
57
+ };
58
+ }
59
+
60
+ export { createJourneyLoginFailure };
61
+
62
+ export type { JourneyLoginFailure };
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Copyright (c) 2020 - 2025 Ping Identity Corporation. All rights reserved.
3
+ * This software may be modified and distributed under the terms
4
+ * of the MIT license. See the LICENSE file for details.
5
+ */
6
+
7
+ import { StepType } from '@forgerock/sdk-types';
8
+ import { describe, expect, it } from 'vitest';
9
+
10
+ import { createJourneyLoginSuccess } from './login-success.utils.js';
11
+
12
+ describe('createJourneyLoginSuccess', () => {
13
+ it('should create a JourneyLoginSuccess object', () => {
14
+ const step = {
15
+ realm: 'my-realm',
16
+ tokenId: 'my-token',
17
+ successUrl: 'my-success-url',
18
+ };
19
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
20
+ // @ts-ignore
21
+ const journeyLoginSuccess = createJourneyLoginSuccess(step);
22
+
23
+ expect(journeyLoginSuccess.type).toBe(StepType.LoginSuccess);
24
+ expect(journeyLoginSuccess.payload).toEqual(step);
25
+ expect(journeyLoginSuccess.getRealm()).toBe('my-realm');
26
+ expect(journeyLoginSuccess.getSessionToken()).toBe('my-token');
27
+ expect(journeyLoginSuccess.getSuccessUrl()).toBe('my-success-url');
28
+ });
29
+ });
@@ -0,0 +1,43 @@
1
+ /*
2
+ * Copyright (c) 2020 - 2025 Ping Identity Corporation. All rights reserved.
3
+ * This software may be modified and distributed under the terms
4
+ * of the MIT license. See the LICENSE file for details.
5
+ */
6
+
7
+ import { StepType } from '@forgerock/sdk-types';
8
+
9
+ import type { Step, AuthResponse } from '@forgerock/sdk-types';
10
+
11
+ type JourneyLoginSuccess = AuthResponse & {
12
+ type: StepType.LoginSuccess;
13
+ payload: Step;
14
+ getRealm: () => string | undefined;
15
+ getSessionToken: () => string | undefined;
16
+ getSuccessUrl: () => string | undefined;
17
+ };
18
+
19
+ function getRealm(payload: Step): string | undefined {
20
+ return payload.realm;
21
+ }
22
+
23
+ function getSessionToken(payload: Step): string | undefined {
24
+ return payload.tokenId;
25
+ }
26
+
27
+ function getSuccessUrl(payload: Step): string | undefined {
28
+ return payload.successUrl;
29
+ }
30
+
31
+ function createJourneyLoginSuccess(payload: Step): JourneyLoginSuccess {
32
+ return {
33
+ payload,
34
+ type: StepType.LoginSuccess,
35
+ getRealm: () => getRealm(payload),
36
+ getSessionToken: () => getSessionToken(payload),
37
+ getSuccessUrl: () => getSuccessUrl(payload),
38
+ };
39
+ }
40
+
41
+ export { createJourneyLoginSuccess, getRealm, getSessionToken, getSuccessUrl };
42
+
43
+ export type { JourneyLoginSuccess };
@@ -0,0 +1,16 @@
1
+ /*
2
+ * Copyright (c) 2020 - 2025 Ping Identity Corporation. All rights reserved.
3
+ * This software may be modified and distributed under the terms
4
+ * of the MIT license. See the LICENSE file for details.
5
+ */
6
+
7
+ import type { FailedPolicyRequirement } from '@forgerock/sdk-types';
8
+
9
+ export interface MessageCreator {
10
+ [key: string]: (propertyName: string, params?: { [key: string]: unknown }) => string;
11
+ }
12
+
13
+ export interface ProcessedPropertyError {
14
+ detail: FailedPolicyRequirement;
15
+ messages: string[];
16
+ }
@@ -0,0 +1,66 @@
1
+ /*
2
+ * @forgerock/ping-javascript-sdk
3
+ *
4
+ * message-creator.ts
5
+ *
6
+ * Copyright (c) 2020 - 2025 Ping Identity Corporation. All rights reserved.
7
+ * This software may be modified and distributed under the terms
8
+ * of the MIT license. See the LICENSE file for details.
9
+ */
10
+
11
+ import { PolicyKey } from '@forgerock/sdk-types';
12
+ import { getProp, plural } from '@forgerock/sdk-utilities';
13
+
14
+ import type { MessageCreator } from './interfaces.js';
15
+
16
+ export const defaultMessageCreator: MessageCreator = {
17
+ [PolicyKey.CannotContainCharacters]: (property: string, params?: { forbiddenChars?: string }) => {
18
+ const forbiddenChars = getProp<string>(params, 'forbiddenChars', '');
19
+ return `${property} must not contain following characters: "${forbiddenChars}"`;
20
+ },
21
+ [PolicyKey.CannotContainDuplicates]: (property: string, params?: { duplicateValue?: string }) => {
22
+ const duplicateValue = getProp<string>(params, 'duplicateValue', '');
23
+ return `${property} must not contain duplicates: "${duplicateValue}"`;
24
+ },
25
+ [PolicyKey.CannotContainOthers]: (property: string, params?: { disallowedFields?: string }) => {
26
+ const disallowedFields = getProp<string>(params, 'disallowedFields', '');
27
+ return `${property} must not contain: "${disallowedFields}"`;
28
+ },
29
+ [PolicyKey.LeastCapitalLetters]: (property: string, params?: { numCaps?: number }) => {
30
+ const numCaps = getProp<number>(params, 'numCaps', 0);
31
+ return `${property} must contain at least ${numCaps} capital ${plural(numCaps, 'letter')}`;
32
+ },
33
+ [PolicyKey.LeastNumbers]: (property: string, params?: { numNums?: number }) => {
34
+ const numNums = getProp<number>(params, 'numNums', 0);
35
+ return `${property} must contain at least ${numNums} numeric ${plural(numNums, 'value')}`;
36
+ },
37
+ [PolicyKey.MatchRegexp]: (property: string) => `${property} has failed the "MATCH_REGEXP" policy`,
38
+ [PolicyKey.MaximumLength]: (property: string, params?: { maxLength?: number }) => {
39
+ const maxLength = getProp<number>(params, 'maxLength', 0);
40
+ return `${property} must be at most ${maxLength} ${plural(maxLength, 'character')}`;
41
+ },
42
+ [PolicyKey.MaximumNumber]: (property: string) =>
43
+ `${property} has failed the "MAXIMUM_NUMBER_VALUE" policy`,
44
+ [PolicyKey.MinimumLength]: (property: string, params?: { minLength?: number }) => {
45
+ const minLength = getProp<number>(params, 'minLength', 0);
46
+ return `${property} must be at least ${minLength} ${plural(minLength, 'character')}`;
47
+ },
48
+ [PolicyKey.MinimumNumber]: (property: string) =>
49
+ `${property} has failed the "MINIMUM_NUMBER_VALUE" policy`,
50
+ [PolicyKey.Required]: (property: string) => `${property} is required`,
51
+ [PolicyKey.Unique]: (property: string) => `${property} must be unique`,
52
+ [PolicyKey.UnknownPolicy]: (property: string, params?: { policyRequirement?: string }) => {
53
+ const policyRequirement = getProp<string>(params, 'policyRequirement', 'Unknown');
54
+ return `${property}: Unknown policy requirement "${policyRequirement}"`;
55
+ },
56
+ [PolicyKey.ValidArrayItems]: (property: string) =>
57
+ `${property} has failed the "VALID_ARRAY_ITEMS" policy`,
58
+ [PolicyKey.ValidDate]: (property: string) => `${property} has an invalid date`,
59
+ [PolicyKey.ValidEmailAddress]: (property: string) => `${property} has an invalid email address`,
60
+ [PolicyKey.ValidNameFormat]: (property: string) => `${property} has an invalid name format`,
61
+ [PolicyKey.ValidNumber]: (property: string) => `${property} has an invalid number`,
62
+ [PolicyKey.ValidPhoneFormat]: (property: string) => `${property} has an invalid phone number`,
63
+ [PolicyKey.ValidQueryFilter]: (property: string) =>
64
+ `${property} has failed the "VALID_QUERY_FILTER" policy`,
65
+ [PolicyKey.ValidType]: (property: string) => `${property} has failed the "VALID_TYPE" policy`,
66
+ };