@sheerid/jslib-nightly 2.104.0-alpha.1 → 2.105.0-alpha.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 (467) hide show
  1. package/__tests__/__helpers__/renderers.d.ts +5 -5
  2. package/__tests__/e2e/collectInfo/collectInfo.spec.d.ts +1 -0
  3. package/_mysheerid-preview.css +4 -4
  4. package/_mysheerid-preview.js +16311 -17900
  5. package/_mysheerid-preview.js.map +1 -1
  6. package/chunk/{EmailLoopPending-Cp3dQjbH.js → EmailLoopPending-CKTAwQQA.js} +17 -17
  7. package/chunk/{EmailLoopPending-Cp3dQjbH.js.map → EmailLoopPending-CKTAwQQA.js.map} +1 -1
  8. package/chunk/{EmailLoopPending-WTPkkJsm.js → EmailLoopPending-Dzs07hxx.js} +17 -17
  9. package/chunk/{EmailLoopPending-WTPkkJsm.js.map → EmailLoopPending-Dzs07hxx.js.map} +1 -1
  10. package/chunk/{LicensedProfessionalOrganizationComponent-D7gWh3Qx.js → LicensedProfessionalOrganizationComponent-BNNNPaDn.js} +5 -5
  11. package/chunk/{LicensedProfessionalOrganizationComponent-D7gWh3Qx.js.map → LicensedProfessionalOrganizationComponent-BNNNPaDn.js.map} +1 -1
  12. package/chunk/{LicensedProfessionalOrganizationComponent-LYrmpWss.js → LicensedProfessionalOrganizationComponent-trZr_eIW.js} +5 -5
  13. package/chunk/{LicensedProfessionalOrganizationComponent-LYrmpWss.js.map → LicensedProfessionalOrganizationComponent-trZr_eIW.js.map} +1 -1
  14. package/chunk/{Onfido-AyvUk6wg.js → Onfido-CMH3IUna.js} +28 -28
  15. package/chunk/{Onfido-AyvUk6wg.js.map → Onfido-CMH3IUna.js.map} +1 -1
  16. package/chunk/{StepIDCheckLoopOnfido-CQTiZz60.js → StepIDCheckLoopOnfido-C9iUX8TC.js} +11 -12
  17. package/chunk/{StepIDCheckLoopOnfido-CQTiZz60.js.map → StepIDCheckLoopOnfido-C9iUX8TC.js.map} +1 -1
  18. package/chunk/{StepIDCheckLoopOnfido-CsO8JOUT.js → StepIDCheckLoopOnfido-lChJAp_W.js} +11 -12
  19. package/chunk/{StepIDCheckLoopOnfido-CsO8JOUT.js.map → StepIDCheckLoopOnfido-lChJAp_W.js.map} +1 -1
  20. package/chunk/{StepIDCheckLoopRegula-VCHUckkA.js → StepIDCheckLoopRegula-BB8xA4nn.js} +85 -59
  21. package/chunk/StepIDCheckLoopRegula-BB8xA4nn.js.map +1 -0
  22. package/chunk/{StepIDCheckLoopRegula-B2frgNDw.js → StepIDCheckLoopRegula-D8XhToQz.js} +85 -59
  23. package/chunk/StepIDCheckLoopRegula-D8XhToQz.js.map +1 -0
  24. package/chunk/{StepInactiveMilitaryPersonalInfoComponent-Dls2h-Cu.js → StepInactiveMilitaryPersonalInfoComponent-ClKql0Nd.js} +48 -48
  25. package/chunk/{StepInactiveMilitaryPersonalInfoComponent-CVpOu51H.js.map → StepInactiveMilitaryPersonalInfoComponent-ClKql0Nd.js.map} +1 -1
  26. package/chunk/{StepInactiveMilitaryPersonalInfoComponent-CVpOu51H.js → StepInactiveMilitaryPersonalInfoComponent-DXkei7Fp.js} +48 -48
  27. package/chunk/{StepInactiveMilitaryPersonalInfoComponent-Dls2h-Cu.js.map → StepInactiveMilitaryPersonalInfoComponent-DXkei7Fp.js.map} +1 -1
  28. package/chunk/ar-CtJ_9k3U.js +4 -4
  29. package/chunk/bg-CWxXfiDq.js +4 -4
  30. package/chunk/bn-IN-Dpq_hCqt.js +4 -4
  31. package/chunk/cs-HevyelX7.js +4 -4
  32. package/chunk/da-6QXhWjWH.js +4 -4
  33. package/chunk/de-ChuCvRLv.js +4 -4
  34. package/chunk/el-3IAhABcN.js +4 -4
  35. package/chunk/en-GB-ByNBaer-.js +4 -4
  36. package/chunk/es-CL_dUc9X.js +4 -4
  37. package/chunk/es-ES-CW4At4Ol.js +4 -4
  38. package/chunk/fi-D8cIebkk.js +4 -4
  39. package/chunk/fr-BDU-1C6f.js +4 -4
  40. package/chunk/fr-CA-Dc02rv8D.js +4 -4
  41. package/chunk/ga-P7eP-INQ.js +4 -4
  42. package/chunk/hi-IN-DlmwjoqH.js +4 -4
  43. package/chunk/hr-CT_VP_lm.js +4 -4
  44. package/chunk/hu-I8Z1uXsR.js +4 -4
  45. package/chunk/id-CUPTGKOT.js +4 -4
  46. package/chunk/{index-CgBENXRP.js → index-B1579hxf.js} +28 -28
  47. package/chunk/{index-tFgJS6bB.js.map → index-B1579hxf.js.map} +1 -1
  48. package/chunk/{index-DB9SisGK.js → index-B4B6qxaM.js} +15 -15
  49. package/chunk/{index-DB9SisGK.js.map → index-B4B6qxaM.js.map} +1 -1
  50. package/chunk/{index-BGCnajPS.js → index-B5okgMmp.js} +30 -30
  51. package/chunk/{index-BFMTiaJv.js.map → index-B5okgMmp.js.map} +1 -1
  52. package/chunk/{index-DPEoeYI6.js → index-B8tKf2Rd.js} +38 -38
  53. package/chunk/{index-CgSW4Vzh.js.map → index-B8tKf2Rd.js.map} +1 -1
  54. package/chunk/{index-XXxK9rgV.js → index-B92Kfyw6.js} +46 -46
  55. package/chunk/{index-XXxK9rgV.js.map → index-B92Kfyw6.js.map} +1 -1
  56. package/chunk/{index-CtqWr1aK.js → index-BDsZCFuU.js} +58 -58
  57. package/chunk/{index-CtqWr1aK.js.map → index-BDsZCFuU.js.map} +1 -1
  58. package/chunk/{index-aKTpkBwz.js → index-BGGHZBWq.js} +56 -48
  59. package/chunk/{index-aKTpkBwz.js.map → index-BGGHZBWq.js.map} +1 -1
  60. package/chunk/{index-B3NA0DdP.js → index-BW4s6-PH.js} +46 -46
  61. package/chunk/{index-B3NA0DdP.js.map → index-BW4s6-PH.js.map} +1 -1
  62. package/chunk/{index-MRhfTdmm.js → index-BYMr8It7.js} +15 -15
  63. package/chunk/{index-MRhfTdmm.js.map → index-BYMr8It7.js.map} +1 -1
  64. package/chunk/{index-CgSW4Vzh.js → index-BjaCS2a8.js} +38 -38
  65. package/{lib/index-DIJ3ZLm3.js.map → chunk/index-BjaCS2a8.js.map} +1 -1
  66. package/chunk/{index-BDw8efPp.js → index-Bld-AWYE.js} +11 -11
  67. package/chunk/{index-BhkJfnda.js.map → index-Bld-AWYE.js.map} +1 -1
  68. package/chunk/{index-C9bZ7enn.js → index-BnPrfsM1.js} +7 -7
  69. package/chunk/{index-2QV6VPA3.js.map → index-BnPrfsM1.js.map} +1 -1
  70. package/chunk/{index-NjSUlAP4.js → index-BqnEM3hj.js} +54 -54
  71. package/chunk/index-BqnEM3hj.js.map +1 -0
  72. package/chunk/{index-RmF57u5_.js → index-BrkIzqD1.js} +57 -54
  73. package/chunk/index-BrkIzqD1.js.map +1 -0
  74. package/chunk/index-BupTUiiS.js +27 -0
  75. package/chunk/index-BupTUiiS.js.map +1 -0
  76. package/chunk/{index-BPEB_HHW.js → index-BvGP9l7M.js} +237 -219
  77. package/chunk/index-BvGP9l7M.js.map +1 -0
  78. package/chunk/index-C7nYtBX_.js +172 -0
  79. package/chunk/index-C7nYtBX_.js.map +1 -0
  80. package/chunk/{index-BtYzUCrC.js → index-CCUi9Uhw.js} +11 -11
  81. package/chunk/{index-qAxcloBs.js.map → index-CCUi9Uhw.js.map} +1 -1
  82. package/chunk/{index-DZsw9-0u.js → index-CEi_QkyI.js} +237 -219
  83. package/chunk/index-CEi_QkyI.js.map +1 -0
  84. package/chunk/index-CLCPYu7D.js +176 -0
  85. package/chunk/index-CLCPYu7D.js.map +1 -0
  86. package/chunk/{index-BhkJfnda.js → index-CZjGTko2.js} +11 -11
  87. package/chunk/{index-BDw8efPp.js.map → index-CZjGTko2.js.map} +1 -1
  88. package/chunk/{index-Dl7QItmr.js → index-CfUabHav.js} +56 -48
  89. package/chunk/{index-Dl7QItmr.js.map → index-CfUabHav.js.map} +1 -1
  90. package/chunk/{index-qAxcloBs.js → index-CjcHzfTY.js} +11 -11
  91. package/chunk/{index-BtYzUCrC.js.map → index-CjcHzfTY.js.map} +1 -1
  92. package/chunk/{index-DWjrZunN.js → index-Cp0C-9fh.js} +8 -8
  93. package/{lib/index-BpAwd4yZ.js.map → chunk/index-Cp0C-9fh.js.map} +1 -1
  94. package/chunk/{index-D3dphMnl.js → index-Cq__fToG.js} +15 -15
  95. package/chunk/{index-CaSKZsTY.js.map → index-Cq__fToG.js.map} +1 -1
  96. package/chunk/{index-DFQ4PjGJ.js → index-D6oLMvTq.js} +58 -58
  97. package/chunk/{index-DFQ4PjGJ.js.map → index-D6oLMvTq.js.map} +1 -1
  98. package/chunk/{index-tFgJS6bB.js → index-D7O7vvSe.js} +28 -28
  99. package/{lib/index-CFbGwQvV.js.map → chunk/index-D7O7vvSe.js.map} +1 -1
  100. package/chunk/{index-BFMTiaJv.js → index-DGGRPaEI.js} +30 -30
  101. package/chunk/{index-BGCnajPS.js.map → index-DGGRPaEI.js.map} +1 -1
  102. package/chunk/index-DIkWpujR.js +4 -4
  103. package/chunk/index-DIkWpujR.js.map +1 -1
  104. package/chunk/{index-DIV55Je2.js → index-DPv0lytr.js} +18 -18
  105. package/chunk/{index-DIV55Je2.js.map → index-DPv0lytr.js.map} +1 -1
  106. package/chunk/{index-4APDQFqJ.js → index-DSrYVtDo.js} +8 -8
  107. package/chunk/{index-4APDQFqJ.js.map → index-DSrYVtDo.js.map} +1 -1
  108. package/chunk/{index-D7dDB9pN.js → index-Dba2dHcR.js} +18 -18
  109. package/chunk/{index-D7dDB9pN.js.map → index-Dba2dHcR.js.map} +1 -1
  110. package/chunk/{index-CaSKZsTY.js → index-DhpucFa7.js} +15 -15
  111. package/{lib/index-CWWXURVN.js.map → chunk/index-DhpucFa7.js.map} +1 -1
  112. package/chunk/{index-_ohn63ug.js → index-DnCqjuSC.js} +29 -29
  113. package/chunk/{index-B30_E6pJ.js.map → index-DnCqjuSC.js.map} +1 -1
  114. package/chunk/{index-B30_E6pJ.js → index-DpYUZXus.js} +29 -29
  115. package/chunk/{index-_ohn63ug.js.map → index-DpYUZXus.js.map} +1 -1
  116. package/chunk/{index-oMg5zy_2.js → index-F6_JySe5.js} +54 -54
  117. package/chunk/index-F6_JySe5.js.map +1 -0
  118. package/chunk/{index-2QV6VPA3.js → index-YmkMflXj.js} +7 -7
  119. package/chunk/{index-C9bZ7enn.js.map → index-YmkMflXj.js.map} +1 -1
  120. package/chunk/{index-C0jDbJPp.js → index-eYM75vHB.js} +57 -54
  121. package/chunk/index-eYM75vHB.js.map +1 -0
  122. package/chunk/index-iZ8pO5if.js +31 -0
  123. package/chunk/index-iZ8pO5if.js.map +1 -0
  124. package/chunk/is-CUuXi4qZ.js +4 -4
  125. package/chunk/it-BNmynTsg.js +4 -4
  126. package/chunk/iw-FGzquR_X.js +4 -4
  127. package/chunk/ja-YgUpXA0l.js +4 -4
  128. package/chunk/ko-CuNS5J_M.js +4 -4
  129. package/chunk/lo-BEf8aFjR.js +4 -4
  130. package/chunk/lt-DvX1gz1a.js +4 -4
  131. package/chunk/ms-gSqM-Mfi.js +4 -4
  132. package/chunk/nl-BE-Cid5LFlN.js +4 -4
  133. package/chunk/nl-CUUTswxa.js +4 -4
  134. package/chunk/no-BvUqlShV.js +4 -4
  135. package/chunk/pl-CU8leZhI.js +4 -4
  136. package/chunk/pt-BR-CboWpHFi.js +4 -4
  137. package/chunk/pt-BnK7xRT_.js +4 -4
  138. package/chunk/ro-BfAyXxSW.js +4 -4
  139. package/chunk/ru-BD-YGPuQ.js +4 -4
  140. package/chunk/sk-CqsabpdG.js +4 -4
  141. package/chunk/sl-CeVAf0S_.js +4 -4
  142. package/chunk/sr-DSaHxcCQ.js +4 -4
  143. package/chunk/sv-DOyWYViy.js +4 -4
  144. package/chunk/sw-2Q7Jo6wp.js +4 -4
  145. package/chunk/th-BZ6F9sPf.js +4 -4
  146. package/chunk/tr-om80xrv2.js +4 -4
  147. package/chunk/uk-Dxugux8e.js +4 -4
  148. package/chunk/ur-OBILUeZ7.js +4 -4
  149. package/chunk/{useCollectFieldsEndpoint-BsY8WlOg.js → useCollectFieldsEndpoint-C5fsaYJe.js} +11 -11
  150. package/chunk/{useCollectFieldsEndpoint-BsY8WlOg.js.map → useCollectFieldsEndpoint-C5fsaYJe.js.map} +1 -1
  151. package/chunk/{useCollectFieldsEndpoint-DeICm6Vb.js → useCollectFieldsEndpoint-kmLFyUA-.js} +11 -11
  152. package/chunk/{useCollectFieldsEndpoint-DeICm6Vb.js.map → useCollectFieldsEndpoint-kmLFyUA-.js.map} +1 -1
  153. package/chunk/{useEmailFirstExperiment-3uKuefem.js → useEmailFirstExperiment-CSa3DQll.js} +30 -29
  154. package/chunk/{useEmailFirstExperiment-3uKuefem.js.map → useEmailFirstExperiment-CSa3DQll.js.map} +1 -1
  155. package/chunk/{useEmailFirstExperiment-B1_E_D0z.js → useEmailFirstExperiment-DZ1B78ke.js} +30 -29
  156. package/chunk/{useEmailFirstExperiment-B1_E_D0z.js.map → useEmailFirstExperiment-DZ1B78ke.js.map} +1 -1
  157. package/chunk/vi-BOR2GuRI.js +4 -4
  158. package/chunk/zh-HK-BI-IHOGG.js +4 -4
  159. package/chunk/zh-eoMG5RFC.js +4 -4
  160. package/chunk/zu-D_A8wcJW.js +4 -4
  161. package/dev/programIds.d.ts +1 -1
  162. package/es6.css +4 -4
  163. package/jslib.js +15 -15
  164. package/lib/{EmailLoopPending-CqGboDpE.js → EmailLoopPending-Dv5RU8aW.js} +8 -8
  165. package/lib/{EmailLoopPending-CqGboDpE.js.map → EmailLoopPending-Dv5RU8aW.js.map} +1 -1
  166. package/lib/{LicensedProfessionalOrganizationComponent-DZ-zCLNb.js → LicensedProfessionalOrganizationComponent-DtoPR91l.js} +5 -5
  167. package/lib/{LicensedProfessionalOrganizationComponent-DZ-zCLNb.js.map → LicensedProfessionalOrganizationComponent-DtoPR91l.js.map} +1 -1
  168. package/lib/{Onfido-AyvUk6wg.js → Onfido-CMH3IUna.js} +28 -28
  169. package/lib/{Onfido-AyvUk6wg.js.map → Onfido-CMH3IUna.js.map} +1 -1
  170. package/lib/StepCollectMilitaryStatusComponent-DGfjdYFR.js +11 -0
  171. package/lib/{StepCollectMilitaryStatusComponent-BdghJG7J.js.map → StepCollectMilitaryStatusComponent-DGfjdYFR.js.map} +1 -1
  172. package/lib/{StepIDCheckLoopOnfido-C6a2v64o.js → StepIDCheckLoopOnfido-DiSAKwu6.js} +5 -5
  173. package/lib/{StepIDCheckLoopOnfido-C6a2v64o.js.map → StepIDCheckLoopOnfido-DiSAKwu6.js.map} +1 -1
  174. package/lib/{StepIDCheckLoopRegula-B4gdB1au.js → StepIDCheckLoopRegula-Cbr1wxzD.js} +16 -17
  175. package/lib/StepIDCheckLoopRegula-Cbr1wxzD.js.map +1 -0
  176. package/lib/{StepInactiveMilitaryPersonalInfoComponent-DIS37EQl.js → StepInactiveMilitaryPersonalInfoComponent-CEneK5BB.js} +44 -44
  177. package/lib/{StepInactiveMilitaryPersonalInfoComponent-DIS37EQl.js.map → StepInactiveMilitaryPersonalInfoComponent-CEneK5BB.js.map} +1 -1
  178. package/lib/VerificationApiUtils-BaeyxwKQ.js +21 -0
  179. package/lib/{VerificationApiUtils-Dec-3NxE.js.map → VerificationApiUtils-BaeyxwKQ.js.map} +1 -1
  180. package/lib/ar-CtJ_9k3U.js +4 -4
  181. package/lib/bg-CWxXfiDq.js +4 -4
  182. package/lib/bn-IN-Dpq_hCqt.js +4 -4
  183. package/lib/cs-HevyelX7.js +4 -4
  184. package/lib/da-6QXhWjWH.js +4 -4
  185. package/lib/de-ChuCvRLv.js +4 -4
  186. package/lib/el-3IAhABcN.js +4 -4
  187. package/lib/en-GB-ByNBaer-.js +4 -4
  188. package/lib/es-CL_dUc9X.js +4 -4
  189. package/lib/es-ES-CW4At4Ol.js +4 -4
  190. package/lib/{es6-CNbgOM7D.js → es6-DIUKg5Yl.js} +12458 -13664
  191. package/lib/es6-DIUKg5Yl.js.map +1 -0
  192. package/lib/fi-D8cIebkk.js +4 -4
  193. package/lib/fr-BDU-1C6f.js +4 -4
  194. package/lib/fr-CA-Dc02rv8D.js +4 -4
  195. package/lib/ga-P7eP-INQ.js +4 -4
  196. package/lib/hi-IN-DlmwjoqH.js +4 -4
  197. package/lib/hr-CT_VP_lm.js +4 -4
  198. package/lib/hu-I8Z1uXsR.js +4 -4
  199. package/lib/id-CUPTGKOT.js +4 -4
  200. package/lib/{index-CwEH1Xqn.js → index-348MFV_0.js} +5 -5
  201. package/lib/{index-CwEH1Xqn.js.map → index-348MFV_0.js.map} +1 -1
  202. package/lib/{index-CF4-uNPC.js → index-5FO_J7_Z.js} +27 -27
  203. package/lib/{index-CF4-uNPC.js.map → index-5FO_J7_Z.js.map} +1 -1
  204. package/lib/{index-DiEccR2E.js → index-B8tJDCPk.js} +27 -27
  205. package/lib/{index-DiEccR2E.js.map → index-B8tJDCPk.js.map} +1 -1
  206. package/lib/{index-Da-h4i4f.js → index-BNxZc3yj.js} +20 -20
  207. package/lib/{index-Da-h4i4f.js.map → index-BNxZc3yj.js.map} +1 -1
  208. package/lib/{index-CFbGwQvV.js → index-BR7Obj6X.js} +32 -32
  209. package/{chunk/index-CgBENXRP.js.map → lib/index-BR7Obj6X.js.map} +1 -1
  210. package/lib/index-BfZIEtAp.js +174 -0
  211. package/lib/index-BfZIEtAp.js.map +1 -0
  212. package/lib/{index-BpAwd4yZ.js → index-BwlcJZwR.js} +8 -8
  213. package/{chunk/index-DWjrZunN.js.map → lib/index-BwlcJZwR.js.map} +1 -1
  214. package/lib/{index-CFdjELC4.js → index-CEOPDO2Y.js} +30 -27
  215. package/lib/index-CEOPDO2Y.js.map +1 -0
  216. package/lib/{index-U8Xg6WS9.js → index-CGjXCGni.js} +20 -20
  217. package/lib/{index-U8Xg6WS9.js.map → index-CGjXCGni.js.map} +1 -1
  218. package/lib/index-CLowb6Wx.js +11 -0
  219. package/lib/index-CLowb6Wx.js.map +1 -0
  220. package/lib/{index-Bs8gT2Ki.js → index-CT2Bcg4x.js} +5 -5
  221. package/lib/{index-Bs8gT2Ki.js.map → index-CT2Bcg4x.js.map} +1 -1
  222. package/lib/{index-BgxQ03Lw.js → index-CUzHMJTj.js} +26 -26
  223. package/lib/{index-BgxQ03Lw.js.map → index-CUzHMJTj.js.map} +1 -1
  224. package/lib/{index-Dz5MfyRl.js → index-CeXTXAJi.js} +60 -60
  225. package/lib/{index-Dz5MfyRl.js.map → index-CeXTXAJi.js.map} +1 -1
  226. package/lib/index-DIkWpujR.js +4 -4
  227. package/lib/index-DIkWpujR.js.map +1 -1
  228. package/lib/index-DPs8xffH.js +11 -0
  229. package/lib/index-DPs8xffH.js.map +1 -0
  230. package/lib/index-DWo3Cysb.js +11 -0
  231. package/lib/index-DWo3Cysb.js.map +1 -0
  232. package/lib/index-DXdjJ-86.js +28 -0
  233. package/lib/{index-BqMoknWH.js.map → index-DXdjJ-86.js.map} +1 -1
  234. package/lib/{index-JHJAgNn2.js → index-DdQXDuhi.js} +9 -9
  235. package/lib/{index-JHJAgNn2.js.map → index-DdQXDuhi.js.map} +1 -1
  236. package/lib/{index-s1MF80_2.js → index-LZPXbSqW.js} +402 -385
  237. package/lib/index-LZPXbSqW.js.map +1 -0
  238. package/lib/{index-DIJ3ZLm3.js → index-MzEDmZWe.js} +16 -16
  239. package/{chunk/index-DPEoeYI6.js.map → lib/index-MzEDmZWe.js.map} +1 -1
  240. package/lib/index-TKSJ1nbf.js +11 -0
  241. package/lib/index-TKSJ1nbf.js.map +1 -0
  242. package/lib/{index-CWWXURVN.js → index-UiGEZV81.js} +5 -5
  243. package/{chunk/index-D3dphMnl.js.map → lib/index-UiGEZV81.js.map} +1 -1
  244. package/lib/{index-CHCJ1GKm.js → index-ed6oGI-U.js} +7 -7
  245. package/lib/{index-CHCJ1GKm.js.map → index-ed6oGI-U.js.map} +1 -1
  246. package/lib/{index-B-vvoe4K.js → index-s5CW4RjM.js} +61 -61
  247. package/lib/index-s5CW4RjM.js.map +1 -0
  248. package/lib/is-CUuXi4qZ.js +4 -4
  249. package/lib/it-BNmynTsg.js +4 -4
  250. package/lib/iw-FGzquR_X.js +4 -4
  251. package/lib/ja-YgUpXA0l.js +4 -4
  252. package/lib/ko-CuNS5J_M.js +4 -4
  253. package/lib/lo-BEf8aFjR.js +4 -4
  254. package/lib/lt-DvX1gz1a.js +4 -4
  255. package/lib/ms-gSqM-Mfi.js +4 -4
  256. package/lib/nl-BE-Cid5LFlN.js +4 -4
  257. package/lib/nl-CUUTswxa.js +4 -4
  258. package/lib/no-BvUqlShV.js +4 -4
  259. package/lib/pl-CU8leZhI.js +4 -4
  260. package/lib/pt-BR-CboWpHFi.js +4 -4
  261. package/lib/pt-BnK7xRT_.js +4 -4
  262. package/lib/ro-BfAyXxSW.js +4 -4
  263. package/lib/ru-BD-YGPuQ.js +4 -4
  264. package/lib/sk-CqsabpdG.js +4 -4
  265. package/lib/sl-CeVAf0S_.js +4 -4
  266. package/lib/sr-DSaHxcCQ.js +4 -4
  267. package/lib/sv-DOyWYViy.js +4 -4
  268. package/lib/sw-2Q7Jo6wp.js +4 -4
  269. package/lib/th-BZ6F9sPf.js +4 -4
  270. package/lib/tr-om80xrv2.js +4 -4
  271. package/lib/uk-Dxugux8e.js +4 -4
  272. package/lib/ur-OBILUeZ7.js +4 -4
  273. package/lib/{useCollectFieldsEndpoint-DLjeRtxA.js → useCollectFieldsEndpoint-CS1fVgEX.js} +6 -6
  274. package/lib/{useCollectFieldsEndpoint-DLjeRtxA.js.map → useCollectFieldsEndpoint-CS1fVgEX.js.map} +1 -1
  275. package/lib/{useEmailFirstExperiment-RXZazerr.js → useEmailFirstExperiment-Co9DPGhK.js} +7 -6
  276. package/lib/{useEmailFirstExperiment-RXZazerr.js.map → useEmailFirstExperiment-Co9DPGhK.js.map} +1 -1
  277. package/lib/vi-BOR2GuRI.js +4 -4
  278. package/lib/zh-HK-BI-IHOGG.js +4 -4
  279. package/lib/zh-eoMG5RFC.js +4 -4
  280. package/lib/zu-D_A8wcJW.js +4 -4
  281. package/package.json +4 -4
  282. package/sheerid-install.css +4 -4
  283. package/sheerid-install.js +6 -6
  284. package/sheerid-install.js.map +1 -1
  285. package/sheerid.css +5 -5
  286. package/sheerid.js +16329 -17918
  287. package/sheerid.js.map +1 -1
  288. package/src/components/AcceptableUploadsComponent/AcceptableUploadsComponent.d.ts +1 -1
  289. package/src/components/AcceptableUploadsComponent/getLegacyAcceptableUploads.d.ts +1 -1
  290. package/src/components/Button/Button.d.ts +0 -1
  291. package/src/components/CopyToClipboard/CopyToClipboardComponent.d.ts +1 -2
  292. package/src/components/CustomCssContext/CustomCssContextProvider.d.ts +1 -1
  293. package/src/components/DateComponent/DateComponent.d.ts +2 -2
  294. package/src/components/ExtraMessage.d.ts +1 -1
  295. package/src/components/FaqLink/FaqLinkComponent.d.ts +1 -1
  296. package/src/components/FeatureFlags/ExperimentComponent/ExperimentComponent.d.ts +4 -4
  297. package/src/components/FetchOrganizationsComponent.d.ts +1 -1
  298. package/src/components/FormFields/ActiveDutyStartDate/ActiveDutyStartDateComponent.d.ts +1 -1
  299. package/src/components/FormFields/Address/AddressComponent.d.ts +2 -2
  300. package/src/components/FormFields/BirthDate/BirthDateComponent.d.ts +1 -1
  301. package/src/components/FormFields/BranchOfService/BranchOfServiceComponent.d.ts +2 -2
  302. package/src/components/FormFields/CVECNumber/CVECNumberComponent.d.ts +2 -2
  303. package/src/components/FormFields/ChangeLocale/ChangeLocaleComponent.d.ts +3 -3
  304. package/src/components/FormFields/City/City.d.ts +2 -2
  305. package/src/components/FormFields/CollegeName/CollegeNameComponent.d.ts +2 -2
  306. package/src/components/FormFields/Company/CompanyComponent.d.ts +2 -2
  307. package/src/components/FormFields/Country/CountryComponent.d.ts +2 -2
  308. package/src/components/FormFields/Country/CountryComponentWrapper.d.ts +2 -2
  309. package/src/components/FormFields/DischargeDate/DischargeDateComponent.d.ts +1 -1
  310. package/src/components/FormFields/DriverLicenseNumber/DriverLicenseNumberComponent.d.ts +2 -2
  311. package/src/components/FormFields/EBTCardNumber/EBTCardNumberComponent.d.ts +2 -2
  312. package/src/components/FormFields/Email/EmailComponent.d.ts +2 -2
  313. package/src/components/FormFields/EmailFirstCollectInfo/EmailLookupResponseMessageComponent.d.ts +1 -1
  314. package/src/components/FormFields/EmailFirstCollectInfo/useEmailFirstExperiment.d.ts +1 -1
  315. package/src/components/FormFields/FirstName/FirstNameComponent.d.ts +2 -2
  316. package/src/components/FormFields/FirstResponderOrganization/FirstResponderOrganizationComponent.d.ts +2 -2
  317. package/src/components/FormFields/FormFieldCustom/FormFieldCustom.d.ts +2 -2
  318. package/src/components/FormFields/FormFieldInputSelect/FormFieldInputSelect.d.ts +1 -1
  319. package/src/components/FormFields/FormFieldRadio/FormFieldRadio.d.ts +2 -2
  320. package/src/components/FormFields/FormFieldSelect/FormFieldSelect.d.ts +2 -2
  321. package/src/components/FormFields/FormFieldText/FormFieldText.d.ts +1 -1
  322. package/src/components/FormFields/FormFieldTypeahead/FormFieldTypeahead.d.ts +2 -2
  323. package/src/components/FormFields/LastName/LastNameComponent.d.ts +2 -2
  324. package/src/components/FormFields/LicensedProfessionalOrganization/LicensedProfessionalOrganizationComponent.d.ts +2 -2
  325. package/src/components/FormFields/LowIncomeOrganization/LowIncomeOrganizationComponent.d.ts +2 -2
  326. package/src/components/FormFields/MarketConsentWrapper/MarketConsentWrapperComponent.d.ts +1 -1
  327. package/src/components/FormFields/MedicalProfessionalOrganization/MedicalProfessionalOrganizationComponent.d.ts +2 -2
  328. package/src/components/FormFields/MemberId/MemberIdComponent.d.ts +2 -2
  329. package/src/components/FormFields/MembershipOrganization/MembershipOrganizationComponent.d.ts +2 -2
  330. package/src/components/FormFields/OptIn/OptInComponent.d.ts +1 -1
  331. package/src/components/FormFields/OverrideCode/OverrideCodeComponent.d.ts +2 -2
  332. package/src/components/FormFields/PhoneNumber/PhoneNumberComponent.d.ts +2 -2
  333. package/src/components/FormFields/PostalCode/PostalCodeComponent.d.ts +2 -2
  334. package/src/components/FormFields/SMSCode/SMSCodeComponent.d.ts +2 -2
  335. package/src/components/FormFields/SSN/SSN.d.ts +2 -2
  336. package/src/components/FormFields/State/State.d.ts +2 -2
  337. package/src/components/FormFields/State/StateSelectComponent.d.ts +2 -2
  338. package/src/components/FormFields/Status/StatusComponent.d.ts +2 -2
  339. package/src/components/FormFields/TeacherSchool/TeacherSchoolComponent.d.ts +2 -2
  340. package/src/components/FormFooter/FooterTextComponent.d.ts +1 -1
  341. package/src/components/FormFooter/FormFooterComponent.d.ts +1 -1
  342. package/src/components/FormHeader/FormHeaderComponent.d.ts +1 -1
  343. package/src/components/FormHeader/StepHeaders/PersonalInfoHeaderComponent.d.ts +1 -1
  344. package/src/components/FormInputs/InputRadio/InputRadio.d.ts +1 -1
  345. package/src/components/FormInputs/InputSelect/InputSelectComponent.d.ts +1 -1
  346. package/src/components/FormInputs/InputSelect/InputSelectList/InputSelectListComponent.d.ts +1 -1
  347. package/src/components/FormInputs/PostalCodeInput/PostalCodeInputComponent.d.ts +1 -1
  348. package/src/components/FormInputs/Select/SelectComponent.d.ts +1 -1
  349. package/src/components/FormInputs/Select/SelectList/SelectListComponent.d.ts +1 -1
  350. package/src/components/FormInputs/Typeahead/TypeaheadComponent.d.ts +1 -1
  351. package/src/components/FormInputs/Typeahead/TypeaheadComponentHelper.d.ts +1 -1
  352. package/src/components/HowDoesVerifyingWork/HowDoesVerifyingWorkComponent.d.ts +1 -1
  353. package/src/components/Layout/Layout.d.ts +1 -1
  354. package/src/components/LoadStepComponent.d.ts +1 -1
  355. package/src/components/LoadingScreen/LoadingScreenComponent.d.ts +1 -1
  356. package/src/components/LoadingScreen/LoadingScreenMessage.d.ts +1 -1
  357. package/src/components/LogoComponent/LogoComponent.d.ts +1 -1
  358. package/src/components/NewVerificationComponent.d.ts +3 -3
  359. package/src/components/NewVerificationInnerComponent.d.ts +1 -1
  360. package/src/components/OrganizationList/OrganizationListComponent.d.ts +1 -1
  361. package/src/components/PersonalInfoStepSubmitButton/PersonalInfoStepSubmitButton.d.ts +2 -2
  362. package/src/components/PersonalInfoStepWrapper/PersonalInfoStepWrapper.d.ts +1 -2
  363. package/src/components/PoweredBy/PoweredByComponent.d.ts +1 -1
  364. package/src/components/PrivacyPolicyLink/PrivacyPolicyLinkComponent.d.ts +2 -2
  365. package/src/components/RewardsRemaining/RewardsRemainingComponent.d.ts +1 -1
  366. package/src/components/SingleSignOnComponent.d.ts +2 -2
  367. package/src/components/StepAgePersonalInfo/StepAgePersonalInfoComponent.d.ts +2 -2
  368. package/src/components/StepCollectIdentifier/StepCollectIdentifierComponent.d.ts +1 -1
  369. package/src/components/StepCollectPersonalInfo/StepCollectPersonalInfoComponent.d.ts +2 -2
  370. package/src/components/StepConsolation/StepConsolationComponent.d.ts +1 -1
  371. package/src/components/StepDocUpload/StepDocUploadComponent.d.ts +1 -1
  372. package/src/components/StepEmailLoop/EmailLoopCollectOrganizationEmail.d.ts +1 -1
  373. package/src/components/StepEmailLoop/EmailLoopPending.d.ts +1 -1
  374. package/src/components/StepEmailLoop/StepEmailLoopComponent.d.ts +2 -2
  375. package/src/components/StepEmploymentPersonalInfo/StepEmploymentPersonalInfoComponent.d.ts +1 -1
  376. package/src/components/StepError/StepErrorComponent.d.ts +2 -2
  377. package/src/components/StepFirstResponderPersonalInfo/StepFirstResponderPersonalInfoComponent.d.ts +1 -1
  378. package/src/components/StepIDCheckLoop/IdCheckLoopFooter/IdCheckLoopOnfidoFooter.d.ts +1 -1
  379. package/src/components/StepIDCheckLoop/IdCheckLoopFooter/IdCheckLoopRegulaFooter.d.ts +1 -1
  380. package/src/components/StepIDCheckLoop/Onfido/IdCheckLoopOnfido/IdCheckLoopOnfido.d.ts +2 -2
  381. package/src/components/StepIDCheckLoop/Onfido/StepIDCheckLoopOnfido/StepIDCheckLoopOnfido.d.ts +1 -1
  382. package/src/components/StepIDCheckLoop/Onfido/utils/getAndFormatOrderedStepCards.d.ts +1 -1
  383. package/src/components/StepIDCheckLoop/Regula/IdCheckLoopRegula/DisplayThumbnail.d.ts +1 -1
  384. package/src/components/StepIDCheckLoop/Regula/IdCheckLoopRegula/IdCheckLoopRegula.d.ts +1 -1
  385. package/src/components/StepIDCheckLoop/Regula/StepIDCheckLoopRegulaComponent/StepIDCheckLoopRegula.d.ts +1 -1
  386. package/src/components/StepIDCheckLoop/StepIDCheckLoopComponent.d.ts +1 -1
  387. package/src/components/StepIdentityPersonalInfo/StepDriverLicensePersonalInfoComponent.d.ts +1 -1
  388. package/src/components/StepIdentityPersonalInfo/StepGeneralIdentityPersonalInfoComponent.d.ts +1 -1
  389. package/src/components/StepIdentityPersonalInfo/StepHybridIdentityPersonalInfoComponent.d.ts +1 -1
  390. package/src/components/StepLicensedProfessionalPersonalInfo/StepLicensedProfessionalPersonalInfoComponent.d.ts +1 -1
  391. package/src/components/StepLowIncomePersonalInfo/StepLowIncomePersonalInfoComponent.d.ts +1 -1
  392. package/src/components/StepMedicalProfessionalPersonalInfo/StepMedicalProfessionalPersonalInfoComponent.d.ts +1 -1
  393. package/src/components/StepMemberPersonalInfo/StepMemberPersonalInfoComponent.d.ts +1 -1
  394. package/src/components/StepMilitaryPersonalInfo/StepActiveMilitaryPersonalInfoComponent.d.ts +1 -1
  395. package/src/components/StepMilitaryPersonalInfo/StepInactiveMilitaryPersonalInfoComponent.d.ts +1 -1
  396. package/src/components/StepMoverPersonalInfo/StepMoverPersonalInfoComponent.d.ts +1 -1
  397. package/src/components/StepOverrideComponent/StepOverrideComponent.d.ts +2 -2
  398. package/src/components/StepPending/ReviewPendingComponent.d.ts +1 -1
  399. package/src/components/StepPending/SingleSignOnPendingComponent.d.ts +2 -2
  400. package/src/components/StepPending/StepPendingComponent.d.ts +1 -1
  401. package/src/components/StepPending/ThirdPartyLoopPendingComponent.d.ts +1 -1
  402. package/src/components/StepSMSLoop/StepSMSLoopComponent.d.ts +2 -2
  403. package/src/components/StepSSO/StepSSOComponent.d.ts +1 -1
  404. package/src/components/StepSeniorPersonalInfo/StepSeniorPersonalInfoComponent.d.ts +1 -1
  405. package/src/components/StepSocialSecurityNumber/StepSocialSecurityNumber.d.ts +1 -1
  406. package/src/components/StepStudentPersonalInfo/StepStudentPersonalInfoComponent.d.ts +1 -1
  407. package/src/components/StepSuccess/StepSuccessComponent.d.ts +1 -1
  408. package/src/components/StepTeacherPersonalInfo/StepTeacherPersonalInfoComponent.d.ts +1 -1
  409. package/src/components/StepThirdPartyLoop/StepThirdPartyLoopComponent.d.ts +3 -3
  410. package/src/components/TestModeFlag/TestModeFlagComponent.d.ts +1 -1
  411. package/src/components/UploadInfoComponent/UploadInfoComponent.d.ts +1 -1
  412. package/src/components/VerificationForm/VerificationFormComponent.d.ts +1 -1
  413. package/src/es5Bindings/VerificationFormEs5.d.ts +1 -1
  414. package/src/lib/ProgramTheme/programThemeGetters.d.ts +1 -1
  415. package/src/lib/ServerApi/ApiUrls.d.ts +1 -1
  416. package/src/lib/ServerApi/VerificationApiClient.d.ts +1 -1
  417. package/src/lib/ServerApi/VerificationHelpRequestApi.d.ts +1 -1
  418. package/src/lib/VerificationService/VerificationServiceActions.d.ts +1 -1
  419. package/src/lib/VerificationService/ViewModel.d.ts +5 -3
  420. package/src/lib/hooks/index.d.ts +1 -1
  421. package/src/lib/installScript/_mysheerid-preview.d.ts +2 -2
  422. package/src/lib/installScript/affinity.d.ts +1 -1
  423. package/src/lib/installScript/iframe.d.ts +1 -1
  424. package/src/lib/installScript/index.d.ts +3 -3
  425. package/src/lib/installScript/modal.d.ts +1 -1
  426. package/src/lib/intl/localized-messages/en-US.json.d.ts +1 -1
  427. package/src/lib/state/contextHooks.d.ts +1 -1
  428. package/src/lib/types/runtimeTypes.d.ts +1 -1
  429. package/src/lib/types/types.d.ts +12 -8
  430. package/src/lib/utils/customTagReplacer/index.d.ts +1 -1
  431. package/src/lib/utils/stepComponentHelpers/stepComponentHelpers.d.ts +2 -2
  432. package/src/lib/utils/structures/FormSelectChoice.d.ts +1 -1
  433. package/types-reference.zip +0 -0
  434. package/chunk/StepIDCheckLoopRegula-B2frgNDw.js.map +0 -1
  435. package/chunk/StepIDCheckLoopRegula-VCHUckkA.js.map +0 -1
  436. package/chunk/index-BIn_Jf1h.js +0 -48
  437. package/chunk/index-BIn_Jf1h.js.map +0 -1
  438. package/chunk/index-BOpxl8V9.js +0 -167
  439. package/chunk/index-BOpxl8V9.js.map +0 -1
  440. package/chunk/index-BPEB_HHW.js.map +0 -1
  441. package/chunk/index-C0jDbJPp.js.map +0 -1
  442. package/chunk/index-CfKAGYGb.js +0 -52
  443. package/chunk/index-CfKAGYGb.js.map +0 -1
  444. package/chunk/index-DZsw9-0u.js.map +0 -1
  445. package/chunk/index-DtoxnCtM.js +0 -171
  446. package/chunk/index-DtoxnCtM.js.map +0 -1
  447. package/chunk/index-NjSUlAP4.js.map +0 -1
  448. package/chunk/index-RmF57u5_.js.map +0 -1
  449. package/chunk/index-oMg5zy_2.js.map +0 -1
  450. package/lib/StepCollectMilitaryStatusComponent-BdghJG7J.js +0 -11
  451. package/lib/StepIDCheckLoopRegula-B4gdB1au.js.map +0 -1
  452. package/lib/VerificationApiUtils-Dec-3NxE.js +0 -23
  453. package/lib/es6-CNbgOM7D.js.map +0 -1
  454. package/lib/index-B-vvoe4K.js.map +0 -1
  455. package/lib/index-BUb81vE5.js +0 -11
  456. package/lib/index-BUb81vE5.js.map +0 -1
  457. package/lib/index-BqMoknWH.js +0 -28
  458. package/lib/index-BvZhF_Rn.js +0 -168
  459. package/lib/index-BvZhF_Rn.js.map +0 -1
  460. package/lib/index-CFdjELC4.js.map +0 -1
  461. package/lib/index-DFexphfg.js +0 -11
  462. package/lib/index-DFexphfg.js.map +0 -1
  463. package/lib/index-DbevfyP-.js +0 -11
  464. package/lib/index-DbevfyP-.js.map +0 -1
  465. package/lib/index-aInot7yT.js +0 -11
  466. package/lib/index-aInot7yT.js.map +0 -1
  467. package/lib/index-s1MF80_2.js.map +0 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sheerid/jslib-nightly",
3
3
  "author": "SheerID",
4
- "version": "2.104.0-alpha.1",
4
+ "version": "2.105.0-alpha.0",
5
5
  "description": "SheerID JavaScript Library",
6
6
  "keywords": [
7
7
  "verify",
@@ -26,9 +26,9 @@
26
26
  }
27
27
  },
28
28
  "peerDependencies": {
29
- "react": "^18.3.1",
30
- "react-dom": "^18.3.1",
31
- "react-intl": "^2.9.0"
29
+ "react": "^16.9.0",
30
+ "react-dom": "^16.9.0",
31
+ "react-intl": "^2.4.0"
32
32
  },
33
33
  "dependencies": {
34
34
  "@heroicons/react": "^2.0.18",
@@ -1,8 +1,8 @@
1
1
 
2
2
  /**
3
- * VERSION: 2.104.0-alpha.1
4
- * BUILD_TIMESTAMP: 1746128022593
5
- * BUILD_DATE: Thu May 01 2025 19:33:42 GMT+0000 (Coordinated Universal Time)
6
- * BUILD_COMMIT: a18837a69c59275ce314d94cf6208e53b6620598
3
+ * VERSION: 2.105.0-alpha.0
4
+ * BUILD_TIMESTAMP: 1746202236950
5
+ * BUILD_DATE: Fri May 02 2025 16:10:36 GMT+0000 (Coordinated Universal Time)
6
+ * BUILD_COMMIT: 5e00bc964fbbb4f7f7b152a375026d6591cd1564
7
7
  */
8
8
  .sid-inline-iframe{border:0;height:100%;min-width:32rem}.sid-modal__wrapper{background:#fff;border-radius:5px;box-shadow:#989898 10px 10px 15px;left:50%;max-height:calc(100% - 80px);opacity:0;outline:none;overflow-y:auto;position:fixed;top:50%;transform:translate(-50%,-50%);transition:opacity .3s linear;width:32rem;z-index:9998}.sid-modal__wrapper.fade-in{opacity:1}.sid-modal__iframe{border:0;display:block;height:100%;min-width:250px;width:100%}.sid-modal__close-button{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;flex-direction:row;position:absolute;right:10px;text-decoration:none;top:10px;z-index:9999}.sid-modal__close-icon{background-image:url(https://services.sheerid.com/jsapi/img/btn1.png);background-repeat:no-repeat;filter:brightness(25%);height:20px;width:20px}.sid-modal__close-text{color:#000;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:var(--sheerid-font-size-body);margin-right:5px}.sid-modal__overlay{background-color:#b3b3b3;height:100%;left:0;opacity:0;position:fixed;top:0;transition:opacity .3s linear;width:100%;z-index:9997}.sid-modal__overlay.fade-in{opacity:.75}@media (width <= 620px){.sid-modal__wrapper{max-width:calc(100vw - 1rem)}}@media (width <= 32rem){.sid-inline-iframe{min-width:calc(100vw - 1rem);width:100%}}
@@ -1,13 +1,13 @@
1
1
 
2
2
  /**
3
- * VERSION: 2.104.0-alpha.1
4
- * BUILD_TIMESTAMP: 1746128022593
5
- * BUILD_DATE: Thu May 01 2025 19:33:42 GMT+0000 (Coordinated Universal Time)
6
- * BUILD_COMMIT: a18837a69c59275ce314d94cf6208e53b6620598
3
+ * VERSION: 2.105.0-alpha.0
4
+ * BUILD_TIMESTAMP: 1746202236950
5
+ * BUILD_DATE: Fri May 02 2025 16:10:36 GMT+0000 (Coordinated Universal Time)
6
+ * BUILD_COMMIT: 5e00bc964fbbb4f7f7b152a375026d6591cd1564
7
7
  */
8
8
  var S = Object.defineProperty;
9
9
  var T = (i, e, t) => e in i ? S(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
10
- var s = (i, e, t) => T(i, typeof e != "symbol" ? e + "" : e, t);
10
+ var s = (i, e, t) => (T(i, typeof e != "symbol" ? e + "" : e, t), t);
11
11
  const _ = "installPageUrl", M = "installType", y = {
12
12
  INLINE_IFRAME_CONTENT: "sid-inline-iframe",
13
13
  MODAL_WRAPPER: "sid-modal__wrapper",
@@ -78,7 +78,7 @@ const P = (i) => i && i.stack && i.message, E = (...i) => {
78
78
  locale: a(() => r.programTheme.intl.locale),
79
79
  isTestMode: a(() => r.programTheme.isTestMode),
80
80
  openOrgSearchEnabled: a(() => r.programTheme.openOrgSearchEnabled),
81
- jslibVerActual: a(() => "2.104.0-alpha.1", "?"),
81
+ jslibVerActual: a(() => "2.105.0-alpha.0", "?"),
82
82
  ...t
83
83
  };
84
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sheerid-install.js","sources":["../src/constants.ts","../src/lib/installScript/constants.ts","../src/lib/GoogleAnalytics/gaHelpers.ts","../src/lib/utils/getSafe.ts","../src/lib/utils/logger/logger.ts","../src/lib/installScript/utils.ts","../src/lib/hooks/eventEmitter.ts","../src/lib/installScript/iframe.ts","../src/lib/installScript/affinity.ts","../src/lib/installScript/modal.ts","../src/lib/installScript/index.ts"],"sourcesContent":["import { type FieldId, type Locale } from \"./lib/types/types\";\n\nexport const DEFAULT_LOCALE: Locale = \"en-US\";\n\nexport const ACCEPTED_DOC_MIME_TYPES: string[] = [\n \"image/png\",\n \"image/jpg\",\n \"image/jpeg\",\n \"application/pdf\",\n];\n\nexport const ACCEPTED_DOC_TYPES: string[] = [\".jpg\", \".jpeg\", \".png\", \".pdf\"];\nexport const MAX_DOC_UPLOAD_DOCS_ALLOWED: number = 3;\nexport const UPLOAD_FILE_PREFIX: string = \"file\";\n\nexport const QUERY_STRING_STEP_OVERRIDE: string = \"mockStep\";\nexport const QUERY_STRING_SEGMENT_OVERRIDE: string = \"mockSegment\";\nexport const QUERY_STRING_SUBSEGMENT_OVERRIDE: string = \"mockSubSegment\";\nexport const QUERY_STRING_ERRORID_OVERRIDE: string = \"mockErrorId\";\nexport const QUERY_STRING_REWARD_CODE_OVERRIDE: string = \"mockRewardCode\";\nexport const QUERY_STRING_REDIRECT_URL_OVERRIDE: string = \"mockRedirectUrl\";\nexport const QUERY_STRING_REMEMBER_ME_OVERRIDE: string = \"mockConsumerInfoState\"; // ?mockConsumerInfoState=consumerFound | consumerNotFound\nexport const QUERY_STRING_ID_CHECK_LOOP_SERVICE_TYPE_OVERRIDE: string =\n \"mockIdCheckLoopServiceType\"; // ?mockIdCheckLoopServiceType=ID_CHECK | ID_CHECK_LIVENESS\nexport const QUERY_STRING_DOC_SELECTED: string = \"mockDocSelected\"; // mock the state where a consumer as already selected a file and is about to click the \"continue\" button on the docUpload step\nexport const QUERY_STRING_PREV_STEP_OVERRIDE: string = \"mockPreviousStep\";\nexport const QUERY_STRING_THIRD_PARTY_PROVIDER_OVERRIDE: string = \"thirdPartyLoopProvider\";\nexport const QUERY_STRING_INSTALL_PAGE_URL: string = \"installPageUrl\";\nexport const QUERY_STRING_INSTALL_TYPE: string = \"installType\";\nexport const QUERY_STRING_LAYOUT: string = \"layout\"; // verify app's \"?layout=landing\"\nexport const QUERY_STRING_EXTERNAL_USER_ID: string = \"externalUserId\";\n\nexport const SSN_STRING_LENGTH: number = 9;\nexport const DEFAULT_MINIMUM_ORG_SEARCH_VALUE_LENGTH: number = 1;\n\nexport const DEFAULT_PRIVACY_POLICY_HOST = \"www.sheerid.com\";\nexport const DEFAULT_PRIVACY_POLICY_URL = \"https://www.sheerid.com/privacy-policy/\";\nexport const SHEERID = \"SheerID\";\n\nexport const FEEDBACK_FORM_URL =\n \"https://verify.sheerid.com/verification-support/feedback.html?token=\";\nexport const SUPPORT_URL = \"https://support.sheerid.com\";\n\nexport const HTTP_REQUEST_TIMEOUT = 10000;\nexport const DEBOUNCE_TIMEOUT = 200;\n\nexport const inLightbox = \"inLightbox\";\n\nexport const AUTH_TOKEN_LENGTH = 6;\n\nexport const FIELD_IDS: FieldId[] = [\n \"firstName\",\n \"lastName\",\n \"memberId\",\n \"organization\",\n \"birthDate\",\n \"email\",\n \"phoneNumber\",\n \"postalCode\",\n \"address1\",\n \"city\",\n \"state\",\n \"dischargeDate\",\n \"activeDutyStartDate\",\n \"status\",\n \"statuses\",\n \"docUpload\",\n \"country\",\n \"smsCode\",\n \"socialSecurityNumber\",\n \"marketConsentValue\",\n \"carrierConsentValue\",\n \"driverLicenseNumber\",\n \"overrideCode\",\n \"ebtCardNumber\",\n \"organizationEmail\",\n \"authenticationCode\",\n];\n","const iframeClassNames = {\n INLINE_IFRAME_CONTENT: \"sid-inline-iframe\",\n MODAL_WRAPPER: \"sid-modal__wrapper\",\n MODAL_IFRAME: \"sid-modal__iframe\",\n OVERLAY: \"sid-modal__overlay\",\n CLOSE_BUTTON: \"sid-modal__close-button\",\n CLOSE_TEXT: \"sid-modal__close-text\",\n CLOSE_ICON: \"sid-modal__close-icon\",\n};\n\nexport const iframeTitle = \"SheerID Verification Form\";\n\nexport const iframeConstants = {\n CLASS_NAMES: iframeClassNames,\n DEFAULT_MOBILE_THRESHOLD_WIDTH: 620,\n MODAL_OPACITY_TRANSITION_PERIOD: 300,\n};\n","//\n// NOTE this file is high risk for circular dependencies! Avoid imports, or double check that they don't create circular deps\n//\n\nimport type { NavigatorBeta } from \"../types/types\";\n\n/**\n * A singleton to allow access to user properties that we've set on GA without\n * querying GA directly. This is primarily used to also send them to New Relic.\n */\nconst _attrCache: Record<string, unknown> = {};\n\nexport const setGaAttributes = (attrs: Record<string, unknown>): void =>\n Object.entries(attrs).forEach(([k, v]) => {\n _attrCache[k] = v;\n });\n\nexport const getGaAttributes = async (): Promise<object> => _attrCache;\n\nexport const doNotTrack = () => (window.navigator as NavigatorBeta).globalPrivacyControl;\n\nexport const isNewRelicAvailable = () => window.NREUM && !doNotTrack();\n","/**\n * Avoid \"can't access property of undefined\" errors in a more readable way.\n * @param fn Function that wraps a nested property access\n * @param defaultVal Optional - the value to return if property access failed\n */\n\nexport function getSafe<T>(fn: () => T, defaultVal?: T): T | undefined {\n try {\n return fn();\n } catch (e) {\n return defaultVal;\n }\n}\n","/* eslint no-console:0 */\n// ~~~ This file and its tests are the only files that should disable \"no-console\" ~~~\n\nimport { getGaAttributes, isNewRelicAvailable } from \"../../GoogleAnalytics/gaHelpers\";\nimport { LogLevel, ReduxState, VerificationStore } from \"../../types/types\";\nimport { getSafe } from \"../getSafe\";\n\nlet logLevel = 4; // default\nlet prefix = \"\";\nconst logLevels = {\n info: 1,\n log: 2,\n warn: 3,\n error: 4,\n};\n\nconst colors = {\n info: \"#26c1db\",\n log: \"#09f979\",\n warn: \"#f6b13f\",\n error: \"#e12046\",\n};\n\nconst standardStyles = \"color: white; font-weight: bold; padding: 2px 10px;\";\n\nlet reduxStore;\n\nconst isError = (e) => e && e.stack && e.message;\n\nconst warn = (...args) => {\n if (logLevel <= 3) {\n console.warn(`%c${prefix} warn`, `background: ${colors.warn};${standardStyles}`, ...args);\n }\n};\n\nconst log = (...args) => {\n if (logLevel <= 2) {\n console.log(`%c${prefix} log`, `background: ${colors.log};${standardStyles}`, ...args);\n }\n};\n\nconst info = (...args) => {\n if (logLevel <= 1) {\n console.log(`%c${prefix} info`, `background: ${colors.info};${standardStyles}`, ...args);\n }\n};\n\n/**\n * @param error Primary, details error message or full error object\n * @param errorMessageGroup Use this to group error messages together with a string that does not vary as frequently.\n * Do not pass programId, verificationId, etc\n */\nconst error = async (\n err: Error | string,\n errorMessageGroup: string = \"unknown group\",\n additionalUsefulAttributes: { [a: string]: string } = {},\n) => {\n if (logLevel <= 4) {\n if (!err) {\n console.error(new Error(\"An error must be supplied\"));\n return;\n }\n\n let errorObj;\n if (typeof err === \"string\") errorObj = new Error(err);\n if (isError(err)) errorObj = err;\n if (!errorObj) errorObj = new Error(\"Unknown error\");\n\n let usefulAttributes: object = { errorMessageGroup };\n\n // #region Google Analytics\n // Include everything we can from Google Analytics' data b/c that's useful:\n try {\n const gaAttributes = await getGaAttributes();\n\n usefulAttributes = {\n ...gaAttributes,\n ...usefulAttributes,\n };\n delete (usefulAttributes as any).jslibVersionActual; // used by GA not New Relic (duplicated)\n } catch (e) {\n if (isNewRelicAvailable()) {\n window.NREUM.noticeError(errorObj, usefulAttributes);\n } else {\n // Some customers can't install New Relic so this is not an error:\n warn(\"Unable to assemble GA error attributes\", e);\n }\n }\n // #endregion Google Analytics\n\n // #region Redux\n try {\n // Some invokers of logger.error() don't use redux\n if (reduxStore && reduxStore.getState) {\n const state: ReduxState = reduxStore.getState();\n const errorIds = getSafe(() => state.verificationResponse.errorIds);\n usefulAttributes = {\n ...usefulAttributes,\n programId: getSafe(() => state.programId),\n isLoading: getSafe(() => state.isLoading),\n isErrored: getSafe(() => state.isErrored),\n errorIdsFromVerRsp: Array.isArray(errorIds) ? errorIds.join(\", \") : undefined,\n verificationId: getSafe(() => state.verificationResponse.verificationId),\n currentStep: getSafe(() => state.verificationResponse.currentStep),\n locale: getSafe(() => state.programTheme.intl.locale),\n isTestMode: getSafe(() => state.programTheme.isTestMode),\n openOrgSearchEnabled: getSafe(() => state.programTheme.openOrgSearchEnabled),\n jslibVerActual: getSafe(() => process.env.NEXT_VERSION, \"?\"),\n ...additionalUsefulAttributes,\n };\n }\n } catch (e) {\n if (isNewRelicAvailable()) {\n window.NREUM.noticeError(errorObj, usefulAttributes);\n } else {\n // Some customers can't install New Relic so this is not an error:\n warn(\"Unable to assemble useful error attributes\", e);\n }\n }\n // #endregion Redux\n\n if (isNewRelicAvailable()) {\n window.NREUM.noticeError(errorObj, usefulAttributes);\n }\n\n console.error(\n `%c${prefix} error`,\n `background: ${colors.error};${standardStyles}`,\n errorObj,\n usefulAttributes,\n );\n }\n};\n\nexport const newRelicPageAction = (eventName: string, attributes = {}) => {\n if (isNewRelicAvailable()) {\n window.NREUM.addPageAction(eventName, attributes);\n }\n};\n\n/**\n * @deprecated Use newRelicPageAction() instead\n */\nconst logAPIResponseTime = (url: string, time: number) => {\n newRelicPageAction(\"API-calls-timing\", {\n api_call: url,\n api_response_time: time,\n });\n};\n\nexport const logger = {\n error,\n warn,\n log,\n info,\n /** @deprecated use newRelicPageAction() instead */\n logAPIResponseTime,\n setLogLevel: (desiredLogLevel: LogLevel) => {\n if (!logLevels.hasOwnProperty(desiredLogLevel)) {\n throw new Error(`Unknown logLevel '${desiredLogLevel}'`);\n }\n\n logLevel = logLevels[desiredLogLevel];\n console.log(\n `%c${prefix} log level set to ${desiredLogLevel}`,\n `background: ${colors[desiredLogLevel]};${standardStyles}`,\n );\n\n // Some customers can't install New Relic so this is not an error:\n if (!isNewRelicAvailable()) {\n warn(\"Offsite logging not enabled\");\n }\n },\n setPrefix: (thisPrefix: string) => {\n prefix = thisPrefix;\n },\n init: (store: VerificationStore) => {\n reduxStore = store;\n },\n};\n","export const fadeInElements = (elements: HTMLElement[]) => {\n elements.forEach((element: HTMLElement) => {\n element.classList.add(\"fade-in\");\n });\n};\n\nexport const removeElement = (element: HTMLElement, transitionTimeout: number) => {\n element.classList.remove(\"fade-in\");\n window.setTimeout(() => {\n document.body.style.overflow = \"auto\";\n element.parentNode.removeChild(element);\n }, transitionTimeout);\n};\n\nexport const getVerificationUrl = (url: string): string => {\n const newUrl = new URL(url);\n const parentUrl = new URL(window.location.href);\n\n // Combine query parameters from parent window and provided url.\n // If duplicates, provided url parameters supercede.\n parentUrl.searchParams.forEach((value, key) => {\n if (!newUrl.searchParams.has(key)) {\n newUrl.searchParams.set(key, value);\n }\n });\n\n return newUrl.href;\n};\n","/* eslint-disable max-classes-per-file */\nexport type Unsubscribe = () => void;\n\nclass PubSub<T = unknown, F extends Function = (data: T) => void> {\n private subscribers = new Set<F>();\n\n sub(fn: F): Unsubscribe {\n this.subscribers.add(fn);\n\n return () => this.subscribers.delete(fn);\n }\n\n pub(data: T) {\n this.subscribers.forEach((fn) => fn(data));\n }\n}\n\n/**\n * List of valid event args given `K`.\n */\nexport type EventArg<T, K extends keyof T> = T[K];\n\n/**\n * An event emitter class we can use to manage hooks or other emittable data.\n * Take a type argument of shape Record<eventName, callBackData>\n *\n * A classified version of the MIT licensed https://robinpokorny.github.io/dead-simple/\n * With some type safety inspiration from https://github.com/serviejs/events\n */\nexport class EventEmitter<T> {\n private events = new Map<keyof T, PubSub>();\n\n /**\n * Registers a listener that will be called when the named event is emitted\n * @returns An unsubscribe function that will turn off this listener.\n */\n on<K extends keyof T>(name: K, fn: (data: EventArg<T, K>) => void): Unsubscribe {\n if (!this.events.has(name)) this.events.set(name, new PubSub<EventArg<T, K>>());\n\n return this.events.get(name).sub(fn);\n }\n\n /**\n * Registers a listener that will be called a single time when the named event\n * is emitted\n * @returns An unsubscribe function that will turn off this listener.\n */\n once<K extends keyof T>(name: K, fn: (data: EventArg<T, K>) => void): Unsubscribe {\n const off = this.on(name, (data: EventArg<T, K>) => {\n off();\n return fn(data);\n });\n\n return off;\n }\n\n /**\n * Removes all event listeners for the given key\n * @returns void\n */\n off<K extends keyof T>(name: K) {\n this.events.delete(name);\n }\n\n /**\n * Used to emit events to all registered hook listeners\n *\n * @private\n */\n emit<K extends keyof T>(name: K, data: EventArg<T, K>) {\n if (this.events.has(name)) {\n this.events.get(name).pub(data);\n }\n }\n}\n","import { QUERY_STRING_INSTALL_PAGE_URL, QUERY_STRING_INSTALL_TYPE } from \"../../constants\";\nimport { iframeConstants as constants, iframeTitle } from \"./constants\";\nimport { InstallPageEvent } from \"../frames/frameMessages\";\nimport type { HookEvents, Options, PostMessageAction, ViewModel } from \"../types/types\";\nimport { logger } from \"../utils/logger/logger\";\nimport { getVerificationUrl } from \"./utils\";\nimport { EventEmitter } from \"../hooks/eventEmitter\";\n\nexport type IframeOptions = {\n className: string;\n title: string;\n};\n\nexport const DEFAULT_OPTIONS: IframeOptions = {\n className: constants.CLASS_NAMES.INLINE_IFRAME_CONTENT,\n title: iframeTitle,\n};\n\nexport const assertValidFunction = (candidate: Function) => {\n if (typeof candidate !== \"function\") {\n throw new Error(`Expected type \"function\", but received ${typeof candidate}`);\n }\n};\n\nclass Iframe extends EventEmitter<HookEvents> {\n containerElement: HTMLElement;\n\n verificationUrl: URL;\n\n isMobileDevice: boolean;\n\n iframe: HTMLIFrameElement;\n\n verificationIframeUid: string;\n\n hasLoaded: boolean = false;\n\n onLoadEvents: Function[] = [];\n\n onCleanupEvents: (() => void)[] = [];\n\n installType = \"cdn_inline_iframe\";\n\n constructor(containerElement: HTMLElement, url: string) {\n super();\n\n if (Iframe.isValidHttpUrl(url)) {\n this.containerElement = containerElement;\n this.verificationUrl = new URL(getVerificationUrl(url));\n this.verificationIframeUid = Iframe.createUniqueId();\n } else {\n logger.error(\"Invalid URL. Provide a proper URL: https://example.com/\", \"iframe url\");\n }\n }\n\n cleanup(): void {\n this.onCleanupEvents.forEach((callback) => callback());\n }\n\n static createUniqueId(): string {\n return Math.random().toString(36).substr(2, 9);\n }\n\n static isValidHttpUrl(urlString: string): boolean {\n try {\n const url = new URL(urlString);\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n } catch {\n return false;\n }\n }\n\n createIframe(options: IframeOptions): HTMLIFrameElement {\n this.iframe = document.createElement(\"iframe\");\n this.iframe.classList.add(options.className);\n this.iframe.title = options.title;\n let mark = \"?\";\n if (this.verificationUrl.search) {\n mark = \"&\";\n }\n this.iframe.src = `${this.verificationUrl.href}${mark}verificationIframeUid=${\n this.verificationIframeUid\n }&${QUERY_STRING_INSTALL_PAGE_URL}=${encodeURIComponent(\n window.location.href,\n )}&${QUERY_STRING_INSTALL_TYPE}=${this.installType}`;\n this.iframe.allow = \"camera *;microphone *;geolocation *;clipboard-read *;clipboard-write *\";\n this.iframe.onload = () => this.onLoad();\n return this.iframe;\n }\n\n // If iFrame hasn't loaded yet, queue up the callback\n // otherwise call it immediately\n addOnLoadEvent(callback: Function) {\n try {\n assertValidFunction(callback);\n } catch (e) {\n logger.error(\"Invalid callback provided to iFrame.onLoad()\", \"iframe addOnLoadEvent\");\n return;\n }\n if (this.hasLoaded) {\n callback();\n } else {\n this.onLoadEvents.push(callback);\n }\n }\n\n onLoad() {\n this.hasLoaded = true;\n this.onLoadEvents.forEach((callback) => callback());\n }\n\n /**\n * Using this to add parent window message listeners gives us\n * - Event Cleanup for modals\n * - verification of origin, verificationIframeUid, and message data structure\n */\n addWindowMessageListener(actionCb: (action: PostMessageAction) => void): void {\n const listener = (ev: MessageEvent) => {\n if (this.verificationUrl.origin !== ev.origin) {\n return;\n }\n\n if (ev.data.verificationIframeUid !== this.verificationIframeUid) {\n return;\n }\n\n if (ev.data.action && ev.data.action.type) {\n actionCb(ev.data.action);\n } else if (ev.data.action && ev.data.height) {\n // Older versions of the jslib send the full action object as the message\n actionCb(ev.data);\n }\n };\n\n window.addEventListener(\"message\", listener);\n this.onCleanupEvents.push(() => window.removeEventListener(\"message\", listener));\n }\n\n addActionListener() {\n this.addWindowMessageListener((messageAction) => {\n if (messageAction.type === \"hook\") {\n this.emit(messageAction.hook.name, messageAction.hook.data);\n }\n\n if (\n (messageAction.action && messageAction.action === \"updateHeight\") ||\n messageAction.type === \"updateHeight\"\n ) {\n // UX-1129: If we are getting height updates, turn off scrolling for\n // the iframe. This prevents browsers (Safari in particular) from\n // re-wrapping because of different widths and constantly changing\n // it's own height. `scrolling = \"no\"` is deprecated, but supported in\n // all browsers and fixes the problem well.\n this.iframe.scrolling = \"no\";\n this.iframe.style.height = `${messageAction.height}px`;\n }\n });\n }\n\n setViewModel(viewModel: Partial<ViewModel> | ViewModel) {\n const message: InstallPageEvent = {\n action: \"setViewModel\",\n viewModel,\n };\n\n this.addOnLoadEvent(() => {\n this.iframe.contentWindow.postMessage(message, this.verificationUrl.origin);\n });\n }\n\n setOptions(options: Options) {\n const message: InstallPageEvent = {\n action: \"setOptions\",\n options,\n };\n\n this.addOnLoadEvent(() => {\n this.iframe.contentWindow.postMessage(message, this.verificationUrl.origin);\n });\n }\n\n setInstallType(installType: string) {\n this.installType = installType;\n }\n\n init(createIframe: boolean = true): void {\n if (createIframe) {\n this.createIframe(DEFAULT_OPTIONS);\n }\n\n this.addActionListener();\n this.containerElement.appendChild(this.iframe);\n }\n}\n\nexport default Iframe;\n","import type { PostMessageAction } from \"../types/types\";\nimport Iframe, { DEFAULT_OPTIONS, IframeOptions } from \"./iframe\";\n\nexport const assertValidFunction = (candidate: Function) => {\n if (typeof candidate !== \"function\") {\n throw new Error(`Expected type \"function\", but received ${typeof candidate}`);\n }\n};\n\nclass AffinityIFrame extends Iframe {\n constructor(containerElement: HTMLElement, url: string) {\n super(containerElement, url);\n this.verificationUrl = new URL(this.getAffinityUrlWithUID(url));\n }\n\n static createUniqueId() {\n return Math.random().toString(36).substr(2, 9);\n }\n\n getAffinityUrlWithUID(url: string): string {\n const urlObj = new URL(url);\n urlObj.searchParams.set(\"affinityIframeUid\", this.verificationIframeUid);\n return urlObj.toString();\n }\n\n override addWindowMessageListener(actionCb: (action: PostMessageAction) => void): void {\n const listener = (ev: MessageEvent) => {\n if (this.verificationUrl.origin !== ev.origin) {\n return;\n }\n\n if (ev.data.affinityIframeUid !== this.verificationIframeUid) {\n return;\n }\n\n if (ev.data.action && ev.data.action.type) {\n actionCb(ev.data.action);\n }\n };\n\n window.addEventListener(\"message\", listener);\n this.onCleanupEvents.push(() => window.removeEventListener(\"message\", listener));\n }\n\n override createIframe(options: IframeOptions): HTMLIFrameElement {\n this.iframe = document.createElement(\"iframe\");\n this.iframe.classList.add(options.className);\n this.iframe.title = options.title;\n this.iframe.src = this.verificationUrl.href;\n this.iframe.allow = \"camera;microphone\";\n this.iframe.onload = () => this.onLoad();\n return this.iframe;\n }\n\n override init() {\n this.createIframe({ ...DEFAULT_OPTIONS, title: \"SheerID Affinity Offers\" });\n this.addActionListener();\n this.containerElement.appendChild(this.iframe);\n }\n}\n\nexport default AffinityIFrame;\n","import { iframeConstants as constants, iframeTitle } from \"./constants\";\nimport { IframeUserConfiguration, Options, ViewModel } from \"../types/types\";\nimport Iframe from \"./iframe\";\nimport { fadeInElements, removeElement, getVerificationUrl } from \"./utils\";\n\nclass Modal {\n verificationUrl: string;\n\n redirectOnMobile: boolean;\n\n overlay: HTMLElement;\n\n wrapper: HTMLElement;\n\n iframeInstance: Iframe;\n\n on: typeof this.iframeInstance.on;\n\n once: typeof this.iframeInstance.once;\n\n isMobileDevice: boolean;\n\n closeButtonText: string;\n\n closeButton: HTMLButtonElement;\n\n stopPropagation: boolean;\n\n constructor(url: string, userConfig: IframeUserConfiguration) {\n const thresholdConfig = userConfig.mobileThreshold\n ? userConfig.mobileThreshold\n : constants.DEFAULT_MOBILE_THRESHOLD_WIDTH;\n this.verificationUrl = getVerificationUrl(url);\n this.redirectOnMobile = userConfig.mobileRedirect || false;\n this.isMobileDevice = window.document.body.clientWidth <= Number(thresholdConfig);\n this.closeButtonText = userConfig.closeButtonText ? userConfig.closeButtonText : \"\";\n this.closeButton = null;\n this.stopPropagation = userConfig.stopPropagation || false;\n this.overlay = Modal.createOverlay();\n this.wrapper = this.createWrapper();\n this.addFocusListener();\n }\n\n createCloseBtn() {\n this.closeButton = document.createElement(\"button\");\n this.closeButton.classList.add(constants.CLASS_NAMES.CLOSE_BUTTON);\n this.closeButton.setAttribute(\"aria-label\", \"close\");\n\n if (this.closeButtonText) {\n const closeTxt = document.createElement(\"div\");\n closeTxt.classList.add(constants.CLASS_NAMES.CLOSE_TEXT);\n closeTxt.innerHTML = this.closeButtonText;\n this.closeButton.appendChild(closeTxt);\n }\n\n const closeIcon = document.createElement(\"span\");\n closeIcon.classList.add(constants.CLASS_NAMES.CLOSE_ICON);\n closeIcon.setAttribute(\"role\", \"img\");\n this.closeButton.appendChild(closeIcon);\n\n this.closeButton.addEventListener(\"click\", (e) => {\n e.preventDefault();\n if (this.stopPropagation) {\n e.stopPropagation();\n }\n this.closeModal();\n });\n return this.closeButton;\n }\n\n closeModal() {\n window.removeEventListener(\"popstate\", this.popStateEventHandler);\n const transitionTimeout = constants.MODAL_OPACITY_TRANSITION_PERIOD;\n removeElement(this.overlay, transitionTimeout);\n removeElement(this.wrapper, transitionTimeout);\n this.iframeInstance.cleanup();\n }\n\n static createOverlay(): HTMLElement {\n const overlay = document.createElement(\"div\");\n overlay.classList.add(constants.CLASS_NAMES.OVERLAY);\n return overlay;\n }\n\n createWrapper(): HTMLElement {\n const wrapper = document.createElement(\"div\");\n wrapper.classList.add(constants.CLASS_NAMES.MODAL_WRAPPER);\n wrapper.tabIndex = -1;\n wrapper.setAttribute(\"role\", \"dialog\");\n wrapper.appendChild(this.createCloseBtn());\n\n this.iframeInstance = new Iframe(wrapper, this.verificationUrl);\n this.iframeInstance.setInstallType(\"cdn_modal_iframe\");\n\n // pass `on` & `once` through to the iframe instance to allow hook listeners.\n this.on = this.iframeInstance.on.bind(this.iframeInstance);\n this.once = this.iframeInstance.once.bind(this.iframeInstance);\n\n const options = {\n className: constants.CLASS_NAMES.MODAL_IFRAME,\n title: iframeTitle,\n };\n this.iframeInstance.createIframe(options);\n wrapper.appendChild(this.iframeInstance.iframe);\n return wrapper;\n }\n\n popStateEventHandler = () => this.closeModal();\n\n addPopStateListener() {\n window.addEventListener(\"popstate\", this.popStateEventHandler);\n }\n\n addFocusListener() {\n this.iframeInstance.addWindowMessageListener((action) => {\n if (action.type === \"focus\" && action.focusOn === \"firstElement\") {\n this.closeButton.focus();\n }\n });\n\n document.addEventListener(\"keydown\", (e) => {\n const isTabPressed: boolean = e.key === \"Tab\";\n if (!isTabPressed) {\n return;\n }\n if (e.shiftKey && document.activeElement === this.closeButton) {\n this.iframeInstance.iframe.contentWindow.postMessage({ focusOn: \"lastElement\" }, \"*\");\n e.preventDefault();\n }\n });\n }\n\n isInLightboxPostMessage(inLightbox: string) {\n this.iframeInstance.iframe.contentWindow.postMessage({ isInLightBox: inLightbox }, \"*\");\n }\n\n displayModal() {\n this.iframeInstance.iframe.addEventListener(\"load\", () => {\n fadeInElements([this.overlay, this.wrapper]);\n document.body.style.overflow = \"hidden\";\n this.isInLightboxPostMessage(\"true\");\n });\n\n document.body.appendChild(this.overlay);\n document.body.appendChild(this.wrapper);\n this.addPopStateListener();\n }\n\n init() {\n if (this.redirectOnMobile && this.isMobileDevice) {\n window.top.location.href = this.verificationUrl;\n } else {\n this.displayModal();\n this.iframeInstance.init(false); // false so we don't create iframe again, it's already created in createWrapper\n }\n }\n\n setViewModel(viewModel: Partial<ViewModel> | ViewModel) {\n this.iframeInstance.setViewModel(viewModel);\n }\n\n setOptions(options: Options) {\n this.iframeInstance.setOptions(options);\n }\n}\n\nexport default Modal;\n","import AffinityIFrame from \"./affinity\";\nimport Iframe from \"./iframe\";\nimport Modal from \"./modal\";\nimport { type IframeUserConfiguration } from \"../types/types\";\n\nimport \"../../scss/sheerid-iframe.scss\";\n\n// Called from the parent page to load the jslib within an iFrame NOT in a modal, but in the flow of a page. e.g. between two divs\nexport function loadInlineIframe(containerElement: HTMLElement, url: string): Iframe {\n const iframe = new Iframe(containerElement, url);\n iframe.init();\n return iframe;\n}\n\n// Called from the parent page to load the jslib within an iFrame in a modal\nexport function loadInModal(url: string, userConfig: IframeUserConfiguration = {}) {\n const modal = new Modal(url, userConfig);\n modal.init();\n return modal;\n}\n\nexport function loadAffinityIFrame(containerElement: HTMLElement, url: string): AffinityIFrame {\n const affinity = new AffinityIFrame(containerElement, url);\n affinity.init();\n return affinity;\n}\n\n// Explicitly excluding loadAffinityIFrame from the default export until it becomes GA\nexport default { loadInModal, loadInlineIframe };\n"],"names":["QUERY_STRING_INSTALL_PAGE_URL","QUERY_STRING_INSTALL_TYPE","iframeClassNames","iframeTitle","iframeConstants","_attrCache","getGaAttributes","doNotTrack","isNewRelicAvailable","getSafe","fn","defaultVal","logLevel","prefix","logLevels","colors","standardStyles","reduxStore","isError","e","warn","args","log","info","error","err","errorMessageGroup","additionalUsefulAttributes","errorObj","usefulAttributes","state","errorIds","newRelicPageAction","eventName","attributes","logAPIResponseTime","url","time","logger","desiredLogLevel","thisPrefix","store","fadeInElements","elements","element","removeElement","transitionTimeout","getVerificationUrl","newUrl","value","key","PubSub","__publicField","data","EventEmitter","name","off","DEFAULT_OPTIONS","constants","assertValidFunction","candidate","Iframe","containerElement","callback","urlString","options","mark","actionCb","listener","ev","messageAction","viewModel","message","installType","createIframe","AffinityIFrame","urlObj","Modal","userConfig","thresholdConfig","closeTxt","closeIcon","overlay","wrapper","action","inLightbox","loadInlineIframe","iframe","loadInModal","modal","loadAffinityIFrame","affinity","index"],"mappings":"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"}
1
+ {"version":3,"file":"sheerid-install.js","sources":["../src/constants.ts","../src/lib/installScript/constants.ts","../src/lib/GoogleAnalytics/gaHelpers.ts","../src/lib/utils/getSafe.ts","../src/lib/utils/logger/logger.ts","../src/lib/installScript/utils.ts","../src/lib/hooks/eventEmitter.ts","../src/lib/installScript/iframe.ts","../src/lib/installScript/affinity.ts","../src/lib/installScript/modal.ts","../src/lib/installScript/index.ts"],"sourcesContent":["import { type FieldId, type Locale } from \"./lib/types/types\";\n\nexport const DEFAULT_LOCALE: Locale = \"en-US\";\n\nexport const ACCEPTED_DOC_MIME_TYPES: string[] = [\n \"image/png\",\n \"image/jpg\",\n \"image/jpeg\",\n \"application/pdf\",\n];\n\nexport const ACCEPTED_DOC_TYPES: string[] = [\".jpg\", \".jpeg\", \".png\", \".pdf\"];\nexport const MAX_DOC_UPLOAD_DOCS_ALLOWED: number = 3;\nexport const UPLOAD_FILE_PREFIX: string = \"file\";\n\nexport const QUERY_STRING_STEP_OVERRIDE: string = \"mockStep\";\nexport const QUERY_STRING_SEGMENT_OVERRIDE: string = \"mockSegment\";\nexport const QUERY_STRING_SUBSEGMENT_OVERRIDE: string = \"mockSubSegment\";\nexport const QUERY_STRING_ERRORID_OVERRIDE: string = \"mockErrorId\";\nexport const QUERY_STRING_REWARD_CODE_OVERRIDE: string = \"mockRewardCode\";\nexport const QUERY_STRING_REDIRECT_URL_OVERRIDE: string = \"mockRedirectUrl\";\nexport const QUERY_STRING_REMEMBER_ME_OVERRIDE: string = \"mockConsumerInfoState\"; // ?mockConsumerInfoState=consumerFound | consumerNotFound\nexport const QUERY_STRING_ID_CHECK_LOOP_SERVICE_TYPE_OVERRIDE: string =\n \"mockIdCheckLoopServiceType\"; // ?mockIdCheckLoopServiceType=ID_CHECK | ID_CHECK_LIVENESS\nexport const QUERY_STRING_DOC_SELECTED: string = \"mockDocSelected\"; // mock the state where a consumer as already selected a file and is about to click the \"continue\" button on the docUpload step\nexport const QUERY_STRING_PREV_STEP_OVERRIDE: string = \"mockPreviousStep\";\nexport const QUERY_STRING_THIRD_PARTY_PROVIDER_OVERRIDE: string = \"thirdPartyLoopProvider\";\nexport const QUERY_STRING_INSTALL_PAGE_URL: string = \"installPageUrl\";\nexport const QUERY_STRING_INSTALL_TYPE: string = \"installType\";\nexport const QUERY_STRING_LAYOUT: string = \"layout\"; // verify app's \"?layout=landing\"\nexport const QUERY_STRING_EXTERNAL_USER_ID: string = \"externalUserId\";\n\nexport const SSN_STRING_LENGTH: number = 9;\nexport const DEFAULT_MINIMUM_ORG_SEARCH_VALUE_LENGTH: number = 1;\n\nexport const DEFAULT_PRIVACY_POLICY_HOST = \"www.sheerid.com\";\nexport const DEFAULT_PRIVACY_POLICY_URL = \"https://www.sheerid.com/privacy-policy/\";\nexport const SHEERID = \"SheerID\";\n\nexport const FEEDBACK_FORM_URL =\n \"https://verify.sheerid.com/verification-support/feedback.html?token=\";\nexport const SUPPORT_URL = \"https://support.sheerid.com\";\n\nexport const HTTP_REQUEST_TIMEOUT = 10000;\nexport const DEBOUNCE_TIMEOUT = 200;\n\nexport const inLightbox = \"inLightbox\";\n\nexport const AUTH_TOKEN_LENGTH = 6;\n\nexport const FIELD_IDS: FieldId[] = [\n \"firstName\",\n \"lastName\",\n \"memberId\",\n \"organization\",\n \"birthDate\",\n \"email\",\n \"phoneNumber\",\n \"postalCode\",\n \"address1\",\n \"city\",\n \"state\",\n \"dischargeDate\",\n \"activeDutyStartDate\",\n \"status\",\n \"statuses\",\n \"docUpload\",\n \"country\",\n \"smsCode\",\n \"socialSecurityNumber\",\n \"marketConsentValue\",\n \"carrierConsentValue\",\n \"driverLicenseNumber\",\n \"overrideCode\",\n \"ebtCardNumber\",\n \"organizationEmail\",\n \"authenticationCode\",\n];\n","const iframeClassNames = {\n INLINE_IFRAME_CONTENT: \"sid-inline-iframe\",\n MODAL_WRAPPER: \"sid-modal__wrapper\",\n MODAL_IFRAME: \"sid-modal__iframe\",\n OVERLAY: \"sid-modal__overlay\",\n CLOSE_BUTTON: \"sid-modal__close-button\",\n CLOSE_TEXT: \"sid-modal__close-text\",\n CLOSE_ICON: \"sid-modal__close-icon\",\n};\n\nexport const iframeTitle = \"SheerID Verification Form\";\n\nexport const iframeConstants = {\n CLASS_NAMES: iframeClassNames,\n DEFAULT_MOBILE_THRESHOLD_WIDTH: 620,\n MODAL_OPACITY_TRANSITION_PERIOD: 300,\n};\n","//\n// NOTE this file is high risk for circular dependencies! Avoid imports, or double check that they don't create circular deps\n//\n\nimport type { NavigatorBeta } from \"../types/types\";\n\n/**\n * A singleton to allow access to user properties that we've set on GA without\n * querying GA directly. This is primarily used to also send them to New Relic.\n */\nconst _attrCache: Record<string, unknown> = {};\n\nexport const setGaAttributes = (attrs: Record<string, unknown>): void =>\n Object.entries(attrs).forEach(([k, v]) => {\n _attrCache[k] = v;\n });\n\nexport const getGaAttributes = async (): Promise<object> => _attrCache;\n\nexport const doNotTrack = () => (window.navigator as NavigatorBeta).globalPrivacyControl;\n\nexport const isNewRelicAvailable = () => window.NREUM && !doNotTrack();\n","/**\n * Avoid \"can't access property of undefined\" errors in a more readable way.\n * @param fn Function that wraps a nested property access\n * @param defaultVal Optional - the value to return if property access failed\n */\n\nexport function getSafe<T>(fn: () => T, defaultVal?: T): T | undefined {\n try {\n return fn();\n } catch (e) {\n return defaultVal;\n }\n}\n","/* eslint no-console:0 */\n// ~~~ This file and its tests are the only files that should disable \"no-console\" ~~~\n\nimport { getGaAttributes, isNewRelicAvailable } from \"../../GoogleAnalytics/gaHelpers\";\nimport { LogLevel, ReduxState, VerificationStore } from \"../../types/types\";\nimport { getSafe } from \"../getSafe\";\n\nlet logLevel = 4; // default\nlet prefix = \"\";\nconst logLevels = {\n info: 1,\n log: 2,\n warn: 3,\n error: 4,\n};\n\nconst colors = {\n info: \"#26c1db\",\n log: \"#09f979\",\n warn: \"#f6b13f\",\n error: \"#e12046\",\n};\n\nconst standardStyles = \"color: white; font-weight: bold; padding: 2px 10px;\";\n\nlet reduxStore;\n\nconst isError = (e) => e && e.stack && e.message;\n\nconst warn = (...args) => {\n if (logLevel <= 3) {\n console.warn(`%c${prefix} warn`, `background: ${colors.warn};${standardStyles}`, ...args);\n }\n};\n\nconst log = (...args) => {\n if (logLevel <= 2) {\n console.log(`%c${prefix} log`, `background: ${colors.log};${standardStyles}`, ...args);\n }\n};\n\nconst info = (...args) => {\n if (logLevel <= 1) {\n console.log(`%c${prefix} info`, `background: ${colors.info};${standardStyles}`, ...args);\n }\n};\n\n/**\n * @param error Primary, details error message or full error object\n * @param errorMessageGroup Use this to group error messages together with a string that does not vary as frequently.\n * Do not pass programId, verificationId, etc\n */\nconst error = async (\n err: Error | string,\n errorMessageGroup: string = \"unknown group\",\n additionalUsefulAttributes: { [a: string]: string } = {},\n) => {\n if (logLevel <= 4) {\n if (!err) {\n console.error(new Error(\"An error must be supplied\"));\n return;\n }\n\n let errorObj;\n if (typeof err === \"string\") errorObj = new Error(err);\n if (isError(err)) errorObj = err;\n if (!errorObj) errorObj = new Error(\"Unknown error\");\n\n let usefulAttributes: object = { errorMessageGroup };\n\n // #region Google Analytics\n // Include everything we can from Google Analytics' data b/c that's useful:\n try {\n const gaAttributes = await getGaAttributes();\n\n usefulAttributes = {\n ...gaAttributes,\n ...usefulAttributes,\n };\n delete (usefulAttributes as any).jslibVersionActual; // used by GA not New Relic (duplicated)\n } catch (e) {\n if (isNewRelicAvailable()) {\n window.NREUM.noticeError(errorObj, usefulAttributes);\n } else {\n // Some customers can't install New Relic so this is not an error:\n warn(\"Unable to assemble GA error attributes\", e);\n }\n }\n // #endregion Google Analytics\n\n // #region Redux\n try {\n // Some invokers of logger.error() don't use redux\n if (reduxStore && reduxStore.getState) {\n const state: ReduxState = reduxStore.getState();\n const errorIds = getSafe(() => state.verificationResponse.errorIds);\n usefulAttributes = {\n ...usefulAttributes,\n programId: getSafe(() => state.programId),\n isLoading: getSafe(() => state.isLoading),\n isErrored: getSafe(() => state.isErrored),\n errorIdsFromVerRsp: Array.isArray(errorIds) ? errorIds.join(\", \") : undefined,\n verificationId: getSafe(() => state.verificationResponse.verificationId),\n currentStep: getSafe(() => state.verificationResponse.currentStep),\n locale: getSafe(() => state.programTheme.intl.locale),\n isTestMode: getSafe(() => state.programTheme.isTestMode),\n openOrgSearchEnabled: getSafe(() => state.programTheme.openOrgSearchEnabled),\n jslibVerActual: getSafe(() => process.env.NEXT_VERSION, \"?\"),\n ...additionalUsefulAttributes,\n };\n }\n } catch (e) {\n if (isNewRelicAvailable()) {\n window.NREUM.noticeError(errorObj, usefulAttributes);\n } else {\n // Some customers can't install New Relic so this is not an error:\n warn(\"Unable to assemble useful error attributes\", e);\n }\n }\n // #endregion Redux\n\n if (isNewRelicAvailable()) {\n window.NREUM.noticeError(errorObj, usefulAttributes);\n }\n\n console.error(\n `%c${prefix} error`,\n `background: ${colors.error};${standardStyles}`,\n errorObj,\n usefulAttributes,\n );\n }\n};\n\nexport const newRelicPageAction = (eventName: string, attributes = {}) => {\n if (isNewRelicAvailable()) {\n window.NREUM.addPageAction(eventName, attributes);\n }\n};\n\n/**\n * @deprecated Use newRelicPageAction() instead\n */\nconst logAPIResponseTime = (url: string, time: number) => {\n newRelicPageAction(\"API-calls-timing\", {\n api_call: url,\n api_response_time: time,\n });\n};\n\nexport const logger = {\n error,\n warn,\n log,\n info,\n /** @deprecated use newRelicPageAction() instead */\n logAPIResponseTime,\n setLogLevel: (desiredLogLevel: LogLevel) => {\n if (!logLevels.hasOwnProperty(desiredLogLevel)) {\n throw new Error(`Unknown logLevel '${desiredLogLevel}'`);\n }\n\n logLevel = logLevels[desiredLogLevel];\n console.log(\n `%c${prefix} log level set to ${desiredLogLevel}`,\n `background: ${colors[desiredLogLevel]};${standardStyles}`,\n );\n\n // Some customers can't install New Relic so this is not an error:\n if (!isNewRelicAvailable()) {\n warn(\"Offsite logging not enabled\");\n }\n },\n setPrefix: (thisPrefix: string) => {\n prefix = thisPrefix;\n },\n init: (store: VerificationStore) => {\n reduxStore = store;\n },\n};\n","export const fadeInElements = (elements: HTMLElement[]) => {\n elements.forEach((element: HTMLElement) => {\n element.classList.add(\"fade-in\");\n });\n};\n\nexport const removeElement = (element: HTMLElement, transitionTimeout: number) => {\n element.classList.remove(\"fade-in\");\n window.setTimeout(() => {\n document.body.style.overflow = \"auto\";\n element.parentNode.removeChild(element);\n }, transitionTimeout);\n};\n\nexport const getVerificationUrl = (url: string): string => {\n const newUrl = new URL(url);\n const parentUrl = new URL(window.location.href);\n\n // Combine query parameters from parent window and provided url.\n // If duplicates, provided url parameters supercede.\n parentUrl.searchParams.forEach((value, key) => {\n if (!newUrl.searchParams.has(key)) {\n newUrl.searchParams.set(key, value);\n }\n });\n\n return newUrl.href;\n};\n","/* eslint-disable max-classes-per-file */\nexport type Unsubscribe = () => void;\n\nclass PubSub<T = unknown, F extends Function = (data: T) => void> {\n private subscribers = new Set<F>();\n\n sub(fn: F): Unsubscribe {\n this.subscribers.add(fn);\n\n return () => this.subscribers.delete(fn);\n }\n\n pub(data: T) {\n this.subscribers.forEach((fn) => fn(data));\n }\n}\n\n/**\n * List of valid event args given `K`.\n */\nexport type EventArg<T, K extends keyof T> = T[K];\n\n/**\n * An event emitter class we can use to manage hooks or other emittable data.\n * Take a type argument of shape Record<eventName, callBackData>\n *\n * A classified version of the MIT licensed https://robinpokorny.github.io/dead-simple/\n * With some type safety inspiration from https://github.com/serviejs/events\n */\nexport class EventEmitter<T> {\n private events = new Map<keyof T, PubSub>();\n\n /**\n * Registers a listener that will be called when the named event is emitted\n * @returns An unsubscribe function that will turn off this listener.\n */\n on<K extends keyof T>(name: K, fn: (data: EventArg<T, K>) => void): Unsubscribe {\n if (!this.events.has(name)) this.events.set(name, new PubSub<EventArg<T, K>>());\n\n return this.events.get(name).sub(fn);\n }\n\n /**\n * Registers a listener that will be called a single time when the named event\n * is emitted\n * @returns An unsubscribe function that will turn off this listener.\n */\n once<K extends keyof T>(name: K, fn: (data: EventArg<T, K>) => void): Unsubscribe {\n const off = this.on(name, (data: EventArg<T, K>) => {\n off();\n return fn(data);\n });\n\n return off;\n }\n\n /**\n * Removes all event listeners for the given key\n * @returns void\n */\n off<K extends keyof T>(name: K) {\n this.events.delete(name);\n }\n\n /**\n * Used to emit events to all registered hook listeners\n *\n * @private\n */\n emit<K extends keyof T>(name: K, data: EventArg<T, K>) {\n if (this.events.has(name)) {\n this.events.get(name).pub(data);\n }\n }\n}\n","import { QUERY_STRING_INSTALL_PAGE_URL, QUERY_STRING_INSTALL_TYPE } from \"../../constants\";\nimport { iframeConstants as constants, iframeTitle } from \"./constants\";\nimport { InstallPageEvent } from \"../frames/frameMessages\";\nimport type { HookEvents, Options, PostMessageAction, ViewModel } from \"../types/types\";\nimport { logger } from \"../utils/logger/logger\";\nimport { getVerificationUrl } from \"./utils\";\nimport { EventEmitter } from \"../hooks/eventEmitter\";\n\nexport type IframeOptions = {\n className: string;\n title: string;\n};\n\nexport const DEFAULT_OPTIONS: IframeOptions = {\n className: constants.CLASS_NAMES.INLINE_IFRAME_CONTENT,\n title: iframeTitle,\n};\n\nexport const assertValidFunction = (candidate: Function) => {\n if (typeof candidate !== \"function\") {\n throw new Error(`Expected type \"function\", but received ${typeof candidate}`);\n }\n};\n\nclass Iframe extends EventEmitter<HookEvents> {\n containerElement: HTMLElement;\n\n verificationUrl: URL;\n\n isMobileDevice: boolean;\n\n iframe: HTMLIFrameElement;\n\n verificationIframeUid: string;\n\n hasLoaded: boolean = false;\n\n onLoadEvents: Function[] = [];\n\n onCleanupEvents: (() => void)[] = [];\n\n installType = \"cdn_inline_iframe\";\n\n constructor(containerElement: HTMLElement, url: string) {\n super();\n\n if (Iframe.isValidHttpUrl(url)) {\n this.containerElement = containerElement;\n this.verificationUrl = new URL(getVerificationUrl(url));\n this.verificationIframeUid = Iframe.createUniqueId();\n } else {\n logger.error(\"Invalid URL. Provide a proper URL: https://example.com/\", \"iframe url\");\n }\n }\n\n cleanup(): void {\n this.onCleanupEvents.forEach((callback) => callback());\n }\n\n static createUniqueId(): string {\n return Math.random().toString(36).substr(2, 9);\n }\n\n static isValidHttpUrl(urlString: string): boolean {\n try {\n const url = new URL(urlString);\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n } catch {\n return false;\n }\n }\n\n createIframe(options: IframeOptions): HTMLIFrameElement {\n this.iframe = document.createElement(\"iframe\");\n this.iframe.classList.add(options.className);\n this.iframe.title = options.title;\n let mark = \"?\";\n if (this.verificationUrl.search) {\n mark = \"&\";\n }\n this.iframe.src = `${this.verificationUrl.href}${mark}verificationIframeUid=${\n this.verificationIframeUid\n }&${QUERY_STRING_INSTALL_PAGE_URL}=${encodeURIComponent(\n window.location.href,\n )}&${QUERY_STRING_INSTALL_TYPE}=${this.installType}`;\n this.iframe.allow = \"camera *;microphone *;geolocation *;clipboard-read *;clipboard-write *\";\n this.iframe.onload = () => this.onLoad();\n return this.iframe;\n }\n\n // If iFrame hasn't loaded yet, queue up the callback\n // otherwise call it immediately\n addOnLoadEvent(callback: Function) {\n try {\n assertValidFunction(callback);\n } catch (e) {\n logger.error(\"Invalid callback provided to iFrame.onLoad()\", \"iframe addOnLoadEvent\");\n return;\n }\n if (this.hasLoaded) {\n callback();\n } else {\n this.onLoadEvents.push(callback);\n }\n }\n\n onLoad() {\n this.hasLoaded = true;\n this.onLoadEvents.forEach((callback) => callback());\n }\n\n /**\n * Using this to add parent window message listeners gives us\n * - Event Cleanup for modals\n * - verification of origin, verificationIframeUid, and message data structure\n */\n addWindowMessageListener(actionCb: (action: PostMessageAction) => void): void {\n const listener = (ev: MessageEvent) => {\n if (this.verificationUrl.origin !== ev.origin) {\n return;\n }\n\n if (ev.data.verificationIframeUid !== this.verificationIframeUid) {\n return;\n }\n\n if (ev.data.action && ev.data.action.type) {\n actionCb(ev.data.action);\n } else if (ev.data.action && ev.data.height) {\n // Older versions of the jslib send the full action object as the message\n actionCb(ev.data);\n }\n };\n\n window.addEventListener(\"message\", listener);\n this.onCleanupEvents.push(() => window.removeEventListener(\"message\", listener));\n }\n\n addActionListener() {\n this.addWindowMessageListener((messageAction) => {\n if (messageAction.type === \"hook\") {\n this.emit(messageAction.hook.name, messageAction.hook.data);\n }\n\n if (\n (messageAction.action && messageAction.action === \"updateHeight\") ||\n messageAction.type === \"updateHeight\"\n ) {\n // UX-1129: If we are getting height updates, turn off scrolling for\n // the iframe. This prevents browsers (Safari in particular) from\n // re-wrapping because of different widths and constantly changing\n // it's own height. `scrolling = \"no\"` is deprecated, but supported in\n // all browsers and fixes the problem well.\n this.iframe.scrolling = \"no\";\n this.iframe.style.height = `${messageAction.height}px`;\n }\n });\n }\n\n setViewModel(viewModel: Partial<ViewModel> | ViewModel) {\n const message: InstallPageEvent = {\n action: \"setViewModel\",\n viewModel,\n };\n\n this.addOnLoadEvent(() => {\n this.iframe.contentWindow.postMessage(message, this.verificationUrl.origin);\n });\n }\n\n setOptions(options: Options) {\n const message: InstallPageEvent = {\n action: \"setOptions\",\n options,\n };\n\n this.addOnLoadEvent(() => {\n this.iframe.contentWindow.postMessage(message, this.verificationUrl.origin);\n });\n }\n\n setInstallType(installType: string) {\n this.installType = installType;\n }\n\n init(createIframe: boolean = true): void {\n if (createIframe) {\n this.createIframe(DEFAULT_OPTIONS);\n }\n\n this.addActionListener();\n this.containerElement.appendChild(this.iframe);\n }\n}\n\nexport default Iframe;\n","import type { PostMessageAction } from \"../types/types\";\nimport Iframe, { DEFAULT_OPTIONS, IframeOptions } from \"./iframe\";\n\nexport const assertValidFunction = (candidate: Function) => {\n if (typeof candidate !== \"function\") {\n throw new Error(`Expected type \"function\", but received ${typeof candidate}`);\n }\n};\n\nclass AffinityIFrame extends Iframe {\n constructor(containerElement: HTMLElement, url: string) {\n super(containerElement, url);\n this.verificationUrl = new URL(this.getAffinityUrlWithUID(url));\n }\n\n static createUniqueId() {\n return Math.random().toString(36).substr(2, 9);\n }\n\n getAffinityUrlWithUID(url: string): string {\n const urlObj = new URL(url);\n urlObj.searchParams.set(\"affinityIframeUid\", this.verificationIframeUid);\n return urlObj.toString();\n }\n\n override addWindowMessageListener(actionCb: (action: PostMessageAction) => void): void {\n const listener = (ev: MessageEvent) => {\n if (this.verificationUrl.origin !== ev.origin) {\n return;\n }\n\n if (ev.data.affinityIframeUid !== this.verificationIframeUid) {\n return;\n }\n\n if (ev.data.action && ev.data.action.type) {\n actionCb(ev.data.action);\n }\n };\n\n window.addEventListener(\"message\", listener);\n this.onCleanupEvents.push(() => window.removeEventListener(\"message\", listener));\n }\n\n override createIframe(options: IframeOptions): HTMLIFrameElement {\n this.iframe = document.createElement(\"iframe\");\n this.iframe.classList.add(options.className);\n this.iframe.title = options.title;\n this.iframe.src = this.verificationUrl.href;\n this.iframe.allow = \"camera;microphone\";\n this.iframe.onload = () => this.onLoad();\n return this.iframe;\n }\n\n override init() {\n this.createIframe({ ...DEFAULT_OPTIONS, title: \"SheerID Affinity Offers\" });\n this.addActionListener();\n this.containerElement.appendChild(this.iframe);\n }\n}\n\nexport default AffinityIFrame;\n","import { iframeConstants as constants, iframeTitle } from \"./constants\";\nimport { IframeUserConfiguration, Options, ViewModel } from \"../types/types\";\nimport Iframe from \"./iframe\";\nimport { fadeInElements, removeElement, getVerificationUrl } from \"./utils\";\n\nclass Modal {\n verificationUrl: string;\n\n redirectOnMobile: boolean;\n\n overlay: HTMLElement;\n\n wrapper: HTMLElement;\n\n iframeInstance: Iframe;\n\n on: typeof this.iframeInstance.on;\n\n once: typeof this.iframeInstance.once;\n\n isMobileDevice: boolean;\n\n closeButtonText: string;\n\n closeButton: HTMLButtonElement;\n\n stopPropagation: boolean;\n\n constructor(url: string, userConfig: IframeUserConfiguration) {\n const thresholdConfig = userConfig.mobileThreshold\n ? userConfig.mobileThreshold\n : constants.DEFAULT_MOBILE_THRESHOLD_WIDTH;\n this.verificationUrl = getVerificationUrl(url);\n this.redirectOnMobile = userConfig.mobileRedirect || false;\n this.isMobileDevice = window.document.body.clientWidth <= Number(thresholdConfig);\n this.closeButtonText = userConfig.closeButtonText ? userConfig.closeButtonText : \"\";\n this.closeButton = null;\n this.stopPropagation = userConfig.stopPropagation || false;\n this.overlay = Modal.createOverlay();\n this.wrapper = this.createWrapper();\n this.addFocusListener();\n }\n\n createCloseBtn() {\n this.closeButton = document.createElement(\"button\");\n this.closeButton.classList.add(constants.CLASS_NAMES.CLOSE_BUTTON);\n this.closeButton.setAttribute(\"aria-label\", \"close\");\n\n if (this.closeButtonText) {\n const closeTxt = document.createElement(\"div\");\n closeTxt.classList.add(constants.CLASS_NAMES.CLOSE_TEXT);\n closeTxt.innerHTML = this.closeButtonText;\n this.closeButton.appendChild(closeTxt);\n }\n\n const closeIcon = document.createElement(\"span\");\n closeIcon.classList.add(constants.CLASS_NAMES.CLOSE_ICON);\n closeIcon.setAttribute(\"role\", \"img\");\n this.closeButton.appendChild(closeIcon);\n\n this.closeButton.addEventListener(\"click\", (e) => {\n e.preventDefault();\n if (this.stopPropagation) {\n e.stopPropagation();\n }\n this.closeModal();\n });\n return this.closeButton;\n }\n\n closeModal() {\n window.removeEventListener(\"popstate\", this.popStateEventHandler);\n const transitionTimeout = constants.MODAL_OPACITY_TRANSITION_PERIOD;\n removeElement(this.overlay, transitionTimeout);\n removeElement(this.wrapper, transitionTimeout);\n this.iframeInstance.cleanup();\n }\n\n static createOverlay(): HTMLElement {\n const overlay = document.createElement(\"div\");\n overlay.classList.add(constants.CLASS_NAMES.OVERLAY);\n return overlay;\n }\n\n createWrapper(): HTMLElement {\n const wrapper = document.createElement(\"div\");\n wrapper.classList.add(constants.CLASS_NAMES.MODAL_WRAPPER);\n wrapper.tabIndex = -1;\n wrapper.setAttribute(\"role\", \"dialog\");\n wrapper.appendChild(this.createCloseBtn());\n\n this.iframeInstance = new Iframe(wrapper, this.verificationUrl);\n this.iframeInstance.setInstallType(\"cdn_modal_iframe\");\n\n // pass `on` & `once` through to the iframe instance to allow hook listeners.\n this.on = this.iframeInstance.on.bind(this.iframeInstance);\n this.once = this.iframeInstance.once.bind(this.iframeInstance);\n\n const options = {\n className: constants.CLASS_NAMES.MODAL_IFRAME,\n title: iframeTitle,\n };\n this.iframeInstance.createIframe(options);\n wrapper.appendChild(this.iframeInstance.iframe);\n return wrapper;\n }\n\n popStateEventHandler = () => this.closeModal();\n\n addPopStateListener() {\n window.addEventListener(\"popstate\", this.popStateEventHandler);\n }\n\n addFocusListener() {\n this.iframeInstance.addWindowMessageListener((action) => {\n if (action.type === \"focus\" && action.focusOn === \"firstElement\") {\n this.closeButton.focus();\n }\n });\n\n document.addEventListener(\"keydown\", (e) => {\n const isTabPressed: boolean = e.key === \"Tab\";\n if (!isTabPressed) {\n return;\n }\n if (e.shiftKey && document.activeElement === this.closeButton) {\n this.iframeInstance.iframe.contentWindow.postMessage({ focusOn: \"lastElement\" }, \"*\");\n e.preventDefault();\n }\n });\n }\n\n isInLightboxPostMessage(inLightbox: string) {\n this.iframeInstance.iframe.contentWindow.postMessage({ isInLightBox: inLightbox }, \"*\");\n }\n\n displayModal() {\n this.iframeInstance.iframe.addEventListener(\"load\", () => {\n fadeInElements([this.overlay, this.wrapper]);\n document.body.style.overflow = \"hidden\";\n this.isInLightboxPostMessage(\"true\");\n });\n\n document.body.appendChild(this.overlay);\n document.body.appendChild(this.wrapper);\n this.addPopStateListener();\n }\n\n init() {\n if (this.redirectOnMobile && this.isMobileDevice) {\n window.top.location.href = this.verificationUrl;\n } else {\n this.displayModal();\n this.iframeInstance.init(false); // false so we don't create iframe again, it's already created in createWrapper\n }\n }\n\n setViewModel(viewModel: Partial<ViewModel> | ViewModel) {\n this.iframeInstance.setViewModel(viewModel);\n }\n\n setOptions(options: Options) {\n this.iframeInstance.setOptions(options);\n }\n}\n\nexport default Modal;\n","import AffinityIFrame from \"./affinity\";\nimport Iframe from \"./iframe\";\nimport Modal from \"./modal\";\nimport { type IframeUserConfiguration } from \"../types/types\";\n\nimport \"../../scss/sheerid-iframe.scss\";\n\n// Called from the parent page to load the jslib within an iFrame NOT in a modal, but in the flow of a page. e.g. between two divs\nexport function loadInlineIframe(containerElement: HTMLElement, url: string): Iframe {\n const iframe = new Iframe(containerElement, url);\n iframe.init();\n return iframe;\n}\n\n// Called from the parent page to load the jslib within an iFrame in a modal\nexport function loadInModal(url: string, userConfig: IframeUserConfiguration = {}) {\n const modal = new Modal(url, userConfig);\n modal.init();\n return modal;\n}\n\nexport function loadAffinityIFrame(containerElement: HTMLElement, url: string): AffinityIFrame {\n const affinity = new AffinityIFrame(containerElement, url);\n affinity.init();\n return affinity;\n}\n\n// Explicitly excluding loadAffinityIFrame from the default export until it becomes GA\nexport default { loadInModal, loadInlineIframe };\n"],"names":["QUERY_STRING_INSTALL_PAGE_URL","QUERY_STRING_INSTALL_TYPE","iframeClassNames","iframeTitle","iframeConstants","_attrCache","getGaAttributes","doNotTrack","isNewRelicAvailable","getSafe","fn","defaultVal","logLevel","prefix","logLevels","colors","standardStyles","reduxStore","isError","e","warn","args","log","info","error","err","errorMessageGroup","additionalUsefulAttributes","errorObj","usefulAttributes","state","errorIds","newRelicPageAction","eventName","attributes","logAPIResponseTime","url","time","logger","desiredLogLevel","thisPrefix","store","fadeInElements","elements","element","removeElement","transitionTimeout","getVerificationUrl","newUrl","value","key","PubSub","__publicField","data","EventEmitter","name","off","DEFAULT_OPTIONS","constants","assertValidFunction","candidate","Iframe","containerElement","callback","urlString","options","mark","actionCb","listener","ev","messageAction","viewModel","message","installType","createIframe","AffinityIFrame","urlObj","Modal","userConfig","thresholdConfig","closeTxt","closeIcon","overlay","wrapper","action","inLightbox","loadInlineIframe","iframe","loadInModal","modal","loadAffinityIFrame","affinity","index"],"mappings":"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"}