@sheerid/jslib 2.252.0 → 2.253.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 (393) hide show
  1. package/_mysheerid-preview.css +4 -4
  2. package/_mysheerid-preview.js +45 -45
  3. package/chunk/{AddressComponent-DzD9VVa_.js → AddressComponent-DL9pd8Ow.js} +6 -6
  4. package/chunk/{AddressComponent-DSxFIF4x.js.map → AddressComponent-DL9pd8Ow.js.map} +1 -1
  5. package/chunk/{AddressComponent-DSxFIF4x.js → AddressComponent-Dmbx7wQb.js} +6 -6
  6. package/chunk/{AddressComponent-DzD9VVa_.js.map → AddressComponent-Dmbx7wQb.js.map} +1 -1
  7. package/chunk/{AnnouncingHeader-CLDpHgl_.js → AnnouncingHeader-C665jgXh.js} +6 -6
  8. package/chunk/{AnnouncingHeader-CLDpHgl_.js.map → AnnouncingHeader-C665jgXh.js.map} +1 -1
  9. package/chunk/{AnnouncingHeader-CXeTT64m.js → AnnouncingHeader-CRqImmVM.js} +6 -6
  10. package/chunk/{AnnouncingHeader-CXeTT64m.js.map → AnnouncingHeader-CRqImmVM.js.map} +1 -1
  11. package/chunk/{ApiUrls-B_EvoEh6.js → ApiUrls-B1l97XLd.js} +6 -6
  12. package/chunk/{ApiUrls--DdrEkPe.js.map → ApiUrls-B1l97XLd.js.map} +1 -1
  13. package/chunk/{ApiUrls--DdrEkPe.js → ApiUrls-BMVXJ1mM.js} +6 -6
  14. package/chunk/{ApiUrls-B_EvoEh6.js.map → ApiUrls-BMVXJ1mM.js.map} +1 -1
  15. package/chunk/{BirthDateComponent-BHIU3Biw.js → BirthDateComponent-D-98d9mx.js} +7 -7
  16. package/chunk/{BirthDateComponent-BHIU3Biw.js.map → BirthDateComponent-D-98d9mx.js.map} +1 -1
  17. package/chunk/{BirthDateComponent-Cy8ZXEl7.js → BirthDateComponent-DCXg16GU.js} +7 -7
  18. package/chunk/{BirthDateComponent-Cy8ZXEl7.js.map → BirthDateComponent-DCXg16GU.js.map} +1 -1
  19. package/chunk/{CaptchaComponent-BxNyzcXf.js → CaptchaComponent-B4PjRH23.js} +14 -14
  20. package/chunk/{CaptchaComponent-BORHB7bO.js.map → CaptchaComponent-B4PjRH23.js.map} +1 -1
  21. package/chunk/{CaptchaComponent-BORHB7bO.js → CaptchaComponent-BxjtTozO.js} +14 -14
  22. package/chunk/{CaptchaComponent-BxNyzcXf.js.map → CaptchaComponent-BxjtTozO.js.map} +1 -1
  23. package/chunk/{ChangeLocaleComponent-D-DQnbPA.js → ChangeLocaleComponent-Cqs8Ed1t.js} +7 -7
  24. package/chunk/{ChangeLocaleComponent-D-DQnbPA.js.map → ChangeLocaleComponent-Cqs8Ed1t.js.map} +1 -1
  25. package/chunk/{ChangeLocaleComponent-idsSKpgP.js → ChangeLocaleComponent-yTfSGHOP.js} +7 -7
  26. package/chunk/{ChangeLocaleComponent-idsSKpgP.js.map → ChangeLocaleComponent-yTfSGHOP.js.map} +1 -1
  27. package/chunk/{City-CL6havrT.js → City-Ccy5-tEQ.js} +6 -6
  28. package/chunk/{City-BykM6lTM.js.map → City-Ccy5-tEQ.js.map} +1 -1
  29. package/chunk/{City-BykM6lTM.js → City-DpGdS5VA.js} +6 -6
  30. package/chunk/{City-CL6havrT.js.map → City-DpGdS5VA.js.map} +1 -1
  31. package/chunk/{CollegeNameComponent-C9i2FJFx.js → CollegeNameComponent-5qe9ljjZ.js} +8 -8
  32. package/chunk/{CollegeNameComponent-5BVjBNq0.js.map → CollegeNameComponent-5qe9ljjZ.js.map} +1 -1
  33. package/chunk/{CollegeNameComponent-5BVjBNq0.js → CollegeNameComponent-CSlyVZ9K.js} +8 -8
  34. package/chunk/{CollegeNameComponent-C9i2FJFx.js.map → CollegeNameComponent-CSlyVZ9K.js.map} +1 -1
  35. package/chunk/{CopyToClipboardComponent-B2uEMMpR.js → CopyToClipboardComponent-CYURzymv.js} +6 -6
  36. package/chunk/{CopyToClipboardComponent-B2uEMMpR.js.map → CopyToClipboardComponent-CYURzymv.js.map} +1 -1
  37. package/chunk/{CopyToClipboardComponent-CyzLvXQJ.js → CopyToClipboardComponent-DssvbA6B.js} +6 -6
  38. package/chunk/{CopyToClipboardComponent-CyzLvXQJ.js.map → CopyToClipboardComponent-DssvbA6B.js.map} +1 -1
  39. package/chunk/{CountryComponentWrapper-CcHQo8OH.js → CountryComponentWrapper-D05UNMjA.js} +9 -9
  40. package/chunk/{CountryComponentWrapper-CaYmSjkG.js.map → CountryComponentWrapper-D05UNMjA.js.map} +1 -1
  41. package/chunk/{CountryComponentWrapper-CaYmSjkG.js → CountryComponentWrapper-DpGkBqyN.js} +9 -9
  42. package/chunk/{CountryComponentWrapper-CcHQo8OH.js.map → CountryComponentWrapper-DpGkBqyN.js.map} +1 -1
  43. package/chunk/{DischargeDateComponent-AcgnEjpb.js → DischargeDateComponent-B_NsMlit.js} +10 -10
  44. package/chunk/{DischargeDateComponent-AcgnEjpb.js.map → DischargeDateComponent-B_NsMlit.js.map} +1 -1
  45. package/chunk/{DischargeDateComponent-DdE_EyqK.js → DischargeDateComponent-DIkajREC.js} +10 -10
  46. package/chunk/{DischargeDateComponent-DdE_EyqK.js.map → DischargeDateComponent-DIkajREC.js.map} +1 -1
  47. package/chunk/{DriverLicenseNumberComponent-D9SDRAeV.js → DriverLicenseNumberComponent-C8WITgA-.js} +6 -6
  48. package/chunk/{DriverLicenseNumberComponent-D9SDRAeV.js.map → DriverLicenseNumberComponent-C8WITgA-.js.map} +1 -1
  49. package/chunk/{DriverLicenseNumberComponent-DYEKIU1G.js → DriverLicenseNumberComponent-H3LDFFs8.js} +6 -6
  50. package/chunk/{DriverLicenseNumberComponent-DYEKIU1G.js.map → DriverLicenseNumberComponent-H3LDFFs8.js.map} +1 -1
  51. package/chunk/{EmailLoopPending-1aY4gWSW.js → EmailLoopPending-BNRLFtBa.js} +9 -9
  52. package/chunk/{EmailLoopPending-1aY4gWSW.js.map → EmailLoopPending-BNRLFtBa.js.map} +1 -1
  53. package/chunk/{EmailLoopPending-CohuDy06.js → EmailLoopPending-Dl0ph2cL.js} +9 -9
  54. package/chunk/{EmailLoopPending-CohuDy06.js.map → EmailLoopPending-Dl0ph2cL.js.map} +1 -1
  55. package/chunk/{ExtraMessage-x7BWw0ei.js → ExtraMessage-BvCY4YpQ.js} +7 -7
  56. package/chunk/{ExtraMessage-CN18YvZT.js.map → ExtraMessage-BvCY4YpQ.js.map} +1 -1
  57. package/chunk/{ExtraMessage-CN18YvZT.js → ExtraMessage-Dkql53YF.js} +7 -7
  58. package/chunk/{ExtraMessage-x7BWw0ei.js.map → ExtraMessage-Dkql53YF.js.map} +1 -1
  59. package/chunk/{FirstResponderOrganizationComponent-gE3uH_Qu.js → FirstResponderOrganizationComponent-BUdtKpMV.js} +7 -7
  60. package/chunk/{FirstResponderOrganizationComponent-CFtRv00U.js.map → FirstResponderOrganizationComponent-BUdtKpMV.js.map} +1 -1
  61. package/chunk/{FirstResponderOrganizationComponent-CFtRv00U.js → FirstResponderOrganizationComponent-CfDgqpt-.js} +7 -7
  62. package/chunk/{FirstResponderOrganizationComponent-gE3uH_Qu.js.map → FirstResponderOrganizationComponent-CfDgqpt-.js.map} +1 -1
  63. package/chunk/{FormFieldInputSelect-BBmkWo4W.js → FormFieldInputSelect-BY24q7T0.js} +7 -7
  64. package/chunk/{FormFieldInputSelect-BBmkWo4W.js.map → FormFieldInputSelect-BY24q7T0.js.map} +1 -1
  65. package/chunk/{FormFieldInputSelect-D2TcQH6v.js → FormFieldInputSelect-Dz0l89FZ.js} +7 -7
  66. package/chunk/{FormFieldInputSelect-D2TcQH6v.js.map → FormFieldInputSelect-Dz0l89FZ.js.map} +1 -1
  67. package/chunk/{FormFieldLayout-CMLqr9t1.js → FormFieldLayout-C5-ReqYd.js} +6 -6
  68. package/chunk/{FormFieldLayout-D8zi4UuO.js.map → FormFieldLayout-C5-ReqYd.js.map} +1 -1
  69. package/chunk/{FormFieldLayout-D8zi4UuO.js → FormFieldLayout-CHV2U_Vf.js} +6 -6
  70. package/chunk/{FormFieldLayout-CMLqr9t1.js.map → FormFieldLayout-CHV2U_Vf.js.map} +1 -1
  71. package/chunk/{FormFieldText-Cn6-0trL.js → FormFieldText-BbdI2qod.js} +7 -7
  72. package/chunk/{FormFieldText-Cn6-0trL.js.map → FormFieldText-BbdI2qod.js.map} +1 -1
  73. package/chunk/{FormFieldText-DJOFzwWN.js → FormFieldText-CojbU6CY.js} +7 -7
  74. package/chunk/{FormFieldText-DJOFzwWN.js.map → FormFieldText-CojbU6CY.js.map} +1 -1
  75. package/chunk/{FormFieldTypeahead-owJNEvXI.js → FormFieldTypeahead-CNX3FDrh.js} +13 -13
  76. package/chunk/{FormFieldTypeahead-owJNEvXI.js.map → FormFieldTypeahead-CNX3FDrh.js.map} +1 -1
  77. package/chunk/{FormFieldTypeahead-DgFoEFiI.js → FormFieldTypeahead-CtEOFpYZ.js} +13 -13
  78. package/chunk/{FormFieldTypeahead-DgFoEFiI.js.map → FormFieldTypeahead-CtEOFpYZ.js.map} +1 -1
  79. package/chunk/{FormFooterComponent-DhQaJMxV.js → FormFooterComponent-B4pXl2Gg.js} +1419 -1323
  80. package/chunk/FormFooterComponent-B4pXl2Gg.js.map +1 -0
  81. package/chunk/{FormFooterComponent-CetDNO5o.js → FormFooterComponent-D4f181-M.js} +258 -162
  82. package/chunk/FormFooterComponent-D4f181-M.js.map +1 -0
  83. package/chunk/{FormSelectChoice-osDN1oLh.js → FormSelectChoice-5THzFmQH.js} +8 -8
  84. package/chunk/{FormSelectChoice-BhhHyaEw.js.map → FormSelectChoice-5THzFmQH.js.map} +1 -1
  85. package/chunk/{FormSelectChoice-BhhHyaEw.js → FormSelectChoice-BY7fTRbM.js} +8 -8
  86. package/chunk/{FormSelectChoice-osDN1oLh.js.map → FormSelectChoice-BY7fTRbM.js.map} +1 -1
  87. package/chunk/{InputText-CJnffm2K.js → InputText-AeuQFn-n.js} +7 -7
  88. package/chunk/{InputText-BWuKLYeX.js.map → InputText-AeuQFn-n.js.map} +1 -1
  89. package/chunk/{InputText-BWuKLYeX.js → InputText-C1KVw41V.js} +7 -7
  90. package/chunk/{InputText-CJnffm2K.js.map → InputText-C1KVw41V.js.map} +1 -1
  91. package/chunk/{LicensedProfessionalOrganizationComponent-C2rj3igZ.js → LicensedProfessionalOrganizationComponent-Cpw8UkAg.js} +7 -7
  92. package/chunk/{LicensedProfessionalOrganizationComponent-C2rj3igZ.js.map → LicensedProfessionalOrganizationComponent-Cpw8UkAg.js.map} +1 -1
  93. package/chunk/{LicensedProfessionalOrganizationComponent-Bs2Bbby5.js → LicensedProfessionalOrganizationComponent-Dt-B-KLT.js} +7 -7
  94. package/chunk/{LicensedProfessionalOrganizationComponent-Bs2Bbby5.js.map → LicensedProfessionalOrganizationComponent-Dt-B-KLT.js.map} +1 -1
  95. package/chunk/{LogoComponent-x1hhyiZ7.js → LogoComponent-BbjTQetI.js} +6 -6
  96. package/chunk/{LogoComponent-DgxgyyEk.js.map → LogoComponent-BbjTQetI.js.map} +1 -1
  97. package/chunk/{LogoComponent-DgxgyyEk.js → LogoComponent-Capadyoj.js} +6 -6
  98. package/chunk/{LogoComponent-x1hhyiZ7.js.map → LogoComponent-Capadyoj.js.map} +1 -1
  99. package/chunk/{LowIncomeOrganizationComponent-CUp0Zwff.js → LowIncomeOrganizationComponent-BmjqOHxV.js} +11 -11
  100. package/chunk/{LowIncomeOrganizationComponent-CUp0Zwff.js.map → LowIncomeOrganizationComponent-BmjqOHxV.js.map} +1 -1
  101. package/chunk/{LowIncomeOrganizationComponent-D-nhX8iT.js → LowIncomeOrganizationComponent-C8d-cPM9.js} +11 -11
  102. package/chunk/{LowIncomeOrganizationComponent-D-nhX8iT.js.map → LowIncomeOrganizationComponent-C8d-cPM9.js.map} +1 -1
  103. package/chunk/{MedicalProfessionalOrganizationComponent-CPj_iPSu.js → MedicalProfessionalOrganizationComponent-AEiTIh5y.js} +7 -7
  104. package/chunk/{MedicalProfessionalOrganizationComponent-CPj_iPSu.js.map → MedicalProfessionalOrganizationComponent-AEiTIh5y.js.map} +1 -1
  105. package/chunk/{MedicalProfessionalOrganizationComponent-DDOdWW0l.js → MedicalProfessionalOrganizationComponent-DGohlVeO.js} +7 -7
  106. package/chunk/{MedicalProfessionalOrganizationComponent-DDOdWW0l.js.map → MedicalProfessionalOrganizationComponent-DGohlVeO.js.map} +1 -1
  107. package/chunk/{MemberIdComponent-lHRDd-GD.js → MemberIdComponent-Bgj2RTIU.js} +6 -6
  108. package/chunk/{MemberIdComponent-CCd021Y2.js.map → MemberIdComponent-Bgj2RTIU.js.map} +1 -1
  109. package/chunk/{MemberIdComponent-CCd021Y2.js → MemberIdComponent-C4nH8HWl.js} +6 -6
  110. package/chunk/{MemberIdComponent-lHRDd-GD.js.map → MemberIdComponent-C4nH8HWl.js.map} +1 -1
  111. package/chunk/{MembershipOrganizationComponent-C4Lq8DDO.js → MembershipOrganizationComponent--cqePbSG.js} +7 -7
  112. package/chunk/{MembershipOrganizationComponent-C4Lq8DDO.js.map → MembershipOrganizationComponent--cqePbSG.js.map} +1 -1
  113. package/chunk/{MembershipOrganizationComponent-DFlV9g62.js → MembershipOrganizationComponent-DKndZo_l.js} +7 -7
  114. package/chunk/{MembershipOrganizationComponent-DFlV9g62.js.map → MembershipOrganizationComponent-DKndZo_l.js.map} +1 -1
  115. package/chunk/Onfido-CTCgAwnB.js +4 -4
  116. package/chunk/{PersonalInfoStepSubmitButton-BQc65TXU.js → PersonalInfoStepSubmitButton-B_cDlypb.js} +10 -10
  117. package/chunk/{PersonalInfoStepSubmitButton-BQc65TXU.js.map → PersonalInfoStepSubmitButton-B_cDlypb.js.map} +1 -1
  118. package/chunk/{PersonalInfoStepSubmitButton-Do9s_cOU.js → PersonalInfoStepSubmitButton-CXvt9o8S.js} +10 -10
  119. package/chunk/{PersonalInfoStepSubmitButton-Do9s_cOU.js.map → PersonalInfoStepSubmitButton-CXvt9o8S.js.map} +1 -1
  120. package/chunk/{PersonalInfoStepWrapper-CZNsVG-R.js → PersonalInfoStepWrapper-CdBLUd5V.js} +7 -7
  121. package/chunk/{PersonalInfoStepWrapper-CZNsVG-R.js.map → PersonalInfoStepWrapper-CdBLUd5V.js.map} +1 -1
  122. package/chunk/{PersonalInfoStepWrapper-BdHSrD2_.js → PersonalInfoStepWrapper-DAmzepBq.js} +8 -8
  123. package/chunk/{PersonalInfoStepWrapper-BdHSrD2_.js.map → PersonalInfoStepWrapper-DAmzepBq.js.map} +1 -1
  124. package/chunk/{PostalCodeComponent-1-YsGlqY.js → PostalCodeComponent-C5NIUmbp.js} +6 -6
  125. package/chunk/{PostalCodeComponent-1-YsGlqY.js.map → PostalCodeComponent-C5NIUmbp.js.map} +1 -1
  126. package/chunk/{PostalCodeComponent-DNUVgwF3.js → PostalCodeComponent-CUGDHlOa.js} +6 -6
  127. package/chunk/{PostalCodeComponent-DNUVgwF3.js.map → PostalCodeComponent-CUGDHlOa.js.map} +1 -1
  128. package/chunk/{SSN-BX8TdkJC.js → SSN-BZgf6MTH.js} +7 -7
  129. package/chunk/{SSN-BX8TdkJC.js.map → SSN-BZgf6MTH.js.map} +1 -1
  130. package/chunk/{SSN-BbJApc2I.js → SSN-COEXPfZd.js} +7 -7
  131. package/chunk/{SSN-BbJApc2I.js.map → SSN-COEXPfZd.js.map} +1 -1
  132. package/chunk/{StateSelectComponent-6kUzcwCo.js → StateSelectComponent-D9cuFwhj.js} +6 -6
  133. package/chunk/{StateSelectComponent-6kUzcwCo.js.map → StateSelectComponent-D9cuFwhj.js.map} +1 -1
  134. package/chunk/{StateSelectComponent-BSKKl9wF.js → StateSelectComponent-Dmp3aJ9_.js} +6 -6
  135. package/chunk/{StateSelectComponent-BSKKl9wF.js.map → StateSelectComponent-Dmp3aJ9_.js.map} +1 -1
  136. package/chunk/{StatusComponent-B68ABFjx.js → StatusComponent-54Lup0nO.js} +7 -7
  137. package/chunk/{StatusComponent-B68ABFjx.js.map → StatusComponent-54Lup0nO.js.map} +1 -1
  138. package/chunk/{StatusComponent-CV8Vb5eJ.js → StatusComponent-CJBJQf_t.js} +7 -7
  139. package/chunk/{StatusComponent-CV8Vb5eJ.js.map → StatusComponent-CJBJQf_t.js.map} +1 -1
  140. package/chunk/{StepActiveMilitaryPersonalInfoComponent-C8i62pcJ.js → StepActiveMilitaryPersonalInfoComponent-DYwwKWiP.js} +18 -18
  141. package/chunk/{StepActiveMilitaryPersonalInfoComponent-C8i62pcJ.js.map → StepActiveMilitaryPersonalInfoComponent-DYwwKWiP.js.map} +1 -1
  142. package/chunk/{StepActiveMilitaryPersonalInfoComponent-hoa8SxRd.js → StepActiveMilitaryPersonalInfoComponent-Dd9wZL69.js} +18 -18
  143. package/chunk/{StepActiveMilitaryPersonalInfoComponent-hoa8SxRd.js.map → StepActiveMilitaryPersonalInfoComponent-Dd9wZL69.js.map} +1 -1
  144. package/chunk/{StepAgePersonalInfo-BFhsxBUD.js → StepAgePersonalInfo-B6BaJSU9.js} +18 -18
  145. package/chunk/{StepAgePersonalInfo-BFhsxBUD.js.map → StepAgePersonalInfo-B6BaJSU9.js.map} +1 -1
  146. package/chunk/{StepAgePersonalInfo-DIWqbP3p.js → StepAgePersonalInfo-uB8J8jFk.js} +18 -18
  147. package/chunk/{StepAgePersonalInfo-DIWqbP3p.js.map → StepAgePersonalInfo-uB8J8jFk.js.map} +1 -1
  148. package/chunk/{StepCard-DRPVd5Xe.js → StepCard-B31RNuY9.js} +5 -5
  149. package/chunk/{StepCard-BEbyMH-c.js.map → StepCard-B31RNuY9.js.map} +1 -1
  150. package/chunk/{StepCard-BEbyMH-c.js → StepCard-PXVHWYeo.js} +5 -5
  151. package/chunk/{StepCard-DRPVd5Xe.js.map → StepCard-PXVHWYeo.js.map} +1 -1
  152. package/chunk/{StepCollectIdentifier-BSK3qDAU.js → StepCollectIdentifier-BPD70vxg.js} +8 -8
  153. package/chunk/{StepCollectIdentifier-Cy2aeT_j.js.map → StepCollectIdentifier-BPD70vxg.js.map} +1 -1
  154. package/chunk/{StepCollectIdentifier-Cy2aeT_j.js → StepCollectIdentifier-D5Mt1tDo.js} +8 -8
  155. package/chunk/{StepCollectIdentifier-BSK3qDAU.js.map → StepCollectIdentifier-D5Mt1tDo.js.map} +1 -1
  156. package/chunk/StepCollectMilitaryStatusComponent-CD7tdS_t.js +9 -0
  157. package/chunk/{StepCollectMilitaryStatusComponent-B0D4F5Hd.js → StepCollectMilitaryStatusComponent-Dk4ngVEf.js} +5 -5
  158. package/chunk/{StepCollectPersonalInfo-DrWJrhte.js → StepCollectPersonalInfo-CHC7DaGk.js} +30 -30
  159. package/chunk/{StepCollectPersonalInfo-DrWJrhte.js.map → StepCollectPersonalInfo-CHC7DaGk.js.map} +1 -1
  160. package/chunk/{StepCollectPersonalInfo-BhRo5AZW.js → StepCollectPersonalInfo-Jvy4xiYx.js} +30 -30
  161. package/chunk/{StepCollectPersonalInfo-BhRo5AZW.js.map → StepCollectPersonalInfo-Jvy4xiYx.js.map} +1 -1
  162. package/chunk/{StepCompleteAuthentication-BMYfHQDX.js → StepCompleteAuthentication-B3DbO_HZ.js} +7 -7
  163. package/chunk/{StepCompleteAuthentication-BMYfHQDX.js.map → StepCompleteAuthentication-B3DbO_HZ.js.map} +1 -1
  164. package/chunk/{StepCompleteAuthentication-Cu9GoQDP.js → StepCompleteAuthentication-khHRwXK7.js} +7 -7
  165. package/chunk/{StepCompleteAuthentication-Cu9GoQDP.js.map → StepCompleteAuthentication-khHRwXK7.js.map} +1 -1
  166. package/chunk/{StepConsolation-DmX3B6yh.js → StepConsolation-BdtjeVme.js} +9 -9
  167. package/chunk/{StepConsolation-DmX3B6yh.js.map → StepConsolation-BdtjeVme.js.map} +1 -1
  168. package/chunk/{StepConsolation-bt3asBBO.js → StepConsolation-CpG4ivzD.js} +9 -9
  169. package/chunk/{StepConsolation-bt3asBBO.js.map → StepConsolation-CpG4ivzD.js.map} +1 -1
  170. package/chunk/{StepDocUpload-DMUXunVM.js → StepDocUpload-C5274Wtg.js} +13 -13
  171. package/chunk/{StepDocUpload-DMUXunVM.js.map → StepDocUpload-C5274Wtg.js.map} +1 -1
  172. package/chunk/{StepDocUpload-CXRWsWyZ.js → StepDocUpload-CLVth33n.js} +13 -13
  173. package/chunk/{StepDocUpload-CXRWsWyZ.js.map → StepDocUpload-CLVth33n.js.map} +1 -1
  174. package/chunk/{StepDriverLicensePersonalInfoComponent-DAcFI9fH.js → StepDriverLicensePersonalInfoComponent-6akTvppj.js} +15 -15
  175. package/chunk/{StepDriverLicensePersonalInfoComponent-DAcFI9fH.js.map → StepDriverLicensePersonalInfoComponent-6akTvppj.js.map} +1 -1
  176. package/chunk/{StepDriverLicensePersonalInfoComponent-0uKhEZKS.js → StepDriverLicensePersonalInfoComponent-BnVL6avF.js} +15 -15
  177. package/chunk/{StepDriverLicensePersonalInfoComponent-0uKhEZKS.js.map → StepDriverLicensePersonalInfoComponent-BnVL6avF.js.map} +1 -1
  178. package/chunk/{StepEmailLoop-CNlnNJ-I.js → StepEmailLoop-D1KB0KwR.js} +11 -11
  179. package/chunk/{StepEmailLoop-CNlnNJ-I.js.map → StepEmailLoop-D1KB0KwR.js.map} +1 -1
  180. package/chunk/{StepEmailLoop-DvhrtkaW.js → StepEmailLoop-Dfug5ScA.js} +11 -11
  181. package/chunk/{StepEmailLoop-DvhrtkaW.js.map → StepEmailLoop-Dfug5ScA.js.map} +1 -1
  182. package/chunk/{StepEmploymentPersonalInfo-ChvYaKNw.js → StepEmploymentPersonalInfo-CFyNzULG.js} +18 -18
  183. package/chunk/{StepEmploymentPersonalInfo-B5JXd1cN.js.map → StepEmploymentPersonalInfo-CFyNzULG.js.map} +1 -1
  184. package/chunk/{StepEmploymentPersonalInfo-B5JXd1cN.js → StepEmploymentPersonalInfo-D7HGsB-p.js} +18 -18
  185. package/chunk/{StepEmploymentPersonalInfo-ChvYaKNw.js.map → StepEmploymentPersonalInfo-D7HGsB-p.js.map} +1 -1
  186. package/chunk/{StepFirstResponderPersonalInfo-LlsPNHdA.js → StepFirstResponderPersonalInfo-BulirlUs.js} +18 -18
  187. package/chunk/{StepFirstResponderPersonalInfo-LlsPNHdA.js.map → StepFirstResponderPersonalInfo-BulirlUs.js.map} +1 -1
  188. package/chunk/{StepFirstResponderPersonalInfo-RufrTrr8.js → StepFirstResponderPersonalInfo-Di_b4ACx.js} +18 -18
  189. package/chunk/{StepFirstResponderPersonalInfo-RufrTrr8.js.map → StepFirstResponderPersonalInfo-Di_b4ACx.js.map} +1 -1
  190. package/chunk/{StepGeneralIdentityPersonalInfoComponent-BipfF6xU.js → StepGeneralIdentityPersonalInfoComponent-olZs-6Rj.js} +18 -18
  191. package/chunk/{StepGeneralIdentityPersonalInfoComponent-BipfF6xU.js.map → StepGeneralIdentityPersonalInfoComponent-olZs-6Rj.js.map} +1 -1
  192. package/chunk/{StepGeneralIdentityPersonalInfoComponent-CETkNIaC.js → StepGeneralIdentityPersonalInfoComponent-pQLGlnKM.js} +18 -18
  193. package/chunk/{StepGeneralIdentityPersonalInfoComponent-CETkNIaC.js.map → StepGeneralIdentityPersonalInfoComponent-pQLGlnKM.js.map} +1 -1
  194. package/chunk/{StepHybridIdentityPersonalInfoComponent-B2nuVc7l.js → StepHybridIdentityPersonalInfoComponent-BnDQUGJs.js} +19 -19
  195. package/chunk/{StepHybridIdentityPersonalInfoComponent-B2nuVc7l.js.map → StepHybridIdentityPersonalInfoComponent-BnDQUGJs.js.map} +1 -1
  196. package/chunk/{StepHybridIdentityPersonalInfoComponent-DBq__6K1.js → StepHybridIdentityPersonalInfoComponent-CE7BsdJg.js} +19 -19
  197. package/chunk/{StepHybridIdentityPersonalInfoComponent-DBq__6K1.js.map → StepHybridIdentityPersonalInfoComponent-CE7BsdJg.js.map} +1 -1
  198. package/chunk/{StepIDCheckLoop-OZcXlCYI.js → StepIDCheckLoop-C5285ynn.js} +8 -8
  199. package/chunk/{StepIDCheckLoop-DcepvoDq.js.map → StepIDCheckLoop-C5285ynn.js.map} +1 -1
  200. package/chunk/{StepIDCheckLoop-DcepvoDq.js → StepIDCheckLoop-CcZ5Uaf4.js} +8 -8
  201. package/chunk/{StepIDCheckLoop-OZcXlCYI.js.map → StepIDCheckLoop-CcZ5Uaf4.js.map} +1 -1
  202. package/chunk/{StepIDCheckLoopOnfido-CJzbMWT9.js → StepIDCheckLoopOnfido-BjjTPVOv.js} +11 -11
  203. package/chunk/{StepIDCheckLoopOnfido-CJzbMWT9.js.map → StepIDCheckLoopOnfido-BjjTPVOv.js.map} +1 -1
  204. package/chunk/{StepIDCheckLoopOnfido-BccaRXnf.js → StepIDCheckLoopOnfido-BmxPYTpf.js} +11 -11
  205. package/chunk/{StepIDCheckLoopOnfido-BccaRXnf.js.map → StepIDCheckLoopOnfido-BmxPYTpf.js.map} +1 -1
  206. package/chunk/{StepIDCheckLoopRegula-vJGTN04M.js → StepIDCheckLoopRegula-D7Zd3zod.js} +10 -10
  207. package/chunk/{StepIDCheckLoopRegula-BJNsxIhV.js.map → StepIDCheckLoopRegula-D7Zd3zod.js.map} +1 -1
  208. package/chunk/{StepIDCheckLoopRegula-BJNsxIhV.js → StepIDCheckLoopRegula-DBYXDNLU.js} +10 -10
  209. package/chunk/{StepIDCheckLoopRegula-vJGTN04M.js.map → StepIDCheckLoopRegula-DBYXDNLU.js.map} +1 -1
  210. package/chunk/{StepInactiveMilitaryPersonalInfoComponent-tDuo4mAi.js → StepInactiveMilitaryPersonalInfoComponent-HBJK96BR.js} +23 -23
  211. package/chunk/{StepInactiveMilitaryPersonalInfoComponent-CYJ86Qy2.js.map → StepInactiveMilitaryPersonalInfoComponent-HBJK96BR.js.map} +1 -1
  212. package/chunk/{StepInactiveMilitaryPersonalInfoComponent-CYJ86Qy2.js → StepInactiveMilitaryPersonalInfoComponent-T4We4W2c.js} +23 -23
  213. package/chunk/{StepInactiveMilitaryPersonalInfoComponent-tDuo4mAi.js.map → StepInactiveMilitaryPersonalInfoComponent-T4We4W2c.js.map} +1 -1
  214. package/chunk/{StepLicensedProfessionalPersonalInfo-CbxBDwSv.js → StepLicensedProfessionalPersonalInfo-Bo9cIVmu.js} +17 -17
  215. package/chunk/{StepLicensedProfessionalPersonalInfo-CbxBDwSv.js.map → StepLicensedProfessionalPersonalInfo-Bo9cIVmu.js.map} +1 -1
  216. package/chunk/{StepLicensedProfessionalPersonalInfo-D_c4v8UM.js → StepLicensedProfessionalPersonalInfo-_ENTeOP7.js} +17 -17
  217. package/chunk/{StepLicensedProfessionalPersonalInfo-D_c4v8UM.js.map → StepLicensedProfessionalPersonalInfo-_ENTeOP7.js.map} +1 -1
  218. package/chunk/{StepLowIncomePersonalInfo-w2zhOF1V.js → StepLowIncomePersonalInfo-DcuP9uCp.js} +21 -21
  219. package/chunk/{StepLowIncomePersonalInfo-DKfMG8ar.js.map → StepLowIncomePersonalInfo-DcuP9uCp.js.map} +1 -1
  220. package/chunk/{StepLowIncomePersonalInfo-DKfMG8ar.js → StepLowIncomePersonalInfo-Dp76iAAP.js} +21 -21
  221. package/chunk/{StepLowIncomePersonalInfo-w2zhOF1V.js.map → StepLowIncomePersonalInfo-Dp76iAAP.js.map} +1 -1
  222. package/chunk/{StepMedicalProfessionalPersonalInfo-DsJ1m9gg.js → StepMedicalProfessionalPersonalInfo--vo70WUw.js} +19 -19
  223. package/chunk/{StepMedicalProfessionalPersonalInfo-Bmtf2gGb.js.map → StepMedicalProfessionalPersonalInfo--vo70WUw.js.map} +1 -1
  224. package/chunk/{StepMedicalProfessionalPersonalInfo-Bmtf2gGb.js → StepMedicalProfessionalPersonalInfo-Cx6z5vv_.js} +19 -19
  225. package/chunk/{StepMedicalProfessionalPersonalInfo-DsJ1m9gg.js.map → StepMedicalProfessionalPersonalInfo-Cx6z5vv_.js.map} +1 -1
  226. package/chunk/{StepMemberPersonalInfo-Bizl9yj8.js → StepMemberPersonalInfo-6GXnE9oW.js} +16 -16
  227. package/chunk/{StepMemberPersonalInfo-Bizl9yj8.js.map → StepMemberPersonalInfo-6GXnE9oW.js.map} +1 -1
  228. package/chunk/{StepMemberPersonalInfo-grYM_Yf4.js → StepMemberPersonalInfo-DIK_Up4k.js} +16 -16
  229. package/chunk/{StepMemberPersonalInfo-grYM_Yf4.js.map → StepMemberPersonalInfo-DIK_Up4k.js.map} +1 -1
  230. package/chunk/{StepMoverPersonalInfo-D3aIlwOK.js → StepMoverPersonalInfo-BdCiAwgT.js} +14 -14
  231. package/chunk/{StepMoverPersonalInfo-D3aIlwOK.js.map → StepMoverPersonalInfo-BdCiAwgT.js.map} +1 -1
  232. package/chunk/{StepMoverPersonalInfo-DkQbmMny.js → StepMoverPersonalInfo-Cs-5V2Vf.js} +14 -14
  233. package/chunk/{StepMoverPersonalInfo-DkQbmMny.js.map → StepMoverPersonalInfo-Cs-5V2Vf.js.map} +1 -1
  234. package/chunk/{StepOverrideComponent-SqQZ3-Y0.js → StepOverrideComponent-BuCf5lHB.js} +11 -11
  235. package/chunk/{StepOverrideComponent-SqQZ3-Y0.js.map → StepOverrideComponent-BuCf5lHB.js.map} +1 -1
  236. package/chunk/{StepOverrideComponent-VSx5gkrS.js → StepOverrideComponent-CQ0ofUDQ.js} +11 -11
  237. package/chunk/{StepOverrideComponent-VSx5gkrS.js.map → StepOverrideComponent-CQ0ofUDQ.js.map} +1 -1
  238. package/chunk/{StepSMSLoop-Bnj6w5bM.js → StepSMSLoop-DMyuCz5p.js} +9 -9
  239. package/chunk/{StepSMSLoop-Bnj6w5bM.js.map → StepSMSLoop-DMyuCz5p.js.map} +1 -1
  240. package/chunk/{StepSMSLoop-CDS9I-nu.js → StepSMSLoop-SnRlOV_y.js} +9 -9
  241. package/chunk/{StepSMSLoop-CDS9I-nu.js.map → StepSMSLoop-SnRlOV_y.js.map} +1 -1
  242. package/chunk/StepSSO-BRFhNvkp.js +4 -4
  243. package/chunk/StepSSO-BaFk7RFJ.js +4 -4
  244. package/chunk/{StepSocialSecurityNumber-Be2LWoJF.js → StepSocialSecurityNumber-CKQQW5C5.js} +12 -12
  245. package/chunk/{StepSocialSecurityNumber-Be2LWoJF.js.map → StepSocialSecurityNumber-CKQQW5C5.js.map} +1 -1
  246. package/chunk/{StepSocialSecurityNumber-C6pBegcg.js → StepSocialSecurityNumber-D_PGuZD6.js} +12 -12
  247. package/chunk/{StepSocialSecurityNumber-C6pBegcg.js.map → StepSocialSecurityNumber-D_PGuZD6.js.map} +1 -1
  248. package/chunk/{StepStudentPersonalInfo-CJh-76B0.js → StepStudentPersonalInfo-CMD9-6V4.js} +16 -16
  249. package/chunk/{StepStudentPersonalInfo-06duqwlX.js.map → StepStudentPersonalInfo-CMD9-6V4.js.map} +1 -1
  250. package/chunk/{StepStudentPersonalInfo-06duqwlX.js → StepStudentPersonalInfo-Dm_l8-YI.js} +16 -16
  251. package/chunk/{StepStudentPersonalInfo-CJh-76B0.js.map → StepStudentPersonalInfo-Dm_l8-YI.js.map} +1 -1
  252. package/chunk/{StepSuccess-BgY9a0Cn.js → StepSuccess-3vU0mbVv.js} +11 -11
  253. package/chunk/{StepSuccess-BgY9a0Cn.js.map → StepSuccess-3vU0mbVv.js.map} +1 -1
  254. package/chunk/{StepSuccess-MVR8TAGq.js → StepSuccess-BMwq2W8N.js} +11 -11
  255. package/chunk/{StepSuccess-MVR8TAGq.js.map → StepSuccess-BMwq2W8N.js.map} +1 -1
  256. package/chunk/{StepTeacherPersonalInfo-CVudPe_L.js → StepTeacherPersonalInfo-262MHFWy.js} +17 -17
  257. package/chunk/{StepTeacherPersonalInfo-CVudPe_L.js.map → StepTeacherPersonalInfo-262MHFWy.js.map} +1 -1
  258. package/chunk/{StepTeacherPersonalInfo-DOmYn9G8.js → StepTeacherPersonalInfo-BR4J18vS.js} +17 -17
  259. package/chunk/{StepTeacherPersonalInfo-DOmYn9G8.js.map → StepTeacherPersonalInfo-BR4J18vS.js.map} +1 -1
  260. package/chunk/StepThirdPartyLoop-BGHCbduX.js +4 -4
  261. package/chunk/StepThirdPartyLoop-ZHByQpHa.js +4 -4
  262. package/chunk/{TeacherSchoolComponent-B5V_JYP1.js → TeacherSchoolComponent-B2lR7nTy.js} +8 -8
  263. package/chunk/{TeacherSchoolComponent-CVxRF20A.js.map → TeacherSchoolComponent-B2lR7nTy.js.map} +1 -1
  264. package/chunk/{TeacherSchoolComponent-CVxRF20A.js → TeacherSchoolComponent-Bbxea0Ji.js} +8 -8
  265. package/chunk/{TeacherSchoolComponent-B5V_JYP1.js.map → TeacherSchoolComponent-Bbxea0Ji.js.map} +1 -1
  266. package/chunk/{TestingRouteOverrides-D14rz0L4.js → TestingRouteOverrides-BogZlgPW.js} +6 -6
  267. package/chunk/{TestingRouteOverrides-D_76ZDo1.js.map → TestingRouteOverrides-BogZlgPW.js.map} +1 -1
  268. package/chunk/{TestingRouteOverrides-D_76ZDo1.js → TestingRouteOverrides-FAGpXyA6.js} +6 -6
  269. package/chunk/{TestingRouteOverrides-D14rz0L4.js.map → TestingRouteOverrides-FAGpXyA6.js.map} +1 -1
  270. package/chunk/ThreatMetrix-D_TbL50B.js +4 -4
  271. package/chunk/{VerificationApiClient-Bsq9nmb1.js → VerificationApiClient-BO8ElFmj.js} +8 -8
  272. package/chunk/{VerificationApiClient-Bsq9nmb1.js.map → VerificationApiClient-BO8ElFmj.js.map} +1 -1
  273. package/chunk/{VerificationApiClient-C9Eh-JpJ.js → VerificationApiClient-DPuicXlE.js} +8 -8
  274. package/chunk/{VerificationApiClient-C9Eh-JpJ.js.map → VerificationApiClient-DPuicXlE.js.map} +1 -1
  275. package/chunk/{VerificationApiUtils-DSadLMiz.js → VerificationApiUtils-BDFqaPsb.js} +7 -7
  276. package/chunk/{VerificationApiUtils-DA8QOxK3.js.map → VerificationApiUtils-BDFqaPsb.js.map} +1 -1
  277. package/chunk/{VerificationApiUtils-DA8QOxK3.js → VerificationApiUtils-k8zQodQ6.js} +7 -7
  278. package/chunk/{VerificationApiUtils-DSadLMiz.js.map → VerificationApiUtils-k8zQodQ6.js.map} +1 -1
  279. package/chunk/ar-wkBEXxD9.js +4 -4
  280. package/chunk/bg-D2-seofX.js +4 -4
  281. package/chunk/bn-IN-B5PyYaJU.js +4 -4
  282. package/chunk/{countryUtils-Cv7oNEHL.js → countryUtils-h1jZdv97.js} +5 -5
  283. package/chunk/{countryUtils-Cv7oNEHL.js.map → countryUtils-h1jZdv97.js.map} +1 -1
  284. package/chunk/countryUtils-vV17lva1.js +12 -0
  285. package/chunk/{countryUtils-ZN4SsRTU.js.map → countryUtils-vV17lva1.js.map} +1 -1
  286. package/chunk/cs-CsEnIopo.js +4 -4
  287. package/chunk/da-Da-m3VU_.js +4 -4
  288. package/chunk/de-BSoD5U3-.js +4 -4
  289. package/chunk/{downshift.esm-BzITPxIv.js → downshift.esm-Ba4YUxLv.js} +7 -7
  290. package/chunk/{downshift.esm-BzITPxIv.js.map → downshift.esm-Ba4YUxLv.js.map} +1 -1
  291. package/chunk/{downshift.esm-DjizeEtd.js → downshift.esm-aRmW_Ivn.js} +7 -7
  292. package/chunk/{downshift.esm-DjizeEtd.js.map → downshift.esm-aRmW_Ivn.js.map} +1 -1
  293. package/chunk/el-CFa6y9Ri.js +4 -4
  294. package/chunk/{empties-QXFZXxsa.js → empties-D0HcIbna.js} +5 -5
  295. package/chunk/{empties-QXFZXxsa.js.map → empties-D0HcIbna.js.map} +1 -1
  296. package/chunk/{empties-ddtrXdee.js → empties-oqufRVwJ.js} +5 -5
  297. package/chunk/{empties-ddtrXdee.js.map → empties-oqufRVwJ.js.map} +1 -1
  298. package/chunk/{en-GB-iLW1auh9.js → en-GB-V8XaGkaI.js} +5 -5
  299. package/chunk/{en-GB-iLW1auh9.js.map → en-GB-V8XaGkaI.js.map} +1 -1
  300. package/chunk/es-D18tLxcT.js +4 -4
  301. package/chunk/es-ES-7x2bVUQr.js +4 -4
  302. package/chunk/et-udrWMVlD.js +4 -4
  303. package/chunk/eventEmitter-CSG6jR7V.js +4 -4
  304. package/chunk/fa-DgwYULMs.js +4 -4
  305. package/chunk/fi-CkCWFGDC.js +4 -4
  306. package/chunk/fr-BprIFEa8.js +4 -4
  307. package/chunk/fr-CA-DrjICejr.js +4 -4
  308. package/chunk/ga-LaV5ZJgg.js +4 -4
  309. package/chunk/hi-IN-7dtEICYI.js +4 -4
  310. package/chunk/hr-2Bctl997.js +4 -4
  311. package/chunk/hu-BT0z6TPZ.js +4 -4
  312. package/chunk/id-BvyYep3X.js +4 -4
  313. package/chunk/{intl-BykyN0c9.js → intl-Cqlpm1sq.js} +6 -6
  314. package/chunk/intl-Cqlpm1sq.js.map +1 -0
  315. package/chunk/is-DOsKfa80.js +4 -4
  316. package/chunk/it-3dX9AQk7.js +4 -4
  317. package/chunk/iw-5I90wqQ8.js +4 -4
  318. package/chunk/ja-CHdgbMgX.js +4 -4
  319. package/chunk/{jsx-runtime-De-7jy-U.js → jsx-runtime-BnnxqtDz.js} +5 -5
  320. package/chunk/{jsx-runtime-De-7jy-U.js.map → jsx-runtime-BnnxqtDz.js.map} +1 -1
  321. package/chunk/{jsx-runtime-pfrjHhUf.js → jsx-runtime-C6z95NB7.js} +5 -5
  322. package/chunk/{jsx-runtime-pfrjHhUf.js.map → jsx-runtime-C6z95NB7.js.map} +1 -1
  323. package/chunk/kk-BriyNfHL.js +4 -4
  324. package/chunk/ko-DsMaax3V.js +4 -4
  325. package/chunk/lo-CjASRmNr.js +4 -4
  326. package/chunk/lt-DF29E1de.js +4 -4
  327. package/chunk/lv-DlHBZyt-.js +4 -4
  328. package/chunk/{militaryStepHelpers-DNAVjYXU.js → militaryStepHelpers-BqdwwAql.js} +5 -5
  329. package/chunk/{militaryStepHelpers-BfGvMNQt.js.map → militaryStepHelpers-BqdwwAql.js.map} +1 -1
  330. package/chunk/{militaryStepHelpers-BfGvMNQt.js → militaryStepHelpers-VWPmjXpn.js} +5 -5
  331. package/chunk/{militaryStepHelpers-DNAVjYXU.js.map → militaryStepHelpers-VWPmjXpn.js.map} +1 -1
  332. package/chunk/{mocks-Cw8Tvikf.js → mocks-BOj7lDRY.js} +6 -6
  333. package/chunk/{mocks-Cw8Tvikf.js.map → mocks-BOj7lDRY.js.map} +1 -1
  334. package/chunk/{mocks-CYKME7z2.js → mocks-CltQI45M.js} +6 -6
  335. package/chunk/{mocks-CYKME7z2.js.map → mocks-CltQI45M.js.map} +1 -1
  336. package/chunk/ms-B3vDtlFh.js +4 -4
  337. package/chunk/nl-BE-Dw1IGXuF.js +4 -4
  338. package/chunk/nl-Cqkrr5-r.js +4 -4
  339. package/chunk/no-876EdwkX.js +4 -4
  340. package/chunk/{options-DD3L-yYH.js → options-cl-8q9QM.js} +6 -6
  341. package/chunk/options-cl-8q9QM.js.map +1 -0
  342. package/chunk/pl-B_G8s05-.js +4 -4
  343. package/chunk/{programThemeGetters-CLmOMSOr.js → programThemeGetters-DVGRbK4m.js} +5 -5
  344. package/chunk/{programThemeGetters-CLmOMSOr.js.map → programThemeGetters-DVGRbK4m.js.map} +1 -1
  345. package/chunk/{programThemeGetters-CassSHQA.js → programThemeGetters-DzM8X50i.js} +5 -5
  346. package/chunk/{programThemeGetters-CassSHQA.js.map → programThemeGetters-DzM8X50i.js.map} +1 -1
  347. package/chunk/pt-BR-DWj043qk.js +4 -4
  348. package/chunk/pt-DckA3Jnn.js +4 -4
  349. package/chunk/{refs-CQhPE4Xu.js → refs-XWXF03m7.js} +5 -5
  350. package/chunk/{refs-C6-J-L7d.js.map → refs-XWXF03m7.js.map} +1 -1
  351. package/chunk/{refs-C6-J-L7d.js → refs-f1rcjYQG.js} +5 -5
  352. package/chunk/{refs-CQhPE4Xu.js.map → refs-f1rcjYQG.js.map} +1 -1
  353. package/chunk/ro-DukNcWCM.js +4 -4
  354. package/chunk/ru-RkdRQ7qb.js +4 -4
  355. package/chunk/sk-CPBgBtC5.js +4 -4
  356. package/chunk/sl-Cyj9PWmN.js +4 -4
  357. package/chunk/sr-Bm1GVW8m.js +4 -4
  358. package/chunk/strings-DWLVdUcm.js +4 -4
  359. package/chunk/sv-CcMmeZrG.js +4 -4
  360. package/chunk/sw-BPvl1ou6.js +4 -4
  361. package/chunk/ta-BPEH7IlE.js +4 -4
  362. package/chunk/th-Dd912RL5.js +4 -4
  363. package/chunk/tl-J_TdpjQz.js +4 -4
  364. package/chunk/tr-B-GrrJj0.js +4 -4
  365. package/chunk/uk-MohyvT_n.js +4 -4
  366. package/chunk/ur-CDYGpWMm.js +4 -4
  367. package/chunk/{useCollectFieldsEndpoint-CCQEbKu3.js → useCollectFieldsEndpoint-B9buDo08.js} +8 -8
  368. package/chunk/{useCollectFieldsEndpoint-CCQEbKu3.js.map → useCollectFieldsEndpoint-B9buDo08.js.map} +1 -1
  369. package/chunk/{useCollectFieldsEndpoint-DA5iaKdp.js → useCollectFieldsEndpoint-DaS1L_Gt.js} +8 -8
  370. package/chunk/{useCollectFieldsEndpoint-DA5iaKdp.js.map → useCollectFieldsEndpoint-DaS1L_Gt.js.map} +1 -1
  371. package/chunk/{useMetrics-CNmTjZ8z.js → useMetrics-BmW2t4Jt.js} +6 -6
  372. package/chunk/{useMetrics-CNmTjZ8z.js.map → useMetrics-BmW2t4Jt.js.map} +1 -1
  373. package/chunk/{useMetrics-DDpAqYvt.js → useMetrics-D6EfsiR5.js} +6 -6
  374. package/chunk/{useMetrics-DDpAqYvt.js.map → useMetrics-D6EfsiR5.js.map} +1 -1
  375. package/chunk/{validators-BBcVEbKF.js → validators-BvJvqT9j.js} +6 -6
  376. package/chunk/{validators-BBcVEbKF.js.map → validators-BvJvqT9j.js.map} +1 -1
  377. package/chunk/{validators-CG1DHHwp.js → validators-DxgVWbpr.js} +6 -6
  378. package/chunk/{validators-CG1DHHwp.js.map → validators-DxgVWbpr.js.map} +1 -1
  379. package/chunk/vi-CdPTWSev.js +4 -4
  380. package/chunk/zh-DhnjKBoc.js +4 -4
  381. package/chunk/zh-HK-CWKNP_HX.js +4 -4
  382. package/chunk/zu-BpMHS0oR.js +4 -4
  383. package/package.json +1 -1
  384. package/sheerid-install.css +4 -4
  385. package/sheerid-install.js +4 -4
  386. package/sheerid.css +4 -4
  387. package/sheerid.js +45 -45
  388. package/chunk/FormFooterComponent-CetDNO5o.js.map +0 -1
  389. package/chunk/FormFooterComponent-DhQaJMxV.js.map +0 -1
  390. package/chunk/StepCollectMilitaryStatusComponent-DegjipI2.js +0 -9
  391. package/chunk/countryUtils-ZN4SsRTU.js +0 -12
  392. package/chunk/intl-BykyN0c9.js.map +0 -1
  393. package/chunk/options-DD3L-yYH.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intl-Cqlpm1sq.js","names":["t","defaultOptions"],"sources":["../../../node_modules/flat/index.js","../../../packages/shared/src/utils/gaHelpers.ts","../../../packages/shared/src/utils/logger/logger.ts","../../../packages/shared/src/utils/getSafe.ts","../../src/lib/validators/customValidators.ts","../../../packages/shared/src/types/runtimeTypes.ts","../../src/lib/intl/locales.ts","../../src/lib/types/runtimeTypes.ts","../../src/lib/types/assertions.ts","../../src/lib/utils/routing/Url.ts","../../src/constants.ts","../../../node_modules/i18next/dist/esm/i18next.js","../../../node_modules/i18next-resources-to-backend/dist/esm/index.js","../../../node_modules/react-i18next/dist/es/unescape.js","../../../node_modules/react-i18next/dist/es/defaults.js","../../../node_modules/react-i18next/dist/es/i18nInstance.js","../../../node_modules/react-i18next/dist/es/initReactI18next.js","../../../node_modules/clone/clone.js","../../src/lib/utils/objects.ts","../../src/lib/intl/i18next.ts","../../src/lib/GoogleAnalytics/ga.ts","../../../node_modules/immer/dist/immer.esm.mjs","../../src/lib/utils/arrays.ts","../../src/options/options.ts","../../src/lib/intl/localized-messages/en-US.json","../../src/lib/intl/intl.ts"],"sourcesContent":["module.exports = flatten\nflatten.flatten = flatten\nflatten.unflatten = unflatten\n\nfunction isBuffer (obj) {\n return obj &&\n obj.constructor &&\n (typeof obj.constructor.isBuffer === 'function') &&\n obj.constructor.isBuffer(obj)\n}\n\nfunction keyIdentity (key) {\n return key\n}\n\nfunction flatten (target, opts) {\n opts = opts || {}\n\n const delimiter = opts.delimiter || '.'\n const maxDepth = opts.maxDepth\n const transformKey = opts.transformKey || keyIdentity\n const output = {}\n\n function step (object, prev, currentDepth) {\n currentDepth = currentDepth || 1\n Object.keys(object).forEach(function (key) {\n const value = object[key]\n const isarray = opts.safe && Array.isArray(value)\n const type = Object.prototype.toString.call(value)\n const isbuffer = isBuffer(value)\n const isobject = (\n type === '[object Object]' ||\n type === '[object Array]'\n )\n\n const newKey = prev\n ? prev + delimiter + transformKey(key)\n : transformKey(key)\n\n if (!isarray && !isbuffer && isobject && Object.keys(value).length &&\n (!opts.maxDepth || currentDepth < maxDepth)) {\n return step(value, newKey, currentDepth + 1)\n }\n\n output[newKey] = value\n })\n }\n\n step(target)\n\n return output\n}\n\nfunction unflatten (target, opts) {\n opts = opts || {}\n\n const delimiter = opts.delimiter || '.'\n const overwrite = opts.overwrite || false\n const transformKey = opts.transformKey || keyIdentity\n const result = {}\n\n const isbuffer = isBuffer(target)\n if (isbuffer || Object.prototype.toString.call(target) !== '[object Object]') {\n return target\n }\n\n // safely ensure that the key is\n // an integer.\n function getkey (key) {\n const parsedKey = Number(key)\n\n return (\n isNaN(parsedKey) ||\n key.indexOf('.') !== -1 ||\n opts.object\n ) ? key\n : parsedKey\n }\n\n function addKeys (keyPrefix, recipient, target) {\n return Object.keys(target).reduce(function (result, key) {\n result[keyPrefix + delimiter + key] = target[key]\n\n return result\n }, recipient)\n }\n\n function isEmpty (val) {\n const type = Object.prototype.toString.call(val)\n const isArray = type === '[object Array]'\n const isObject = type === '[object Object]'\n\n if (!val) {\n return true\n } else if (isArray) {\n return !val.length\n } else if (isObject) {\n return !Object.keys(val).length\n }\n }\n\n target = Object.keys(target).reduce(function (result, key) {\n const type = Object.prototype.toString.call(target[key])\n const isObject = (type === '[object Object]' || type === '[object Array]')\n if (!isObject || isEmpty(target[key])) {\n result[key] = target[key]\n return result\n } else {\n return addKeys(\n key,\n result,\n flatten(target[key], opts)\n )\n }\n }, {})\n\n Object.keys(target).forEach(function (key) {\n const split = key.split(delimiter).map(transformKey)\n let key1 = getkey(split.shift())\n let key2 = getkey(split[0])\n let recipient = result\n\n while (key2 !== undefined) {\n if (key1 === '__proto__') {\n return\n }\n\n const type = Object.prototype.toString.call(recipient[key1])\n const isobject = (\n type === '[object Object]' ||\n type === '[object Array]'\n )\n\n // do not write over falsey, non-undefined values if overwrite is false\n if (!overwrite && !isobject && typeof recipient[key1] !== 'undefined') {\n return\n }\n\n if ((overwrite && !isobject) || (!overwrite && recipient[key1] == null)) {\n recipient[key1] = (\n typeof key2 === 'number' &&\n !opts.object ? [] : {}\n )\n }\n\n recipient = recipient[key1]\n if (split.length > 0) {\n key1 = getkey(split.shift())\n key2 = getkey(split[0])\n }\n }\n\n // unflatten again for 'messy objects'\n recipient[key1] = unflatten(target[key], opts)\n })\n\n return result\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/runtimeTypes\";\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 as any).NREUM && !doNotTrack();\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 \"../gaHelpers\";\n\nexport type LogLevel = \"info\" | \"log\" | \"warn\" | \"error\" | \"silent\";\n\nlet logLevel = 4; // default\nlet prefix = \"\";\nconst logLevels = {\n info: 1,\n log: 2,\n warn: 3,\n error: 4,\n silent: 5,\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 getUsefulState: () => Record<string, any> = () => ({});\n\nconst isError = (e: any) => e && e.stack && e.message;\n\nconst warn = (...args: any[]) => {\n if (logLevel <= 3) {\n console.warn(`%c${prefix} warn`, `background: ${colors.warn};${standardStyles}`, ...args);\n }\n};\n\nconst log = (...args: any[]) => {\n if (logLevel <= 2) {\n console.log(`%c${prefix} log`, `background: ${colors.log};${standardStyles}`, ...args);\n }\n};\n\nconst info = (...args: any[]) => {\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: Error | undefined;\n if (typeof err === \"string\") errorObj = new Error(err);\n if (isError(err)) errorObj = err as Error;\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 as any).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 App State (formerly Redux)\n try {\n const stateAttributes = getUsefulState();\n usefulAttributes = {\n ...usefulAttributes,\n ...stateAttributes,\n ...additionalUsefulAttributes,\n };\n } catch (e) {\n if (isNewRelicAvailable()) {\n (window as any).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 App State\n\n if (isNewRelicAvailable()) {\n (window as any).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 as any).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 // @ts-ignore\n if (!logLevels.hasOwnProperty(desiredLogLevel)) {\n throw new Error(`Unknown logLevel '${desiredLogLevel}'`);\n }\n\n // @ts-ignore\n logLevel = logLevels[desiredLogLevel];\n console.log(\n `%c${prefix} log level set to ${desiredLogLevel}`,\n // @ts-ignore\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: (getStateFn: () => Record<string, any>) => {\n getUsefulState = getStateFn;\n },\n};\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","import { logger } from \"@jslib/shared/utils/logger\";\n\nimport { type Validator, type ExtendedFieldId } from \"../types/types\";\n\nlet customValidators = {};\nlet customValidatorFields: ExtendedFieldId[] = [];\n\nexport const setCustomValidator = (validatorField: ExtendedFieldId, newValidator: Validator) => {\n logger.log(\n `customValidator registering \\n${newValidator}\\n for custom field '${validatorField}'`,\n );\n customValidators[validatorField] = newValidator;\n customValidatorFields.push(validatorField);\n};\n\nexport const getCustomValidator = (validatorField: ExtendedFieldId): Validator => {\n if (customValidators[validatorField]) {\n logger.log(`getCustomValidator returning '${validatorField}'`);\n return customValidators[validatorField];\n }\n logger.error(\n `Custom validator for field '${validatorField}' does not exist.\n Has a custom validator been registered using the setCustomValidator method?`,\n \"getCustomValidator\",\n );\n return null;\n};\n\nexport const customValidatorExists = (validatorField: ExtendedFieldId): boolean =>\n customValidatorFields.indexOf(validatorField) > -1;\n\nexport const removeCustomValidator = (validatorField: ExtendedFieldId) => {\n delete customValidators[validatorField];\n\n const validatorIndex = customValidatorFields.indexOf(validatorField);\n\n if (validatorIndex !== -1) {\n customValidatorFields.splice(validatorIndex, 1);\n } else {\n logger.error(\n `Custom validator for field '${validatorField}' has not been removed.`,\n \"removeCustomValidator\",\n );\n }\n};\n\nexport const getCustomValidatorFields = (): ExtendedFieldId[] => customValidatorFields;\n\nexport const resetCustomValidators = () => {\n customValidators = {};\n customValidatorFields = [];\n logger.info(\"Custom validators have been reset\");\n};\n","/* ==========================================================================\n * NOTE: These types are brought over from jslib/types/runtimetypes.\n * Other types should be brought over when they need to be shared.\n * ========================================================================== */\n\nexport enum VerificationStepsEnum {\n collectStudentPersonalInfo = \"collectStudentPersonalInfo\",\n collectTeacherPersonalInfo = \"collectTeacherPersonalInfo\",\n collectMemberPersonalInfo = \"collectMemberPersonalInfo\",\n collectMilitaryStatus = \"collectMilitaryStatus\",\n collectActiveMilitaryPersonalInfo = \"collectActiveMilitaryPersonalInfo\",\n collectInactiveMilitaryPersonalInfo = \"collectInactiveMilitaryPersonalInfo\",\n collectSeniorPersonalInfo = \"collectSeniorPersonalInfo\",\n collectAgePersonalInfo = \"collectAgePersonalInfo\",\n collectFirstResponderPersonalInfo = \"collectFirstResponderPersonalInfo\",\n collectMedicalProfessionalPersonalInfo = \"collectMedicalProfessionalPersonalInfo\",\n collectEmployeePersonalInfo = \"collectEmployeePersonalInfo\",\n collectSocialSecurityNumber = \"collectSocialSecurityNumber\",\n cancelSocialSecurityNumber = \"cancelSocialSecurityNumber\",\n collectDriverLicensePersonalInfo = \"collectDriverLicensePersonalInfo\",\n collectGeneralIdentityPersonalInfo = \"collectGeneralIdentityPersonalInfo\",\n collectHybridIdentityPersonalInfo = \"collectHybridIdentityPersonalInfo\",\n collectLicensedProfessionalPersonalInfo = \"collectLicensedProfessionalPersonalInfo\",\n collectMoverPersonalInfo = \"collectMoverPersonalInfo\",\n collectLowIncomePersonalInfo = \"collectLowIncomePersonalInfo\",\n collectIdentifier = \"collectIdentifier\",\n collectPersonalInfo = \"collectPersonalInfo\",\n docUpload = \"docUpload\",\n pending = \"pending\",\n docReviewLimitExceeded = \"docReviewLimitExceeded\",\n success = \"success\",\n error = \"error\",\n sso = \"sso\",\n smsLoop = \"smsLoop\",\n emailLoop = \"emailLoop\",\n emailLoopCollectOrganizationEmail = \"emailLoopCollectOrganizationEmail\",\n completeAuthentication = \"completeAuthentication\",\n cancelEmailLoop = \"cancelEmailLoop\",\n idCheckLoop = \"idCheckLoop\",\n consolation = \"consolation\",\n override = \"override\",\n cancelDocUpload = \"cancelDocUpload\",\n missingRequiredMetadata = \"missingRequiredMetadata\",\n missingRequiredExternalId = \"missingRequiredExternalId\",\n thirdPartyLoop = \"thirdPartyLoop\",\n}\nexport const VerificationSteps = Object.values(VerificationStepsEnum) as any; // For runtime checks\n\nexport const CollectInfoSteps = [\n VerificationStepsEnum.collectStudentPersonalInfo,\n VerificationStepsEnum.collectTeacherPersonalInfo,\n VerificationStepsEnum.collectMemberPersonalInfo,\n VerificationStepsEnum.collectMilitaryStatus,\n VerificationStepsEnum.collectActiveMilitaryPersonalInfo,\n VerificationStepsEnum.collectInactiveMilitaryPersonalInfo,\n VerificationStepsEnum.collectSeniorPersonalInfo,\n VerificationStepsEnum.collectAgePersonalInfo,\n VerificationStepsEnum.collectFirstResponderPersonalInfo,\n VerificationStepsEnum.collectMedicalProfessionalPersonalInfo,\n VerificationStepsEnum.collectEmployeePersonalInfo,\n VerificationStepsEnum.collectDriverLicensePersonalInfo,\n VerificationStepsEnum.collectGeneralIdentityPersonalInfo,\n VerificationStepsEnum.collectHybridIdentityPersonalInfo,\n VerificationStepsEnum.collectLicensedProfessionalPersonalInfo,\n VerificationStepsEnum.collectMoverPersonalInfo,\n VerificationStepsEnum.collectLowIncomePersonalInfo,\n VerificationStepsEnum.collectIdentifier,\n VerificationStepsEnum.collectPersonalInfo,\n] as const;\n// eslint-disable-next-line no-redeclare -- this works fine if it's a type and a value\nexport type CollectInfoSteps = (typeof CollectInfoSteps)[number];\n\nexport enum MockStepsEnum {\n loading = \"loading\",\n collect = \"collect\",\n}\nconst unMockableSteps: VerificationStepsEnum[] = [\n VerificationStepsEnum.cancelDocUpload,\n VerificationStepsEnum.cancelEmailLoop,\n VerificationStepsEnum.cancelSocialSecurityNumber,\n VerificationStepsEnum.collectMilitaryStatus, // currently not a useful step to mock\n];\n\nexport const MockSteps = [\n ...(Object.values(VerificationStepsEnum).filter(\n (step) => !unMockableSteps.includes(step),\n ) as any),\n ...(Object.values(MockStepsEnum) as any),\n];\n\nexport function isCollectStep(step: unknown): step is CollectInfoSteps {\n return CollectInfoSteps.includes(step as CollectInfoSteps);\n}\n\nexport interface NavigatorBeta extends Navigator {\n globalPrivacyControl: boolean;\n}\n","/**\n * @description List of locales supported by the library, for compile time checks.\n */\nexport const DefaultLocales = [\n \"ar\",\n \"bg\",\n \"bn-IN\",\n \"cs\",\n \"da\",\n \"de\",\n \"el\",\n \"en-GB\",\n \"en-US\",\n \"es-ES\",\n \"es\",\n \"et\",\n \"fa\",\n \"fi\",\n \"fr-CA\",\n \"fr\",\n \"ga\",\n \"hi-IN\",\n \"hr\",\n \"hu\",\n \"id\",\n \"is\",\n \"it\",\n \"iw\",\n \"ja\",\n \"kk\",\n \"ko\",\n \"lo\",\n \"lt\",\n \"lv\",\n \"ms\",\n \"nl\",\n \"nl-BE\",\n \"no\",\n \"pl\",\n \"pt-BR\",\n \"pt\",\n \"ro\",\n \"ru\",\n \"sk\",\n \"sl\",\n \"sr\",\n \"sv\",\n \"sw\",\n \"ta\",\n \"tl\",\n \"uk\",\n \"ur\",\n \"vi\",\n \"th\",\n \"tr\",\n \"zh-HK\",\n \"zh\",\n \"zu\",\n] as const;\n\n/**\n * @description Mutable list of locales supported by the library, for runtime checks.\n */\nexport const Locales = [...DefaultLocales];\n","/**\n * ============================================================================\n * NOTE: Some types have moved to the @jslib/shared package.\n * ============================================================================\n */\nimport { VerificationStepsEnum } from \"@jslib/shared/runtimeTypes\";\nimport { logger } from \"@jslib/shared/utils/logger\";\n\nimport { Locales } from \"../intl/locales\";\n\nimport {\n type FirstResponderStatus,\n type LowIncomeStatus,\n type MedicalProfessionalStatus,\n type MilitaryStatus,\n type RecentMoverStatus,\n type Segment,\n type SuccessResponse,\n type VerificationResponse,\n type VerificationStep,\n} from \"./types\";\n\nexport * from \"@jslib/shared/runtimeTypes\";\nexport { Locales };\n\n/**\n * @description List of locales supported by SheerID\n */\nexport type Locale = (typeof Locales)[number];\n\nexport const registerAdditionalLocales = (locales: Locale[]): void => {\n logger.info(`Registering additional locales ${locales.join(\", \")}`);\n (Locales as string[]).push(...locales);\n};\n\nexport function isSuccessResponse(\n response: VerificationResponse | null,\n): response is SuccessResponse {\n return response?.currentStep === \"success\";\n}\n\nexport enum TryAgainStepsEnum {\n docUpload = \"docUpload\",\n pending = \"pending\",\n error = \"error\",\n}\nexport const TryAgainSteps = Object.values(TryAgainStepsEnum) as any; // For runtime checks\n\nexport enum MockStepsEnum {\n loading = \"loading\",\n collect = \"collect\",\n}\n\n/**\n * There are a few \"steps\" that aren't actually steps but are used to point at\n * the correct submission endpoint. This is a failure of modeling but until we\n * unwind that we don't want these steps to be \"mockable\"\n */\nconst unMockableSteps: VerificationStep[] = [\n \"cancelDocUpload\",\n \"cancelEmailLoop\",\n \"cancelSocialSecurityNumber\",\n \"collectMilitaryStatus\", // currently not a useful step to mock\n];\n\nexport const MockSteps = [\n ...(Object.values(VerificationStepsEnum).filter(\n (step) => !unMockableSteps.includes(step),\n ) as any),\n ...(Object.values(MockStepsEnum) as any),\n];\n\nexport enum RewardDisplayEnum {\n TEXT = \"TEXT\",\n QR = \"QR\",\n PDF417 = \"PDF417\",\n UPC_A = \"UPC_A\",\n ITF = \"ITF\",\n CODE_128 = \"CODE_128\",\n}\n\nexport enum SegmentToStepMap {\n student = \"collectStudentPersonalInfo\",\n military = \"collectMilitaryStatus\",\n teacher = \"collectTeacherPersonalInfo\",\n firstResponder = \"collectFirstResponderPersonalInfo\",\n senior = \"collectSeniorPersonalInfo\",\n age = \"collectAgePersonalInfo\",\n medical = \"collectMedicalProfessionalPersonalInfo\",\n recentMover = \"collectMoverPersonalInfo\",\n licensedProfessional = \"collectLicensedProfessionalPersonalInfo\",\n identity = \"collectGeneralIdentityPersonalInfo\",\n member = \"collectMemberPersonalInfo\",\n}\n\nexport enum SegmentEnum {\n STUDENT = \"student\",\n MILITARY = \"military\",\n TEACHER = \"teacher\",\n MEMBER = \"member\",\n SENIOR = \"senior\",\n AGE = \"age\",\n FIRST_RESPONDER = \"firstResponder\",\n MEDICAL = \"medical\",\n EMPLOYMENT = \"employment\",\n IDENTITY = \"identity\",\n LICENSED_PROFESSIONAL = \"licensedProfessional\",\n RECENT_MOVER = \"recentMover\",\n LOW_INCOME = \"lowIncome\",\n}\nexport const Segments = Object.values(SegmentEnum) as Array<Segment>; // For runtime checks\n\nexport enum SubSegmentEnum {\n ACTIVE_DUTY = \"activeDuty\",\n VETERAN = \"veteran\",\n RESERVIST = \"reservist\",\n MILITARY_RETIREE = \"retiree\",\n MILITARY_FAMILY = \"militaryFamily\",\n GOLD_STAR_FAMILY = \"goldStarFamily\",\n FIREFIGHTER = \"fireFighter\",\n POLICE = \"police\",\n EMT = \"emt\",\n NURSE = \"nurse\",\n DRIVER_LICENSE = \"driverLicense\",\n GENERAL_IDENTITY = \"generalIdentity\",\n HYBRID_IDENTITY = \"hybridIdentity\",\n HOME_BUYER = \"homeBuyer\",\n OTHER_MOVER = \"otherMover\",\n LICENSED_COSMETOLOGIST = \"licensedCosmetologist\",\n LICENSED_REAL_ESTATE_AGENT = \"licensedRealEstateAgent\",\n VETERINARIAN = \"veterinarian\",\n SNAP_BENEFITS = \"snapBenefits\",\n OTHER_GOVERNMENT_ASSISTANCE = \"otherGovernmentAssistance\",\n CHILD_CARE_WORKER = \"childCareWorker\",\n LIBRARIAN = \"librarian\",\n INTERIOR_DESIGNER = \"interiorDesigner\",\n ARCHITECT = \"architect\",\n GENERAL_CONTRACTOR = \"generalContractor\",\n NUTRITION_PROFESSIONAL = \"nutritionProfessional\",\n}\nexport const SubSegments = Object.values(SubSegmentEnum) as any; // For runtime checks\n\nexport const MilitaryStatusDefaultMessagesEnum: {\n [k in MilitaryStatus]: string;\n} = {\n ACTIVE_DUTY: \"Active Duty\",\n MILITARY_RETIREE: \"Military Retiree\",\n RESERVIST: \"Reservist or National Guard\",\n VETERAN: \"Military Veteran or Retiree\",\n MILITARY_FAMILY: \"Military Family\",\n GOLD_STAR_FAMILY: \"Gold Star Family\",\n} as const;\n\n/**\n * @deprecated Do org search with `?tag={status}`, instead.\n * Kept here for es6 export, for now\n * e.g. ?tag=RESERVIST&country=US\n */\nexport const militaryReservistOrgNames = [\n // U.S.:\n \"Air Force Reserve\",\n \"Air National Guard\",\n \"Army Reserve\",\n \"Army National Guard\",\n \"Coast Guard Reserve\",\n \"Marine Corps Forces Reserve\",\n \"Navy Reserve\",\n // U.K.:\n \"British Army Reserve\",\n \"Royal Air Force Reserve\",\n \"His Majesty's Naval Service Reserve\",\n // Canada:\n \"Naval Reserve\",\n \"Canadian Army Reserve\",\n \"Royal Canadian Air Force Reserve\",\n];\n\nexport const FirstResponderStatusDefaultMessagesEnum: {\n [k in FirstResponderStatus]: string;\n} = {\n FIREFIGHTER: \"Firefighter\",\n POLICE: \"Police\",\n EMT: \"EMT\",\n SEARCH_AND_RESCUE: \"Search and Rescue\",\n} as const;\n\nexport const MedicalProfessionalStatusDefaultMessagesEnum: {\n [k in MedicalProfessionalStatus]: string;\n} = {\n NURSE: \"Nurse\",\n DOCTOR: \"Doctor\",\n OTHER_HEALTH_WORKER: \"Other Health Worker\",\n DENTIST: \"Dentist\",\n PHARMACIST: \"Pharmacist\",\n} as const;\n\nexport const RecentMoverStatusDefaultMessagesEnum: {\n [k in RecentMoverStatus]: string;\n} = {\n HOME_BUYER: \"Home Buyer\",\n OTHER_MOVER: \"Other Mover\",\n} as const;\n\nexport const LowIncomeStatusDefaultMessagesEnum: {\n [k in LowIncomeStatus]: string;\n} = {\n SNAP_BENEFITS: \"Snap Benefits Recipient\",\n OTHER_GOVERNMENT_ASSISTANCE: \"Other Government Assistance Recipient\",\n COMMUNITY_ELIGIBILITY_PROVISION: \"CEP (Community Eligibility Provision, Title 1/LAP)\",\n} as const;\n\nexport const MilitaryStatusDefaultMessages = Object.values(\n MilitaryStatusDefaultMessagesEnum,\n) as any; // For runtime checks\nexport const FirstResponderStatusDefaultMessages = Object.values(\n FirstResponderStatusDefaultMessagesEnum,\n) as any; // For runtime checks\nexport const MedicalStatusdefaultMessages = Object.values(\n MedicalProfessionalStatusDefaultMessagesEnum,\n) as any; // For runtime checks\nexport const RecentMoverStatusDefaultMessages = Object.values(\n RecentMoverStatusDefaultMessagesEnum,\n) as any; // For runtime checks\nexport const LowIncomeStatusDefaultMessages = Object.values(\n LowIncomeStatusDefaultMessagesEnum,\n) as any; // For runtime checks\n\nexport enum FieldIdEnum {\n firstName = \"firstName\",\n lastName = \"lastName\",\n memberId = \"memberId\",\n organization = \"organization\",\n birthDate = \"birthDate\",\n email = \"email\",\n phoneNumber = \"phoneNumber\",\n postalCode = \"postalCode\",\n address1 = \"address1\",\n city = \"city\",\n country = \"country\",\n state = \"state\",\n dischargeDate = \"dischargeDate\",\n activeDutyStartDate = \"activeDutyStartDate\",\n docUpload = \"docUpload\",\n status = \"status\",\n statuses = \"statuses\",\n marketConsentValue = \"marketConsentValue\",\n socialSecurityNumber = \"socialSecurityNumber\",\n carrierConsentValue = \"carrierConsentValue\",\n driverLicenseNumber = \"driverLicenseNumber\",\n ebtCardNumber = \"ebtCardNumber\",\n overrideCode = \"overrideCode\",\n organizationEmail = \"organizationEmail\",\n authenticationCode = \"authenticationCode\",\n cvecNumber = \"cvecNumber\",\n captchaToken = \"captchaToken\",\n}\nexport const FieldIds = Object.values(FieldIdEnum) as any; // For runtime checks\n\nexport enum HookNameEnum {\n ON_VERIFICATION_READY = \"ON_VERIFICATION_READY\",\n ON_VERIFICATION_SUCCESS = \"ON_VERIFICATION_SUCCESS\",\n ON_VERIFICATION_STEP_CHANGE = \"ON_VERIFICATION_STEP_CHANGE\",\n ON_FORM_LOCALE_CHANGE = \"ON_FORM_LOCALE_CHANGE\",\n}\nexport const HookNames = Object.values(HookNameEnum) as any;\n\nexport enum StateEnum {\n AK = \"AK\",\n AL = \"AL\",\n AR = \"AR\",\n AZ = \"AZ\",\n AS = \"AS\",\n CA = \"CA\",\n CO = \"CO\",\n CT = \"CT\",\n DC = \"DC\",\n DE = \"DE\",\n FL = \"FL\",\n GA = \"GA\",\n GU = \"GU\",\n HI = \"HI\",\n IA = \"IA\",\n ID = \"ID\",\n IL = \"IL\",\n IN = \"IN\",\n KS = \"KS\",\n KY = \"KY\",\n LA = \"LA\",\n MA = \"MA\",\n MD = \"MD\",\n ME = \"ME\",\n MI = \"MI\",\n MN = \"MN\",\n MO = \"MO\",\n MS = \"MS\",\n MT = \"MT\",\n NC = \"NC\",\n ND = \"ND\",\n NE = \"NE\",\n NH = \"NH\",\n NJ = \"NJ\",\n NM = \"NM\",\n NV = \"NV\",\n NY = \"NY\",\n OH = \"OH\",\n OK = \"OK\",\n OR = \"OR\",\n PA = \"PA\",\n PR = \"PR\",\n RI = \"RI\",\n SC = \"SC\",\n SD = \"SD\",\n TN = \"TN\",\n TX = \"TX\",\n UT = \"UT\",\n VA = \"VA\",\n VI = \"VI\",\n VT = \"VT\",\n WA = \"WA\",\n WI = \"WI\",\n WV = \"WV\",\n WY = \"WY\",\n}\n\nexport enum OnfidoReportNames {\n DOCUMENT = \"document\",\n FACIAL_SIMILARITY_MOTION = \"facial_similarity_motion\",\n}\n\nexport enum OnfidoDocumentTypes {\n PASSPORT = \"passport\",\n NATIONAL_IDENTITY_CARD = \"national_identity_card\",\n DRIVING_LICENCE = \"driving_licence\",\n RESIDENCE_PERMIT = \"residence_permit\",\n}\n\nexport enum IdCheckLoopServiceType {\n ID_CHECK = \"ID_CHECK\",\n ID_CHECK_LIVENESS = \"ID_CHECK_LIVENESS\",\n}\n\nexport enum ThirdPartyLoopProvider {\n SIGNZY = \"signzy\",\n}\n","/**\n * assertions.ts\n *\n * Useful for runtime checking. Either pass a valid arg, or bail out by throwing an Error.\n */\nimport { getCustomValidatorFields } from \"../validators/customValidators\";\n\nimport {\n type MockStep,\n type VerificationStep,\n type Segment,\n type DatabaseId,\n type Locale,\n type FieldId,\n type HookName,\n type Hook,\n type ConversionRequest,\n} from \"./types\";\nimport {\n MockSteps,\n VerificationSteps,\n Segments,\n FieldIds,\n TryAgainSteps,\n HookNames,\n Locales,\n} from \"./runtimeTypes\";\n\nexport const assertValidVerificationStepName = (candidate: VerificationStep) => {\n // TODO - only in dev mode\n if (VerificationSteps.indexOf(candidate) < 0) {\n throw new Error(`Expected valid verification step name but received \"${candidate}\".`);\n }\n};\n\nexport const assertValidMockStepName = (candidate: MockStep) => {\n // TODO - only in dev mode\n if (MockSteps.indexOf(candidate) < 0) {\n throw new Error(`Expected valid verification step name but received \"${candidate}\".`);\n }\n};\n\nexport const assertValidSegmentName = (candidate: Segment) => {\n // TODO - only in dev mode\n if (Segments.indexOf(candidate) < 0) {\n throw new Error(`Expected valid segment name but received \"${candidate}\".`);\n }\n};\n\nexport const assertValidLocale = (locale: Locale) => {\n if (!isValidLocale(locale)) {\n throw new Error(`Invalid locale ${locale}, expected one of ${Locales.join(\", \")}`);\n }\n};\n\nexport const isValidLocale = (locale: any): locale is Locale => Locales.indexOf(locale) > -1;\n\nexport const assertValidHtmlElement = (element: HTMLElement) => {\n if (!(element && element.nodeType === Node.ELEMENT_NODE)) {\n throw new Error(\n `Expected argument of type Node.ELEMENT_NODE but received \"${typeof element} ${\n element.nodeType\n }\"`,\n );\n }\n};\n\nexport const assertValidProgramId = (programId: DatabaseId) => {\n assertValidDatabaseId(programId);\n};\n\nexport const assertValidFieldId = (candidate: FieldId | string) => {\n const customValidatorFields = getCustomValidatorFields();\n if (FieldIds.indexOf(candidate) < 0 && customValidatorFields.indexOf(candidate) < 0) {\n throw new Error(`Expected valid field ID but received ${candidate}.\n Valid FieldIds are [${FieldIds.join(\", \")}, ${customValidatorFields.join(\", \")}]`);\n }\n};\n\nexport const assertValidTryAgainStep = (candidate: VerificationStep) => {\n if (TryAgainSteps.indexOf(candidate) < 0) {\n throw new Error(\n `Expected valid try again step but received ${candidate}. Valid TryAgainSteps are [${TryAgainSteps.join(\n \", \",\n )}]`,\n );\n }\n};\n\nexport const assertValidHook = (hook: Hook) => {\n assertValidHookName(hook.name);\n assertValidFunction(hook.callback);\n};\n\nexport const isValidHookName = (candidate: unknown): candidate is HookName =>\n HookNames.includes(candidate);\n\nexport function assertValidHookName(candidate: unknown): asserts candidate is HookName {\n if (!isValidHookName(candidate)) {\n throw new Error(\n `Expected valid hook name but received ${candidate}. Valid HookNames are [${HookNames.join(\n \", \",\n )}]`,\n );\n }\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\nexport const assertValidTrackingId = (candidate: string) => {\n if (typeof candidate !== \"string\") {\n throw new Error(\n `Expected trackingId to be a string, but received ${typeof candidate} instead.`,\n );\n }\n if (candidate.length < 1) {\n throw new Error(\"Expected trackingId string length greater than 0.\");\n }\n};\n\nexport const assertValidConversionRequest = (candidate: ConversionRequest) => {\n if (typeof candidate !== \"object\") {\n throw new Error(\n `Expected conversion request to be an object, but received ${typeof candidate} instead.`,\n );\n }\n if (candidate.hasOwnProperty(\"amount\") && typeof candidate.amount !== \"number\") {\n throw new Error('Expected conversion request property \"amount\" to have type number.');\n }\n};\n\nexport const assertValidDatabaseId = (candidate: string) => {\n const validId = /^[0-9a-fA-F]{24}$/;\n if (!validId.test(candidate)) {\n throw new Error(`Invalid databaseId \"${candidate}\". Expected a 24-digit hexadecimal string.`);\n }\n};\n","import { logger } from \"@jslib/shared/utils/logger\";\n\nimport { type DatabaseId } from \"../../types/types\";\n\nexport const ensureTrailingSlash = (url: string) => url.replace(/\\/?$/, \"/\");\n\nexport const getQueryParamsFromUrl = (url?: string) => {\n const newUrl = new URL(url || window.location.toString());\n return new URLSearchParams(newUrl.search.slice(1));\n};\n\nexport const getQueryParam = (paramKey: string, url?: string) =>\n getQueryParamsFromUrl(url).get(paramKey);\n\nexport const getVerificationIdFromQueryString = (queryString: string): DatabaseId => {\n const verificationIdQueryParameter: string = \"verificationId\";\n const queryStringParameters: URLSearchParams = new URLSearchParams(queryString);\n const verificationId: DatabaseId = queryStringParameters.get(verificationIdQueryParameter);\n if (typeof verificationId === \"string\" && verificationId.length === 0) {\n return null;\n }\n return verificationId;\n};\n\nexport const getTrackingIdFromQueryString = (queryString: string): string => {\n const trackingIdQueryParameter: string = \"trackingId\";\n const queryStringParameters: URLSearchParams = new URLSearchParams(queryString);\n const trackingId: DatabaseId = queryStringParameters.get(trackingIdQueryParameter);\n if (typeof trackingId === \"string\" && trackingId.length === 0) {\n return null;\n }\n return trackingId;\n};\n\nexport const getDomainFromUrl = (url: string) => {\n let domain = url;\n try {\n domain = new URL(url).hostname;\n } catch (e) {\n logger.warn(e);\n }\n return domain.replace(/(www\\.)?/, \"\");\n};\n\nexport const redirectTo = (path: string) => {\n document.location.href = path;\n};\n\nexport const getDomainFromEmail = (email: string) => {\n const emailAtIndex = email.indexOf(\"@\");\n if (emailAtIndex === -1) {\n logger.error(\"Invalid email address\");\n }\n return email.slice(emailAtIndex + 1);\n};\n","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_ERRORDETAILID_OVERRIDE: string = \"mockErrorDetailId\";\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_SSO_METHOD: string = \"ssoMethod\";\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\";\nexport const QUERY_STRING_CAPTCHA_ERROR_OVERRIDE: string = \"mockCaptchaState\";\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\";\nexport const CLOUDFLARE_PRIVACY_POLICY_URL = \"https://www.cloudflare.com/privacypolicy/\";\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 isString = obj => typeof obj === 'string';\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return '' + object;\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || isString(object);\nconst getLastOfPath = (object, path, Empty) => {\n const stack = !isString(path) ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last?.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n if (!Object.prototype.hasOwnProperty.call(obj, k)) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (isString(target[prop]) || target[prop] instanceof String || isString(source[prop]) || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nvar _entityMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;'\n};\nconst escape = data => {\n if (isString(data)) {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = (obj, path, keySeparator = '.') => {\n if (!obj) return undefined;\n if (obj[path]) {\n if (!Object.prototype.hasOwnProperty.call(obj, path)) return undefined;\n return obj[path];\n }\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => code?.replace(/_/g, '-');\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n console?.[type]?.apply?.(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger, options = {}) {\n this.init(concreteLogger, options);\n }\n init(concreteLogger, options = {}) {\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log(...args) {\n return this.forward(args, 'log', '', true);\n }\n warn(...args) {\n return this.forward(args, 'warn', '', true);\n }\n error(...args) {\n return this.forward(args, 'error', '');\n }\n deprecate(...args) {\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (isString(args[0])) args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event, ...args) {\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data, options = {\n ns: ['translation'],\n defaultNS: 'translation'\n }) {\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key, options = {}) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (isString(key) && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || !isString(key)) return result;\n return deepFind(this.data?.[lng]?.[ns], key, keySeparator);\n }\n addResource(lng, ns, key, value, options = {\n silent: false\n }) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources, options = {\n silent: false\n }) {\n for (const m in resources) {\n if (isString(resources[m]) || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite, options = {\n silent: false,\n skipCopy: false\n }) {\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n value = this.processors[processor]?.process(value, key, options, translator) ?? value;\n });\n return value;\n }\n};\n\nconst PATH_KEY = Symbol('i18next/PATH_KEY');\nfunction createProxy() {\n const state = [];\n const handler = Object.create(null);\n let proxy;\n handler.get = (target, key) => {\n proxy?.revoke?.();\n if (key === PATH_KEY) return state;\n state.push(key);\n proxy = Proxy.revocable(target, handler);\n return proxy.proxy;\n };\n return Proxy.revocable(Object.create(null), handler).proxy;\n}\nfunction keysFromSelector(selector, opts) {\n const {\n [PATH_KEY]: path\n } = selector(createProxy());\n const keySeparator = opts?.keySeparator ?? '.';\n const nsSeparator = opts?.nsSeparator ?? ':';\n if (path.length > 1 && nsSeparator) {\n const ns = opts?.ns;\n const nsArray = Array.isArray(ns) ? ns : null;\n if (nsArray && nsArray.length > 1 && nsArray.slice(1).includes(path[0])) {\n return `${path[0]}${nsSeparator}${path.slice(1).join(keySeparator)}`;\n }\n }\n return path.join(keySeparator);\n}\n\nconst checkedLoadedFor = {};\nconst shouldHandleAsObject = res => !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\nclass Translator extends EventEmitter {\n constructor(services, options = {}) {\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key, o = {\n interpolation: {}\n }) {\n const opt = {\n ...o\n };\n if (key == null) return false;\n const resolved = this.resolve(key, opt);\n if (resolved?.res === undefined) return false;\n const isObject = shouldHandleAsObject(resolved.res);\n if (opt.returnObjects === false && isObject) {\n return false;\n }\n return true;\n }\n extractFromKey(key, opt) {\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n let namespaces = opt.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !opt.keySeparator && !this.options.userDefinedNsSeparator && !opt.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n translate(keys, o, lastKey) {\n let opt = typeof o === 'object' ? {\n ...o\n } : o;\n if (typeof opt !== 'object' && this.options.overloadTranslationOptionHandler) {\n opt = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof opt === 'object') opt = {\n ...opt\n };\n if (!opt) opt = {};\n if (keys == null) return '';\n if (typeof keys === 'function') keys = keysFromSelector(keys, {\n ...this.options,\n ...opt\n });\n if (!Array.isArray(keys)) keys = [String(keys)];\n keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, {\n ...this.options,\n ...opt\n }) : String(k));\n const returnDetails = opt.returnDetails !== undefined ? opt.returnDetails : this.options.returnDetails;\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], opt);\n const namespace = namespaces[namespaces.length - 1];\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const lng = opt.lng || this.language;\n const appendNamespaceToCIMode = opt.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng?.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, opt);\n let res = resolved?.res;\n const resUsedKey = resolved?.usedKey || key;\n const resExactUsedKey = resolved?.exactUsedKey || key;\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = opt.joinArrays !== undefined ? opt.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const hasDefaultValue = Translator.hasDefaultValue(opt);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, opt) : '';\n const defaultValueSuffixOrdinalFallback = opt.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const defaultValue = needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] || opt[`defaultValue${defaultValueSuffix}`] || opt[`defaultValue${defaultValueSuffixOrdinalFallback}`] || opt.defaultValue;\n let resForObjHndl = res;\n if (handleAsObjectInI18nFormat && !res && hasDefaultValue) {\n resForObjHndl = defaultValue;\n }\n const handleAsObject = shouldHandleAsObject(resForObjHndl);\n const resType = Object.prototype.toString.apply(resForObjHndl);\n if (handleAsObjectInI18nFormat && resForObjHndl && handleAsObject && noObject.indexOf(resType) < 0 && !(isString(joinArrays) && Array.isArray(resForObjHndl))) {\n if (!opt.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, resForObjHndl, {\n ...opt,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(resForObjHndl);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in resForObjHndl) {\n if (Object.prototype.hasOwnProperty.call(resForObjHndl, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n if (hasDefaultValue && !res) {\n copy[m] = this.translate(deepKey, {\n ...opt,\n defaultValue: shouldHandleAsObject(defaultValue) ? defaultValue[m] : undefined,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n } else {\n copy[m] = this.translate(deepKey, {\n ...opt,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n }\n if (copy[m] === deepKey) copy[m] = resForObjHndl[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && isString(joinArrays) && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, opt, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = opt.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...opt,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, opt.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(opt.lng || this.language);\n } else {\n lngs.push(opt.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, opt);\n } else if (this.backendConnector?.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, opt);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, opt);\n if (needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, opt[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, opt, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) {\n res = `${namespace}${nsSeparator}${key}`;\n }\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}${nsSeparator}${key}` : key, usedDefault ? res : undefined, opt);\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, opt, resolved, lastKey) {\n if (this.i18nFormat?.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...opt\n }, opt.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!opt.skipInterpolation) {\n if (opt.interpolation) this.interpolator.init({\n ...opt,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...opt.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (opt?.interpolation?.skipOnVariables !== undefined ? opt.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = opt.replace && !isString(opt.replace) ? opt.replace : opt;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, opt.lng || this.language || resolved.usedLng, opt);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) opt.nest = false;\n }\n if (!opt.lng && resolved && resolved.res) opt.lng = this.language || resolved.usedLng;\n if (opt.nest !== false) res = this.interpolator.nest(res, (...args) => {\n if (lastKey?.[0] === args[0] && !opt.context) {\n this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return this.translate(...args, key);\n }, opt);\n if (opt.interpolation) this.interpolator.reset();\n }\n const postProcess = opt.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res != null && postProcessorNames?.length && opt.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(opt)\n },\n ...opt\n } : opt, this);\n }\n return res;\n }\n resolve(keys, opt = {}) {\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (isString(keys)) keys = [keys];\n if (Array.isArray(keys)) keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, {\n ...this.options,\n ...opt\n }) : k);\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, opt);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const needsContextHandling = opt.context !== undefined && (isString(opt.context) || typeof opt.context === 'number') && opt.context !== '';\n const codes = opt.lngs ? opt.lngs : this.languageUtils.toResolveHierarchy(opt.lng || this.language, opt.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils?.hasLoadedNamespace && !this.utils?.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat?.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, opt);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, opt.count, opt);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator || '_'}${opt.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, opt);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key, options = {}) {\n if (this.i18nFormat?.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails(options = {}) {\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && !isString(options.replace);\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (isString(code) && code.indexOf('-') > -1) {\n let formattedCode;\n try {\n formattedCode = Intl.getCanonicalLocales(code)[0];\n } catch (e) {}\n if (formattedCode && this.options.lowerCaseLng) {\n formattedCode = formattedCode.toLowerCase();\n }\n if (formattedCode) return formattedCode;\n if (this.options.lowerCaseLng) {\n return code.toLowerCase();\n }\n return code;\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngScOnly = this.getScriptPartFromCode(code);\n if (this.isSupportedCode(lngScOnly)) return found = lngScOnly;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (isString(fallbacks)) fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes((fallbackCode === false ? [] : fallbackCode) || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (isString(code) && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (isString(code)) {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst dummyRule = {\n select: count => count === 1 ? 'one' : 'other',\n resolvedOptions: () => ({\n pluralCategories: ['one', 'other']\n })\n};\nclass PluralResolver {\n constructor(languageUtils, options = {}) {\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.pluralRulesCache = {};\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code, options = {}) {\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n let rule;\n try {\n rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n } catch (err) {\n if (typeof Intl === 'undefined') {\n this.logger.error('No Intl support, please use an Intl polyfill!');\n return dummyRule;\n }\n if (!code.match(/-|_/)) return dummyRule;\n const lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n needsPlural(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n return rule?.resolvedOptions().pluralCategories.length > 1;\n }\n getPluralFormsOfKey(code, key, options = {}) {\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n if (!rule) return [];\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n getSuffix(code, count, options = {}) {\n const rule = this.getRule(code, options);\n if (rule) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return this.getSuffix('dev', count, options);\n }\n}\n\nconst deepFindWithDefaults = (data, defaultData, key, keySeparator = '.', ignoreJSONStructure = true) => {\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && isString(key)) {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n constructor(options = {}) {\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options?.interpolation?.format || (value => value);\n this.init(options);\n }\n init(options = {}) {\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp?.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}((?:[^()\"']+|\"[^\"]*\"|'[^']*'|\\\\((?:[^()]|\"[^\"]*\"|'[^']*')*\\\\))*?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options?.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options?.interpolation?.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = isString(temp) ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (!isString(value) && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc, options = {}) {\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${regexEscape(sep)}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if ((matchedSingleQuotes?.length ?? 0) % 2 === 0 && !matchedDoubleQuotes || (matchedDoubleQuotes?.length ?? 0) % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n const keyEndIndex = /{.*}/.test(match[1]) ? match[1].lastIndexOf('}') + 1 : match[1].indexOf(this.formatSeparator);\n if (keyEndIndex !== -1) {\n formatters = match[1].slice(keyEndIndex).split(this.formatSeparator).map(elem => elem.trim()).filter(Boolean);\n match[1] = match[1].slice(0, keyEndIndex);\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && !isString(value)) return value;\n if (!isString(value)) value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (formatters.length) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst createCachedFormatter = fn => {\n const cache = {};\n return (v, l, o) => {\n let optForCache = o;\n if (o && o.interpolationkey && o.formatParams && o.formatParams[o.interpolationkey] && o[o.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [o.interpolationkey]: undefined\n };\n }\n const key = l + JSON.stringify(optForCache);\n let frm = cache[key];\n if (!frm) {\n frm = fn(getCleanedCode(l), o);\n cache[key] = frm;\n }\n return frm(v);\n };\n};\nconst createNonCachedFormatter = fn => (v, l, o) => fn(getCleanedCode(l), o)(v);\nclass Formatter {\n constructor(options = {}) {\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.init(options);\n }\n init(services, options = {\n interpolation: {}\n }) {\n this.formatSeparator = options.interpolation.formatSeparator || ',';\n const cf = options.cacheInBuiltFormats ? createCachedFormatter : createNonCachedFormatter;\n this.formats = {\n number: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: cf((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: cf((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: cf((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng, options = {}) {\n const formats = format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && formats[0].indexOf(')') < 0 && formats.find(f => f.indexOf(')') > -1)) {\n const lastIndex = formats.findIndex(f => f.indexOf(')') > -1);\n formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options?.formatParams?.[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services, options = {}) {\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n this.backend?.init?.(services, options.backend, options);\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName, tried = 0, wait = this.retryTimeout, callback) {\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces, options = {}, callback) {\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (isString(languages)) languages = this.languageUtils.toResolveHierarchy(languages);\n if (isString(namespaces)) namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name, prefix = '') {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate, options = {}, clb = () => {}) {\n if (this.services?.utils?.hasLoadedNamespace && !this.services?.utils?.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend?.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initAsync: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (isString(args[1])) ret.defaultValue = args[1];\n if (isString(args[2])) ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n },\n cacheInBuiltFormats: true\n});\nconst transformOptions = options => {\n if (isString(options.ns)) options.ns = [options.ns];\n if (isString(options.fallbackLng)) options.fallbackLng = [options.fallbackLng];\n if (isString(options.fallbackNS)) options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs?.indexOf?.('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n if (typeof options.initImmediate === 'boolean') options.initAsync = options.initImmediate;\n return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nconst SUPPORT_NOTICE_KEY = '__i18next_supportNoticeShown';\nconst getSupportNoticeShown = () => {\n if (typeof globalThis !== 'undefined' && !!globalThis[SUPPORT_NOTICE_KEY]) return true;\n if (typeof process !== 'undefined' && process.env && process.env.I18NEXT_NO_SUPPORT_NOTICE) return true;\n if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'production') return true;\n return false;\n};\nconst setSupportNoticeShown = () => {\n if (typeof globalThis !== 'undefined') globalThis[SUPPORT_NOTICE_KEY] = true;\n};\nconst usesLocize = inst => {\n if (inst?.modules?.backend?.name?.indexOf('Locize') > 0) return true;\n if (inst?.modules?.backend?.constructor?.name?.indexOf('Locize') > 0) return true;\n if (inst?.options?.backend?.backends) {\n if (inst.options.backend.backends.some(b => b?.name?.indexOf('Locize') > 0 || b?.constructor?.name?.indexOf('Locize') > 0)) return true;\n }\n if (inst?.options?.backend?.projectId) return true;\n if (inst?.options?.backend?.backendOptions) {\n if (inst.options.backend.backendOptions.some(b => b?.projectId)) return true;\n }\n return false;\n};\nclass I18n extends EventEmitter {\n constructor(options = {}, callback) {\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initAsync) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init(options = {}, callback) {\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (options.defaultNS == null && options.ns) {\n if (isString(options.ns)) {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n if (typeof this.options.overloadTranslationOptionHandler !== 'function') {\n this.options.overloadTranslationOptionHandler = defOpts.overloadTranslationOptionHandler;\n }\n if (this.options.showSupportNotice !== false && !usesLocize(this) && !getSupportNoticeShown()) {\n if (typeof console !== 'undefined' && typeof console.info !== 'undefined') console.info('🌐 i18next is made possible by our own product, Locize — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com 💙');\n setSupportNoticeShown();\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n const usingLegacyFormatFunction = this.options.interpolation.format && this.options.interpolation.format !== defOpts.interpolation.format;\n if (usingLegacyFormatFunction) {\n this.logger.deprecate(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`);\n }\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n if (s.formatter.init) s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = (...args) => this.store[fcName](...args);\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = (...args) => {\n this.store[fcName](...args);\n return this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initAsync) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language, callback = noop) {\n let usedCallback = callback;\n const usedLng = isString(language) ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng?.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n this.options.preload?.forEach?.(l => append(l));\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n if (!this.resolvedLanguage && this.languages.indexOf(l) < 0 && this.store.hasLanguageSomeTranslations(l)) {\n this.resolvedLanguage = l;\n this.languages.unshift(l);\n }\n }\n changeLanguage(lng, callback) {\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n if (this.isLanguageChangingTo === lng) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n }\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve((...args) => this.t(...args));\n if (callback) callback(err, (...args) => this.t(...args));\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const fl = isString(lngs) ? lngs : lngs && lngs[0];\n const l = this.store.hasLanguageSomeTranslations(fl) ? fl : this.services.languageUtils.getBestMatchFromCodes(isString(lngs) ? [lngs] : lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n this.services.languageDetector?.cacheUserLanguage?.(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n const fixedT = (key, opts, ...rest) => {\n let o;\n if (typeof opts !== 'object') {\n o = this.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n o = {\n ...opts\n };\n }\n o.lng = o.lng || fixedT.lng;\n o.lngs = o.lngs || fixedT.lngs;\n o.ns = o.ns || fixedT.ns;\n if (o.keyPrefix !== '') o.keyPrefix = o.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const selectorOpts = {\n ...this.options,\n ...o\n };\n if (typeof o.keyPrefix === 'function') o.keyPrefix = keysFromSelector(o.keyPrefix, selectorOpts);\n const keySeparator = this.options.keySeparator || '.';\n let resultKey;\n if (o.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => {\n if (typeof k === 'function') k = keysFromSelector(k, selectorOpts);\n return `${o.keyPrefix}${keySeparator}${k}`;\n });\n } else {\n if (typeof key === 'function') key = keysFromSelector(key, selectorOpts);\n resultKey = o.keyPrefix ? `${o.keyPrefix}${keySeparator}${key}` : key;\n }\n return this.t(resultKey, o);\n };\n if (isString(lng)) {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t(...args) {\n return this.translator?.translate(...args);\n }\n exists(...args) {\n return this.translator?.exists(...args);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns, options = {}) {\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (isString(ns)) ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (isString(lngs)) lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n try {\n const l = new Intl.Locale(lng);\n if (l && l.getTextInfo) {\n const ti = l.getTextInfo();\n if (ti && ti.direction) return ti.direction;\n }\n } catch (e) {}\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services?.languageUtils || new LanguageUtil(get());\n if (lng.toLowerCase().indexOf('-latn') > 1) return 'ltr';\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance(options = {}, callback) {\n const instance = new I18n(options, callback);\n instance.createInstance = I18n.createInstance;\n return instance;\n }\n cloneInstance(options = {}, callback = noop) {\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n const clonedData = Object.keys(this.store.data).reduce((prev, l) => {\n prev[l] = {\n ...this.store.data[l]\n };\n prev[l] = Object.keys(prev[l]).reduce((acc, n) => {\n acc[n] = {\n ...prev[l][n]\n };\n return acc;\n }, prev[l]);\n return prev;\n }, {});\n clone.store = new ResourceStore(clonedData, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n if (options.interpolation) {\n const defOpts = get();\n const mergedInterpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation,\n ...options.interpolation\n };\n const mergedForInterpolator = {\n ...mergedOptions,\n interpolation: mergedInterpolation\n };\n clone.services.interpolator = new Interpolator(mergedForInterpolator);\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', (event, ...args) => {\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, keysFromSelector as keyFromSelector, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","var resourcesToBackend = function resourcesToBackend(res) {\n return {\n type: 'backend',\n init: function init(services, backendOptions, i18nextOptions) {},\n read: function read(language, namespace, callback) {\n if (typeof res === 'function') {\n if (res.length < 3) {\n try {\n var r = res(language, namespace);\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return callback(null, data && data.default || data);\n }).catch(callback);\n } else {\n callback(null, r);\n }\n } catch (err) {\n callback(err);\n }\n return;\n }\n res(language, namespace, callback);\n return;\n }\n callback(null, res && res[language] && res[language][namespace]);\n }\n };\n};\n\nexport { resourcesToBackend as default };\n","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n '&amp;': '&',\n '&#38;': '&',\n '&lt;': '<',\n '&#60;': '<',\n '&gt;': '>',\n '&#62;': '>',\n '&apos;': \"'\",\n '&#39;': \"'\",\n '&quot;': '\"',\n '&#34;': '\"',\n '&nbsp;': ' ',\n '&#160;': ' ',\n '&copy;': '©',\n '&#169;': '©',\n '&reg;': '®',\n '&#174;': '®',\n '&hellip;': '…',\n '&#8230;': '…',\n '&#x2F;': '/',\n '&#47;': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","import { unescape } from './unescape.js';\nlet defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape,\n transDefaultProps: undefined\n};\nexport const setDefaults = (options = {}) => {\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n};\nexport const getDefaults = () => defaultOptions;","let i18nInstance;\nexport const setI18n = instance => {\n i18nInstance = instance;\n};\nexport const getI18n = () => i18nInstance;","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n type: '3rdParty',\n init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","var clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n","import clone from \"clone\";\n\n/**\n * Return false if not an object, or is an object with no own properties\n */\nexport function isEmptyObject(candidate: any): boolean {\n if (Array.isArray(candidate)) {\n return false;\n }\n return typeof candidate !== \"object\" || Object.keys(candidate).length === 0;\n}\n\nexport function deepClone<T>(obj: T): T {\n return clone(obj);\n}\n\n/**\n * Performs a deep merge of `source` into `target`.\n * Mutates `target` only but not its objects and arrays.\n *\n * @author inspired from https://gist.github.com/ahtcx/0cd94e62691f539160b32ecda18af3d6#gistcomment-3120712\n */\nexport function deepMerge(...objects: object[]) {\n const isObject = (obj: any) => obj && typeof obj === \"object\";\n\n function deepMergeInner(target: object, source: object) {\n Object.keys(source).forEach((key: string) => {\n const targetValue = target[key];\n const sourceValue = source[key];\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = targetValue.concat(sourceValue); // eslint-disable-line\n } else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = deepMergeInner(Object.assign({}, targetValue), sourceValue); // eslint-disable-line\n } else {\n target[key] = sourceValue; // eslint-disable-line\n }\n });\n\n return target;\n }\n\n if (objects.length < 2) {\n throw new Error(\"deepMerge: this function expects at least 2 objects to be provided\");\n }\n\n if (objects.some((object) => !isObject(object))) {\n throw new Error('deepMerge: all values should be of type \"object\"');\n }\n\n const target = objects.shift();\n let source: object;\n\n // eslint-disable-next-line\n while ((source = objects.shift())) {\n deepMergeInner(target, source);\n }\n\n return target;\n}\n","import i18next, { type InitOptions, type i18n as I18n } from \"i18next\";\nimport resourcesToBackend from \"i18next-resources-to-backend\";\nimport { initReactI18next } from \"react-i18next\";\n\nimport { logger } from \"@jslib/shared/utils/logger\";\n\nimport { getMessagesModuleByLocale } from \"@/lib/intl/intl\";\nimport { type Locale, type SegmentSpecificMessages } from \"@/lib/types/types\";\nimport { type DeepPartial, type StringValueOf } from \"@/lib/types/helpers\";\nimport { deepMerge } from \"@/lib/utils/objects\";\n\nexport const Namespace = {\n DEFAULT: \"default\",\n THEME: \"theme\",\n OPTIONS: \"options\",\n} as const;\n\nexport type Namespaces = StringValueOf<typeof Namespace>;\n\n/**\n * TODO: Move this into the form render so that we can report this out to NR along with other\n * dimentions such as program ID, verification ID, etc.\n */\ni18next.on(\"missingKey\", (lngs, namespace, key, res) => {\n // eslint-disable-next-line no-console\n logger.warn(`i18next: MISSING KEY in ${namespace}.${key} for languages: ${lngs.join(\", \")}`, {\n result: res,\n });\n});\n\n/**\n * TODO: This function can be elimitated once we migrate away from React-Intl and can\n * update the messages keys directly in the message bundles.\n * */\nexport function contextualizeMessageKey(\n context: string,\n segmentMessages: DeepPartial<SegmentSpecificMessages>,\n) {\n if (typeof segmentMessages !== \"object\") return undefined;\n\n const messages = {};\n\n Object.entries(segmentMessages).forEach(([key, messageBundle]) => {\n if (typeof messageBundle === \"string\") messages[`${key}_${context}`] = messageBundle;\n if (typeof messageBundle === \"object\")\n messages[key] = contextualizeMessageKey(\n context,\n messageBundle as DeepPartial<SegmentSpecificMessages>,\n );\n });\n\n return messages;\n}\n\nasync function resourcesCallback(lng: Locale, ns: Namespaces) {\n const localizedMessages = await getMessagesModuleByLocale(lng as any);\n\n let messages;\n switch (ns) {\n case \"default\": {\n const segmentMessageEntries = Object.entries(localizedMessages.segmentMessages);\n const contextMessages = segmentMessageEntries.map(([segment, segmentMessages]) =>\n contextualizeMessageKey(segment, segmentMessages),\n );\n\n messages = deepMerge({}, localizedMessages.defaultMessages, ...contextMessages);\n\n break;\n }\n case \"theme\":\n // TODO: Loading the Program Messaging from an independent Localization Service.\n break;\n case \"options\": {\n // Currently loaded by a call to setOptions, using the `messagesWithLocale` as reference.\n break;\n }\n default:\n // This 'satisfies never' ensures that all possible namespaces are handled.\n logger.error(\"Unexpected namespace resource request\", ns satisfies never);\n }\n\n return messages;\n}\n\nconst i18nextOptions: InitOptions = {\n debug: false,\n partialBundledLanguages: true,\n ns: Object.values(Namespace),\n defaultNS: Namespace.OPTIONS,\n fallbackNS: [Namespace.THEME, Namespace.DEFAULT],\n /**\n * Setting a default `lng` can cause some race conditions in rendering causing theme override\n * messages to not be displayed; we address this by deferring the load to the\n * createFetchVerificationRequest action, around the same time as react-intl is being reloaded\n * When the property is not set i18next defaults to `cimode` as the lng which will show the\n * message keys instead of translations\n */\n // lng: \"en-US\",\n /***\n * By default, i18next will try each namespace in each language before moving to the next namespace.\n * e.g., options:fr -> options:en-US -> theme:fr -> theme:en-US -> ...\n * This can cause an issue the same key is present in a higher priority namespace of the fallback,\n * lanugage as is the case with keys like `step.personalInfo.subtitle`; often found in the `en-US`\n * theme bundle. Disabling fallbackLng forces i18next to exhaust all 'fr' namespaces first.\n */\n fallbackLng: false,\n react: {\n transSupportBasicHtmlNodes: false,\n },\n showSupportNotice: false,\n};\n\n// Maintain visual sytle with the createI18n function.\n// prettier-ignore\ni18next\n .use(initReactI18next)\n .use(resourcesToBackend(resourcesCallback))\n .init(i18nextOptions);\n\nexport function addOptionsMessages(\n messagesWithLocale: { [key: string]: object },\n i18nextInstance: I18n = i18next,\n) {\n if (!messagesWithLocale) {\n return;\n }\n Object.entries(messagesWithLocale).forEach(([lng, resource]) => {\n if (resource) i18nextInstance.addResourceBundle(lng, Namespace.OPTIONS, resource, false, true);\n });\n}\n\nexport async function createI18n(overrideOptions: InitOptions = {}): Promise<I18n> {\n // can't use cloneInstance as the resourceToBackend is connected to the primary resource\n // bundle, instead we need to replicate the creation steps.\n const newI18n = i18next.createInstance();\n await newI18n\n .use(initReactI18next)\n .use(resourcesToBackend(resourcesCallback))\n .init({\n ...i18nextOptions,\n ...overrideOptions,\n });\n return newI18n;\n}\n\nexport default i18next;\n","/**\n * Google Analytics custom event recording. This works if there is a\n * `window.gtag` function available. GA should be provided by the implementation.\n * Should always fail gracefully if gtag is not found.\n */\nimport { logger } from \"@jslib/shared/utils/logger\";\nimport {\n doNotTrack,\n getGaAttributes,\n isNewRelicAvailable,\n setGaAttributes,\n} from \"@jslib/shared/utils/gaHelpers\";\n\nimport {\n type VerificationStep,\n type VerificationResponse,\n type WithCoreFields,\n} from \"../types/types\";\n\nexport enum isTestValues {\n TRUE = \"true\",\n FALSE = \"false\",\n}\n\nexport const testRequestEmailDomains = [\"sheerid.com\"];\n\nenum Command {\n EVENT = \"event\",\n SET = \"set\",\n}\n\nexport enum EventName {\n ASR_SELECTED = \"AsrSelected\", // Add School Request clicked by user\n ASR_TIPS_SHOWN = \"AsrTipsShown\", // When user clicks \"Can't find your school? Click to show tips\"\n ASR_SEARCH_AFTER_TIPS = \"AsrSearchAfterTips\", // When user searches again after seeing tips\n FORM_PASTE = \"FormPaste\", // When content is pasted into the form!\n INVALID_FORM_SUBMIT = \"InvalidFormSubmit\", // When a form is submitted but has validation errors\n STEP_SEEN = \"StepSeen\", // when a consumer first sees a step (once)\n STEP_SUBMITTED = \"StepSubmitted\", // when a consumer submits the step (but before we know that Platform gave a 2xx rsp)\n STEP_ACCEPTED = \"StepAccepted\", // when platform responds w/ 2xx response\n ORG_SELECTED = \"OrgSelected\", // an org was clicked from the list\n ORGS_DISPLAYED = \"OrgsDisplayed\", // orgs are listed/shown to the user\n VIEW_EXPERIMENT = \"ViewExperiment\", // describe the variation for an experiment. Usually a Launch Darkly experiment\n SUCCESS_REDIRECT_CLICKED = \"SuccessRedirectClicked\", // when user clicks the redirect button on the success step\n SSO_SIGN_IN_CLICKED = \"SsoSignInClicked\", // when user clicks the SSO sign-in button\n SSO_CANCEL_CLICKED = \"SsoCancelClicked\", // when user clicks the SSO cancel button\n DOC_UPLOAD_ADD_FILES = \"DocUploadAddFiles\", // when user clicks the add files button on doc upload step\n DOC_UPLOAD_REMOVE_FILES = \"DocUploadRemoveFiles\", // when user clicks the remove files button on doc upload step\n CAPTCHA_CLIENT_ERROR_CODE = \"CaptchaClientErrorCode\", // turnstile error code returned on client error\n\n /** @deprecated Use STEP_SEEN instead */\n COLLECT_STARTED = \"CollectStarted\", // Collect step is started\n /** @deprecated Use STEP_SUBMITTED instead */\n COLLECT_SUBMITTED = \"CollectSubmitted\", // Collect step's submit button is clicked\n /** @deprecated use specifically-named events instead, e.g. \"LCP\" event */\n PERFORMANCE = \"Performance\",\n USER_PROPERTIES = \"user_properties\",\n /** @deprecated use specifically-named events instead, e.g. \"CollectSubmitted\" event */\n VERIFICATION = \"Verification\",\n VERIFICATION_HELP = \"VerificationHelp\",\n}\n\n// GA admin config needs to correlate with these dimension index numbers:\nexport enum CustomDimensionNames {\n // User-scoped custom dimensions:\n /** @deprecated - Age is potentially sensitive data and should not be sent HC-1117 */\n age = \"age\",\n jslibVersionActual = \"jslibVersionActual\",\n programId = \"programId\",\n segment = \"segment\",\n subSegment = \"subSegment\",\n testMode = \"testMode\", // whether the program is in test mode, or not\n testRequest = \"testRequest\", // true if using an email with `@sheerid.com` when filling in the form\n verificationId = \"verificationId\",\n flags = \"flags\", // a JSON string of all experiment flags\n options = \"options\", // a csv of the options that were set in setOptions\n // Event-scoped custom dimensions:\n flag = \"flag\", // deprecated - use \"flags\" which is a user-scoped dimension\n step = \"step\", // the verification step on which the event occurred\n stepAction = \"step_action\", // deprecated - use a descriptive event name instead\n /**\n * An identifier for a value of this event. Could be the form element name or another\n * unique identifier. Not to be confused with the event name itself.\n */\n identifier = \"id\",\n verificationHelpStatus = \"verificationHelpStatus\", // The status returned from the verificationHelp endpoint\n visibilityState = \"visibilityState\", // document.visibilityState at the moment the event was recorded\n}\n\n/**\n * Metrics should be somewhat generic but make sense within the context of a specific event.\n * e.g. \"event duration\" is generic, could be used for a page load event or a organization\n * search event or a user reading terms and conditions event.\n */\nexport enum CustomMetricNames {\n /**\n * The duration of an event. See our event documentation for context on what this measures, exactly\n * Unit: milliseconds\n */\n EVENT_DURATION = \"eventDuration\",\n /**\n * For any search related event, how many characters are in the input at the time of search\n */\n QUERY_LENGTH = \"queryLength\",\n /**\n * For any search related event, which spot in the result list was chosen?\n * Lower numbers are higher on the list (1 at top). A user selecting rank 1 is ideal.\n */\n SELECTED_RESULT_RANK = \"selectedResultRank\",\n /**\n * For any event, especially search events, the number of results returned to the user\n */\n NUMBER_OF_RESULTS = \"numberOfResults\",\n /**\n * For any event, number of times a user had to \"re-work\" something (a frustration metric)\n * e.g. in a search input box, number of times user pressed backspace or delete\n */\n NUMBER_REWORKS = \"numberReworks\",\n /**\n * @deprecated\n * @TODO Change this to an event name\n *\n * Specific to step loading\n * Unit: milliseconds\n */\n INITIAL_STEP_LOAD = \"initialStepLoad\",\n /**\n * @deprecated\n * @TODO Change this to an event name\n *\n * For any event (either entire page load or a portion of a page load) the loading time\n * before most content is painted in-browser\n * Unit: milliseconds\n */\n LCP = \"largestContentfulPaint\",\n /**\n * Numerical error code.\n */\n ERROR_CODE = \"errorCode\",\n}\n\ninterface GaEvent {\n eventName: EventName;\n params: {\n [a: string]: string | number;\n };\n}\n\n/**\n * GA event for after a search returns results and they display to the user\n */\nexport interface OrgsDisplayedEvent extends GaEvent {\n eventName: EventName.ORGS_DISPLAYED;\n params: {\n [CustomMetricNames.QUERY_LENGTH]: number;\n /**\n * How long (ms) before showing organization result list to user\n */\n [CustomMetricNames.EVENT_DURATION]: number;\n [CustomMetricNames.NUMBER_OF_RESULTS]: number;\n };\n}\n\n/**\n * GA event for when an org is selected by the user\n */\nexport interface OrgSelectedEvent extends GaEvent {\n eventName: EventName.ORG_SELECTED;\n params: {\n [CustomMetricNames.QUERY_LENGTH]: number;\n [CustomMetricNames.NUMBER_REWORKS]: number;\n [CustomMetricNames.SELECTED_RESULT_RANK]: number;\n /**\n * How long (ms) between first keypress and an org selected\n */\n [CustomMetricNames.EVENT_DURATION]: number;\n [CustomMetricNames.NUMBER_OF_RESULTS]: number;\n };\n}\n\n/**\n * GA event for when Add School Request is clicked\n */\nexport type AsrEvent = {\n eventName: EventName.ASR_SELECTED;\n params: {\n [CustomMetricNames.QUERY_LENGTH]: number;\n [CustomMetricNames.NUMBER_REWORKS]: number;\n /**\n * Time since first letter typed into the search input\n */\n [CustomMetricNames.EVENT_DURATION]: number;\n [CustomMetricNames.NUMBER_OF_RESULTS]: number;\n };\n};\n\nexport type PasteEvent = {\n eventName: EventName.FORM_PASTE;\n params: {\n // The length of the pasted content\n [CustomMetricNames.QUERY_LENGTH]: number;\n // The name of the form element that is being pasted into\n [CustomDimensionNames.identifier]: string;\n };\n};\n\n/**\n * Collect step first shown to user after page loaded\n */\nexport type CollectStepStartEvent = {\n eventName: EventName.COLLECT_STARTED;\n params: {};\n};\n\n/**\n * Collect step submitted\n */\nexport type CollectStepSubmitEvent = {\n eventName: EventName.COLLECT_SUBMITTED;\n params: {\n /**\n * Amount of milliseconds it took to fill out the form and click submit\n */\n [CustomMetricNames.EVENT_DURATION]: number;\n };\n};\n\n/**\n * Captcha client error event.\n */\nexport type CaptchaClientErrorCode = {\n eventName: EventName.CAPTCHA_CLIENT_ERROR_CODE;\n params: {\n /**\n * Turnstile error code returned on client error.\n */\n [CustomMetricNames.ERROR_CODE]: number;\n [CustomDimensionNames.visibilityState]: DocumentVisibilityState;\n };\n};\n\n/**\n * GA event for when the verificationHelp endpoint is used\n */\nexport type VerificationHelpEvent = {\n eventName: EventName.VERIFICATION_HELP;\n params: {\n [CustomDimensionNames.verificationHelpStatus]: string;\n [CustomDimensionNames.programId]: number;\n };\n};\n\nexport type CTAClickEventParams = {\n programId: string;\n locale: string;\n verificationId: string;\n};\n\n/**\n * Our structured gtag wrapper. That enforces our commands/event names\n */\nfunction gtagWrapper(command: Command, event: EventName, options: unknown) {\n if (doNotTrack()) {\n return logger.info(\"Not able to track\");\n }\n\n try {\n return window.gtag(command, event, options);\n } catch (error) {\n logger.warn(`Failed ${command}:${event} event`, error);\n }\n}\n\nexport const recordGaEvent = async (event: GaEvent) => {\n try {\n const gaAttr = await getGaAttributes();\n const extendedParams = { ...(gaAttr || {}), ...event.params };\n\n // Record the event to Google Analytics\n gtagWrapper(Command.EVENT, event.eventName, extendedParams);\n\n // ALSO log a page action \"event\" to New Relic\n if (isNewRelicAvailable()) {\n window.NREUM.addPageAction(event.eventName, extendedParams);\n }\n } catch (e) {\n logger.error(e);\n }\n};\n\nexport const recordCTAClickEvent = async (\n eventName: EventName,\n eventParams: CTAClickEventParams,\n) => {\n recordGaEvent({ eventName, params: eventParams });\n};\n\n/**\n * Sets or a user dimension\n */\nexport const setUserDimension = (dimensionName: CustomDimensionNames, value: string) => {\n setGaAttributes({ [dimensionName]: value });\n if (doNotTrack()) {\n return;\n }\n try {\n gtagWrapper(Command.SET, EventName.USER_PROPERTIES, {\n [dimensionName]: value,\n });\n } catch (e) {\n logger.warn(`Failed to set ${dimensionName}`, e);\n }\n};\n\n/**\n * Sets or updates user dimensions for all subsequent events\n */\nexport const recordVerificationResponse = (verificationResponse: VerificationResponse) => {\n try {\n setGaAttributes({\n [CustomDimensionNames.verificationId]: verificationResponse.verificationId,\n [CustomDimensionNames.segment]: verificationResponse.segment,\n [CustomDimensionNames.subSegment]: verificationResponse.subSegment,\n [CustomDimensionNames.step]: verificationResponse.currentStep,\n });\n } catch (e) {\n logger.warn(e);\n }\n};\n\n/**\n * Sets a user dimension\n * @deprecated Use setUserDimension instead\n */\nexport const setDimension = setUserDimension;\n\nexport const setGaDimensionTestRequest = (viewModel: WithCoreFields) => {\n try {\n const { email } = viewModel;\n if (\n email &&\n testRequestEmailDomains.filter((domain) => email.indexOf(domain) > -1).length > 0\n ) {\n setDimension(CustomDimensionNames.testRequest, isTestValues.TRUE);\n }\n } catch (e) {\n logger.warn(\"Error setting testRequest dimension\", e);\n }\n};\n\nexport function observePerformanceMetrics() {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(\"largest-contentful-paint\")) {\n const LCPObserver = new PerformanceObserver((list) => {\n const entries = list.getEntries();\n const lastEntry = entries[entries.length - 1];\n logger.log(\"Performance:\", CustomMetricNames.LCP, lastEntry.startTime);\n recordPerformanceMetric(CustomMetricNames.LCP, lastEntry.startTime);\n LCPObserver.disconnect();\n });\n LCPObserver.observe({ type: \"largest-contentful-paint\", buffered: true });\n }\n\n if (PerformanceObserver.supportedEntryTypes.includes(\"mark\")) {\n const stepRenderObserver = new PerformanceObserver((list) => {\n let entries = list.getEntries();\n entries = entries.filter((e) => e.name === CustomMetricNames.INITIAL_STEP_LOAD);\n const firstEntry = entries[0];\n if (firstEntry) {\n logger.log(\"Performance:\", CustomMetricNames.INITIAL_STEP_LOAD, firstEntry.startTime);\n recordPerformanceMetric(CustomMetricNames.INITIAL_STEP_LOAD, firstEntry.startTime);\n\n stepRenderObserver.disconnect();\n }\n });\n stepRenderObserver.observe({ type: \"mark\", buffered: true });\n }\n } catch (e) {\n logger.warn(\"Error setting up observePerformanceMetrics\", e);\n }\n}\n\n// #region deprecat\n/**\n * Record a Verification Step event\n * @deprecated use recordGaEvent() instead\n */\nexport const recordEvent = (step: VerificationStep, stepAction: string = \"\") => {\n gtagWrapper(Command.EVENT, EventName.VERIFICATION, {\n step,\n step_action: stepAction,\n });\n};\n\n/** @deprecated Use recordGaEvent() instead */\nexport const recordPerformanceMetric = (name: CustomMetricNames, value: number) => {\n gtagWrapper(Command.EVENT, EventName.PERFORMANCE, { name, value });\n};\n\n/**\n * An event that is sent once a user sees a variant of an experiment flag\n * Potentially fired multiple times per user/session\n *\n * Records the \"flag\" dimension value as a string like: \"{flagName}:{flagValue}\"\n * OR\n * records as just \"{flagName}\" (old) for backward compatibility w/ ExperimentComponent if you omit the 2nd arg\n */\nexport const recordViewExperimentEvent = (flagName: string, flagValue?: string) => {\n const flag = flagValue ? `${flagName}:${flagValue}` : flagName;\n\n gtagWrapper(Command.EVENT, EventName.VIEW_EXPERIMENT, {\n flag,\n });\n};\n// #endregion deprecat\n","function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];if(\"production\"!==process.env.NODE_ENV){var i=Y[n],o=i?\"function\"==typeof i?i.apply(null,t):i:\"unknown error nr: \"+n;throw Error(\"[Immer] \"+o)}throw Error(\"[Immer] minified error nr: \"+n+(t.length?\" \"+t.map((function(n){return\"'\"+n+\"'\"})).join(\",\"):\"\")+\". Find the full error at: https://bit.ly/3cXEKWf\")}function r(n){return!!n&&!!n[Q]}function t(n){var r;return!!n&&(function(n){if(!n||\"object\"!=typeof n)return!1;var r=Object.getPrototypeOf(n);if(null===r)return!0;var t=Object.hasOwnProperty.call(r,\"constructor\")&&r.constructor;return t===Object||\"function\"==typeof t&&Function.toString.call(t)===Z}(n)||Array.isArray(n)||!!n[L]||!!(null===(r=n.constructor)||void 0===r?void 0:r[L])||s(n)||v(n))}function e(t){return r(t)||n(23,t),t[Q].t}function i(n,r,t){void 0===t&&(t=!1),0===o(n)?(t?Object.keys:nn)(n).forEach((function(e){t&&\"symbol\"==typeof e||r(e,n[e],n)})):n.forEach((function(t,e){return r(e,t,n)}))}function o(n){var r=n[Q];return r?r.i>3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?n.add(t):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e<t.length;e++){var i=t[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]})}return Object.create(Object.getPrototypeOf(n),r)}function d(n,e){return void 0===e&&(e=!1),y(n)||r(n)||!t(n)||(o(n)>1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0)),n}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function g(n){O(n),n.p.forEach(S),n.p=null}function O(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.g=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.O||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(g(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),g(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o,u=o,a=!1;3===e.i&&(u=new Set(o),o.clear(),a=!0),i(u,(function(r,i){return A(n,e,o,r,i,t,a)})),x(n,o,!1),t&&n.u&&b(\"Patches\").N(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s,v){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var p=M(e,c,s&&i&&3!==i.i&&!u(i.R,a)?s.concat(a):void 0);if(f(o,a,p),!r(p))return;e.m=!1}else v&&o.add(c);if(t(c)&&!y(c)){if(!e.h.D&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),!n.l&&n.h.D&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function N(n,r,t){var e=s(r)?b(\"MapSet\").F(r,t):v(r)?b(\"MapSet\").T(r,t):n.O?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function R(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=D(r,c),u.I=!1}else e=D(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function D(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function F(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e<r.length;e++)if(!r.hasOwnProperty(e))return!0;return!1}function f(r){r.g&&n(3,JSON.stringify(p(r)))}var s={};m(\"ES5\",{J:function(n,r){var e=Array.isArray(n),i=function(n,r){if(n){for(var e=Array(r.length),i=0;i<r.length;i++)Object.defineProperty(e,\"\"+i,t(i,!0));return e}var o=rn(r);delete o[Q];for(var u=nn(o),a=0;a<u.length;a++){var f=u[a];o[f]=t(f,n||!!o[f].enumerable)}return Object.create(Object.getPrototypeOf(r),o)}(e,n),o={i:e?5:4,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:i,o:null,g:!1,C:!1};return Object.defineProperty(i,Q,{value:o,writable:!0}),i},S:function(n,t,o){o?r(t)&&t[Q].A===n&&e(n.p):(n.u&&function n(r){if(r&&\"object\"==typeof r){var t=r[Q];if(t){var e=t.t,o=t.k,f=t.R,c=t.i;if(4===c)i(o,(function(r){r!==Q&&(void 0!==e[r]||u(e,r)?f[r]||n(o[r]):(f[r]=!0,k(t)))})),i(e,(function(n){void 0!==o[n]||u(o,n)||(f[n]=!1,k(t))}));else if(5===c){if(a(t)&&(k(t),f.length=!0),o.length<e.length)for(var s=o.length;s<e.length;s++)f[s]=!1;else for(var v=e.length;v<o.length;v++)f[v]=!0;for(var p=Math.min(o.length,e.length),l=0;l<p;l++)o.hasOwnProperty(l)||(f[l]=!0),void 0===f[l]&&n(o[l])}}}}(n.p[0]),e(n.p))},K:function(n){return 4===n.i?o(n):a(n)}})}function T(){function e(n){if(!t(n))return n;if(Array.isArray(n))return n.map(e);if(s(n))return new Map(Array.from(n.entries()).map((function(n){return[n[0],e(n[1])]})));if(v(n))return new Set(Array.from(n).map(e));var r=Object.create(Object.getPrototypeOf(n));for(var i in n)r[i]=e(n[i]);return u(n,L)&&(r[L]=n[L]),r}function f(n){return r(n)?e(n):n}var c=\"add\";m(\"Patches\",{$:function(r,t){return t.forEach((function(t){for(var i=t.path,u=t.op,f=r,s=0;s<i.length-1;s++){var v=o(f),p=i[s];\"string\"!=typeof p&&\"number\"!=typeof p&&(p=\"\"+p),0!==v&&1!==v||\"__proto__\"!==p&&\"constructor\"!==p||n(24),\"function\"==typeof f&&\"prototype\"===p&&n(24),\"object\"!=typeof(f=a(f,p))&&n(15,i.join(\"/\"))}var l=o(f),d=e(t.value),h=i[i.length-1];switch(u){case\"replace\":switch(l){case 2:return f.set(h,d);case 3:n(16);default:return f[h]=d}case c:switch(l){case 1:return\"-\"===h?f.push(d):f.splice(h,0,d);case 2:return f.set(h,d);case 3:return f.add(d);default:return f[h]=d}case\"remove\":switch(l){case 1:return f.splice(h,1);case 2:return f.delete(h);case 3:return f.delete(t.value);default:return delete f[h]}default:n(17,u)}})),r},N:function(n,r,t,e){switch(n.i){case 0:case 4:case 2:return function(n,r,t,e){var o=n.t,s=n.o;i(n.R,(function(n,i){var v=a(o,n),p=a(s,n),l=i?u(o,n)?\"replace\":c:\"remove\";if(v!==p||\"replace\"!==l){var d=r.concat(n);t.push(\"remove\"===l?{op:l,path:d}:{op:l,path:d,value:p}),e.push(l===c?{op:\"remove\",path:d}:\"remove\"===l?{op:c,path:d,value:f(v)}:{op:\"replace\",path:d,value:f(v)})}}))}(n,r,t,e);case 5:case 1:return function(n,r,t,e){var i=n.t,o=n.R,u=n.o;if(u.length<i.length){var a=[u,i];i=a[0],u=a[1];var s=[e,t];t=s[0],e=s[1]}for(var v=0;v<i.length;v++)if(o[v]&&u[v]!==i[v]){var p=r.concat([v]);t.push({op:\"replace\",path:p,value:f(u[v])}),e.push({op:\"replace\",path:p,value:f(i[v])})}for(var l=i.length;l<u.length;l++){var d=r.concat([l]);t.push({op:c,path:d,value:f(u[l])})}i.length<u.length&&e.push({op:\"replace\",path:r.concat([\"length\"]),value:i.length})}(n,r,t,e);case 3:return function(n,r,t,e){var i=n.t,o=n.o,u=0;i.forEach((function(n){if(!o.has(n)){var i=r.concat([u]);t.push({op:\"remove\",path:i,value:n}),e.unshift({op:c,path:i,value:n})}u++})),u=0,o.forEach((function(n){if(!i.has(n)){var o=r.concat([u]);t.push({op:c,path:o,value:n}),e.unshift({op:\"remove\",path:o,value:n})}u++}))}(n,r,t,e)}},M:function(n,r,t,e){t.push({op:\"replace\",path:[],value:r===H?void 0:r}),e.push({op:\"replace\",path:[],value:n})}})}function C(){function r(n,r){function t(){this.constructor=n}a(n,r),n.prototype=(t.prototype=r.prototype,new t)}function e(n){n.o||(n.R=new Map,n.o=new Map(n.t))}function o(n){n.o||(n.o=new Set,n.t.forEach((function(r){if(t(r)){var e=N(n.A.h,r,n);n.p.set(r,e),n.o.add(e)}else n.o.add(r)})))}function u(r){r.g&&n(3,JSON.stringify(p(r)))}var a=function(n,r){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var t in r)r.hasOwnProperty(t)&&(n[t]=r[t])})(n,r)},f=function(){function n(n,r){return this[Q]={i:2,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,R:void 0,t:n,k:this,C:!1,g:!1},this}r(n,Map);var o=n.prototype;return Object.defineProperty(o,\"size\",{get:function(){return p(this[Q]).size}}),o.has=function(n){return p(this[Q]).has(n)},o.set=function(n,r){var t=this[Q];return u(t),p(t).has(n)&&p(t).get(n)===r||(e(t),k(t),t.R.set(n,!0),t.o.set(n,r),t.R.set(n,!0)),this},o.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),e(r),k(r),r.t.has(n)?r.R.set(n,!1):r.R.delete(n),r.o.delete(n),!0},o.clear=function(){var n=this[Q];u(n),p(n).size&&(e(n),k(n),n.R=new Map,i(n.t,(function(r){n.R.set(r,!1)})),n.o.clear())},o.forEach=function(n,r){var t=this;p(this[Q]).forEach((function(e,i){n.call(r,t.get(i),i,t)}))},o.get=function(n){var r=this[Q];u(r);var i=p(r).get(n);if(r.I||!t(i))return i;if(i!==r.t.get(n))return i;var o=N(r.A.h,i,r);return e(r),r.o.set(n,o),o},o.keys=function(){return p(this[Q]).keys()},o.values=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.values()},n.next=function(){var n=t.next();return n.done?n:{done:!1,value:r.get(n.value)}},n},o.entries=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.entries()},n.next=function(){var n=t.next();if(n.done)return n;var e=r.get(n.value);return{done:!1,value:[n.value,e]}},n},o[V]=function(){return this.entries()},n}(),c=function(){function n(n,r){return this[Q]={i:3,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,t:n,k:this,p:new Map,g:!1,C:!1},this}r(n,Set);var t=n.prototype;return Object.defineProperty(t,\"size\",{get:function(){return p(this[Q]).size}}),t.has=function(n){var r=this[Q];return u(r),r.o?!!r.o.has(n)||!(!r.p.has(n)||!r.o.has(r.p.get(n))):r.t.has(n)},t.add=function(n){var r=this[Q];return u(r),this.has(n)||(o(r),k(r),r.o.add(n)),this},t.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),o(r),k(r),r.o.delete(n)||!!r.p.has(n)&&r.o.delete(r.p.get(n))},t.clear=function(){var n=this[Q];u(n),p(n).size&&(o(n),k(n),n.o.clear())},t.values=function(){var n=this[Q];return u(n),o(n),n.o.values()},t.entries=function(){var n=this[Q];return u(n),o(n),n.o.entries()},t.keys=function(){return this.values()},t[V]=function(){return this.values()},t.forEach=function(n,r){for(var t=this.values(),e=t.next();!e.done;)n.call(r,e.value,e.value,this),e=t.next()},n}();m(\"MapSet\",{F:function(n,r){return new f(n,r)},T:function(n,r){return new c(n,r)}})}function J(){F(),C(),T()}function K(n){return n}function $(n){return n}var G,U,W=\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol(\"x\"),X=\"undefined\"!=typeof Map,q=\"undefined\"!=typeof Set,B=\"undefined\"!=typeof Proxy&&void 0!==Proxy.revocable&&\"undefined\"!=typeof Reflect,H=W?Symbol.for(\"immer-nothing\"):((G={})[\"immer-nothing\"]=!0,G),L=W?Symbol.for(\"immer-draftable\"):\"__$immer_draftable\",Q=W?Symbol.for(\"immer-state\"):\"__$immer_state\",V=\"undefined\"!=typeof Symbol&&Symbol.iterator||\"@@iterator\",Y={0:\"Illegal state\",1:\"Immer drafts cannot have computed properties\",2:\"This object has been frozen and should not be mutated\",3:function(n){return\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \"+n},4:\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",5:\"Immer forbids circular references\",6:\"The first or second argument to `produce` must be a function\",7:\"The third argument to `produce` must be a function or undefined\",8:\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",9:\"First argument to `finishDraft` must be a draft returned by `createDraft`\",10:\"The given draft is already finalized\",11:\"Object.defineProperty() cannot be used on an Immer draft\",12:\"Object.setPrototypeOf() cannot be used on an Immer draft\",13:\"Immer only supports deleting array indices\",14:\"Immer only supports setting array indices and the 'length' property\",15:function(n){return\"Cannot apply patch, path doesn't resolve: \"+n},16:'Sets cannot have \"replace\" patches.',17:function(n){return\"Unsupported patch operation: \"+n},18:function(n){return\"The plugin for '\"+n+\"' has not been loaded into Immer. To enable the plugin, import and call `enable\"+n+\"()` when initializing your application.\"},20:\"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",21:function(n){return\"produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '\"+n+\"'\"},22:function(n){return\"'current' expects a draft, got: \"+n},23:function(n){return\"'original' expects a draft, got: \"+n},24:\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"},Z=\"\"+Object.prototype.constructor,nn=\"undefined\"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,rn=Object.getOwnPropertyDescriptors||function(n){var r={};return nn(n).forEach((function(t){r[t]=Object.getOwnPropertyDescriptor(n,t)})),r},tn={},en={get:function(n,r){if(r===Q)return n;var e=p(n);if(!u(e,r))return function(n,r,t){var e,i=I(r,t);return i?\"value\"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,r);var i=e[r];return n.I||!t(i)?i:i===z(n.t,r)?(E(n),n.o[r]=N(n.A.h,i,n)):i},has:function(n,r){return r in p(n)},ownKeys:function(n){return Reflect.ownKeys(p(n))},set:function(n,r,t){var e=I(p(n),r);if(null==e?void 0:e.set)return e.set.call(n.k,t),!0;if(!n.P){var i=z(p(n),r),o=null==i?void 0:i[Q];if(o&&o.t===t)return n.o[r]=t,n.R[r]=!1,!0;if(c(t,i)&&(void 0!==t||u(n.t,r)))return!0;E(n),k(n)}return n.o[r]===t&&(void 0!==t||r in n.o)||Number.isNaN(t)&&Number.isNaN(n.o[r])||(n.o[r]=t,n.R[r]=!0),!0},deleteProperty:function(n,r){return void 0!==z(n.t,r)||r in n.t?(n.R[r]=!1,E(n),k(n)):delete n.R[r],n.o&&delete n.o[r],!0},getOwnPropertyDescriptor:function(n,r){var t=p(n),e=Reflect.getOwnPropertyDescriptor(t,r);return e?{writable:!0,configurable:1!==n.i||\"length\"!==r,enumerable:e.enumerable,value:t[r]}:e},defineProperty:function(){n(11)},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n(12)}},on={};i(en,(function(n,r){on[n]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}})),on.deleteProperty=function(r,t){return\"production\"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&n(13),on.set.call(this,r,t,void 0)},on.set=function(r,t,e){return\"production\"!==process.env.NODE_ENV&&\"length\"!==t&&isNaN(parseInt(t))&&n(14),en.set.call(this,r[0],t,e,r[0])};var un=function(){function e(r){var e=this;this.O=B,this.D=!0,this.produce=function(r,i,o){if(\"function\"==typeof r&&\"function\"!=typeof i){var u=i;i=r;var a=e;return function(n){var r=this;void 0===n&&(n=u);for(var t=arguments.length,e=Array(t>1?t-1:0),o=1;o<t;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var t;return(t=i).call.apply(t,[r,n].concat(e))}))}}var f;if(\"function\"!=typeof i&&n(6),void 0!==o&&\"function\"!=typeof o&&n(7),t(r)){var c=w(e),s=N(e,r,void 0),v=!0;try{f=i(s),v=!1}finally{v?g(c):O(c)}return\"undefined\"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw g(c),n})):(j(c,o),P(f,c))}if(!r||\"object\"!=typeof r){if(void 0===(f=i(r))&&(f=r),f===H&&(f=void 0),e.D&&d(f,!0),o){var p=[],l=[];b(\"Patches\").M(r,f,p,l),o(p,l)}return f}n(21,r)},this.produceWithPatches=function(n,r){if(\"function\"==typeof n)return function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.produceWithPatches(r,(function(r){return n.apply(void 0,[r].concat(i))}))};var t,i,o=e.produce(n,r,(function(n,r){t=n,i=r}));return\"undefined\"!=typeof Promise&&o instanceof Promise?o.then((function(n){return[n,t,i]})):[o,t,i]},\"boolean\"==typeof(null==r?void 0:r.useProxies)&&this.setUseProxies(r.useProxies),\"boolean\"==typeof(null==r?void 0:r.autoFreeze)&&this.setAutoFreeze(r.autoFreeze)}var i=e.prototype;return i.createDraft=function(e){t(e)||n(8),r(e)&&(e=R(e));var i=w(this),o=N(this,e,void 0);return o[Q].C=!0,O(i),o},i.finishDraft=function(r,t){var e=r&&r[Q];\"production\"!==process.env.NODE_ENV&&(e&&e.C||n(9),e.I&&n(10));var i=e.A;return j(i,t),P(void 0,i)},i.setAutoFreeze=function(n){this.D=n},i.setUseProxies=function(r){r&&!B&&n(20),this.O=r},i.applyPatches=function(n,t){var e;for(e=t.length-1;e>=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,R as current,J as enableAllPlugins,F as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","import produce from \"immer\";\n\n/**\n * Return a unique array of primitive members\n * Sorts the array\n * @private\n */\nexport function arrayUnique<T>(array: T[]): T[] {\n return array.sort().filter((item, pos, ary) => !pos || item !== ary[pos - 1]);\n}\n\n// alphabetic sort callback\nexport const alphabetically = (a, b) => {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n};\n\nexport const removeStr = (arr: string[], element: string): string[] =>\n produce(arr, (draft) => {\n if (!Array.isArray(draft)) {\n return arr;\n }\n const index = draft.indexOf(element, 0);\n if (index > -1) {\n draft.splice(index, 1);\n }\n return draft;\n });\n","import { logger } from \"@jslib/shared/utils/logger\";\n\nimport {\n type Options,\n type RestApiOptions,\n type Locale,\n type CookieOptions,\n} from \"../lib/types/types\";\nimport { ensureTrailingSlash, getQueryParam } from \"../lib/utils/routing/Url\";\nimport { assertValidMockStepName, assertValidLocale } from \"../lib/types/assertions\";\nimport {\n DEFAULT_MINIMUM_ORG_SEARCH_VALUE_LENGTH,\n HTTP_REQUEST_TIMEOUT,\n QUERY_STRING_ERRORID_OVERRIDE,\n QUERY_STRING_ERRORDETAILID_OVERRIDE,\n QUERY_STRING_INSTALL_PAGE_URL,\n QUERY_STRING_PREV_STEP_OVERRIDE,\n QUERY_STRING_REWARD_CODE_OVERRIDE,\n QUERY_STRING_REDIRECT_URL_OVERRIDE,\n QUERY_STRING_REMEMBER_ME_OVERRIDE,\n QUERY_STRING_SEGMENT_OVERRIDE,\n QUERY_STRING_STEP_OVERRIDE,\n QUERY_STRING_SUBSEGMENT_OVERRIDE,\n QUERY_STRING_ID_CHECK_LOOP_SERVICE_TYPE_OVERRIDE,\n QUERY_STRING_DOC_SELECTED,\n QUERY_STRING_CAPTCHA_ERROR_OVERRIDE,\n} from \"../constants\";\nimport { registerAdditionalLocales } from \"../lib/types/runtimeTypes\";\nimport { addOptionsMessages } from \"../lib/intl/i18next\";\nimport { deepClone, deepMerge, isEmptyObject } from \"../lib/utils/objects\";\nimport { CustomDimensionNames, setUserDimension } from \"../lib/GoogleAnalytics/ga\";\nimport { removeStr } from \"../lib/utils/arrays\";\n\nconst restOptions: RestApiOptions = {\n serviceUrl: \"https://services.sheerid.com/\",\n resources: {\n verification: \"rest/v2/verification/\",\n program: {\n base: \"rest/v2/program/\",\n theme: \"theme\",\n organization: \"organization\",\n },\n conversion: {\n base: \"rest/v2/conversion/\",\n },\n },\n};\n\nconst cookieOptions: CookieOptions = {\n enabled: true,\n secure: true, // default: true - use with https://\n expires: 7, // default: 7 days\n};\n\nconst defaultOptions: Options = {\n restApi: restOptions,\n mockStep: undefined,\n mockSubSegment: undefined,\n mockErrorId: undefined,\n mockErrorDetailId: undefined,\n mockCaptchaState: undefined,\n mockRewardCode: undefined,\n mockRedirectUrl: undefined,\n mockConsumerInfoState: undefined,\n mockDocSelected: undefined,\n mockIdCheckLoopServiceType: undefined,\n installPageUrl: undefined,\n mockResponse: undefined,\n doFetchTheme: true,\n logLevel: \"error\",\n locale: null,\n messages: {} /** @deprecated */,\n messagesWithLocale: {},\n urlFaq: \"https://support.sheerid.com\",\n urlStudentFaq: \"https://verify.sheerid.com/student-faq/\", // defaults\n urlSeniorFaq: \"https://verify.sheerid.com/us-senior-faq/\",\n urlAgeFaq: \"https://verify.sheerid.com/us-age-faq/\",\n urlMilitaryFaq: \"https://verify.sheerid.com/military-faq/\",\n urlTeacherFaq: \"https://verify.sheerid.com/us-teacher-faq/\",\n urlMemberFaq: \"https://verify.sheerid.com/membership-faq/\",\n urlFirstResponderFaq: \"https://verify.sheerid.com/first-responder-faq/\",\n urlMedicalFaq: \"https://verify.sheerid.com/us-medical-faq/\",\n urlEmploymentFaq: \"https://verify.sheerid.com/employment-faq/\",\n urlIdentityFaq: \"https://verify.sheerid.com/identity-faq/\",\n urlLicensedProfessionalFaq: \"https://verify.sheerid.com/professions-faq/\",\n urlLowIncomeFaq: \"https://verify.sheerid.com/low-income-faq/\",\n urlAddSchoolFaq: \"https://verify.sheerid.com/add-school-request-faq/\",\n urlAddSchoolForm: \"https://offers.sheerid.com/sheerid/add-school-request/\",\n privacyPolicyUrl: undefined,\n cookies: cookieOptions,\n useFingerprinting: false,\n verificationId: undefined,\n externalUserId: undefined,\n minimumOrganizationSearchLength: DEFAULT_MINIMUM_ORG_SEARCH_VALUE_LENGTH,\n httpRequestTimeout: HTTP_REQUEST_TIMEOUT,\n hideTestModeFlag: false,\n hideMilitaryFamilyAcceptableUploads: false, // Per UX-575 - reverting by HC-115\n customFormFields: [],\n formFieldConfig: [],\n renderAs: \"default\",\n tryAgainAction: { type: \"reset\" },\n\n _launchDarklyUserTargeting: false, // HC-202\n _launchDarklyFlagCb: () => {},\n};\n\nlet options = { ...defaultOptions };\n\nexport const getOptions = (): Options => options;\n\nexport const getOption = <K extends keyof Options>(key: K) => {\n const opts = getOptions();\n\n if (Object.prototype.hasOwnProperty.call(opts, key)) {\n return getOptions()[key];\n }\n\n return undefined;\n};\n\nexport const resetOptions = () => {\n options = { ...defaultOptions };\n};\n\nexport const setOptions = (newOptions: Partial<Options>) => {\n try {\n if (typeof newOptions === \"object\") {\n let overriddenOptionKeys = Object.keys(newOptions);\n if (isEmptyObject(newOptions.messagesWithLocale)) {\n overriddenOptionKeys = removeStr(overriddenOptionKeys, \"messagesWithLocale\");\n }\n if (isEmptyObject(newOptions.messages)) {\n overriddenOptionKeys = removeStr(overriddenOptionKeys, \"messages\");\n }\n if (overriddenOptionKeys.length > 0) {\n setUserDimension(CustomDimensionNames.options, overriddenOptionKeys.join(\",\"));\n }\n }\n } catch (e) {\n logger.error(e);\n }\n\n if (newOptions.hasOwnProperty(\"logLevel\")) {\n try {\n logger.setLogLevel(newOptions.logLevel);\n } catch (e) {\n // eslint-disable-next-line\n console.error(e);\n }\n options.logLevel = newOptions.logLevel; // keep options in sync with logger\n }\n\n if (newOptions.hasOwnProperty(\"restApi\")) {\n const restApiOptions = newOptions.restApi;\n if (restApiOptions.hasOwnProperty(\"serviceUrl\")) {\n const newUrl = ensureTrailingSlash(newOptions.restApi.serviceUrl);\n options.restApi!.serviceUrl = newUrl;\n logger.info(`option \"serviceUrl\" set to ${options.restApi!.serviceUrl}`);\n }\n }\n\n if (newOptions.hasOwnProperty(QUERY_STRING_STEP_OVERRIDE)) {\n assertValidMockStepName(newOptions[QUERY_STRING_STEP_OVERRIDE]);\n options[QUERY_STRING_STEP_OVERRIDE] = newOptions[QUERY_STRING_STEP_OVERRIDE];\n logger.info(\n `option \"${QUERY_STRING_STEP_OVERRIDE}\" set to ${options[QUERY_STRING_STEP_OVERRIDE]}`,\n );\n }\n\n if (newOptions.hasOwnProperty(QUERY_STRING_PREV_STEP_OVERRIDE)) {\n assertValidMockStepName(newOptions[QUERY_STRING_STEP_OVERRIDE]);\n options[QUERY_STRING_PREV_STEP_OVERRIDE] = newOptions[QUERY_STRING_PREV_STEP_OVERRIDE];\n logger.info(\n `option \"${QUERY_STRING_PREV_STEP_OVERRIDE}\" set to ${options[QUERY_STRING_PREV_STEP_OVERRIDE]}`,\n );\n }\n\n if (newOptions.hasOwnProperty(QUERY_STRING_SEGMENT_OVERRIDE)) {\n options[QUERY_STRING_SEGMENT_OVERRIDE] = newOptions[QUERY_STRING_SEGMENT_OVERRIDE];\n logger.info(\n `option \"${QUERY_STRING_SEGMENT_OVERRIDE}\" set to ${options[QUERY_STRING_SEGMENT_OVERRIDE]}`,\n );\n }\n\n if (newOptions.hasOwnProperty(QUERY_STRING_SUBSEGMENT_OVERRIDE)) {\n options[QUERY_STRING_SUBSEGMENT_OVERRIDE] = newOptions[QUERY_STRING_SUBSEGMENT_OVERRIDE];\n logger.info(\n `option \"${QUERY_STRING_SUBSEGMENT_OVERRIDE}\" set to ${options[QUERY_STRING_SUBSEGMENT_OVERRIDE]}`,\n );\n }\n\n if (newOptions.hasOwnProperty(QUERY_STRING_ERRORID_OVERRIDE)) {\n options[QUERY_STRING_ERRORID_OVERRIDE] = newOptions[QUERY_STRING_ERRORID_OVERRIDE];\n logger.info(\n `option \"${QUERY_STRING_ERRORID_OVERRIDE}\" set to ${options[QUERY_STRING_ERRORID_OVERRIDE]}`,\n );\n }\n\n if (newOptions.hasOwnProperty(QUERY_STRING_ERRORDETAILID_OVERRIDE)) {\n options[QUERY_STRING_ERRORDETAILID_OVERRIDE] = newOptions[QUERY_STRING_ERRORDETAILID_OVERRIDE];\n logger.info(\n `option \"${QUERY_STRING_ERRORDETAILID_OVERRIDE}\" set to ${options[QUERY_STRING_ERRORDETAILID_OVERRIDE]}`,\n );\n }\n\n if (newOptions.hasOwnProperty(QUERY_STRING_CAPTCHA_ERROR_OVERRIDE)) {\n options[QUERY_STRING_CAPTCHA_ERROR_OVERRIDE] = newOptions[QUERY_STRING_CAPTCHA_ERROR_OVERRIDE];\n logger.info(\n `option \"${QUERY_STRING_CAPTCHA_ERROR_OVERRIDE}\" set to ${options[QUERY_STRING_CAPTCHA_ERROR_OVERRIDE]}`,\n );\n }\n\n if (newOptions.hasOwnProperty(QUERY_STRING_REWARD_CODE_OVERRIDE)) {\n options[QUERY_STRING_REWARD_CODE_OVERRIDE] = newOptions[QUERY_STRING_REWARD_CODE_OVERRIDE];\n logger.info(\n `option \"${QUERY_STRING_REWARD_CODE_OVERRIDE}\" set to ${options[QUERY_STRING_REWARD_CODE_OVERRIDE]}`,\n );\n }\n\n if (newOptions.hasOwnProperty(QUERY_STRING_REDIRECT_URL_OVERRIDE)) {\n options[QUERY_STRING_REDIRECT_URL_OVERRIDE] = newOptions[QUERY_STRING_REDIRECT_URL_OVERRIDE];\n logger.info(\n `option \"${QUERY_STRING_REDIRECT_URL_OVERRIDE}\" set to ${options[QUERY_STRING_REDIRECT_URL_OVERRIDE]}`,\n );\n }\n\n if (newOptions.hasOwnProperty(QUERY_STRING_REMEMBER_ME_OVERRIDE)) {\n assertValidMockStepName(newOptions[QUERY_STRING_STEP_OVERRIDE]);\n options[QUERY_STRING_REMEMBER_ME_OVERRIDE] = newOptions[QUERY_STRING_REMEMBER_ME_OVERRIDE];\n logger.info(\n `option \"${QUERY_STRING_REMEMBER_ME_OVERRIDE}\" set to ${options[QUERY_STRING_REMEMBER_ME_OVERRIDE]}`,\n );\n }\n\n if (newOptions.hasOwnProperty(QUERY_STRING_ID_CHECK_LOOP_SERVICE_TYPE_OVERRIDE)) {\n options[QUERY_STRING_ID_CHECK_LOOP_SERVICE_TYPE_OVERRIDE] =\n newOptions[QUERY_STRING_ID_CHECK_LOOP_SERVICE_TYPE_OVERRIDE];\n logger.info(\n `option \"${QUERY_STRING_ID_CHECK_LOOP_SERVICE_TYPE_OVERRIDE}\" set to ${options[QUERY_STRING_ID_CHECK_LOOP_SERVICE_TYPE_OVERRIDE]}`,\n );\n }\n\n if (newOptions.hasOwnProperty(QUERY_STRING_INSTALL_PAGE_URL)) {\n options[QUERY_STRING_INSTALL_PAGE_URL] = newOptions[QUERY_STRING_INSTALL_PAGE_URL];\n logger.info(\n `option \"${QUERY_STRING_INSTALL_PAGE_URL}\" set to ${options[QUERY_STRING_INSTALL_PAGE_URL]}`,\n );\n }\n\n if (newOptions.hasOwnProperty(QUERY_STRING_DOC_SELECTED)) {\n options[QUERY_STRING_DOC_SELECTED] = newOptions[QUERY_STRING_DOC_SELECTED];\n logger.info(\n `option \"${QUERY_STRING_DOC_SELECTED}\" set to ${options[QUERY_STRING_DOC_SELECTED]}`,\n );\n }\n\n if (newOptions.hasOwnProperty(\"mockResponse\")) {\n options.mockResponse = deepClone(newOptions.mockResponse);\n logger.info('option \"mockResponse\" set to', options.mockResponse);\n }\n\n if (newOptions.hasOwnProperty(\"messages\")) {\n options.messagesWithLocale = { ...options.messagesWithLocale, \"en-US\": newOptions.messages };\n logger.warn(\n 'option \"messages\" has been deprecated and replaced with \"messagesWithLocale\". Messages have been set for locale \"en-US\" using: ',\n options.messagesWithLocale,\n '\\nThese messages will override existing messages of the same key for \"en-US\" locale.',\n );\n }\n\n if (newOptions.hasOwnProperty(\"messagesWithLocale\")) {\n options.messagesWithLocale = deepMerge(\n {},\n options.messagesWithLocale,\n newOptions.messagesWithLocale,\n );\n if (newOptions && newOptions.messagesWithLocale) {\n registerAdditionalLocales(Object.keys(newOptions.messagesWithLocale) as Locale[]);\n }\n\n addOptionsMessages(options.messagesWithLocale as Record<string, object>);\n\n logger.info('option \"messagesWithLocale\" set to', options.messagesWithLocale);\n }\n\n if (newOptions.hasOwnProperty(\"locale\")) {\n try {\n assertValidLocale(newOptions.locale);\n options.locale = newOptions.locale;\n logger.info(`option \"locale\" set to ${options.locale}`);\n } catch (e: unknown) {\n logger.error(e as string | Error);\n }\n }\n\n if (newOptions.hasOwnProperty(\"urlStudentFaq\")) {\n // assertValidUrl(newOptions.urlStudentFaq);\n options.urlStudentFaq = newOptions.urlStudentFaq;\n logger.info(`option \"urlStudentFaq\" set to ${options.urlStudentFaq}`);\n }\n\n if (newOptions.hasOwnProperty(\"urlSeniorFaq\")) {\n // assertValidUrl(newOptions.urlSeniorFaq);\n options.urlSeniorFaq = newOptions.urlSeniorFaq;\n logger.info(`option \"urlSeniorFaq\" set to ${options.urlSeniorFaq}`);\n }\n\n if (newOptions.hasOwnProperty(\"urlMilitaryFaq\")) {\n // assertValidUrl(newOptions.urlMilitaryFaq);\n options.urlMilitaryFaq = newOptions.urlMilitaryFaq;\n logger.info(`option \"urlMilitaryFaq\" set to ${options.urlMilitaryFaq}`);\n }\n\n if (newOptions.hasOwnProperty(\"urlTeacherFaq\")) {\n // assertValidUrl(newOptions.urlTeacherFaq);\n options.urlTeacherFaq = newOptions.urlTeacherFaq;\n logger.info(`option \"urlTeacherFaq\" set to ${options.urlTeacherFaq}`);\n }\n\n if (newOptions.hasOwnProperty(\"urlMemberFaq\")) {\n // assertValidUrl(newOptions.urlMemberFaq);\n options.urlMemberFaq = newOptions.urlMemberFaq;\n logger.info(`option \"urlMemberFaq\" set to ${options.urlMemberFaq}`);\n }\n\n if (newOptions.hasOwnProperty(\"urlMedicalFaq\")) {\n options.urlMedicalFaq = newOptions.urlMedicalFaq;\n logger.info(`option \"urlMedicalFaq\" set to ${options.urlMedicalFaq}`);\n }\n\n if (newOptions.hasOwnProperty(\"urlEmploymentFaq\")) {\n options.urlEmploymentFaq = newOptions.urlEmploymentFaq;\n logger.info(`option \"urlEmploymentFaq\" set to ${options.urlEmploymentFaq}`);\n }\n\n if (newOptions.hasOwnProperty(\"urlAddSchoolFaq\")) {\n options.urlAddSchoolFaq = newOptions.urlAddSchoolFaq;\n logger.info(`option \"urlAddSchoolFaq\" set to ${options.urlAddSchoolFaq}`);\n }\n\n if (newOptions.hasOwnProperty(\"urlAddSchoolForm\")) {\n options.urlAddSchoolForm = newOptions.urlAddSchoolForm;\n logger.info(`option \"urlAddSchoolForm\" set to ${options.urlAddSchoolForm}`);\n }\n\n if (newOptions.hasOwnProperty(\"doFetchTheme\")) {\n options.doFetchTheme = newOptions.doFetchTheme;\n logger.info(`option \"doFetchTheme\" set to ${options.doFetchTheme}`);\n }\n\n if (newOptions.hasOwnProperty(\"cookies\")) {\n options.cookies = { ...options.cookies, ...newOptions.cookies };\n logger.info('option \"cookies\" set to', options.cookies);\n }\n\n if (newOptions.hasOwnProperty(\"useFingerprinting\")) {\n options.useFingerprinting = newOptions.useFingerprinting;\n logger.info('option \"useFingerprinting\" set to', options.useFingerprinting);\n }\n\n if (newOptions.hasOwnProperty(\"marketConsent\")) {\n options.marketConsent = newOptions.marketConsent;\n logger.info('option \"market consent\" set to', options.marketConsent);\n }\n\n if (newOptions.hasOwnProperty(\"verificationId\")) {\n options.verificationId = newOptions.verificationId;\n logger.info('option \"verificationId\" set to', options.verificationId);\n }\n\n if (newOptions.hasOwnProperty(\"externalUserId\")) {\n options.externalUserId = newOptions.externalUserId;\n logger.info('option \"externalUserId\" set to', options.externalUserId);\n }\n\n if (newOptions.hasOwnProperty(\"minimumOrganizationSearchLength\")) {\n options.minimumOrganizationSearchLength = newOptions.minimumOrganizationSearchLength;\n logger.info(\n 'option \"minimumOrganizationSearchLength\" set to',\n options.minimumOrganizationSearchLength,\n );\n }\n\n if (newOptions.hasOwnProperty(\"customCss\")) {\n options.customCss = newOptions.customCss;\n logger.info('option \"customCss\" set to', options.customCss);\n }\n\n if (newOptions.hasOwnProperty(\"logoUrl\")) {\n options.logoUrl = newOptions.logoUrl;\n logger.info('option \"logoUrl\" set to', options.logoUrl);\n }\n\n if (newOptions.hasOwnProperty(\"httpRequestTimeout\")) {\n options.httpRequestTimeout = newOptions.httpRequestTimeout;\n logger.info('option \"httpRequestTimeout\" set to', options.httpRequestTimeout);\n }\n\n if (newOptions.hasOwnProperty(\"privacyPolicyUrl\")) {\n options.privacyPolicyUrl = newOptions.privacyPolicyUrl;\n logger.info('option \"privacyPolicyUrl\" set to', options.privacyPolicyUrl);\n }\n\n if (newOptions.hasOwnProperty(\"hideTestModeFlag\") || getQueryParam(\"hideTestModeFlag\")) {\n options.hideTestModeFlag =\n newOptions.hideTestModeFlag || getQueryParam(\"hideTestModeFlag\") === \"true\";\n logger.info('option \"hideTestModeFlag\" set to', options.hideTestModeFlag);\n }\n\n if (newOptions.hasOwnProperty(\"hideMilitaryFamilyAcceptableUploads\")) {\n options.hideMilitaryFamilyAcceptableUploads = newOptions.hideMilitaryFamilyAcceptableUploads;\n logger.info(\n 'option \"hideMilitaryFamilyAcceptableUploads\" set to',\n options.hideMilitaryFamilyAcceptableUploads,\n );\n }\n\n if (newOptions.hasOwnProperty(\"customFormFields\")) {\n options.customFormFields = newOptions.customFormFields;\n logger.info('option \"customFormFields\" set to', options.customFormFields);\n }\n\n if (newOptions.hasOwnProperty(\"formFieldConfig\")) {\n options.formFieldConfig = newOptions.formFieldConfig;\n logger.info('option \"formFieldConfig\" set to', options.formFieldConfig);\n }\n\n if (newOptions.hasOwnProperty(\"customMetadata\")) {\n options.customMetadata = newOptions.customMetadata;\n logger.info('option \"customMetadata\" set to', options.customMetadata);\n }\n\n if (newOptions.hasOwnProperty(\"renderAs\")) {\n options.renderAs = newOptions.renderAs;\n logger.info('option \"renderAs\" set to', options.renderAs);\n }\n\n if (Object.prototype.hasOwnProperty.call(newOptions, \"tryAgainAction\")) {\n options.tryAgainAction = newOptions.tryAgainAction;\n logger.info('option \"tryAgainAction\" set to', options.tryAgainAction);\n }\n\n if (newOptions.hasOwnProperty(\"_launchDarklyUserTargeting\")) {\n options._launchDarklyUserTargeting = newOptions._launchDarklyUserTargeting;\n logger.info('option \"_launchDarklyUserTargeting\" set to', options._launchDarklyUserTargeting);\n }\n\n if (newOptions.hasOwnProperty(\"_launchDarklyFlagCb\")) {\n options._launchDarklyFlagCb = newOptions._launchDarklyFlagCb;\n logger.info('option \"_launchDarklyFlagCb\" set to', options._launchDarklyFlagCb);\n }\n};\n","{\n \"defaultMessages.ACTIVE_DUTY\": \"Active Duty\",\n \"defaultMessages.ARCHITECT\": \"Architect\",\n \"defaultMessages.CHILD_CARE_WORKER\": \"Child Care Worker\",\n \"defaultMessages.COMMUNITY_ELIGIBILITY_PROVISION\": \"CEP (Community Eligibility Provision, Title 1/LAP)\",\n \"defaultMessages.DENTIST\": \"Dentist\",\n \"defaultMessages.DOCTOR\": \"Doctor\",\n \"defaultMessages.EMT\": \"EMT\",\n \"defaultMessages.FIREFIGHTER\": \"Firefighter\",\n \"defaultMessages.GENERAL_CONTRACTOR\": \"General Contractor\",\n \"defaultMessages.GOLD_STAR_FAMILY\": \"Gold Star Family\",\n \"defaultMessages.HOME_BUYER\": \"Home Buyer\",\n \"defaultMessages.INTERIOR_DESIGNER\": \"Interior Designer\",\n \"defaultMessages.LIBRARIAN\": \"Librarian\",\n \"defaultMessages.LICENSED_COSMETOLOGIST\": \"Licensed Cosmetologist\",\n \"defaultMessages.LICENSED_REAL_ESTATE_AGENT\": \"Licensed Real Estate Agent\",\n \"defaultMessages.MILITARY_FAMILY\": \"Military Family\",\n \"defaultMessages.MILITARY_RETIREE\": \"Military Retiree\",\n \"defaultMessages.NURSE\": \"Nurse\",\n \"defaultMessages.NUTRITION_PROFESSIONAL\": \"Nutrition Professional\",\n \"defaultMessages.OTHER_GOVERNMENT_ASSISTANCE\": \"Other Government Assistance Recipient\",\n \"defaultMessages.OTHER_HEALTH_WORKER\": \"Other Health Worker\",\n \"defaultMessages.OTHER_MOVER\": \"Other Mover\",\n \"defaultMessages.PHARMACIST\": \"Pharmacist\",\n \"defaultMessages.POLICE\": \"Police\",\n \"defaultMessages.RESERVIST\": \"Reservist or National Guard\",\n \"defaultMessages.SEARCH_AND_RESCUE\": \"Search and Rescue\",\n \"defaultMessages.SNAP_BENEFITS\": \"Snap Benefits Recipient\",\n \"defaultMessages.VETERAN\": \"Military Veteran or Retiree\",\n \"defaultMessages.VETERINARIAN\": \"Veterinarian\",\n \"defaultMessages._EXPERIMENTAL.cvecNumberExplanation\": \"Add your CVEC number to increase your chances of being verified instantly.\",\n \"defaultMessages.activeDutyStartDate\": \"Active Duty Start Date\",\n \"defaultMessages.address\": \"Address\",\n \"defaultMessages.addressPlaceholder\": \"Address\",\n \"defaultMessages.birthDate\": \"Date of birth\",\n \"defaultMessages.branchOfService\": \"Branch of service\",\n \"defaultMessages.branchOfServicePlaceholder\": \"Branch Of Service\",\n \"defaultMessages.cantFindYourSchool\": \"Can't find your school? Click to show tips\",\n \"defaultMessages.captchaFooterText\": \"Cloudflare independently collects your information in connection with your verification for fraud prevention purposes and uses it in accordance with its <cloudflarePrivacyPolicy>privacy policy</cloudflarePrivacyPolicy>.\",\n \"defaultMessages.changeLanguage\": \"Change language\",\n \"defaultMessages.chooseCountry\": \"Choose a country before searching\",\n \"defaultMessages.city\": \"City\",\n \"defaultMessages.cityPlaceholder\": \"City\",\n \"defaultMessages.clearAndOpenMenu\": \"Clear selection and open menu\",\n \"defaultMessages.clearSelection\": \"Clear selection\",\n \"defaultMessages.close\": \"Close\",\n \"defaultMessages.closeSection\": \"Close section\",\n \"defaultMessages.company\": \"Company\",\n \"defaultMessages.companyPlaceholder\": \"Company\",\n \"defaultMessages.copied\": \"Copied\",\n \"defaultMessages.countries.AD\": \"Andorra\",\n \"defaultMessages.countries.AE\": \"United Arab Emirates\",\n \"defaultMessages.countries.AF\": \"Afghanistan\",\n \"defaultMessages.countries.AG\": \"Antigua and Barbuda\",\n \"defaultMessages.countries.AI\": \"Anguilla\",\n \"defaultMessages.countries.AL\": \"Albania\",\n \"defaultMessages.countries.AM\": \"Armenia\",\n \"defaultMessages.countries.AN\": \"Netherlands Antilles\",\n \"defaultMessages.countries.AO\": \"Angola\",\n \"defaultMessages.countries.AR\": \"Argentina\",\n \"defaultMessages.countries.AS\": \"American Samoa\",\n \"defaultMessages.countries.AT\": \"Austria\",\n \"defaultMessages.countries.AU\": \"Australia\",\n \"defaultMessages.countries.AW\": \"Aruba\",\n \"defaultMessages.countries.AZ\": \"Azerbaijan\",\n \"defaultMessages.countries.BA\": \"Bosnia-Herzegovina\",\n \"defaultMessages.countries.BB\": \"Barbados\",\n \"defaultMessages.countries.BD\": \"Bangladesh\",\n \"defaultMessages.countries.BE\": \"Belgium\",\n \"defaultMessages.countries.BF\": \"Burkina Faso\",\n \"defaultMessages.countries.BG\": \"Bulgaria\",\n \"defaultMessages.countries.BH\": \"Bahrain\",\n \"defaultMessages.countries.BI\": \"Burundi\",\n \"defaultMessages.countries.BJ\": \"Benin\",\n \"defaultMessages.countries.BM\": \"Bermuda\",\n \"defaultMessages.countries.BN\": \"Brunei Darussalam\",\n \"defaultMessages.countries.BO\": \"Bolivia\",\n \"defaultMessages.countries.BR\": \"Brazil\",\n \"defaultMessages.countries.BS\": \"Bahamas\",\n \"defaultMessages.countries.BT\": \"Bhutan\",\n \"defaultMessages.countries.BV\": \"Bouvet Island\",\n \"defaultMessages.countries.BW\": \"Botswana\",\n \"defaultMessages.countries.BY\": \"Belarus\",\n \"defaultMessages.countries.BZ\": \"Belize\",\n \"defaultMessages.countries.CA\": \"Canada\",\n \"defaultMessages.countries.CD\": \"Democratic Republic of Congo\",\n \"defaultMessages.countries.CF\": \"Central African Republic\",\n \"defaultMessages.countries.CG\": \"Congo\",\n \"defaultMessages.countries.CH\": \"Switzerland\",\n \"defaultMessages.countries.CI\": \"Ivory Coast (Cote D'Ivoire)\",\n \"defaultMessages.countries.CK\": \"Cook Islands\",\n \"defaultMessages.countries.CL\": \"Chile\",\n \"defaultMessages.countries.CM\": \"Cameroon\",\n \"defaultMessages.countries.CN\": \"China\",\n \"defaultMessages.countries.CO\": \"Colombia\",\n \"defaultMessages.countries.CR\": \"Costa Rica\",\n \"defaultMessages.countries.CU\": \"Cuba\",\n \"defaultMessages.countries.CV\": \"Cape Verde\",\n \"defaultMessages.countries.CW\": \"Curaçao\",\n \"defaultMessages.countries.CY\": \"Cyprus\",\n \"defaultMessages.countries.CZ\": \"Czech Republic\",\n \"defaultMessages.countries.DE\": \"Germany\",\n \"defaultMessages.countries.DJ\": \"Djibouti\",\n \"defaultMessages.countries.DK\": \"Denmark\",\n \"defaultMessages.countries.DM\": \"Dominica\",\n \"defaultMessages.countries.DO\": \"Dominican Republic\",\n \"defaultMessages.countries.DZ\": \"Algeria\",\n \"defaultMessages.countries.EC\": \"Ecuador\",\n \"defaultMessages.countries.EE\": \"Estonia\",\n \"defaultMessages.countries.EG\": \"Egypt\",\n \"defaultMessages.countries.EH\": \"Western Sahara\",\n \"defaultMessages.countries.ER\": \"Eritrea\",\n \"defaultMessages.countries.ES\": \"Spain\",\n \"defaultMessages.countries.ET\": \"Ethiopia\",\n \"defaultMessages.countries.FI\": \"Finland\",\n \"defaultMessages.countries.FJ\": \"Fiji\",\n \"defaultMessages.countries.FK\": \"Falkland Islands\",\n \"defaultMessages.countries.FM\": \"Micronesia\",\n \"defaultMessages.countries.FO\": \"Faroe Islands\",\n \"defaultMessages.countries.FR\": \"France\",\n \"defaultMessages.countries.GA\": \"Gabon\",\n \"defaultMessages.countries.GB\": \"United Kingdom\",\n \"defaultMessages.countries.GD\": \"Grenada\",\n \"defaultMessages.countries.GE\": \"Georgia\",\n \"defaultMessages.countries.GF\": \"French Guyana\",\n \"defaultMessages.countries.GH\": \"Ghana\",\n \"defaultMessages.countries.GI\": \"Gibraltar\",\n \"defaultMessages.countries.GL\": \"Greenland\",\n \"defaultMessages.countries.GM\": \"Gambia\",\n \"defaultMessages.countries.GN\": \"Guinea\",\n \"defaultMessages.countries.GP\": \"Guadeloupe (French)\",\n \"defaultMessages.countries.GQ\": \"Equatorial Guinea\",\n \"defaultMessages.countries.GR\": \"Greece\",\n \"defaultMessages.countries.GS\": \"South Georgia & South Sandwich Islands\",\n \"defaultMessages.countries.GT\": \"Guatemala\",\n \"defaultMessages.countries.GU\": \"Guam (USA)\",\n \"defaultMessages.countries.GW\": \"Guinea Bissau\",\n \"defaultMessages.countries.GY\": \"Guyana\",\n \"defaultMessages.countries.HK\": \"Hong Kong\",\n \"defaultMessages.countries.HM\": \"Heard and McDonald Islands\",\n \"defaultMessages.countries.HN\": \"Honduras\",\n \"defaultMessages.countries.HR\": \"Croatia\",\n \"defaultMessages.countries.HT\": \"Haiti\",\n \"defaultMessages.countries.HU\": \"Hungary\",\n \"defaultMessages.countries.ID\": \"Indonesia\",\n \"defaultMessages.countries.IE\": \"Ireland\",\n \"defaultMessages.countries.IL\": \"Israel\",\n \"defaultMessages.countries.IN\": \"India\",\n \"defaultMessages.countries.IO\": \"British Indian Ocean Territory\",\n \"defaultMessages.countries.IQ\": \"Iraq\",\n \"defaultMessages.countries.IR\": \"Iran\",\n \"defaultMessages.countries.IS\": \"Iceland\",\n \"defaultMessages.countries.IT\": \"Italy\",\n \"defaultMessages.countries.JM\": \"Jamaica\",\n \"defaultMessages.countries.JO\": \"Jordan\",\n \"defaultMessages.countries.JP\": \"Japan\",\n \"defaultMessages.countries.KE\": \"Kenya\",\n \"defaultMessages.countries.KG\": \"Kyrgyzstan\",\n \"defaultMessages.countries.KH\": \"Cambodia\",\n \"defaultMessages.countries.KI\": \"Kiribati\",\n \"defaultMessages.countries.KM\": \"Comoros\",\n \"defaultMessages.countries.KN\": \"Saint Kitts & Nevis Anguilla\",\n \"defaultMessages.countries.KP\": \"North Korea\",\n \"defaultMessages.countries.KR\": \"South Korea\",\n \"defaultMessages.countries.KW\": \"Kuwait\",\n \"defaultMessages.countries.KY\": \"Cayman Islands\",\n \"defaultMessages.countries.KZ\": \"Kazakhstan\",\n \"defaultMessages.countries.LA\": \"Laos\",\n \"defaultMessages.countries.LB\": \"Lebanon\",\n \"defaultMessages.countries.LC\": \"Saint Lucia\",\n \"defaultMessages.countries.LI\": \"Liechtenstein\",\n \"defaultMessages.countries.LK\": \"Sri Lanka\",\n \"defaultMessages.countries.LR\": \"Liberia\",\n \"defaultMessages.countries.LS\": \"Lesotho\",\n \"defaultMessages.countries.LT\": \"Lithuania\",\n \"defaultMessages.countries.LU\": \"Luxembourg\",\n \"defaultMessages.countries.LV\": \"Latvia\",\n \"defaultMessages.countries.LY\": \"Libya\",\n \"defaultMessages.countries.MA\": \"Morocco\",\n \"defaultMessages.countries.MC\": \"Monaco\",\n \"defaultMessages.countries.MD\": \"Moldavia\",\n \"defaultMessages.countries.ME\": \"Montenegro\",\n \"defaultMessages.countries.MG\": \"Madagascar\",\n \"defaultMessages.countries.MH\": \"Marshall Islands\",\n \"defaultMessages.countries.MK\": \"Macedonia\",\n \"defaultMessages.countries.ML\": \"Mali\",\n \"defaultMessages.countries.MM\": \"Myanmar\",\n \"defaultMessages.countries.MN\": \"Mongolia\",\n \"defaultMessages.countries.MO\": \"Macau\",\n \"defaultMessages.countries.MP\": \"Northern Mariana Islands\",\n \"defaultMessages.countries.MQ\": \"Martinique (French)\",\n \"defaultMessages.countries.MR\": \"Mauritania\",\n \"defaultMessages.countries.MS\": \"Montserrat\",\n \"defaultMessages.countries.MT\": \"Malta\",\n \"defaultMessages.countries.MU\": \"Mauritius\",\n \"defaultMessages.countries.MV\": \"Maldives\",\n \"defaultMessages.countries.MW\": \"Malawi\",\n \"defaultMessages.countries.MX\": \"Mexico\",\n \"defaultMessages.countries.MY\": \"Malaysia\",\n \"defaultMessages.countries.MZ\": \"Mozambique\",\n \"defaultMessages.countries.NA\": \"Namibia\",\n \"defaultMessages.countries.NC\": \"New Caledonia (French)\",\n \"defaultMessages.countries.NE\": \"Niger\",\n \"defaultMessages.countries.NF\": \"Norfolk Island\",\n \"defaultMessages.countries.NG\": \"Nigeria\",\n \"defaultMessages.countries.NI\": \"Nicaragua\",\n \"defaultMessages.countries.NL\": \"Netherlands\",\n \"defaultMessages.countries.NO\": \"Norway\",\n \"defaultMessages.countries.NP\": \"Nepal\",\n \"defaultMessages.countries.NR\": \"Nauru\",\n \"defaultMessages.countries.NU\": \"Niue\",\n \"defaultMessages.countries.NZ\": \"New Zealand\",\n \"defaultMessages.countries.OM\": \"Oman\",\n \"defaultMessages.countries.PA\": \"Panama\",\n \"defaultMessages.countries.PE\": \"Peru\",\n \"defaultMessages.countries.PF\": \"Polynesia (French)\",\n \"defaultMessages.countries.PG\": \"Papua New Guinea\",\n \"defaultMessages.countries.PH\": \"Philippines\",\n \"defaultMessages.countries.PK\": \"Pakistan\",\n \"defaultMessages.countries.PL\": \"Poland\",\n \"defaultMessages.countries.PM\": \"Saint Pierre and Miquelon\",\n \"defaultMessages.countries.PN\": \"Pitcairn Island\",\n \"defaultMessages.countries.PR\": \"Puerto Rico\",\n \"defaultMessages.countries.PS\": \"Palestine\",\n \"defaultMessages.countries.PT\": \"Portugal\",\n \"defaultMessages.countries.PW\": \"Palau\",\n \"defaultMessages.countries.PY\": \"Paraguay\",\n \"defaultMessages.countries.QA\": \"Qatar\",\n \"defaultMessages.countries.RE\": \"Reunion (French)\",\n \"defaultMessages.countries.RO\": \"Romania\",\n \"defaultMessages.countries.RS\": \"Serbia\",\n \"defaultMessages.countries.RU\": \"Russian Federation\",\n \"defaultMessages.countries.RW\": \"Rwanda\",\n \"defaultMessages.countries.SA\": \"Saudi Arabia\",\n \"defaultMessages.countries.SB\": \"Solomon Islands\",\n \"defaultMessages.countries.SC\": \"Seychelles\",\n \"defaultMessages.countries.SD\": \"Sudan\",\n \"defaultMessages.countries.SE\": \"Sweden\",\n \"defaultMessages.countries.SG\": \"Singapore\",\n \"defaultMessages.countries.SH\": \"Saint Helena\",\n \"defaultMessages.countries.SI\": \"Slovenia\",\n \"defaultMessages.countries.SK\": \"Slovak Republic\",\n \"defaultMessages.countries.SL\": \"Sierra Leone\",\n \"defaultMessages.countries.SM\": \"San Marino\",\n \"defaultMessages.countries.SN\": \"Senegal\",\n \"defaultMessages.countries.SO\": \"Somalia\",\n \"defaultMessages.countries.SR\": \"Suriname\",\n \"defaultMessages.countries.SS\": \"South Sudan\",\n \"defaultMessages.countries.ST\": \"Saint Tome (Sao Tome) and Principe\",\n \"defaultMessages.countries.SV\": \"El Salvador\",\n \"defaultMessages.countries.SY\": \"Syria\",\n \"defaultMessages.countries.SZ\": \"Swaziland\",\n \"defaultMessages.countries.TC\": \"Turks and Caicos Islands\",\n \"defaultMessages.countries.TD\": \"Chad\",\n \"defaultMessages.countries.TF\": \"French Southern Territories\",\n \"defaultMessages.countries.TG\": \"Togo\",\n \"defaultMessages.countries.TH\": \"Thailand\",\n \"defaultMessages.countries.TJ\": \"Tajikistan\",\n \"defaultMessages.countries.TK\": \"Tokelau\",\n \"defaultMessages.countries.TL\": \"Timor-Leste\",\n \"defaultMessages.countries.TM\": \"Turkmenistan\",\n \"defaultMessages.countries.TN\": \"Tunisia\",\n \"defaultMessages.countries.TO\": \"Tonga\",\n \"defaultMessages.countries.TR\": \"Turkey\",\n \"defaultMessages.countries.TT\": \"Trinidad and Tobago\",\n \"defaultMessages.countries.TV\": \"Tuvalu\",\n \"defaultMessages.countries.TW\": \"Taiwan\",\n \"defaultMessages.countries.TZ\": \"Tanzania\",\n \"defaultMessages.countries.UA\": \"Ukraine\",\n \"defaultMessages.countries.UG\": \"Uganda\",\n \"defaultMessages.countries.UM\": \"USA Minor Outlying Islands\",\n \"defaultMessages.countries.US\": \"United States\",\n \"defaultMessages.countries.UY\": \"Uruguay\",\n \"defaultMessages.countries.UZ\": \"Uzbekistan\",\n \"defaultMessages.countries.VA\": \"Vatican City State\",\n \"defaultMessages.countries.VC\": \"Saint Vincent & Grenadines\",\n \"defaultMessages.countries.VE\": \"Venezuela\",\n \"defaultMessages.countries.VG\": \"Virgin Islands (British)\",\n \"defaultMessages.countries.VI\": \"Virgin Islands (USA)\",\n \"defaultMessages.countries.VN\": \"Vietnam\",\n \"defaultMessages.countries.VU\": \"Vanuatu\",\n \"defaultMessages.countries.WF\": \"Wallis and Futuna Islands\",\n \"defaultMessages.countries.WS\": \"Samoa\",\n \"defaultMessages.countries.XK\": \"Kosovo\",\n \"defaultMessages.countries.YE\": \"Yemen\",\n \"defaultMessages.countries.YT\": \"Mayotte\",\n \"defaultMessages.countries.ZA\": \"South Africa\",\n \"defaultMessages.countries.ZM\": \"Zambia\",\n \"defaultMessages.countries.ZW\": \"Zimbabwe\",\n \"defaultMessages.country\": \"Country\",\n \"defaultMessages.countryPlaceholder\": \"Country\",\n \"defaultMessages.cvecNumber\": \"CVEC certificate number\",\n \"defaultMessages.cvecNumberExplanation\": \"Optional - Add your CVEC number to increase your chances of being verified instantly.\",\n \"defaultMessages.dateTime.20_MIN\": \"20 minutes\",\n \"defaultMessages.dateTime.24_HRS\": \"24 hours\",\n \"defaultMessages.dateTime.2_DAY\": \"2 days\",\n \"defaultMessages.dateTime.2_HRS\": \"2 hours\",\n \"defaultMessages.dateTime.2_MIN\": \"2 minutes\",\n \"defaultMessages.dateTime.3_DAY\": \"3 days\",\n \"defaultMessages.dateTime.A_FEW_DAYS\": \"a few days\",\n \"defaultMessages.dateTime.A_FEW_HOURS\": \"a few hours\",\n \"defaultMessages.dateTime.A_FEW_MINUTES\": \"a few minutes\",\n \"defaultMessages.dateTime.A_HALF_HOUR\": \"half an hour\",\n \"defaultMessages.dateTime.april\": \"April\",\n \"defaultMessages.dateTime.august\": \"August\",\n \"defaultMessages.dateTime.day\": \"Day\",\n \"defaultMessages.dateTime.december\": \"December\",\n \"defaultMessages.dateTime.february\": \"February\",\n \"defaultMessages.dateTime.january\": \"January\",\n \"defaultMessages.dateTime.july\": \"July\",\n \"defaultMessages.dateTime.june\": \"June\",\n \"defaultMessages.dateTime.march\": \"March\",\n \"defaultMessages.dateTime.may\": \"May\",\n \"defaultMessages.dateTime.month\": \"Month\",\n \"defaultMessages.dateTime.november\": \"November\",\n \"defaultMessages.dateTime.october\": \"October\",\n \"defaultMessages.dateTime.september\": \"September\",\n \"defaultMessages.dateTime.year\": \"Year\",\n \"defaultMessages.dischargeDate\": \"Discharge date\",\n \"defaultMessages.driverLicenseNumber\": \"Driver license number\",\n \"defaultMessages.driverLicenseNumberPlaceholder\": \"Driver license number\",\n \"defaultMessages.driverLicenseState\": \"Driver license state\",\n \"defaultMessages.ebtCardNumber\": \"EBT Card Number\",\n \"defaultMessages.emailAddress\": \"Email address\",\n \"defaultMessages.emailAddressPlaceholder\": \"Email address\",\n \"defaultMessages.error\": \"Error\",\n \"defaultMessages.errorDetailId.govIdMismatch\": \"We were unable to match your ID to the details you entered on the form. Please try again.\",\n \"defaultMessages.errorDetailId.govIdOtherFailure\": \"We had trouble validating your ID. <feedbackFormLink>Please contact SheerID support</feedbackFormLink>.\",\n \"defaultMessages.errorDetailId.govIdRetakeBiometric\": \"We had trouble validating your motion capture. Please try again: <selfieTipsLink/>.\",\n \"defaultMessages.errorDetailId.govIdRetakeId\": \"We had trouble validating your government-issued ID. Please try again: <imageTipsLink/>.\",\n \"defaultMessages.errorDetailId.govIdUnsupportedDoc\": \"This document is not supported. Please try again with a supported government-issued ID.\",\n \"defaultMessages.errorDetailId.personLimit\": \"Looks like you've already been approved for this offer.\",\n \"defaultMessages.errorDetailId.troubleVerifying\": \"It looks like we're having difficulty verifying you. <feedbackFormLink>Please contact SheerID support</feedbackFormLink>.\",\n \"defaultMessages.errorDetailId.unableToVerify\": \"We are unable to verify you at this time. If you believe you received this in error, <feedbackFormLink>please contact SheerID support</feedbackFormLink>.\",\n \"defaultMessages.errorDetailId.vpnsNotAllowed\": \"This program doesn't allow VPNs. Please log off your VPN and try again. If you believe you received this in error, <feedbackFormLink>please contact SheerID support</feedbackFormLink>.\",\n \"defaultMessages.errorId.activeDutyStartDateBeforeBirthDate\": \"Start date must be after birth date\",\n \"defaultMessages.errorId.apiRateLimitExceeded\": \"Unable to process your request at this time, please try again later\",\n \"defaultMessages.errorId.dischargeDateBeforeBirthDate\": \"Discharge Date before birthdate\",\n \"defaultMessages.errorId.docReviewLimitExceeded\": \"Document review limit exceeded\",\n \"defaultMessages.errorId.duplicateFile\": \"Oops! Some files appear to be identical. Please select a different file.\",\n \"defaultMessages.errorId.expiredEmailLoopToken\": \"We are sorry, the page you requested cannot be found. The URL may be incorrect or the page you're looking for is no longer available.\",\n \"defaultMessages.errorId.expiredProgram\": \"Due to tremendous demand, the offer is no longer available. Please check tomorrow to see if it is available.\",\n \"defaultMessages.errorId.expiredSMSCode\": \"Verification code expired\",\n \"defaultMessages.errorId.expiredVerification\": \"This verification is expired. Please submit a new verification.\",\n \"defaultMessages.errorId.failedToFetch\": \"Failed HTTP request\",\n \"defaultMessages.errorId.fraudRulesReject\": \"We're unable to verify you using the information submitted. Please check your information for accuracy, and only use your own mobile device or computer.<br></br>Still having trouble? <feedbackFormLink>Contact SheerID's support team</feedbackFormLink> to confirm your identity.\",\n \"defaultMessages.errorId.futureActiveDutyStartDate\": \"Future start date\",\n \"defaultMessages.errorId.futureBirthDate\": \"Future birthdate\",\n \"defaultMessages.errorId.futureDischargeDate\": \"Future discharge date\",\n \"defaultMessages.errorId.inactiveProgram\": \"Due to tremendous demand, the offer is no longer available. Please check tomorrow to see if it is available.\",\n \"defaultMessages.errorId.incorrectVerificationOverrideCodeAttemptLimitExceeded\": \"Override code limit exceeded\",\n \"defaultMessages.errorId.ineligibleOrganization\": \"The organization you selected does not meet the criteria for this offer.\",\n \"defaultMessages.errorId.internalServerError\": \"Internal server error\",\n \"defaultMessages.errorId.invalidActiveDutyStartDate\": \"Invalid start date\",\n \"defaultMessages.errorId.invalidAddress\": \"Invalid address\",\n \"defaultMessages.errorId.invalidApiToken\": \"Provided API token was invalid or empty\",\n \"defaultMessages.errorId.invalidAuthenticationLoopToken\": \"The code provided is invalid\",\n \"defaultMessages.errorId.invalidBirthDate\": \"Invalid birth date\",\n \"defaultMessages.errorId.invalidCaptchaToken\": \"Captcha verification failed.\",\n \"defaultMessages.errorId.invalidCity\": \"Invalid city\",\n \"defaultMessages.errorId.invalidCountry\": \"Invalid country\",\n \"defaultMessages.errorId.invalidCvecNumber\": \"Invalid CVEC certificate number\",\n \"defaultMessages.errorId.invalidDischargeDate\": \"Invalid discharge date\",\n \"defaultMessages.errorId.invalidDocUploadToken\": \"Provided document upload token is not valid\",\n \"defaultMessages.errorId.invalidDriverLicenseNumber\": \"Invalid driver license number\",\n \"defaultMessages.errorId.invalidEbtCardNumber\": \"Invalid EBT Card Number\",\n \"defaultMessages.errorId.invalidEmail\": \"Invalid email\",\n \"defaultMessages.errorId.invalidEmailLoopToken\": \"We are sorry, the page you requested cannot be found. The URL may be incorrect or the page you're looking for is no longer available.\",\n \"defaultMessages.errorId.invalidFileSizeEmpty\": \"One or more files is empty\",\n \"defaultMessages.errorId.invalidFileSizeMax\": \"One or more files is too large (max: 10MB)\",\n \"defaultMessages.errorId.invalidFirstName\": \"Invalid first name\",\n \"defaultMessages.errorId.invalidFirstResponderStatus\": \"Invalid first responder status\",\n \"defaultMessages.errorId.invalidLastName\": \"Invalid last name\",\n \"defaultMessages.errorId.invalidMemberId\": \"Invalid ID Number\",\n \"defaultMessages.errorId.invalidMilitaryStatus\": \"Invalid military status\",\n \"defaultMessages.errorId.invalidNumberOfFiles\": \"Maximum number of files exceeded (max: 5)\",\n \"defaultMessages.errorId.invalidOptIn\": \"Must be selected to continue\",\n \"defaultMessages.errorId.invalidOrganization\": \"You must select an organization from the list\",\n \"defaultMessages.errorId.invalidOverrideCode\": \"Invalid Override Code\",\n \"defaultMessages.errorId.invalidPhoneNumber\": \"Invalid mobile number\",\n \"defaultMessages.errorId.invalidPostalCode\": \"Invalid postal code\",\n \"defaultMessages.errorId.invalidProgram\": \"Invalid program\",\n \"defaultMessages.errorId.invalidRequest\": \"Invalid request\",\n \"defaultMessages.errorId.invalidSMSCode\": \"Verification code could not be validated\",\n \"defaultMessages.errorId.invalidSocialSecurityNumber\": \"Invalid SSN\",\n \"defaultMessages.errorId.invalidState\": \"Invalid state\",\n \"defaultMessages.errorId.invalidStatus\": \"Invalid status\",\n \"defaultMessages.errorId.invalidStatuses\": \"Invalid status\",\n \"defaultMessages.errorId.invalidStep\": \"Invalid step\",\n \"defaultMessages.errorId.marketConsentRequired\": \"Market consent required\",\n \"defaultMessages.errorId.maxMetadataLengthExceeded\": \"Maximum length of metadata value exceeded\",\n \"defaultMessages.errorId.maxMetadataValuesExceeded\": \"Maximum number of metadata values exceeded\",\n \"defaultMessages.errorId.missingRequiredExternalId\": \"You must be logged in to verify. Log in to your account then try again.\",\n \"defaultMessages.errorId.missingRequiredMetadata\": \"You must be logged in to verify. Log in to your account then try again.\",\n \"defaultMessages.errorId.noProgram\": \"No program found\",\n \"defaultMessages.errorId.noRemainingRewardCodes\": \"Due to tremendous demand, the offer is no longer available. Please check tomorrow to see if it is available.\",\n \"defaultMessages.errorId.noValidFiles\": \"No valid files\",\n \"defaultMessages.errorId.noVerification\": \"No verification found\",\n \"defaultMessages.errorId.notApproved\": \"Not approved\",\n \"defaultMessages.errorId.notFound\": \"Not found\",\n \"defaultMessages.errorId.outsideAgePerson\": \"Birthdate is not eligible for this offer.\",\n \"defaultMessages.errorId.requestTimeout\": \"Request timeout\",\n \"defaultMessages.errorId.simulatedError\": \"This is a simulated error\",\n \"defaultMessages.errorId.unauthorizedAccountStatus\": \"This offer has been temporarily discontinued. Please contact the brand's customer support for more information.\",\n \"defaultMessages.errorId.unauthorizedDomain\": \"Unauthorized domain\",\n \"defaultMessages.errorId.underagePerson\": \"Persons under age 16 are not eligible for this offer.\",\n \"defaultMessages.errorId.unknownError\": \"Unknown Error\",\n \"defaultMessages.errorId.unsupportedDocMimeType\": \"One or more files is an unsupported format\",\n \"defaultMessages.errorId.verificationLimitExceeded\": \"We're glad you're enthusiastic, but it looks like you've already redeemed or attempted to redeem this offer.\",\n \"defaultMessages.experiment.step.docUpload.documentConsiderations\": \"Document considerations\",\n \"defaultMessages.firstName\": \"First name\",\n \"defaultMessages.firstNamePlaceholder\": \"First name\",\n \"defaultMessages.firstResponderInfoShared\": \"Information entered here will be used for verification purposes.\",\n \"defaultMessages.footerText\": \"By submitting the personal information above, I acknowledge that my personal information is being collected under the <privacyPolicy>privacy policy</privacyPolicy> of the business from which I am seeking a discount, and I understand that my personal information will be shared with SheerID as a processor/third-party service provider in order for SheerID to confirm my eligibility for a special offer. <aboutSheerID>More about SheerID.</aboutSheerID>\",\n \"defaultMessages.getHelp\": \"Get help\",\n \"defaultMessages.howDoesReviewWork\": \"How does review work?\",\n \"defaultMessages.howDoesVerifyingWork\": \"How does verifying work?\",\n \"defaultMessages.infoShared1\": \"By clicking, I consent to processing my information for the purpose of verifying my eligibility as described within the {privacyPolicyLink}\",\n \"defaultMessages.infoShared2\": \". I understand that my information will be shared with {companyName}.\",\n \"defaultMessages.informationTransferredToUS\": \"Your information will be transferred to the United States and will be treated according to SheerID’s privacy policy.\",\n \"defaultMessages.instant\": \"Instant\",\n \"defaultMessages.lastName\": \"Last name\",\n \"defaultMessages.lastNamePlaceholder\": \"Last name\",\n \"defaultMessages.limitExceededError\": \"Verification Limit Exceeded\",\n \"defaultMessages.loading\": \"Loading...\",\n \"defaultMessages.locales.ar\": \"العربية\",\n \"defaultMessages.locales.bg\": \"български\",\n \"defaultMessages.locales.bn-IN\": \"বাংলা (ভারত)\",\n \"defaultMessages.locales.cs\": \"čeština\",\n \"defaultMessages.locales.da\": \"Dansk\",\n \"defaultMessages.locales.de\": \"Deutsch\",\n \"defaultMessages.locales.el\": \"Ελληνικά\",\n \"defaultMessages.locales.en-GB\": \"English (UK)\",\n \"defaultMessages.locales.en-US\": \"English\",\n \"defaultMessages.locales.es\": \"Español\",\n \"defaultMessages.locales.es-ES\": \"Español (España)\",\n \"defaultMessages.locales.fi\": \"suomi\",\n \"defaultMessages.locales.fr\": \"Français\",\n \"defaultMessages.locales.fr-CA\": \"Français (Canada)\",\n \"defaultMessages.locales.ga\": \"Gaeilge\",\n \"defaultMessages.locales.hi-IN\": \"हिंदी (भारत)\",\n \"defaultMessages.locales.hr\": \"hrvatski\",\n \"defaultMessages.locales.hu\": \"magyar\",\n \"defaultMessages.locales.id\": \"Bahasa Indonesia\",\n \"defaultMessages.locales.is\": \"Íslenska\",\n \"defaultMessages.locales.it\": \"Italiano\",\n \"defaultMessages.locales.iw\": \"עברית\",\n \"defaultMessages.locales.ja\": \"日本語\",\n \"defaultMessages.locales.ko\": \"한국어\",\n \"defaultMessages.locales.lo\": \"ລາວ\",\n \"defaultMessages.locales.lt\": \"Lietuvių\",\n \"defaultMessages.locales.ms\": \"Bahasa Melayu\",\n \"defaultMessages.locales.nl\": \"Nederlands\",\n \"defaultMessages.locales.nl-BE\": \"Vlaams\",\n \"defaultMessages.locales.no\": \"Norsk\",\n \"defaultMessages.locales.pl\": \"Polski\",\n \"defaultMessages.locales.pt\": \"Português\",\n \"defaultMessages.locales.pt-BR\": \"Português (Brasil)\",\n \"defaultMessages.locales.ro\": \"Română\",\n \"defaultMessages.locales.ru\": \"Русский\",\n \"defaultMessages.locales.sk\": \"slovenský\",\n \"defaultMessages.locales.sl\": \"Slovenščina\",\n \"defaultMessages.locales.sr\": \"Српски\",\n \"defaultMessages.locales.sv\": \"Svenska\",\n \"defaultMessages.locales.sw\": \"Kiswahili\",\n \"defaultMessages.locales.th\": \"ไทย\",\n \"defaultMessages.locales.tr\": \"Türkçe\",\n \"defaultMessages.locales.uk\": \"Українська\",\n \"defaultMessages.locales.ur\": \"اردو\",\n \"defaultMessages.locales.vi\": \"Tiếng Việt\",\n \"defaultMessages.locales.zh\": \"中文(繁体)\",\n \"defaultMessages.locales.zh-HK\": \"中文(香港)\",\n \"defaultMessages.locales.zu\": \"IsiZulu\",\n \"defaultMessages.lowIncomeOrganization\": \"Government Assistance Program\",\n \"defaultMessages.lowIncomeOrganizationPlaceholder\": \"Government Assistance Program\",\n \"defaultMessages.lowRewardPool\": \"&#128293; Only {offersRemaining} offers left!\",\n \"defaultMessages.memberId\": \"ID Number\",\n \"defaultMessages.memberIdPlaceholder\": \"ID Number\",\n \"defaultMessages.militaryFamilyCardNote\": \"Note: this offer is only available to military family members with a Dependent ID card.\",\n \"defaultMessages.militaryInfoShared\": \"Information entered here will be used for verification purposes.\",\n \"defaultMessages.militaryStatus\": \"Military status\",\n \"defaultMessages.multipleLocationsTips\": \"If your academic institution has multiple locations and you didn't see yours, enter the main location.\",\n \"defaultMessages.noOptions\": \"No options\",\n \"defaultMessages.openMenu\": \"Open menu\",\n \"defaultMessages.optIn\": \"Yes, send me {company} marketing communications about exclusive sales, special offers, latest products and more\",\n \"defaultMessages.optional\": \"Optional\",\n \"defaultMessages.orgSearchSortAccessibilityLabel\": \"Sort search results\",\n \"defaultMessages.orgSearchSortByDistance\": \"Sort by Distance\",\n \"defaultMessages.orgSearchSortByRelevance\": \"Sort by Relevance\",\n \"defaultMessages.organization\": \"Organization\",\n \"defaultMessages.organizationPlaceholder\": \"Organization\",\n \"defaultMessages.personalInformation\": \"Personal Information\",\n \"defaultMessages.personalOrSchoolIsFine\": \"Personal or school email is fine\",\n \"defaultMessages.phoneNumber\": \"Mobile Number\",\n \"defaultMessages.phoneNumberExplanation\": \"Optional - get text notifications of status updates\",\n \"defaultMessages.phoneNumberWarnMessage1\": \"By submitting this form with a mobile number, you consent to receive SMS/text messages for verification purposes. Standard phone carrier text messaging (SMS) and data rates may apply.\",\n \"defaultMessages.phoneNumberWarnMessage2\": \"You authorize your mobile service provider to disclose your mobile number and certain account information to SheerID, solely for identity verification and to avoid fraud.\",\n \"defaultMessages.phoneUsPlaceholder\": \"555-555-5555\",\n \"defaultMessages.postalCode\": \"Postal code\",\n \"defaultMessages.postalCodeExplanation\": \"Use the location on file with your licensing body\",\n \"defaultMessages.postalCodePlaceholder\": \"Postal code\",\n \"defaultMessages.poweredBy\": \"Verification services powered by SheerID\",\n \"defaultMessages.privacyPolicy\": \"Privacy Policy\",\n \"defaultMessages.proceed\": \"Proceed\",\n \"defaultMessages.requestSchool\": \"Don't see your school? Request to have it added.\",\n \"defaultMessages.requiredFields\": \"* Required information\",\n \"defaultMessages.rewardCodeEmailNotification\": \"We have emailed you a copy so you can use your new code now or later. Look for the email from verify@sheerid.com.\",\n \"defaultMessages.school\": \"School\",\n \"defaultMessages.schoolName\": \"School\",\n \"defaultMessages.schoolNamePlaceholder\": \"School\",\n \"defaultMessages.sheeridFaqs\": \"SheerID FAQs\",\n \"defaultMessages.smsCodePlaceholder\": \"SMS Code\",\n \"defaultMessages.ssn\": \"Social Security Number\",\n \"defaultMessages.ssnPlaceholder\": \"000-00-0000\",\n \"defaultMessages.state\": \"State\",\n \"defaultMessages.statePlaceholder\": \"State\",\n \"defaultMessages.states.AK\": \"Alaska\",\n \"defaultMessages.states.AL\": \"Alabama\",\n \"defaultMessages.states.AR\": \"Arkansas\",\n \"defaultMessages.states.AS\": \"American Samoa\",\n \"defaultMessages.states.AZ\": \"Arizona\",\n \"defaultMessages.states.CA\": \"California\",\n \"defaultMessages.states.CO\": \"Colorado\",\n \"defaultMessages.states.CT\": \"Connecticut\",\n \"defaultMessages.states.DC\": \"District of Columbia\",\n \"defaultMessages.states.DE\": \"Delaware\",\n \"defaultMessages.states.FL\": \"Florida\",\n \"defaultMessages.states.GA\": \"Georgia\",\n \"defaultMessages.states.GU\": \"Guam\",\n \"defaultMessages.states.HI\": \"Hawaii\",\n \"defaultMessages.states.IA\": \"Iowa\",\n \"defaultMessages.states.ID\": \"Idaho\",\n \"defaultMessages.states.IL\": \"Illinois\",\n \"defaultMessages.states.IN\": \"Indiana\",\n \"defaultMessages.states.KS\": \"Kansas\",\n \"defaultMessages.states.KY\": \"Kentucky\",\n \"defaultMessages.states.LA\": \"Louisiana\",\n \"defaultMessages.states.MA\": \"Massachusetts\",\n \"defaultMessages.states.MD\": \"Maryland\",\n \"defaultMessages.states.ME\": \"Maine\",\n \"defaultMessages.states.MI\": \"Michigan\",\n \"defaultMessages.states.MN\": \"Minnesota\",\n \"defaultMessages.states.MO\": \"Missouri\",\n \"defaultMessages.states.MS\": \"Mississippi\",\n \"defaultMessages.states.MT\": \"Montana\",\n \"defaultMessages.states.NC\": \"North Carolina\",\n \"defaultMessages.states.ND\": \"North Dakota\",\n \"defaultMessages.states.NE\": \"Nebraska\",\n \"defaultMessages.states.NH\": \"New Hampshire\",\n \"defaultMessages.states.NJ\": \"New Jersey\",\n \"defaultMessages.states.NM\": \"New Mexico\",\n \"defaultMessages.states.NV\": \"Nevada\",\n \"defaultMessages.states.NY\": \"New York\",\n \"defaultMessages.states.OH\": \"Ohio\",\n \"defaultMessages.states.OK\": \"Oklahoma\",\n \"defaultMessages.states.OR\": \"Oregon\",\n \"defaultMessages.states.PA\": \"Pennsylvania\",\n \"defaultMessages.states.PR\": \"Puerto Rico\",\n \"defaultMessages.states.RI\": \"Rhode Island\",\n \"defaultMessages.states.SC\": \"South Carolina\",\n \"defaultMessages.states.SD\": \"South Dakota\",\n \"defaultMessages.states.TN\": \"Tennessee\",\n \"defaultMessages.states.TX\": \"Texas\",\n \"defaultMessages.states.UT\": \"Utah\",\n \"defaultMessages.states.VA\": \"Virginia\",\n \"defaultMessages.states.VI\": \"Virgin Islands\",\n \"defaultMessages.states.VT\": \"Vermont\",\n \"defaultMessages.states.WA\": \"Washington\",\n \"defaultMessages.states.WI\": \"Wisconsin\",\n \"defaultMessages.states.WV\": \"West Virginia\",\n \"defaultMessages.states.WY\": \"Wyoming\",\n \"defaultMessages.status\": \"Status\",\n \"defaultMessages.statusPlaceholder\": \"Status\",\n \"defaultMessages.step.collectIdentifier.inputExplanation\": \"Needed to send authentication code\",\n \"defaultMessages.step.collectIdentifier.submitButton\": \"Continue\",\n \"defaultMessages.step.collectMedicalPersonalInfo.autorisationsIdExplanation\": \"Your Professional Membership Registration Number\",\n \"defaultMessages.step.collectMedicalPersonalInfo.autorisationsIdLabel\": \"Registration Number\",\n \"defaultMessages.step.collectMedicalPersonalInfo.gbrNummerExplanation\": \"Your Professional Membership Registration Number\",\n \"defaultMessages.step.collectMedicalPersonalInfo.gbrNummerLabel\": \"Registration Number\",\n \"defaultMessages.step.collectMedicalPersonalInfo.globalLocationNumberExplanation\": \"Your Professional Membership Registration Number\",\n \"defaultMessages.step.collectMedicalPersonalInfo.globalLocationNumberLabel\": \"Global Location Number\",\n \"defaultMessages.step.collectMedicalPersonalInfo.numeroColegiadoExplanation\": \"Your Professional Membership Registration Number\",\n \"defaultMessages.step.collectMedicalPersonalInfo.numeroColegiadoLabel\": \"Registration Number\",\n \"defaultMessages.step.collectMedicalPersonalInfo.registrationNumberExplanation\": \"Your Professional Membership Registration Number\",\n \"defaultMessages.step.collectMedicalPersonalInfo.registrationNumberLabel\": \"Registration Number\",\n \"defaultMessages.step.collectPersonalInfo.submitButton\": \"Verify my {segment} status\",\n \"defaultMessages.step.collectSocialSecurityNumber.selectOption\": \"Select an option\",\n \"defaultMessages.step.collectSocialSecurityNumber.title\": \"Enter your social security number\",\n \"defaultMessages.step.collectSocialSecurityNumber.uploadDoc\": \"Upload a document\",\n \"defaultMessages.step.collectSocialSecurityNumber.uploadInstead\": \"Upload a document instead\",\n \"defaultMessages.step.collectSocialSecurityNumber.useSsn\": \"Verify using your social security number\",\n \"defaultMessages.step.completeAuthentication.manuallyVerifyButton\": \"Manually verify\",\n \"defaultMessages.step.completeAuthentication.subtitle\": \"Enter the code sent to your email.\",\n \"defaultMessages.step.completeAuthentication.title\": \"Verify with Remember Me\",\n \"defaultMessages.step.consolation.subtitle\": \"Unfortunately we could not verify your status, but we value your interest and are offering this promo code as a thank you. It is unique to you and can only be used once.\",\n \"defaultMessages.step.consolation.title\": \"Claim your offer\",\n \"defaultMessages.step.consolation.verificationOnly\": \"Please direct any and all questions about this offer to {companyName}.\",\n \"defaultMessages.step.docUpload.acceptableUploadExamples\": \"Acceptable examples include:\",\n \"defaultMessages.step.docUpload.acceptableUploads.age.birthCertificate\": \"Birth certificate\",\n \"defaultMessages.step.docUpload.acceptableUploads.age.driversLicense\": \"Drivers license\",\n \"defaultMessages.step.docUpload.acceptableUploads.age.passport\": \"Passport\",\n \"defaultMessages.step.docUpload.acceptableUploads.age.stateId\": \"State-issued ID\",\n \"defaultMessages.step.docUpload.acceptableUploads.doNotUploadMilitaryIdContent\": \"In accordance with federal law, SheerID does not accept submissions of active duty/reservist military ID cards.\",\n \"defaultMessages.step.docUpload.acceptableUploads.doNotUploadMilitaryIdTitle\": \"Do not upload a photo of your military ID.\",\n \"defaultMessages.step.docUpload.acceptableUploads.employment.employeeIdCard\": \"Employee ID Card\",\n \"defaultMessages.step.docUpload.acceptableUploads.employment.officialLetter\": \"An official letter\",\n \"defaultMessages.step.docUpload.acceptableUploads.employment.payStub\": \"Payslip from within the last 90 days\",\n \"defaultMessages.step.docUpload.acceptableUploads.firstResponder.idCard\": \"ID Card\",\n \"defaultMessages.step.docUpload.acceptableUploads.firstResponder.letter\": \"Official letter\",\n \"defaultMessages.step.docUpload.acceptableUploads.firstResponder.payStub\": \"Pay stub from within the last 60 days\",\n \"defaultMessages.step.docUpload.acceptableUploads.licensedProfessional.license\": \"Certificate of license\",\n \"defaultMessages.step.docUpload.acceptableUploads.lowIncome.program\": \"Back and front of a card showing you qualify for the selected government assistance program.\",\n \"defaultMessages.step.docUpload.acceptableUploads.lowIncome.programApprovalLetter\": \"Approval letter of the selected government assistance program issued by a government agency (for example, a Supplemental Security Income (SSI) eligibility letter).\",\n \"defaultMessages.step.docUpload.acceptableUploads.lowIncome.programApprovalScreenshot\": \"A screenshot of the online portal of the selected government assistance program showing you qualify for it (Screenshot of your Medicaid application status on your online account).\",\n \"defaultMessages.step.docUpload.acceptableUploads.lowIncome.programBankStatement\": \"A bank statement showing recent payment of the selected benefit.\",\n \"defaultMessages.step.docUpload.acceptableUploads.lowIncome.programCard\": \"Back and front of a card showing you qualify for the selected government assistance program (for example, an EBT card for a SNAP Program).\",\n \"defaultMessages.step.docUpload.acceptableUploads.medical.idCard\": \"ID badge\",\n \"defaultMessages.step.docUpload.acceptableUploads.medical.letterEmployment\": \"Letter of employment on Company letterhead dated within the last 90 days\",\n \"defaultMessages.step.docUpload.acceptableUploads.medical.licenseCertificate\": \"Medical license or certificate\",\n \"defaultMessages.step.docUpload.acceptableUploads.medical.payStub\": \"Pay stub from within the last 90 days\",\n \"defaultMessages.step.docUpload.acceptableUploads.medical.photoPayStub\": \"Photo ID and recent Pay Stub\",\n \"defaultMessages.step.docUpload.acceptableUploads.member.idCard\": \"Membership Document\",\n \"defaultMessages.step.docUpload.acceptableUploads.member.payStub\": \"Pay stub from within last 90 days\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.active.leaveEarningStatement\": \"Leave and Earning Statement (dated within the last 90 days)\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.active.uniformedServicesId\": \"Uniformed Services ID Card\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.activeDuty\": \"Any document that proves you are currently serving as active duty in the armed forces for 30 days or more\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.dependent\": \"Any document, that you are legally allowed to provide, that proves you are a Registered Military Dependent.\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.goldStarFamily\": \"Form DD1300/Casualty Report showing the applicant as a family member of the deceased\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.militaryRetiree.blueUniformedId\": \"Uniformed Services ID card showing retiree status\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.militaryRetiree.dd214Form\": \"DD214 <em>(If you served 20+ years or have a disability rating of 30% or higher)</em>\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.militaryRetiree.retireeId\": \"Retiree ID\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.militaryRetiree.vaDigitalId\": \"VA Digital ID <em>(If you served 20+ years or have a disability rating of 30% or higher)</em>\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.militaryRetiree.vaHealthBenefitsCard\": \"VA Health Benefits letter (If you have a disability rating of 30% or higher)\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.reservist.leaveEarningStatement\": \"Leave and Earning Statement (dated within the last 90 days)\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.reservist.uniformedServicesId\": \"Uniformed Services ID Card\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.reservistA\": \"Any document that shows you are currently serving in a reserve component of the armed forces\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.retiree\": \"Any document that proves you are a retiree from the armed forces\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.vet.dd214Form\": \"DD214 form\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.vet.departmentVeteranId\": \"Department of Veterans ID card\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.vet.dischargeCertificate\": \"Discharge certificate\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.vet.driverLicenseVeteran\": \"Drivers license with Veteran designation\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.vet.vaDigitalId\": \"VA digital ID\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.vet.vaHealthBenefitsCard\": \"VA Health Benefits card\",\n \"defaultMessages.step.docUpload.acceptableUploads.military.veteran\": \"Any document that proves you met the qualifications of military service and were honorably discharged\",\n \"defaultMessages.step.docUpload.acceptableUploads.officialLetter\": \"Official letter\",\n \"defaultMessages.step.docUpload.acceptableUploads.recentMover.changeOfAddress\": \"U.S. Postal Service change of address confirmation letter\",\n \"defaultMessages.step.docUpload.acceptableUploads.recentMover.mortgageDeed\": \"Mortgage deed\",\n \"defaultMessages.step.docUpload.acceptableUploads.recentMover.rentalAgreement\": \"Lease or rental agreement\",\n \"defaultMessages.step.docUpload.acceptableUploads.senior.birthCertificate\": \"Birth certificate\",\n \"defaultMessages.step.docUpload.acceptableUploads.senior.driversLicense\": \"Drivers license\",\n \"defaultMessages.step.docUpload.acceptableUploads.senior.passport\": \"Passport\",\n \"defaultMessages.step.docUpload.acceptableUploads.senior.stateId\": \"State-issued ID\",\n \"defaultMessages.step.docUpload.acceptableUploads.student.classSchedule\": \"Class schedule\",\n \"defaultMessages.step.docUpload.acceptableUploads.student.idCard\": \"School ID card with expiration date\",\n \"defaultMessages.step.docUpload.acceptableUploads.student.tuitionReceipt\": \"Tuition receipt\",\n \"defaultMessages.step.docUpload.acceptableUploads.teacher.idCard\": \"Educator ID card\",\n \"defaultMessages.step.docUpload.acceptableUploads.teacher.payStub\": \"Pay stub from within the last 90 days\",\n \"defaultMessages.step.docUpload.acceptedTypes\": \"File must be .jpg .jpeg .png .pdf\",\n \"defaultMessages.step.docUpload.addFile\": \"Add documents\",\n \"defaultMessages.step.docUpload.allowedDocuments\": \"Please only upload documents you are legally allowed to provide.\",\n \"defaultMessages.step.docUpload.canIFinishLater\": \"Can I finish later?\",\n \"defaultMessages.step.docUpload.canIFinishLaterDetails\": \"Yes, If you don't finish now, we'll automatically send an email to the address you provided with a link back to this step.\",\n \"defaultMessages.step.docUpload.confirm\": \"Please confirm.\",\n \"defaultMessages.step.docUpload.documentReviewProcess\": \"The documents will be reviewed for authenticity by an optimized mix of manual and automated document review and compared against the information you provided.\",\n \"defaultMessages.step.docUpload.documentsMustInclude\": \"Your documents must include:\",\n \"defaultMessages.step.docUpload.nameChanged\": \"If your name has changed since the document was issued, upload a 2nd document showing your official name change.\",\n \"defaultMessages.step.docUpload.rejectedNextStep\": \"Please correct this and try again.\",\n \"defaultMessages.step.docUpload.rejectedSubtitle\": \"We were unable to confirm your eligibility due to:\",\n \"defaultMessages.step.docUpload.rejectionReasons.CUSTOM_VALUE_OTHER\": \"The document submitted is missing a requirement for establishing eligibility for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.DOCUMENT_DATE_OTHER\": \"The document submitted does not meet the date requirements for establishing eligibility for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.DOCUMENT_EMAIL_SCREENSHOT\": \"We are unable to accept screenshots of e-mails.\",\n \"defaultMessages.step.docUpload.rejectionReasons.DOCUMENT_EXPIRED\": \"The document has already expired or was issued too far in the past. Please upload a more recent document.\",\n \"defaultMessages.step.docUpload.rejectionReasons.DOCUMENT_HANDWRITTEN\": \"We cannot accept handwritten documents.\",\n \"defaultMessages.step.docUpload.rejectionReasons.DOCUMENT_LIKELY_FRAUD\": \"The document is insufficient for establishing eligibility for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.DOCUMENT_OUTDATED\": \"The document you submitted is missing an issue date or was issued too far in the past.\",\n \"defaultMessages.step.docUpload.rejectionReasons.DOCUMENT_OUTDATED_FACULTY\": \"The document you submitted does not prove employment in the current academic year.\",\n \"defaultMessages.step.docUpload.rejectionReasons.DOCUMENT_PASSWORD_PROTECTED\": \"We are unable to accept password protected documents.\",\n \"defaultMessages.step.docUpload.rejectionReasons.DOCUMENT_STATUS_OTHER\": \"The document submitted shows a status that is not sufficient for establishing eligibility for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.DOCUMENT_TOO_FUTURE\": \"The date shown in the document is too far in the future. Please upload a more recent document, which proves your current status.\",\n \"defaultMessages.step.docUpload.rejectionReasons.DOCUMENT_UNREADABLE\": \"The document was unreadable due to poor image quality. Please make sure you have a clearly legible image that's bright and crisp, and try submitting again.\",\n \"defaultMessages.step.docUpload.rejectionReasons.DOCUMENT_UNSUPPORTED\": \"The document is not official or on the list of accepted document types.\",\n \"defaultMessages.step.docUpload.rejectionReasons.DOCUMENT_VALID_OTHER\": \"The document submitted is not able to establish eligibility for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.EBT_CARD_NUMBER_OTHER\": \"The EBT card submitted is not able to establish eligibility for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.INELIGIBLE_JOB_TITLE\": \"The job title shown in the document is not eligible for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.INELIGIBLE_ORGANIZATION\": \"The organization on the document you submitted is not eligible for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.INELIGIBLE_PERSON_HIGH_SCHOOL_STUDENT\": \"High School Students are not eligible for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.INSUFFICIENT_CUSTOM_VALUE\": \"The document is missing information needed to establish your eligibility for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.INSUFFICIENT_DOCUMENT_DATE\": \"The date(s) shown in the document are insufficient to prove your current status. Please upload a document that includes a recent month and year.\",\n \"defaultMessages.step.docUpload.rejectionReasons.INSUFFICIENT_EBT_CARD_NUMBER\": \"The EBT card uploaded is insufficient for establishing eligibility for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.INSUFFICIENT_STATUS\": \"The document does not prove you are a status eligible for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISMATCH_BIRTHDATE\": \"The birthdate on the document does not match the birthdate you entered on your verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISMATCH_COMPANY_NAME_OR_ADDRESS\": \"The company name or address in your document does not match what you entered on the verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISMATCH_CUSTOM_VALUE\": \"Some information shown in the document does not match what you entered in the verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISMATCH_EBT_CARD_NUMBER\": \"The EBT card uploaded has a different number than what was entered into the verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISMATCH_ORGANIZATION\": \"The organization name on the document(s) you submitted does not match the organization you listed on the verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISMATCH_ORGANIZATION_COUNTRY\": \"The country selected on the verification form does not match the country that appears on the documentation submitted.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISMATCH_ORGANIZATION_NAME\": \"The organization name entered on the verification form does not match the organization name that appears on the documentation submitted.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISMATCH_PERSON_FIRST_NAME\": \"The first name on the document does not match the first name you entered on your verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISMATCH_PERSON_LAST_NAME\": \"The last name entered on the verification form does not match the name that appears on the documentation submitted.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISMATCH_PERSON_NAME\": \"The information on the document you submitted does not match the first and/or last name submitted on the verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISMATCH_STATUS\": \"The status on the document does not match the status you entered on your verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISSING_CUSTOM_VALUE\": \"The document is missing information needed to establish your eligibility for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISSING_DOCUMENT_DATE\": \"A current date is missing. Please upload an official, dated document that proves your current status.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISSING_EBT_CARD_NUMBER\": \"The EBT card uploaded is missing the card number.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISSING_INFORMATION\": \"The document you submitted does not provide all of the information necessary to determine eligibility for this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISSING_INFORMATION_AFFILIATION_US_ARMED_FORCES\": \"The document you submitted is does not show affiliation to an eligible branch of the United States Armed Forces.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISSING_INFORMATION_BIRTHDATE\": \"Your birthdate is missing.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISSING_INFORMATION_ORGANIZATION_NAME\": \"The organization name entered on the verification form is missing from the documentation submitted.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISSING_INFORMATION_PERSON_NAME\": \"The document you submitted is missing a first and/or last name.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISSING_INFORMATION_UNIVERSITY_ENROLLMENT\": \"The document you submitted does not prove enrollment in the current term.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISSING_OR_MISMATCH_JOB_TITLE\": \"The job title on the document you submitted is missing or does not match what you entered on the verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISSING_PERSON_FIRST_NAME\": \"Your first name is missing from the documentation submitted.\",\n \"defaultMessages.step.docUpload.rejectionReasons.MISSING_PERSON_LAST_NAME\": \"Your last name is missing from the documentation submitted.\",\n \"defaultMessages.step.docUpload.rejectionReasons.ORGANIZATION_NAME_OTHER\": \"The organization name shown in the document submitted was something other than what was provided on the verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.OTHER_CONTACT_US\": \"We are having problems verifying your eligibility for the offer. Please contact SheerID customer service for help: customerservice@sheerid.com\",\n \"defaultMessages.step.docUpload.rejectionReasons.OUT_OF_RANGE_BIRTHDATE\": \"Your birthdate is outside the acceptable range of this offer.\",\n \"defaultMessages.step.docUpload.rejectionReasons.PAYSTUB_OUTDATED_LAST_30_DAYS\": \"Please upload a paystub that was issued within the last 30 days.\",\n \"defaultMessages.step.docUpload.rejectionReasons.PERSON_BIRTHDATE_OTHER\": \"The date of birth shown in the document submitted did not match with what was provided on the verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.PERSON_FIELD_MISMATCH\": \"A field in the document provided did not match with what was provided on the verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.PERSON_FIRST_NAME_OTHER\": \"The first name shown in the document submitted did not match with what was provided on the verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.PERSON_LAST_NAME_OTHER\": \"The last name shown in the document submitted did not match with what was provided on the verification form.\",\n \"defaultMessages.step.docUpload.rejectionReasons.RESTRICTED_DOCUMENT\": \"Due to legal restrictions, we were unable to review the uploaded government ID.\",\n \"defaultMessages.step.docUpload.reviewTime\": \"Expected review time is {estimatedWaitTime}.\",\n \"defaultMessages.step.docUpload.submitButtonLabel\": \"Submit\",\n \"defaultMessages.step.docUpload.suggestedDocumentTypes\": \"Suggested document types\",\n \"defaultMessages.step.docUpload.title\": \"To continue, upload documents that confirm your status\",\n \"defaultMessages.step.docUpload.uploadInfo.affiliation\": \"<strong>Current affiliation</strong> with that organization\",\n \"defaultMessages.step.docUpload.uploadInfo.age.birthDate\": \"<strong>Date of birth</strong>\",\n \"defaultMessages.step.docUpload.uploadInfo.age.consentDE\": \"I consent to the processing and storage of my ID copy for age verification. I understand the image will automatically be saved as a copy, and that I am entitled to black out the serial number before uploading.\",\n \"defaultMessages.step.docUpload.uploadInfo.dateCurrentYear\": \"<strong>Date</strong> within the current academic year OR no more than 90 days from today’s date\",\n \"defaultMessages.step.docUpload.uploadInfo.employment.company\": \"<strong>Your company</strong>\",\n \"defaultMessages.step.docUpload.uploadInfo.employment.currentAffiliation\": \"<strong>Current affiliation</strong> with that company\",\n \"defaultMessages.step.docUpload.uploadInfo.firstResponder.currentAffiliation\": \"Your current affiliation with that organization\",\n \"defaultMessages.step.docUpload.uploadInfo.firstResponder.emt.status\": \"Current <strong>EMT status</strong> with that organization\",\n \"defaultMessages.step.docUpload.uploadInfo.firstResponder.firefighter.status\": \"Current <strong>firefighter status</strong> with that organization\",\n \"defaultMessages.step.docUpload.uploadInfo.firstResponder.license\": \"Your status or license as a First Responder\",\n \"defaultMessages.step.docUpload.uploadInfo.firstResponder.organization\": \"The <strong>organization</strong> name\",\n \"defaultMessages.step.docUpload.uploadInfo.firstResponder.police.status\": \"Current <strong>police status</strong> with that organization\",\n \"defaultMessages.step.docUpload.uploadInfo.fullName\": \"Your <strong>full name</strong> as entered into this form\",\n \"defaultMessages.step.docUpload.uploadInfo.identity.validDate\": \"A currently valid date\",\n \"defaultMessages.step.docUpload.uploadInfo.institutionName\": \"The full or abbreviated <strong>academic institution name</strong> or logo\",\n \"defaultMessages.step.docUpload.uploadInfo.licensedProfessional.licenseStatus\": \"<strong>Professional license and/or certification status</strong>\",\n \"defaultMessages.step.docUpload.uploadInfo.licensedProfessional.validDate\": \"A currently <strong>valid date</strong>\",\n \"defaultMessages.step.docUpload.uploadInfo.lowIncome.ebtNumber\": \"EBT card number\",\n \"defaultMessages.step.docUpload.uploadInfo.lowIncome.fullName\": \"Your full name\",\n \"defaultMessages.step.docUpload.uploadInfo.lowIncome.validDate\": \"A <strong>valid date</strong> of issue (within the last 12 months) or date of expiry (must be valid)\",\n \"defaultMessages.step.docUpload.uploadInfo.medical.medicalRole\": \"Your <strong>medical professional</strong> role\",\n \"defaultMessages.step.docUpload.uploadInfo.medical.status\": \"Your medical professional status\",\n \"defaultMessages.step.docUpload.uploadInfo.medical.validDate\": \"A currently valid <strong>date</strong>\",\n \"defaultMessages.step.docUpload.uploadInfo.military.activeDuty.status\": \"Current <strong>active duty</strong> status\",\n \"defaultMessages.step.docUpload.uploadInfo.military.currentAffiliation\": \"Your current affiliation with the armed services\",\n \"defaultMessages.step.docUpload.uploadInfo.military.dischargeDate\": \"Your discharge date (if applicable)\",\n \"defaultMessages.step.docUpload.uploadInfo.military.goldStarFamily.status\": \"Current <strong>military family</strong> status\",\n \"defaultMessages.step.docUpload.uploadInfo.military.militaryFamily.status\": \"Current <strong>military family</strong> status\",\n \"defaultMessages.step.docUpload.uploadInfo.military.militaryRetiree.status\": \"<strong>Retiree</strong> status\",\n \"defaultMessages.step.docUpload.uploadInfo.military.reservist.status\": \"Current <strong>reservist</strong> status\",\n \"defaultMessages.step.docUpload.uploadInfo.military.serviceBranch\": \"The <strong>branch of service</strong>\",\n \"defaultMessages.step.docUpload.uploadInfo.military.uploadInstructionsDependent\": \"Please upload a document that clearly shows your first name, last name, valid dates, and status\",\n \"defaultMessages.step.docUpload.uploadInfo.military.uploadInstructionsMilitaryIdContent\": \"Under the law, SheerID is not able to process copies of Military ID cards.\",\n \"defaultMessages.step.docUpload.uploadInfo.military.uploadInstructionsMilitaryIdTitle\": \"Do not upload a photo of your military ID.\",\n \"defaultMessages.step.docUpload.uploadInfo.military.veteran.status\": \"<strong>Veteran</strong> status\",\n \"defaultMessages.step.docUpload.uploadInfo.organization\": \"<strong>Organization name</strong>\",\n \"defaultMessages.step.docUpload.uploadInfo.recentMover.address\": \"<strong>New address</strong>\",\n \"defaultMessages.step.docUpload.uploadInfo.recentMover.validDate\": \"A <strong>valid date</strong> for your recent move\",\n \"defaultMessages.step.docUpload.uploadInfo.senior.birthDate\": \"<strong>Date of birth</strong>\",\n \"defaultMessages.step.docUpload.uploadInfo.student.enrollmentDate\": \"Date proving enrollment for the current term (or within the last 3 months)\",\n \"defaultMessages.step.docUpload.uploadInfo.student.school\": \"Your school\",\n \"defaultMessages.step.docUpload.uploadInfo.teacher.currentSchoolYear\": \"A date in the current school year\",\n \"defaultMessages.step.docUpload.uploadInfo.teacher.school\": \"Your school\",\n \"defaultMessages.step.docUpload.whatHappensNext\": \"What happens next?\",\n \"defaultMessages.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID, a trusted partner who specializes in verifying status.\",\n \"defaultMessages.step.emailLoop.collectOrganizationEmail.alternative\": \"Unable to access a work email address?\",\n \"defaultMessages.step.emailLoop.collectOrganizationEmail.email.label\": \"Work email address\",\n \"defaultMessages.step.emailLoop.collectOrganizationEmail.email.send\": \"Send Email\",\n \"defaultMessages.step.emailLoop.collectOrganizationEmail.subtitle\": \"Enter the email address provided by your employer and we'll send you a verification link\",\n \"defaultMessages.step.emailLoop.collectOrganizationEmail.title\": \"Verify using your work email address\",\n \"defaultMessages.step.emailLoop.errors.invalidEmail\": \"This email address is not valid for instant verification. Please use an email address provided by your employer or upload documentation below.\",\n \"defaultMessages.step.emailLoop.errors.resend\": \"Error sending email\",\n \"defaultMessages.step.emailLoop.resendButton\": \"Re-send\",\n \"defaultMessages.step.emailLoop.skipEmail\": \"Unable to retrieve this email? Click\",\n \"defaultMessages.step.emailLoop.skipEmail2\": \"to proceed.\",\n \"defaultMessages.step.emailLoop.skipEmailCTA\": \"here\",\n \"defaultMessages.step.emailLoop.subtitle2\": \"Please check for an email from us (verify@sheerid.com) for all the details.\",\n \"defaultMessages.step.emailLoop.subtitleWithEmail\": \"An email has been sent to {email} with a personalized link to complete the verification process.\",\n \"defaultMessages.step.emailLoop.subtitleWithoutEmail\": \"An email has been sent to your email account with a personalized link to complete the verification process.\",\n \"defaultMessages.step.emailLoop.successResend\": \"Email re-sent successfully.\",\n \"defaultMessages.step.emailLoop.title\": \"Check your email\",\n \"defaultMessages.step.error.errorId.expiredProgram.buttonText\": \"See More Offers\",\n \"defaultMessages.step.error.errorId.expiredProgram.title\": \"Offer Sold Out!\",\n \"defaultMessages.step.error.errorId.inactiveProgram.buttonText\": \"See More Offers\",\n \"defaultMessages.step.error.errorId.inactiveProgram.title\": \"Offer Sold Out!\",\n \"defaultMessages.step.error.errorId.ineligibleOrganization.title\": \"We were unable to verify your eligibility.\",\n \"defaultMessages.step.error.errorId.missingRequiredExternalId.title\": \"Please log in.\",\n \"defaultMessages.step.error.errorId.missingRequiredMetadata.title\": \"Please log in.\",\n \"defaultMessages.step.error.errorId.noRemainingRewardCodes.buttonText\": \"See More Offers\",\n \"defaultMessages.step.error.errorId.noRemainingRewardCodes.title\": \"Offer Sold Out!\",\n \"defaultMessages.step.error.errorId.unauthorizedAccountStatus.buttonText\": \"Contact Support\",\n \"defaultMessages.step.error.errorId.unauthorizedAccountStatus.title\": \"Offer Is Paused!\",\n \"defaultMessages.step.error.errorId.verificationLimitExceeded.title\": \"Verification Limit Exceeded\",\n \"defaultMessages.step.error.title\": \"Error\",\n \"defaultMessages.step.idCheckLoop.continue\": \"Continue\",\n \"defaultMessages.step.idCheckLoop.countrySelector.title\": \"Issuing Country\",\n \"defaultMessages.step.idCheckLoop.disclaimer\": \"SheerID, {companyName}'s trusted partner, use a third party, {serviceType}, to process our identity check.\",\n \"defaultMessages.step.idCheckLoop.docTypeSelector.subtitle\": \"You'll need access to a mobile phone with a camera or computer with a webcam.\",\n \"defaultMessages.step.idCheckLoop.docTypeSelector.title\": \"Choose your document\",\n \"defaultMessages.step.idCheckLoop.docTypes.driverLicense.subtitle\": \"Front and back\",\n \"defaultMessages.step.idCheckLoop.docTypes.driverLicense.title\": \"Driver's License\",\n \"defaultMessages.step.idCheckLoop.docTypes.identityCard.subtitle\": \"Front and back\",\n \"defaultMessages.step.idCheckLoop.docTypes.identityCard.title\": \"Government ID\",\n \"defaultMessages.step.idCheckLoop.docTypes.passport.subtitle\": \"Photo page\",\n \"defaultMessages.step.idCheckLoop.docTypes.passport.title\": \"Passport\",\n \"defaultMessages.step.idCheckLoop.docTypes.residencePermit.subtitle\": \"Front and back\",\n \"defaultMessages.step.idCheckLoop.docTypes.residencePermit.title\": \"Residence Permit\",\n \"defaultMessages.step.idCheckLoop.regula.addBackImage\": \"Add back of ID\",\n \"defaultMessages.step.idCheckLoop.regula.addFontImage\": \"Add front of ID\",\n \"defaultMessages.step.idCheckLoop.regula.info.subtitle\": \"Drivers license, state ID, passport, or residence permit.\",\n \"defaultMessages.step.idCheckLoop.regula.info.title\": \"Photo of a government-issued ID\",\n \"defaultMessages.step.idCheckLoop.regula.sdk.imageQualityError\": \"The image has quality issues. Make sure it's clear, well-lit, and all details are visible.\",\n \"defaultMessages.step.idCheckLoop.regula.sdk.imageQualityErrorTitle\": \"We couldn't process your document\",\n \"defaultMessages.step.idCheckLoop.regula.sdk.rejectedImageNextStep\": \"Please retake and upload again.\",\n \"defaultMessages.step.idCheckLoop.regula.sdk.subtitle\": \"Submit a photo of your government-issued ID to continue verification.\",\n \"defaultMessages.step.idCheckLoop.regula.sdk.title\": \"Identity document upload\",\n \"defaultMessages.step.idCheckLoop.regula.sdk.uploadAgain\": \"Upload Again\",\n \"defaultMessages.step.idCheckLoop.regula.submit\": \"Submit\",\n \"defaultMessages.step.idCheckLoop.regula.terms\": \"By clicking \\\"Continue\\\", you agree you have read, understand, and accept the {privacyPolicyLink} and {termsOfService}.\",\n \"defaultMessages.step.idCheckLoop.regula.title\": \"To continue, we need to verify your identity.\",\n \"defaultMessages.step.idCheckLoop.regula.uploadFileError\": \"There was an error uploading your files. Please try again.\",\n \"defaultMessages.step.idCheckLoop.regula.uploadSubtitle\": \"Make sure information on the document can be easily read. Avoid glares.\",\n \"defaultMessages.step.idCheckLoop.regula.uploadTitle\": \"Upload government issued ID\",\n \"defaultMessages.step.idCheckLoop.steps.docReview.title\": \"Upload proof of status\",\n \"defaultMessages.step.idCheckLoop.steps.idCheck.subtitle\": \"A valid government-issued document such as a driver's license, state ID, passport, or residence permit.\",\n \"defaultMessages.step.idCheckLoop.steps.idCheck.title\": \"Take a photo of your government ID\",\n \"defaultMessages.step.idCheckLoop.steps.selfie.title\": \"Take a selfie\",\n \"defaultMessages.step.idCheckLoop.subtitle\": \"You'll need access to a mobile phone with a camera or computer with a webcam.\",\n \"defaultMessages.step.idCheckLoop.terms\": \"By clicking \\\"Continue\\\", you agree you have read, understand, and accept {scanPolicy}, {privacyPolicyLink}, and {termsOfService}.\",\n \"defaultMessages.step.idCheckLoop.title\": \"Let's verify your identity\",\n \"defaultMessages.step.override.errors.codeOverrideLimit\": \"Override code limit exceeded.\",\n \"defaultMessages.step.override.errors.invalidCode\": \"Invalid Override Code.\",\n \"defaultMessages.step.override.submitOverrideCodeButtonLabel\": \"Submit Override Code\",\n \"defaultMessages.step.override.subtitle\": \"If you are verifying in store and do not have a document to prove your eligibility or are having difficulty uploading a document, approach an in-store associate to determine your eligibility.\",\n \"defaultMessages.step.override.subtitle2\": \"Associates can choose to enter a verification override code below if they determine you are eligible for the offer.\",\n \"defaultMessages.step.override.title\": \"Unable to Verify Status\",\n \"defaultMessages.step.override.verificationOverrideCodeLabel\": \"Verification Override Code\",\n \"defaultMessages.step.pending.idCheckLoop.subtitle\": \"Hold tight, turnaround time is typically a few minutes or less.\",\n \"defaultMessages.step.pending.idCheckLoop.subtitle2\": \"We'll send you an email when we're finished reviewing.\",\n \"defaultMessages.step.pending.idCheckLoop.title\": \"We're reviewing your documents\",\n \"defaultMessages.step.pending.subtitle\": \"SheerID is reviewing your documents, to confirm your status. This process may take up to {maxReviewTime}.\",\n \"defaultMessages.step.pending.subtitle2\": \"Wait here or let us notify you of the outcome.\",\n \"defaultMessages.step.pending.subtitle3\": \"You will be contacted via email.\",\n \"defaultMessages.step.pending.titleReview\": \"Reviewing\",\n \"defaultMessages.step.pending.turnaroundTime\": \"Turnaround time is typically {estReviewTime}, and in rare times of high volume may take up to {maxReviewTime}.\",\n \"defaultMessages.step.personalInfo.captcha.error\": \"Unable to confirm you are human. Please check your connection, disable ad-blockers, or refresh the page and try again.\",\n \"defaultMessages.step.personalInfo.captcha.loading\": \"Confirming you are human, please click \\\"{submitButtonText}\\\" again once the button becomes enabled.\",\n \"defaultMessages.step.personalInfo.captcha.retryButton\": \"Retry\",\n \"defaultMessages.step.personalInfo.captcha.success\": \"Confirmation complete, please click \\\"{submitButtonText}\\\" again to continue with verification.\",\n \"defaultMessages.step.personalInfo.emailFirstCollectInfo.existingVerificationFound.closing\": \"Enjoy!\",\n \"defaultMessages.step.personalInfo.emailFirstCollectInfo.existingVerificationFound.message\": \"Verify@sheerid.com resent your confirmation email with details on redeeming your verified offer.\",\n \"defaultMessages.step.personalInfo.emailFirstCollectInfo.existingVerificationFound.title\": \"You’ve been here before!\",\n \"defaultMessages.step.personalInfo.emailFirstCollectInfo.needChanges\": \"Need to make changes?\",\n \"defaultMessages.step.personalInfo.emailFirstCollectInfo.pendingVerification.closing\": \"Verify@sheerid.com re-sent our last email to you with next steps.\",\n \"defaultMessages.step.personalInfo.emailFirstCollectInfo.pendingVerification.message\": \"This email is associated with a verification in the works.\",\n \"defaultMessages.step.personalInfo.emailFirstCollectInfo.pendingVerification.title\": \"Looks like you started.\",\n \"defaultMessages.step.personalInfo.emailFirstCollectInfo.proceedHere\": \"Proceed here\",\n \"defaultMessages.step.personalInfo.emailFirstCollectInfo.rejectedVerification.closing\": \"Verify@sheerid.com re-sent our last email to you with next steps.\",\n \"defaultMessages.step.personalInfo.emailFirstCollectInfo.rejectedVerification.message\": \"This email is associated with a verification in the works and needs another document uploaded.\",\n \"defaultMessages.step.personalInfo.emailFirstCollectInfo.rejectedVerification.title\": \"Looks like you started.\",\n \"defaultMessages.step.personalInfo.emailFirstCollectInfo.sendAgain\": \"Send Again\",\n \"defaultMessages.step.personalInfo.emailFirstCollectInfo.sent\": \"Sent!\",\n \"defaultMessages.step.personalInfo.submitButtonText\": \"Verify and continue\",\n \"defaultMessages.step.personalInfo.verifyingSubtitle\": \"This should only take a minute\",\n \"defaultMessages.step.personalInfo.verifyingTitle\": \"Verifying your status\",\n \"defaultMessages.step.smsLoop.errors.codeExpired\": \"Verification code could not be validated.\",\n \"defaultMessages.step.smsLoop.errors.codeResendLimit\": \"Maximum number of re-tries has been reached.\",\n \"defaultMessages.step.smsLoop.errors.codeVerification\": \"Verification code could not be validated.\",\n \"defaultMessages.step.smsLoop.errors.resend\": \"Error sending the SMS message\",\n \"defaultMessages.step.smsLoop.incorrectNumber.incorrectNumber1\": \"Incorrect number? Click\",\n \"defaultMessages.step.smsLoop.incorrectNumber.incorrectNumber2\": \"here\",\n \"defaultMessages.step.smsLoop.incorrectNumber.incorrectNumber3\": \"to return to {companyName}\",\n \"defaultMessages.step.smsLoop.resendButton\": \"Re-send\",\n \"defaultMessages.step.smsLoop.submitButton\": \"Submit\",\n \"defaultMessages.step.smsLoop.successResend\": \"SMS message re-sent successfully\",\n \"defaultMessages.step.smsLoop.titleWithNumber\": \"We've sent an SMS message to the mobile number ending in {number}. Enter your code here.\",\n \"defaultMessages.step.smsLoop.titleWithoutNumber\": \"We've sent an SMS to your mobile number. Please enter the code here.\",\n \"defaultMessages.step.smsLoop.verificationCode\": \"Verification Code\",\n \"defaultMessages.step.sso.alternative\": \"You can also verify by uploading proof of eligibility\",\n \"defaultMessages.step.sso.cancel\": \"Upload documents\",\n \"defaultMessages.step.sso.login\": \"Sign in to my school\",\n \"defaultMessages.step.sso.preheader\": \"Quickest Method\",\n \"defaultMessages.step.sso.subtitle\": \"Please sign in to your school's web portal. It will open in a new tab.\",\n \"defaultMessages.step.sso.subtitle2\": \"Unable to sign in?\",\n \"defaultMessages.step.sso.title\": \"Verify using your school credentials\",\n \"defaultMessages.step.success.copyCouponCode\": \"Copy coupon code\",\n \"defaultMessages.step.success.emailNotification\": \"We have sent you a confirmation email with redemption instructions. Look for the email from {email}.\",\n \"defaultMessages.step.success.rememberMe.consumerFound.button\": \"Save to Remember Me\",\n \"defaultMessages.step.success.rememberMe.consumerFound.description\": \"Save new info for future offers with {companyName} and other brands using SheerID's Remember Me service.\",\n \"defaultMessages.step.success.rememberMe.consumerFound.title\": \"Update Your Profile\",\n \"defaultMessages.step.success.rememberMe.consumerNotFound.button\": \"Enroll Now\",\n \"defaultMessages.step.success.rememberMe.consumerNotFound.description\": \"Get faster access to future offers with {companyName} and other brands using SheerID's Remember Me service.\",\n \"defaultMessages.step.success.rememberMe.consumerNotFound.title\": \"Save your info for 1-click verification\",\n \"defaultMessages.step.success.verificationOnly\": \"SheerID handles verification only. Now that you've been approved, please direct all questions about the promotion terms to {companyName} customer service.\",\n \"defaultMessages.step.thirdPartyLoop.error\": \"Provider not supported\",\n \"defaultMessages.step.thirdPartyLoop.signzy.cancel\": \"Upload Proof of Identity\",\n \"defaultMessages.step.thirdPartyLoop.signzy.login\": \"Sign in to DigiLocker\",\n \"defaultMessages.step.thirdPartyLoop.signzy.subtitle\": \"Verify using your DigiLocker login information\",\n \"defaultMessages.step.thirdPartyLoop.signzy.title\": \"Verify using DigiLocker\",\n \"defaultMessages.streetAddress\": \"Street Address\",\n \"defaultMessages.studentInfoShared\": \"Information entered here will be used for verification purposes and shared with {companyName}.\",\n \"defaultMessages.tryAgain\": \"Try again\",\n \"defaultMessages.tryFullNameTips\": \"Try typing the full name of the academic institution rather than using acronyms or abbreviations.\",\n \"defaultMessages.universityName\": \"University name\",\n \"defaultMessages.verificationPurposesOnly\": \"Used for verification purposes only\",\n \"defaultMessages.verifyAndContinue\": \"Verify and continue\",\n \"defaultMessages.verifyMyEmploymentStatus\": \"Verify My Employee Status\",\n \"defaultMessages.verifyMyFirstResponderStatus\": \"Verify My First Responder Status\",\n \"defaultMessages.verifyMyIdentityStatus\": \"Verify My Identity\",\n \"defaultMessages.verifyMyLicensedProfessionalStatus\": \"Verify My Licensed Professional Status\",\n \"defaultMessages.verifyMyLowIncomeStatus\": \"Verify my status\",\n \"defaultMessages.verifyMyMedicalProfessionalStatus\": \"Verify My Medical Professional Status\",\n \"defaultMessages.verifyMyMembershipStatus\": \"Verify My Membership Status\",\n \"defaultMessages.verifyMyMilitaryStatus\": \"Verify My Military Status\",\n \"defaultMessages.verifyMyMoverStatus\": \"Verify My New Mover Status\",\n \"defaultMessages.verifyMyStudentStatus\": \"Verify My Student Status\",\n \"defaultMessages.verifyMyTeacherStatus\": \"Verify My Educator Status\",\n \"defaultMessages.warningId.openOrganization\": \"We couldn't find a match for that name in our database. Please double-check the spelling, if it's correct, feel free to continue!\",\n \"segmentMessages.age.emailExplanation\": \"Personal email address is recommended\",\n \"segmentMessages.age.step.docUpload.title\": \"To continue, upload documents that confirm your age\",\n \"segmentMessages.age.step.docUpload.uploadInstructions\": \"Upload a government-issued document that shows\",\n \"segmentMessages.age.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID, a trusted partner who specializes in verifying age.\",\n \"segmentMessages.age.step.personalInfo.howDoesVerifyingWorkDetails\": \"To be eligible for this offer, you must be of a certain age.<br><br>{{companyName}} uses SheerID, a trusted partner, to verify your age. SheerID only collects information that assists in verifying your eligibility. Additional information or documentation may be requested.\",\n \"segmentMessages.age.step.personalInfo.submitButtonText\": \"Verify and continue\",\n \"segmentMessages.age.step.personalInfo.subtitle\": \"Verify your current age.\",\n \"segmentMessages.age.step.personalInfo.title\": \"Unlock Your Special Offer\",\n \"segmentMessages.age.step.personalInfo.tryAgain.subtitle\": \"Your full name and birthdate must match what is on your government-issued documents.\",\n \"segmentMessages.age.step.personalInfo.tryAgain.title\": \"Check Your Name & Birthdate\",\n \"segmentMessages.age.step.personalInfo.verifyingTitle\": \"Verifying your age\",\n \"segmentMessages.age.step.success.redirectButtonText\": \"Continue\",\n \"segmentMessages.age.step.success.subtitle\": \"You are now eligible for this special offer.\",\n \"segmentMessages.age.step.success.title\": \"You've been verified\",\n \"segmentMessages.employment.addressExplanation\": \"Use your home address\",\n \"segmentMessages.employment.emailExplanation\": \"Use your work email if you have one\",\n \"segmentMessages.employment.step.docUpload.title\": \"To continue, upload documents that confirm employment status\",\n \"segmentMessages.employment.step.docUpload.uploadInstructions\": \"Upload an official document that shows\",\n \"segmentMessages.employment.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID, a trusted partner who specializes in verifying employees.\",\n \"segmentMessages.employment.step.personalInfo.howDoesVerifyingWorkDetails\": \"{{companyName}} has set up this special offer for all current employees of select companies.<br><br>{{companyName}} uses SheerID, a trusted partner, to verify that you are currently employed. SheerID only collects information that assists in verifying your eligibility. Additional information or documentation may be requested.\",\n \"segmentMessages.employment.step.personalInfo.submitButtonText\": \"Verify My Employee Status\",\n \"segmentMessages.employment.step.personalInfo.subtitle\": \"Verify you're a current employee at an eligible company.\",\n \"segmentMessages.employment.step.personalInfo.title\": \"Unlock this Employment-Only Offer\",\n \"segmentMessages.employment.step.personalInfo.tryAgain.subtitle\": \"The information you have provided should match your official documents.\",\n \"segmentMessages.employment.step.personalInfo.tryAgain.title\": \"Check the information that you have provided\",\n \"segmentMessages.employment.step.personalInfo.verifyingTitle\": \"Verifying your employment status\",\n \"segmentMessages.employment.step.sso.alternative\": \"You can also verify by uploading proof of employment\",\n \"segmentMessages.employment.step.sso.cancel\": \"Upload proof of employment\",\n \"segmentMessages.employment.step.sso.login\": \"Sign in to my email\",\n \"segmentMessages.employment.step.sso.subtitle\": \"Please sign in to your company's email portal. It will open in a new tab.\",\n \"segmentMessages.employment.step.sso.subtitle2\": \"Can't sign in to your email?\",\n \"segmentMessages.employment.step.sso.title\": \"Verify using your company-provided email credentials\",\n \"segmentMessages.employment.step.success.redirectButtonText\": \"Continue\",\n \"segmentMessages.employment.step.success.subtitle\": \"You are now eligible for this special offer.\",\n \"segmentMessages.employment.step.success.title\": \"You've been verified\",\n \"segmentMessages.firstResponder.emailExplanation\": \"Use your work email if you have one\",\n \"segmentMessages.firstResponder.step.docUpload.title\": \"To continue, upload documents that confirm your first responder status\",\n \"segmentMessages.firstResponder.step.docUpload.uploadInstructions\": \"Upload an official document that shows\",\n \"segmentMessages.firstResponder.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID, a trusted partner who specializes in verifying first responders.\",\n \"segmentMessages.firstResponder.step.personalInfo.howDoesVerifyingWorkDetails\": \"This offer is available to all US first responders and emergency personnel - including law enforcement, EMTs, paramedics, and firefighters.<br><br>{{companyName}} uses SheerID, a trusted partner, to verify that you are an active first responder. SheerID only collects information that assists in verifying your eligibility. Additional information or documentation may be requested.\",\n \"segmentMessages.firstResponder.step.personalInfo.submitButtonText\": \"Verify My First Responder Status\",\n \"segmentMessages.firstResponder.step.personalInfo.subtitle\": \"Verify you're an active first responder.\",\n \"segmentMessages.firstResponder.step.personalInfo.title\": \"Unlock this 1st Responder-Only Offer\",\n \"segmentMessages.firstResponder.step.personalInfo.tryAgain.subtitle\": \"Your full name, organization name, and email must match what is on record with your agency.\",\n \"segmentMessages.firstResponder.step.personalInfo.tryAgain.title\": \"Check Your Name, Email & Organization\",\n \"segmentMessages.firstResponder.step.personalInfo.verifyingTitle\": \"Verifying your first responder status\",\n \"segmentMessages.firstResponder.step.success.redirectButtonText\": \"Continue\",\n \"segmentMessages.firstResponder.step.success.subtitle\": \"You are now eligible for this special offer.\",\n \"segmentMessages.firstResponder.step.success.title\": \"You've been verified\",\n \"segmentMessages.identity.emailExplanation\": \"Personal email address is recommended\",\n \"segmentMessages.identity.step.docUpload.title\": \"To continue, upload documents that confirm your status\",\n \"segmentMessages.identity.step.docUpload.uploadInstructions\": \"Upload a government-issued document that shows\",\n \"segmentMessages.identity.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID, a trusted partner who specializes in verifying status.\",\n \"segmentMessages.identity.step.personalInfo.howDoesVerifyingWorkDetails\": \"To be eligible for this offer, you must have a valid driver license.<br><br>{{companyName}} uses SheerID, a trusted partner, to verify your identity. SheerID only collects information that assists in verifying your eligibility. Additional information or documentation may be requested.\",\n \"segmentMessages.identity.step.personalInfo.submitButtonText\": \"Verify My Identity\",\n \"segmentMessages.identity.step.personalInfo.subtitle\": \"Verify your current identity.\",\n \"segmentMessages.identity.step.personalInfo.title\": \"Unlock Your Special Offer\",\n \"segmentMessages.identity.step.personalInfo.tryAgain.subtitle\": \"Your information must match what is on your government-issued document(s).\",\n \"segmentMessages.identity.step.personalInfo.tryAgain.title\": \"Check Your Name & other fields\",\n \"segmentMessages.identity.step.personalInfo.verifyingTitle\": \"Verifying your identity\",\n \"segmentMessages.identity.step.success.redirectButtonText\": \"Continue\",\n \"segmentMessages.identity.step.success.subtitle\": \"You are now eligible for this special offer.\",\n \"segmentMessages.identity.step.success.title\": \"You've been verified\",\n \"segmentMessages.licensedProfessional.emailExplanation\": \"Use your work email if you have one\",\n \"segmentMessages.licensedProfessional.step.docUpload.title\": \"To continue, upload documents that confirm you are a licensed professional\",\n \"segmentMessages.licensedProfessional.step.docUpload.uploadInstructions\": \"Upload a government-issued document that shows\",\n \"segmentMessages.licensedProfessional.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID, a trusted partner who specializes in verifying licensed professionals.\",\n \"segmentMessages.licensedProfessional.step.personalInfo.howDoesVerifyingWorkDetails\": \"To be eligible for this offer, you must hold a current professional license in your specified field. Eligible fields are shown in the Status selector of this form.<br><br>{{companyName}} uses SheerID, a trusted partner, to verify that you are a licensed professional. SheerID only collects information that assists in verifying your eligibility. Additional information or documentation may be requested.\",\n \"segmentMessages.licensedProfessional.step.personalInfo.submitButtonText\": \"Verify My Licensed Professional Status\",\n \"segmentMessages.licensedProfessional.step.personalInfo.subtitle\": \"Verify you have a professional license in your field.\",\n \"segmentMessages.licensedProfessional.step.personalInfo.title\": \"Unlock this Special Offer\",\n \"segmentMessages.licensedProfessional.step.personalInfo.tryAgain.subtitle\": \"Your information must match what is on your government-issued document(s).\",\n \"segmentMessages.licensedProfessional.step.personalInfo.tryAgain.title\": \"Check Your Name & other fields\",\n \"segmentMessages.licensedProfessional.step.personalInfo.verifyingTitle\": \"Verifying your license\",\n \"segmentMessages.licensedProfessional.step.success.redirectButtonText\": \"Continue\",\n \"segmentMessages.licensedProfessional.step.success.subtitle\": \"You are now eligible for this special offer.\",\n \"segmentMessages.licensedProfessional.step.success.title\": \"You've been verified\",\n \"segmentMessages.lowIncome.addressExplanation\": \"Use your home address\",\n \"segmentMessages.lowIncome.step.docUpload.title\": \"To continue, upload documents that confirm your participation in an approved government assistance program\",\n \"segmentMessages.lowIncome.step.docUpload.uploadInstructions\": \"Upload an official document that shows\",\n \"segmentMessages.lowIncome.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID, a trusted partner who specializes in verifying your eligibility.\",\n \"segmentMessages.lowIncome.step.personalInfo.howDoesVerifyingWorkDetails\": \"To be eligible for this offer, you must currently qualify for an eligible government assistance program. The eligible Government Assistance Programs for this offer can be found in the box below.<br><br>{{companyName}} uses SheerID, a trusted partner, to verify that you are a recipient of these benefits. SheerID only collects information that assists in verifying your eligibility. Additional information or documentation may be requested.\",\n \"segmentMessages.lowIncome.step.personalInfo.submitButtonText\": \"Verify my status\",\n \"segmentMessages.lowIncome.step.personalInfo.subtitle\": \"Verify you qualify for an eligible government assistance program.\",\n \"segmentMessages.lowIncome.step.personalInfo.title\": \"Unlock this Special Offer\",\n \"segmentMessages.lowIncome.step.personalInfo.tryAgain.subtitle\": \"Your information must match what is on your government-issued document(s).\",\n \"segmentMessages.lowIncome.step.personalInfo.tryAgain.title\": \"Check Your full name & other fields\",\n \"segmentMessages.lowIncome.step.personalInfo.verifyingTitle\": \"Verifying your status\",\n \"segmentMessages.lowIncome.step.success.redirectButtonText\": \"Continue\",\n \"segmentMessages.lowIncome.step.success.subtitle\": \"You are now eligible for this special offer.\",\n \"segmentMessages.lowIncome.step.success.title\": \"You've been verified\",\n \"segmentMessages.medical.emailExplanation\": \"Use your work email if you have one\",\n \"segmentMessages.medical.step.docUpload.title\": \"To continue, upload documents that confirm your medical status\",\n \"segmentMessages.medical.step.docUpload.uploadInstructions\": \"Upload an official document that shows\",\n \"segmentMessages.medical.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID, a trusted partner who specializes in verifying medical professionals.\",\n \"segmentMessages.medical.step.personalInfo.howDoesVerifyingWorkDetails\": \"To be eligible for this offer, you must be a medical care professional and be a member of an eligible group of the medical care profession. Eligible groups are shown in the Status selector of this form.<br><br>{{companyName}} uses SheerID, a trusted partner, to verify that you are a medical professional. SheerID only collects information that assists in verifying your eligibility. Additional information or documentation may be requested.\",\n \"segmentMessages.medical.step.personalInfo.submitButtonText\": \"Verify My Medical Professional Status\",\n \"segmentMessages.medical.step.personalInfo.subtitle\": \"Verify you're a licensed medical professional.\",\n \"segmentMessages.medical.step.personalInfo.title\": \"Unlock this Medical Professional-Only Offer\",\n \"segmentMessages.medical.step.personalInfo.tryAgain.subtitle\": \"Your first and last name, birthdate and organization must match what is on your official documents.\",\n \"segmentMessages.medical.step.personalInfo.tryAgain.title\": \"Check your Name, Birthdate & Organization\",\n \"segmentMessages.medical.step.personalInfo.verifyingTitle\": \"Verifying your medical professional status\",\n \"segmentMessages.medical.step.sso.alternative\": \"You can also verify by uploading proof of employment\",\n \"segmentMessages.medical.step.sso.login\": \"Sign into my employer web portal\",\n \"segmentMessages.medical.step.sso.subtitle\": \"Please sign into your employer's web portal. It will open in a new tab.\",\n \"segmentMessages.medical.step.sso.title\": \"Verify your Healthcare status\",\n \"segmentMessages.medical.step.success.redirectButtonText\": \"Continue\",\n \"segmentMessages.medical.step.success.subtitle\": \"You are now eligible for this special offer.\",\n \"segmentMessages.medical.step.success.title\": \"You've been verified\",\n \"segmentMessages.member.step.docUpload.title\": \"To continue, upload documents that confirm an active membership\",\n \"segmentMessages.member.step.docUpload.uploadInstructions\": \"Upload an official document that shows\",\n \"segmentMessages.member.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID, a trusted partner who specializes in verifying members.\",\n \"segmentMessages.member.step.personalInfo.howDoesVerifyingWorkDetails\": \"{{companyName}} has set up this special offer for all current members of select organizations.<br><br>{{companyName}} uses SheerID, a trusted partner, to verify that you are currently employed. SheerID only collects information that assists in verifying your eligibility. Additional information or documentation may be requested.\",\n \"segmentMessages.member.step.personalInfo.submitButtonText\": \"Verify My Membership Status\",\n \"segmentMessages.member.step.personalInfo.subtitle\": \"Verify you're a current member of an eligible organization.\",\n \"segmentMessages.member.step.personalInfo.title\": \"Unlock this Members-Only Offer\",\n \"segmentMessages.member.step.personalInfo.tryAgain.subtitle\": \"The information you have provided should match your official documents.\",\n \"segmentMessages.member.step.personalInfo.tryAgain.title\": \"Check the information that you have provided\",\n \"segmentMessages.member.step.personalInfo.verifyingTitle\": \"Verifying your membership status\",\n \"segmentMessages.member.step.success.redirectButtonText\": \"Continue\",\n \"segmentMessages.member.step.success.subtitle\": \"You are now eligible for this special offer.\",\n \"segmentMessages.member.step.success.title\": \"You've been verified\",\n \"segmentMessages.military.emailExplanation\": \"Personal email address is recommended\",\n \"segmentMessages.military.step.docUpload.title\": \"To continue, upload documents that confirm your military status\",\n \"segmentMessages.military.step.docUpload.uploadInstructions\": \"Upload your government-issued document that shows\",\n \"segmentMessages.military.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID, a trusted partner who specializes in verifying military.\",\n \"segmentMessages.military.step.personalInfo.howDoesVerifyingWorkDetails\": \"This offer is available to military personnel who have served or are currently serving in the United States Armed Forces.<br><br>{{companyName}} uses SheerID, a trusted partner, to verify that you are a member of the military. SheerID only collects information that assists in verifying your eligibility. Additional information or documentation may be requested.\",\n \"segmentMessages.military.step.personalInfo.submitButtonText\": \"Verify My Military Status\",\n \"segmentMessages.military.step.personalInfo.subtitle\": \"Verify you're a member of the armed forces.\",\n \"segmentMessages.military.step.personalInfo.title\": \"Unlock this Military-Only Offer\",\n \"segmentMessages.military.step.personalInfo.tryAgain.subtitle\": \"Enter your first and last name on the form as it appears on your military document(s). Keep in mind that may be your given name.\",\n \"segmentMessages.military.step.personalInfo.tryAgain.title\": \"Check Your Name & Birthdate\",\n \"segmentMessages.military.step.personalInfo.verifyingTitle\": \"Verifying your military status\",\n \"segmentMessages.military.step.success.redirectButtonText\": \"Continue\",\n \"segmentMessages.military.step.success.subtitle\": \"You are now eligible for this special offer.\",\n \"segmentMessages.military.step.success.title\": \"You've been verified\",\n \"segmentMessages.recentMover.emailExplanation\": \"Personal email address is recommended\",\n \"segmentMessages.recentMover.step.docUpload.title\": \"To continue, upload documents that confirm you've recently moved\",\n \"segmentMessages.recentMover.step.docUpload.uploadInstructions\": \"Upload an official document that shows\",\n \"segmentMessages.recentMover.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID, a trusted partner who specializes in verifying recent movers.\",\n \"segmentMessages.recentMover.step.personalInfo.howDoesVerifyingWorkDetails\": \"To be eligible for this offer, you must have moved to a new address within the last 60 days.<br><br>{{companyName}} uses SheerID, a trusted partner, to verify that you have recently moved. SheerID only collects information that assists in verifying your eligibility. Additional information or documentation may be requested.\",\n \"segmentMessages.recentMover.step.personalInfo.submitButtonText\": \"Verify My New Mover Status\",\n \"segmentMessages.recentMover.step.personalInfo.subtitle\": \"Verify you have recently moved.\",\n \"segmentMessages.recentMover.step.personalInfo.title\": \"Unlock this Special Offer\",\n \"segmentMessages.recentMover.step.personalInfo.tryAgain.subtitle\": \"Your first and last name and address must match what is on your official documents.\",\n \"segmentMessages.recentMover.step.personalInfo.tryAgain.title\": \"Check Your Name & Address Information\",\n \"segmentMessages.recentMover.step.personalInfo.verifyingTitle\": \"Verifying your moving status\",\n \"segmentMessages.recentMover.step.success.redirectButtonText\": \"Continue\",\n \"segmentMessages.recentMover.step.success.subtitle\": \"You are now eligible for this special offer.\",\n \"segmentMessages.recentMover.step.success.title\": \"You've been verified\",\n \"segmentMessages.senior.emailExplanation\": \"Personal email address is recommended\",\n \"segmentMessages.senior.step.docUpload.title\": \"To continue, upload documents that confirm your age\",\n \"segmentMessages.senior.step.docUpload.uploadInstructions\": \"Upload a government-issued document that shows\",\n \"segmentMessages.senior.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID, a trusted partner who specializes in verifying age.\",\n \"segmentMessages.senior.step.personalInfo.howDoesVerifyingWorkDetails\": \"To be eligible for this offer, you must be of a certain age.<br><br>{{companyName}} uses SheerID, a trusted partner, to verify your age. SheerID only collects information that assists in verifying your eligibility. Additional information or documentation may be requested.\",\n \"segmentMessages.senior.step.personalInfo.submitButtonText\": \"Verify and continue\",\n \"segmentMessages.senior.step.personalInfo.subtitle\": \"Verify your current age.\",\n \"segmentMessages.senior.step.personalInfo.title\": \"Unlock Your Special Offer\",\n \"segmentMessages.senior.step.personalInfo.tryAgain.subtitle\": \"Your full name and birthdate must match what is on your government-issued documents.\",\n \"segmentMessages.senior.step.personalInfo.tryAgain.title\": \"Check Your Name & Birthdate\",\n \"segmentMessages.senior.step.personalInfo.verifyingTitle\": \"Verifying your age\",\n \"segmentMessages.senior.step.success.redirectButtonText\": \"Continue\",\n \"segmentMessages.senior.step.success.subtitle\": \"You are now eligible for this special offer.\",\n \"segmentMessages.senior.step.success.title\": \"You've been verified\",\n \"segmentMessages.student.emailExplanation\": \"A student email address is preferred\",\n \"segmentMessages.student.schoolName\": \"School\",\n \"segmentMessages.student.step.docUpload.title\": \"To continue, upload documents that confirm your student status\",\n \"segmentMessages.student.step.docUpload.uploadInstructions\": \"Upload your school-issued document that shows\",\n \"segmentMessages.student.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID, a trusted partner who specializes in verifying students.\",\n \"segmentMessages.student.step.emailLoop.collectOrganizationEmail.alternative\": \"Unable to access an academic email address?\",\n \"segmentMessages.student.step.emailLoop.collectOrganizationEmail.email.label\": \"Academic email address\",\n \"segmentMessages.student.step.emailLoop.collectOrganizationEmail.subtitle\": \"Enter the email address provided by your academic institution and we'll send you a verification link\",\n \"segmentMessages.student.step.emailLoop.collectOrganizationEmail.title\": \"Verify using your academic email address\",\n \"segmentMessages.student.step.emailLoop.errors.invalidEmail\": \"This email address is not valid for instant verification. Please use an email address provided by your academic institution or upload documentation below.\",\n \"segmentMessages.student.step.personalInfo.howDoesVerifyingWorkDetails\": \"To be eligible for this offer, you must currently be enrolled in a degree or certificate-granting, accredited school of education.<br><br>{{companyName}} uses SheerID, a trusted partner, to verify that you are a current student. SheerID only collects information that assists in verifying your eligibility. Additional information or documentation may be requested.\",\n \"segmentMessages.student.step.personalInfo.submitButtonText\": \"Verify My Student Status\",\n \"segmentMessages.student.step.personalInfo.subtitle\": \"Verify you're a student at a degree-granting school.\",\n \"segmentMessages.student.step.personalInfo.title\": \"Unlock this Student-Only Offer\",\n \"segmentMessages.student.step.personalInfo.tryAgain.subtitle\": \"Your full name and birthdate must match what is on your official school records.\",\n \"segmentMessages.student.step.personalInfo.tryAgain.title\": \"Check Your Name & Birthdate\",\n \"segmentMessages.student.step.personalInfo.verifyingTitle\": \"Verifying your student status\",\n \"segmentMessages.student.step.sso.alternative\": \"You can also verify by uploading proof of your enrollment\",\n \"segmentMessages.student.step.sso.cancel\": \"Upload Proof of Enrollment\",\n \"segmentMessages.student.step.sso.login\": \"Sign into my academic institution\",\n \"segmentMessages.student.step.sso.subtitle\": \"Your academic institution's portal will open in a new window for you to verify using your login information\",\n \"segmentMessages.student.step.sso.title\": \"Verify using academic institution credentials\",\n \"segmentMessages.student.step.success.redirectButtonText\": \"Continue\",\n \"segmentMessages.student.step.success.subtitle\": \"You are now eligible for this special offer.\",\n \"segmentMessages.student.step.success.title\": \"You've been verified\",\n \"segmentMessages.teacher.emailExplanation\": \"Must be your school-issued email address\",\n \"segmentMessages.teacher.schoolName\": \"School name\",\n \"segmentMessages.teacher.schoolNamePlaceholder\": \"School name\",\n \"segmentMessages.teacher.step.docUpload.title\": \"To continue upload documents that confirm your educator status\",\n \"segmentMessages.teacher.step.docUpload.uploadInstructions\": \"Upload your school-issued document that shows\",\n \"segmentMessages.teacher.step.docUpload.whoIsSheerId\": \"Document review is handled by SheerID a trusted partner who specializes in verifying educators.\",\n \"segmentMessages.teacher.step.personalInfo.howDoesVerifyingWorkDetails\": \"To be eligible for this offer you must currently be employed as a educator faculty or staff at an accredited educational institution.<br><br>{{companyName}} uses SheerID a trusted partner to verify that you are a current educator faculty or staff member. SheerID only collects information that assists in verifying your eligibility. Additional information or documentation may be requested.\",\n \"segmentMessages.teacher.step.personalInfo.submitButtonText\": \"Verify My Educator Status\",\n \"segmentMessages.teacher.step.personalInfo.subtitle\": \"Verify you're a educator, faculty, or staff at an accredited educational institution.\",\n \"segmentMessages.teacher.step.personalInfo.title\": \"Unlock this Educator-Only Offer\",\n \"segmentMessages.teacher.step.personalInfo.tryAgain.subtitle\": \"Your full name and email address must match what is on record with your school.\",\n \"segmentMessages.teacher.step.personalInfo.tryAgain.title\": \"Check Your Name & Email\",\n \"segmentMessages.teacher.step.personalInfo.verifyingTitle\": \"Verifying your educator status\",\n \"segmentMessages.teacher.step.success.redirectButtonText\": \"Continue\",\n \"segmentMessages.teacher.step.success.subtitle\": \"You are now eligible for this special offer.\",\n \"segmentMessages.teacher.step.success.title\": \"You've been verified\",\n \"defaultMessages.footerText_sso\": \"By proceeding, you agree to share your personal information with SheerID in its role as a processor/third-party service provider on behalf of the business from which you are seeking a discount. You acknowledge that the personal information collected to verify you will be processed in accordance with the privacy policy of the business from which you are seeking a discount. <aboutSheerID>More about SheerID.</aboutSheerID>\",\n \"defaultMessages.locales.tl\": \"Filipino\",\n \"defaultMessages.locales.kk\": \"Қазақ\",\n \"defaultMessages.locales.lv\": \"Latviešu\",\n \"defaultMessages.locales.et\": \"eesti\",\n \"defaultMessages.locales.ta\": \"தமிழ்\",\n \"defaultMessages.locales.fa\": \"فارسی\"\n}\n","import { flatten } from \"flat\";\n\nimport { logger } from \"@jslib/shared/utils/logger\";\nimport { getSafe } from \"@jslib/shared/utils/getSafe\";\n\nimport {\n type Locale,\n type StringMap,\n type ProgramTheme,\n type DefaultMessages,\n type ProgramThemeMessages,\n type SegmentSpecificMessages,\n type Segment,\n type ViewModel,\n type MessagesModule,\n type VerificationResponse,\n} from \"../types/types\";\nimport { assertValidLocale, isValidLocale } from \"../types/assertions\";\nimport { getOptions } from \"../../options/options\";\nimport { DEFAULT_LOCALE } from \"../../constants\";\nimport { getQueryParamsFromUrl } from \"../utils/routing/Url\";\n\nimport enUSMessages from \"./localized-messages/en-US.json\";\n\nconst messagesModuleCache = new Map<Locale, Promise<MessagesModule>>();\n\nconst prepareMsgsModule = (localizedMessages: StringMap): MessagesModule => {\n const nonEmptyMessages = Object.keys(localizedMessages).reduce((messages, currentKey) => {\n if (localizedMessages[currentKey]) {\n messages[currentKey] = localizedMessages[currentKey]; // eslint-disable-line\n }\n return messages;\n }, {});\n\n return flatten.unflatten(nonEmptyMessages);\n};\n\n/**\n * @private\n * NOTE: webpack will not import chunks recursively, or with more than one variable in the path.\n * Here we're using a fully statically-defined import, for reliability.\n */\nexport const getMessagesModuleByLocale = async (locale: Locale): Promise<MessagesModule> => {\n if (messagesModuleCache.has(locale)) {\n return messagesModuleCache.get(locale)!;\n }\n\n const loader = async (): Promise<MessagesModule> => {\n let localizedMessages;\n\n /* tslint:disable:space-in-parens */\n switch (locale) {\n case \"ar\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_ar\" */ \"./localized-messages/ar.json\"\n ).then((m) => m.default);\n break;\n case \"bg\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_bg\" */ \"./localized-messages/bg.json\"\n ).then((m) => m.default);\n break;\n case \"bn-IN\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_bn-IN\" */ \"./localized-messages/bn-IN.json\"\n ).then((m) => m.default);\n break;\n case \"cs\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_cs\" */ \"./localized-messages/cs.json\"\n ).then((m) => m.default);\n break;\n case \"da\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_da\" */ \"./localized-messages/da.json\"\n ).then((m) => m.default);\n break;\n case \"de\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_de\" */ \"./localized-messages/de.json\"\n ).then((m) => m.default);\n break;\n case \"el\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_el\" */ \"./localized-messages/el.json\"\n ).then((m) => m.default);\n break;\n case \"en-GB\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_en-GB\" */ \"./localized-messages/en-GB.json\"\n ).then((m) => m.default);\n break;\n case \"en-US\":\n localizedMessages = enUSMessages;\n break;\n case \"es-ES\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_es-ES\" */ \"./localized-messages/es-ES.json\"\n ).then((m) => m.default);\n break;\n case \"es\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_es\" */ \"./localized-messages/es.json\"\n ).then((m) => m.default);\n break;\n case \"et\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_et\" */ \"./localized-messages/et.json\"\n ).then((m) => m.default);\n break;\n case \"fa\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_fa\" */ \"./localized-messages/fa.json\"\n ).then((m) => m.default);\n break;\n case \"fi\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_fi\" */ \"./localized-messages/fi.json\"\n ).then((m) => m.default);\n break;\n case \"fr-CA\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_fr-CA\" */ \"./localized-messages/fr-CA.json\"\n ).then((m) => m.default);\n break;\n case \"fr\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_fr\" */ \"./localized-messages/fr.json\"\n ).then((m) => m.default);\n break;\n case \"ga\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_ga\" */ \"./localized-messages/ga.json\"\n ).then((m) => m.default);\n break;\n case \"hi-IN\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_hi-IN\" */ \"./localized-messages/hi-IN.json\"\n ).then((m) => m.default);\n break;\n case \"hr\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_hr\" */ \"./localized-messages/hr.json\"\n ).then((m) => m.default);\n break;\n case \"hu\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_hu\" */ \"./localized-messages/hu.json\"\n ).then((m) => m.default);\n break;\n case \"id\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_id\" */ \"./localized-messages/id.json\"\n ).then((m) => m.default);\n break;\n case \"is\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_is\" */ \"./localized-messages/is.json\"\n ).then((m) => m.default);\n break;\n case \"it\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_it\" */ \"./localized-messages/it.json\"\n ).then((m) => m.default);\n break;\n case \"iw\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_iw\" */ \"./localized-messages/iw.json\"\n ).then((m) => m.default);\n break;\n case \"ja\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_ja\" */ \"./localized-messages/ja.json\"\n ).then((m) => m.default);\n break;\n case \"kk\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_kk\" */ \"./localized-messages/kk.json\"\n ).then((m) => m.default);\n break;\n case \"ko\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_ko\" */ \"./localized-messages/ko.json\"\n ).then((m) => m.default);\n break;\n case \"lo\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_lo\" */ \"./localized-messages/lo.json\"\n ).then((m) => m.default);\n break;\n case \"lt\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_lt\" */ \"./localized-messages/lt.json\"\n ).then((m) => m.default);\n break;\n case \"lv\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_lv\" */ \"./localized-messages/lv.json\"\n ).then((m) => m.default);\n break;\n case \"ms\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_ms\" */ \"./localized-messages/ms.json\"\n ).then((m) => m.default);\n break;\n case \"nl-BE\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_nl-BE\" */ \"./localized-messages/nl-BE.json\"\n ).then((m) => m.default);\n break;\n case \"nl\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_nl\" */ \"./localized-messages/nl.json\"\n ).then((m) => m.default);\n break;\n case \"no\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_no\" */ \"./localized-messages/no.json\"\n ).then((m) => m.default);\n break;\n case \"pl\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_pl\" */ \"./localized-messages/pl.json\"\n ).then((m) => m.default);\n break;\n case \"pt-BR\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_pt-BR\" */ \"./localized-messages/pt-BR.json\"\n ).then((m) => m.default);\n break;\n case \"pt\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_pt\" */ \"./localized-messages/pt.json\"\n ).then((m) => m.default);\n break;\n case \"ro\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_ro\" */ \"./localized-messages/ro.json\"\n ).then((m) => m.default);\n break;\n case \"ru\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_ru\" */ \"./localized-messages/ru.json\"\n ).then((m) => m.default);\n break;\n case \"sk\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_sk\" */ \"./localized-messages/sk.json\"\n ).then((m) => m.default);\n break;\n case \"sl\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_sl\" */ \"./localized-messages/sl.json\"\n ).then((m) => m.default);\n break;\n case \"sr\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_sr\" */ \"./localized-messages/sr.json\"\n ).then((m) => m.default);\n break;\n case \"sv\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_sv\" */ \"./localized-messages/sv.json\"\n ).then((m) => m.default);\n break;\n case \"sw\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_sw\" */ \"./localized-messages/sw.json\"\n ).then((m) => m.default);\n break;\n case \"ta\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_ta\" */ \"./localized-messages/ta.json\"\n ).then((m) => m.default);\n break;\n case \"th\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_th\" */ \"./localized-messages/th.json\"\n ).then((m) => m.default);\n break;\n case \"tl\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_tl\" */ \"./localized-messages/tl.json\"\n ).then((m) => m.default);\n break;\n case \"tr\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_tr\" */ \"./localized-messages/tr.json\"\n ).then((m) => m.default);\n break;\n case \"uk\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_uk\" */ \"./localized-messages/uk.json\"\n ).then((m) => m.default);\n break;\n case \"ur\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_ur\" */ \"./localized-messages/ur.json\"\n ).then((m) => m.default);\n break;\n case \"vi\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_vi\" */ \"./localized-messages/vi.json\"\n ).then((m) => m.default);\n break;\n case \"zh-HK\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_zh-HK\" */ \"./localized-messages/zh-HK.json\"\n ).then((m) => m.default);\n break;\n case \"zh\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_zh\" */ \"./localized-messages/zh.json\"\n ).then((m) => m.default);\n break;\n case \"zu\":\n localizedMessages = await import(\n /* webpackChunkName: \"messages_zu\" */ \"./localized-messages/zu.json\"\n ).then((m) => m.default);\n break;\n default:\n logger.warn(\n `getMessagesModuleByLocale: Unable to load messages for ${locale}, falling back to en-US`,\n );\n localizedMessages = enUSMessages;\n }\n /* tslint:enable:space-in-parens */\n return prepareMsgsModule(localizedMessages);\n };\n\n const promise = loader();\n messagesModuleCache.set(locale, promise);\n return promise;\n};\n\n/**\n * @description Pluck only the messages we want to override defaults with.\n * Empty string values like `\"\"` are allowed so messages can be hidden.\n * Messages with `undefined` values are omitted.\n *\n * @private\n */\nexport const getThemeMessages = (msgs: ProgramThemeMessages): StringMap => {\n const flatThemeMsgs = flatten(msgs);\n const returnMsgs = {};\n Object.keys(flatThemeMsgs).forEach((key) => {\n if (typeof flatThemeMsgs[key] === \"string\") {\n returnMsgs[key] = flatThemeMsgs[key];\n }\n });\n return returnMsgs;\n};\n\nexport const getOptionsMessages = (locale: Locale): object => {\n let optionalMessages: object = {};\n if (getOptions().messagesWithLocale[locale]) {\n optionalMessages = getOptions().messagesWithLocale[locale];\n }\n return optionalMessages;\n};\n\n/**\n * Map old locales (Java 7) to new standards\n * @private\n */\nexport const modernizeLocale = (locale: Locale): string => (locale === \"iw\" ? \"he\" : locale); // for now only Hebrew needs to be futurized\n\n/**\n * @description Get all messages for a given locale.\n * Return a flattened messages object, where properties are dot-string style.\n */\nexport const getMessages = async (\n locale: Locale,\n programThemeMessages?: ProgramThemeMessages,\n segment?: Segment,\n): Promise<StringMap> => {\n let usedLocale = locale;\n\n if (!isValidLocale(usedLocale)) {\n logger.error(\n `Invalid locale ${usedLocale}, falling back to ${DEFAULT_LOCALE} for the verification form`,\n \"Invalid locale\",\n );\n usedLocale = DEFAULT_LOCALE;\n }\n\n const messagesModule = await getMessagesModuleByLocale(usedLocale);\n\n const defaultMessages: DefaultMessages | object = messagesModule\n ? messagesModule.defaultMessages\n : {};\n const hasSegmentMessages = messagesModule && messagesModule.segmentMessages;\n const segmentSpecificMessages: SegmentSpecificMessages | object =\n segment && hasSegmentMessages ? messagesModule.segmentMessages[segment] : {};\n\n const optionsMessages = getOptionsMessages(usedLocale);\n const cleanFlatThemeMessages: StringMap = programThemeMessages\n ? getThemeMessages(programThemeMessages)\n : {};\n // For non en-US locales, we'll merge en-US messages as a base\n const defaultLocaleMessages: StringMap =\n usedLocale !== DEFAULT_LOCALE\n ? await getMessages(DEFAULT_LOCALE, programThemeMessages, segment)\n : {};\n\n // Flatten these before object.assign so they are dot-props, so nested objects aren't overwritten, deleting properties\n const messages: StringMap = Object.assign(\n {} as StringMap,\n defaultLocaleMessages,\n defaultMessages ? flatten(defaultMessages) : {},\n segmentSpecificMessages ? flatten(segmentSpecificMessages) : {},\n cleanFlatThemeMessages,\n optionsMessages ? flatten(optionsMessages) : {},\n );\n\n return messages;\n};\n\n/**\n * @description Retrieves the locale used to display the verification form. It will attempt to bring the best default by looking at these places:\n * - Retrieve from previous user selection in ChangeLocaleComponent\n * - Retrieve based on the country selected\n * - Retrieve from Options\n * - Retrieve from the URL\n * - Retrieve from the VerificationResponse\n * - Retrieve library DEFAULT_LOCALE\n * If found a locale but is not supported by the library, it'll return DEFAULT_LOCALE instead.\n */\nexport const getLocaleSafely = (\n viewModel?: ViewModel,\n verificationResponse?: VerificationResponse,\n): Locale => {\n function getLocaleFromUrl(): string | undefined {\n const b = getQueryParamsFromUrl(window.location.href);\n const queryParamLocale = b.get(\"locale\");\n\n return queryParamLocale || undefined;\n }\n\n const locale =\n getSafe(() => viewModel.localeChoice.value) ||\n getSafe(() => verificationResponse.locale) ||\n getOptions().locale ||\n getLocaleFromUrl() ||\n DEFAULT_LOCALE;\n\n if (isValidLocale(locale)) {\n return locale;\n }\n\n const twoLetterLocaleCode = locale.substring(0, 2);\n if (isValidLocale(twoLetterLocaleCode)) {\n return twoLetterLocaleCode;\n }\n\n return DEFAULT_LOCALE;\n};\n\n/**\n * @deprecated Use `getMessages()` instead\n */\nexport const getIntlMessages = (locale: Locale, programTheme: ProgramTheme = null): StringMap => {\n assertValidLocale(locale);\n\n let optionalMessages: object = {};\n if (getOptions().messagesWithLocale[locale]) {\n optionalMessages = getOptions().messagesWithLocale[locale];\n } else if (getOptions().messagesWithLocale[DEFAULT_LOCALE]) {\n optionalMessages = getOptions().messagesWithLocale[DEFAULT_LOCALE];\n }\n\n let sheerIdMessages: object = {};\n if (programTheme) {\n try {\n sheerIdMessages = programTheme.intl.messages;\n } catch (e) {\n logger.error(e, \"Error accessing programTheme.intl.messages\");\n }\n }\n // react-intl doesn't allow the messages object to contain nested objects.\n // Use flatten() so we can access nested objects with dot-strings like 'foo.bar'\n return flatten({ ...sheerIdMessages, ...optionalMessages }) as StringMap;\n};\n\n/**\n * @deprecated Use `getLocaleSafely()` instead\n */\nexport const getLocale = (programTheme?: ProgramTheme): Locale => {\n let { locale } = getOptions();\n\n logger.error(\"getLocale() is deprecated, use getLocaleSafely() instead.\");\n\n if (programTheme) {\n try {\n locale = programTheme.intl.locale as Locale;\n } catch (e) {\n logger.error(\n e,\n \"Error accessing programTheme.intl.locale. Did the shape of an object/type change?\",\n );\n }\n if (!isValidLocale(locale)) {\n logger.warn(\n `Invalid locale \"${locale}\" received from server. Using fallback \"${\n getOptions().locale\n }\" instead.`,\n );\n locale = getOptions().locale;\n }\n }\n return locale || DEFAULT_LOCALE;\n};\n\n/**\n * @deprecated\n */\nexport const setLocale = () => {\n logger.error(\"setLocale() is deprecated, use verificationService.updateLocale() instead.\");\n};\n\nexport const standardizeLocale = (locale: Locale): string => locale.replace(\"-\", \"_\");\n"],"x_google_ignoreList":[0,11,12,13,14,15,16,17,21],"mappings":"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"}