@unidy.io/sdk 1.1.8 → 1.1.10

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 (769) hide show
  1. package/dist/cjs/app-globals-Pb3mNuRv.js +10 -0
  2. package/dist/cjs/app-globals-Pb3mNuRv.js.map +1 -0
  3. package/dist/cjs/auth-ChsE2RD7.js +614 -0
  4. package/dist/cjs/auth-ChsE2RD7.js.map +1 -0
  5. package/dist/cjs/auth-store-BO38Txmj.js +187 -0
  6. package/dist/cjs/auth-store-BO38Txmj.js.map +1 -0
  7. package/dist/cjs/component-utils-bu3SY4dE.js +42 -0
  8. package/dist/cjs/component-utils-bu3SY4dE.js.map +1 -0
  9. package/dist/cjs/flash-store-D5vGuIFc.js +50 -0
  10. package/dist/cjs/flash-store-D5vGuIFc.js.map +1 -0
  11. package/dist/cjs/helpers-BcPlKlBG.js +11 -0
  12. package/dist/cjs/helpers-BcPlKlBG.js.map +1 -0
  13. package/dist/cjs/helpers-DJyRa0Qo.js +11 -0
  14. package/dist/cjs/helpers-DJyRa0Qo.js.map +1 -0
  15. package/dist/cjs/i18n-B2T1e9Mf.js +3072 -0
  16. package/dist/cjs/i18n-B2T1e9Mf.js.map +1 -0
  17. package/dist/cjs/index-BzhKFIXk.js +14706 -0
  18. package/dist/cjs/index-BzhKFIXk.js.map +1 -0
  19. package/dist/cjs/index-DmDGhWTM.js +6338 -0
  20. package/dist/cjs/index-DmDGhWTM.js.map +1 -0
  21. package/dist/cjs/index-DxENvy7x.js +283 -0
  22. package/dist/cjs/index-DxENvy7x.js.map +1 -0
  23. package/dist/cjs/index.cjs.js +64 -0
  24. package/dist/cjs/index.cjs.js.map +1 -0
  25. package/dist/cjs/loader.cjs.js +14 -0
  26. package/dist/cjs/loader.cjs.js.map +1 -0
  27. package/dist/cjs/newsletter-helpers-B5P7q8Xk.js +289 -0
  28. package/dist/cjs/newsletter-helpers-B5P7q8Xk.js.map +1 -0
  29. package/dist/cjs/newsletter-store-f5zhJljn.js +38 -0
  30. package/dist/cjs/newsletter-store-f5zhJljn.js.map +1 -0
  31. package/dist/cjs/pagination-store-DjGYEIqm.js +16 -0
  32. package/dist/cjs/pagination-store-DjGYEIqm.js.map +1 -0
  33. package/dist/cjs/profile-helpers-BcLjojeG.js +39 -0
  34. package/dist/cjs/profile-helpers-BcLjojeG.js.map +1 -0
  35. package/dist/cjs/profile-store-BWJ9qAcg.js +22 -0
  36. package/dist/cjs/profile-store-BWJ9qAcg.js.map +1 -0
  37. package/dist/cjs/sdk.cjs.js +53 -0
  38. package/dist/cjs/sdk.cjs.js.map +1 -0
  39. package/dist/cjs/u-conditional-render.cjs.entry.js +102 -0
  40. package/dist/cjs/u-conditional-render.entry.cjs.js.map +1 -0
  41. package/dist/cjs/u-config.cjs.entry.js +91 -0
  42. package/dist/cjs/u-config.entry.cjs.js.map +1 -0
  43. package/dist/cjs/u-email-field.cjs.entry.js +77 -0
  44. package/dist/cjs/u-email-field.entry.cjs.js.map +1 -0
  45. package/dist/cjs/u-error-message.cjs.entry.js +82 -0
  46. package/dist/cjs/u-error-message.entry.cjs.js.map +1 -0
  47. package/dist/cjs/u-field.u-raw-field.entry.cjs.js.map +1 -0
  48. package/dist/cjs/u-field_2.cjs.entry.js +371 -0
  49. package/dist/cjs/u-flash-message.cjs.entry.js +37 -0
  50. package/dist/cjs/u-flash-message.entry.cjs.js.map +1 -0
  51. package/dist/cjs/u-full-profile.cjs.entry.js +37 -0
  52. package/dist/cjs/u-full-profile.entry.cjs.js.map +1 -0
  53. package/dist/cjs/u-logout-button.u-signed-in.entry.cjs.js.map +1 -0
  54. package/dist/cjs/u-logout-button_2.cjs.entry.js +62 -0
  55. package/dist/cjs/u-magic-code-field.cjs.entry.js +91 -0
  56. package/dist/cjs/u-magic-code-field.entry.cjs.js.map +1 -0
  57. package/dist/cjs/u-missing-field.cjs.entry.js +22 -0
  58. package/dist/cjs/u-missing-field.entry.cjs.js.map +1 -0
  59. package/dist/cjs/u-missing-fields-submit-button.cjs.entry.js +46 -0
  60. package/dist/cjs/u-missing-fields-submit-button.entry.cjs.js.map +1 -0
  61. package/dist/cjs/u-newsletter-checkbox.cjs.entry.js +77 -0
  62. package/dist/cjs/u-newsletter-checkbox.entry.cjs.js.map +1 -0
  63. package/dist/cjs/u-newsletter-logout-button.cjs.entry.js +41 -0
  64. package/dist/cjs/u-newsletter-logout-button.entry.cjs.js.map +1 -0
  65. package/dist/cjs/u-newsletter-preference-checkbox.cjs.entry.js +120 -0
  66. package/dist/cjs/u-newsletter-preference-checkbox.entry.cjs.js.map +1 -0
  67. package/dist/cjs/u-newsletter-resend-doi-button.cjs.entry.js +49 -0
  68. package/dist/cjs/u-newsletter-resend-doi-button.entry.cjs.js.map +1 -0
  69. package/dist/cjs/u-newsletter-root.cjs.entry.js +72 -0
  70. package/dist/cjs/u-newsletter-root.entry.cjs.js.map +1 -0
  71. package/dist/cjs/u-newsletter-toggle-subscription-button.cjs.entry.js +73 -0
  72. package/dist/cjs/u-newsletter-toggle-subscription-button.entry.cjs.js.map +1 -0
  73. package/dist/cjs/u-pagination-button.cjs.entry.js +63 -0
  74. package/dist/cjs/u-pagination-button.entry.cjs.js.map +1 -0
  75. package/dist/cjs/u-pagination-page.cjs.entry.js +44 -0
  76. package/dist/cjs/u-pagination-page.entry.cjs.js.map +1 -0
  77. package/dist/cjs/u-passkey.cjs.entry.js +47 -0
  78. package/dist/cjs/u-passkey.entry.cjs.js.map +1 -0
  79. package/dist/cjs/u-password-field.cjs.entry.js +106 -0
  80. package/dist/cjs/u-password-field.entry.cjs.js.map +1 -0
  81. package/dist/cjs/u-profile.u-submit-button.entry.cjs.js.map +1 -0
  82. package/dist/cjs/u-profile_2.cjs.entry.js +329 -0
  83. package/dist/cjs/u-registration-button.cjs.entry.js +48 -0
  84. package/dist/cjs/u-registration-button.entry.cjs.js.map +1 -0
  85. package/dist/cjs/u-reset-password-button.cjs.entry.js +56 -0
  86. package/dist/cjs/u-reset-password-button.entry.cjs.js.map +1 -0
  87. package/dist/cjs/u-send-magic-code-button.cjs.entry.js +68 -0
  88. package/dist/cjs/u-send-magic-code-button.entry.cjs.js.map +1 -0
  89. package/dist/cjs/u-signin-root.cjs.entry.js +43 -0
  90. package/dist/cjs/u-signin-root.entry.cjs.js.map +1 -0
  91. package/dist/cjs/u-signin-step.cjs.entry.js +66 -0
  92. package/dist/cjs/u-signin-step.entry.cjs.js.map +1 -0
  93. package/dist/cjs/u-signin-strategy.cjs.entry.js +30 -0
  94. package/dist/cjs/u-signin-strategy.entry.cjs.js.map +1 -0
  95. package/dist/cjs/u-social-login-button.cjs.entry.js +100 -0
  96. package/dist/cjs/u-social-login-button.entry.cjs.js.map +1 -0
  97. package/dist/cjs/u-spinner.cjs.entry.js +18 -0
  98. package/dist/cjs/u-spinner.entry.cjs.js.map +1 -0
  99. package/dist/cjs/u-ticketable-list.cjs.entry.js +6097 -0
  100. package/dist/cjs/u-ticketable-list.entry.cjs.js.map +1 -0
  101. package/dist/cjs/unidy-store-zhdhlK0a.js +41 -0
  102. package/dist/cjs/unidy-store-zhdhlK0a.js.map +1 -0
  103. package/dist/collection/api/client.js +144 -0
  104. package/dist/collection/api/client.js.map +1 -0
  105. package/dist/collection/api/index.js +42 -0
  106. package/dist/collection/api/index.js.map +1 -0
  107. package/dist/collection/api/shared.js +18 -0
  108. package/dist/collection/api/shared.js.map +1 -0
  109. package/dist/collection/auth/api/auth.js +274 -0
  110. package/dist/collection/auth/api/auth.js.map +1 -0
  111. package/dist/collection/auth/auth-helpers.js +314 -0
  112. package/dist/collection/auth/auth-helpers.js.map +1 -0
  113. package/dist/collection/auth/auth.js +139 -0
  114. package/dist/collection/auth/auth.js.map +1 -0
  115. package/dist/collection/auth/components/helpers.js +5 -0
  116. package/dist/collection/auth/components/helpers.js.map +1 -0
  117. package/dist/collection/auth/components/logout-button/logout-button.js +94 -0
  118. package/dist/collection/auth/components/logout-button/logout-button.js.map +1 -0
  119. package/dist/collection/auth/components/magic-code-field/magic-code-field.css +1 -0
  120. package/dist/collection/auth/components/magic-code-field/magic-code-field.js +113 -0
  121. package/dist/collection/auth/components/magic-code-field/magic-code-field.js.map +1 -0
  122. package/dist/collection/auth/components/missing-field/missing-field.js +14 -0
  123. package/dist/collection/auth/components/missing-field/missing-field.js.map +1 -0
  124. package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js +39 -0
  125. package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js.map +1 -0
  126. package/dist/collection/auth/components/passkey/passkey.js +103 -0
  127. package/dist/collection/auth/components/passkey/passkey.js.map +1 -0
  128. package/dist/collection/auth/components/password-field/password-field.js +168 -0
  129. package/dist/collection/auth/components/password-field/password-field.js.map +1 -0
  130. package/dist/collection/auth/components/registration/registration-button.js +104 -0
  131. package/dist/collection/auth/components/registration/registration-button.js.map +1 -0
  132. package/dist/collection/auth/components/reset-pass-button/reset-pass-button.js +68 -0
  133. package/dist/collection/auth/components/reset-pass-button/reset-pass-button.js.map +1 -0
  134. package/dist/collection/auth/components/send-magic-code-button/send-magic-code-button.js +104 -0
  135. package/dist/collection/auth/components/send-magic-code-button/send-magic-code-button.js.map +1 -0
  136. package/dist/collection/auth/components/signed-in/signed-in.js +59 -0
  137. package/dist/collection/auth/components/signed-in/signed-in.js.map +1 -0
  138. package/dist/collection/auth/components/signin-root/signin-root.js +97 -0
  139. package/dist/collection/auth/components/signin-root/signin-root.js.map +1 -0
  140. package/dist/collection/auth/components/signin-step/signin-step.js +135 -0
  141. package/dist/collection/auth/components/signin-step/signin-step.js.map +1 -0
  142. package/dist/collection/auth/components/signin-strategy/signin-strategy.js +64 -0
  143. package/dist/collection/auth/components/signin-strategy/signin-strategy.js.map +1 -0
  144. package/dist/collection/auth/components/social-logins/logos/apple.js +3 -0
  145. package/dist/collection/auth/components/social-logins/logos/apple.js.map +1 -0
  146. package/dist/collection/auth/components/social-logins/logos/discord.js +3 -0
  147. package/dist/collection/auth/components/social-logins/logos/discord.js.map +1 -0
  148. package/dist/collection/auth/components/social-logins/logos/facebook.js +3 -0
  149. package/dist/collection/auth/components/social-logins/logos/facebook.js.map +1 -0
  150. package/dist/collection/auth/components/social-logins/logos/google.js +3 -0
  151. package/dist/collection/auth/components/social-logins/logos/google.js.map +1 -0
  152. package/dist/collection/auth/components/social-logins/logos/linkedin.js +3 -0
  153. package/dist/collection/auth/components/social-logins/logos/linkedin.js.map +1 -0
  154. package/dist/collection/auth/components/social-logins/social-login-button.css +1 -0
  155. package/dist/collection/auth/components/social-logins/social-login-button.js +188 -0
  156. package/dist/collection/auth/components/social-logins/social-login-button.js.map +1 -0
  157. package/dist/collection/auth/components/submit-button/auth-submit-button.js +62 -0
  158. package/dist/collection/auth/components/submit-button/auth-submit-button.js.map +1 -0
  159. package/dist/collection/auth/error-definitions.js +26 -0
  160. package/dist/collection/auth/error-definitions.js.map +1 -0
  161. package/dist/collection/auth/index.js +13 -0
  162. package/dist/collection/auth/index.js.map +1 -0
  163. package/dist/collection/auth/passkey-auth.js +106 -0
  164. package/dist/collection/auth/passkey-auth.js.map +1 -0
  165. package/dist/collection/auth/store/auth-store.js +178 -0
  166. package/dist/collection/auth/store/auth-store.js.map +1 -0
  167. package/dist/collection/collection-manifest.json +46 -0
  168. package/dist/collection/globalScript.js +18 -0
  169. package/dist/collection/globalScript.js.map +1 -0
  170. package/dist/collection/i18n.js +31 -0
  171. package/dist/collection/i18n.js.map +1 -0
  172. package/dist/collection/index.js +16 -0
  173. package/dist/collection/index.js.map +1 -0
  174. package/dist/collection/locales/de.json +133 -0
  175. package/dist/collection/locales/en.json +133 -0
  176. package/dist/collection/locales/fr.json +133 -0
  177. package/dist/collection/locales/it.json +133 -0
  178. package/dist/collection/locales/nl_be.json +133 -0
  179. package/dist/collection/locales/ro.json +133 -0
  180. package/dist/collection/logger.js +106 -0
  181. package/dist/collection/logger.js.map +1 -0
  182. package/dist/collection/newsletter/api/newsletters.js +189 -0
  183. package/dist/collection/newsletter/api/newsletters.js.map +1 -0
  184. package/dist/collection/newsletter/components/helpers.js +5 -0
  185. package/dist/collection/newsletter/components/helpers.js.map +1 -0
  186. package/dist/collection/newsletter/components/logout-button/logout-button.js +53 -0
  187. package/dist/collection/newsletter/components/logout-button/logout-button.js.map +1 -0
  188. package/dist/collection/newsletter/components/newsletter-checkbox/newsletter-checkbox.js +165 -0
  189. package/dist/collection/newsletter/components/newsletter-checkbox/newsletter-checkbox.js.map +1 -0
  190. package/dist/collection/newsletter/components/newsletter-root/newsletter-root.js +119 -0
  191. package/dist/collection/newsletter/components/newsletter-root/newsletter-root.js.map +1 -0
  192. package/dist/collection/newsletter/components/preference-checkbox/preference-checkbox.js +234 -0
  193. package/dist/collection/newsletter/components/preference-checkbox/preference-checkbox.js.map +1 -0
  194. package/dist/collection/newsletter/components/resend-doi-button/resend-doi-button.css +1 -0
  195. package/dist/collection/newsletter/components/resend-doi-button/resend-doi-button.js +89 -0
  196. package/dist/collection/newsletter/components/resend-doi-button/resend-doi-button.js.map +1 -0
  197. package/dist/collection/newsletter/components/submit-button/newsletter-submit-button.js +18 -0
  198. package/dist/collection/newsletter/components/submit-button/newsletter-submit-button.js.map +1 -0
  199. package/dist/collection/newsletter/components/toggle-subscription-button/toggle-subscription-button.css +1 -0
  200. package/dist/collection/newsletter/components/toggle-subscription-button/toggle-subscription-button.js +154 -0
  201. package/dist/collection/newsletter/components/toggle-subscription-button/toggle-subscription-button.js.map +1 -0
  202. package/dist/collection/newsletter/index.js +11 -0
  203. package/dist/collection/newsletter/index.js.map +1 -0
  204. package/dist/collection/newsletter/newsletter-helpers.js +277 -0
  205. package/dist/collection/newsletter/newsletter-helpers.js.map +1 -0
  206. package/dist/collection/newsletter/store/newsletter-store.js +34 -0
  207. package/dist/collection/newsletter/store/newsletter-store.js.map +1 -0
  208. package/dist/collection/profile/api/profile.js +168 -0
  209. package/dist/collection/profile/api/profile.js.map +1 -0
  210. package/dist/collection/profile/components/field/field.css +1 -0
  211. package/dist/collection/profile/components/field/field.js +355 -0
  212. package/dist/collection/profile/components/field/field.js.map +1 -0
  213. package/dist/collection/profile/components/full-profile/full-profile.css +1 -0
  214. package/dist/collection/profile/components/full-profile/full-profile.js +78 -0
  215. package/dist/collection/profile/components/full-profile/full-profile.js.map +1 -0
  216. package/dist/collection/profile/components/profile/profile.js +250 -0
  217. package/dist/collection/profile/components/profile/profile.js.map +1 -0
  218. package/dist/collection/profile/components/raw-field/raw-field.js +697 -0
  219. package/dist/collection/profile/components/raw-field/raw-field.js.map +1 -0
  220. package/dist/collection/profile/components/raw-input-fields/Input.js +3 -0
  221. package/dist/collection/profile/components/raw-input-fields/Input.js.map +1 -0
  222. package/dist/collection/profile/components/raw-input-fields/MultiSelect.js +8 -0
  223. package/dist/collection/profile/components/raw-input-fields/MultiSelect.js.map +1 -0
  224. package/dist/collection/profile/components/raw-input-fields/RadioGroup.js +8 -0
  225. package/dist/collection/profile/components/raw-input-fields/RadioGroup.js.map +1 -0
  226. package/dist/collection/profile/components/raw-input-fields/Select.js +11 -0
  227. package/dist/collection/profile/components/raw-input-fields/Select.js.map +1 -0
  228. package/dist/collection/profile/components/raw-input-fields/Textarea.js +3 -0
  229. package/dist/collection/profile/components/raw-input-fields/Textarea.js.map +1 -0
  230. package/dist/collection/profile/components/submit-button/profile-submit-button.js +17 -0
  231. package/dist/collection/profile/components/submit-button/profile-submit-button.js.map +1 -0
  232. package/dist/collection/profile/index.js +12 -0
  233. package/dist/collection/profile/index.js.map +1 -0
  234. package/dist/collection/profile/profile-helpers.js +31 -0
  235. package/dist/collection/profile/profile-helpers.js.map +1 -0
  236. package/dist/collection/profile/store/profile-store.js +15 -0
  237. package/dist/collection/profile/store/profile-store.js.map +1 -0
  238. package/dist/collection/sdk.css +39 -0
  239. package/dist/collection/shared/component-utils.js +35 -0
  240. package/dist/collection/shared/component-utils.js.map +1 -0
  241. package/dist/collection/shared/components/conditional-render/conditional-render.js +177 -0
  242. package/dist/collection/shared/components/conditional-render/conditional-render.js.map +1 -0
  243. package/dist/collection/shared/components/config/config.js +284 -0
  244. package/dist/collection/shared/components/config/config.js.map +1 -0
  245. package/dist/collection/shared/components/email-field/email-field.css +1 -0
  246. package/dist/collection/shared/components/email-field/email-field.js +145 -0
  247. package/dist/collection/shared/components/email-field/email-field.js.map +1 -0
  248. package/dist/collection/shared/components/error-message/error-message.js +141 -0
  249. package/dist/collection/shared/components/error-message/error-message.js.map +1 -0
  250. package/dist/collection/shared/components/flash-message/close-icon.js +3 -0
  251. package/dist/collection/shared/components/flash-message/close-icon.js.map +1 -0
  252. package/dist/collection/shared/components/flash-message/flash-message.css +1 -0
  253. package/dist/collection/shared/components/flash-message/flash-message.js +79 -0
  254. package/dist/collection/shared/components/flash-message/flash-message.js.map +1 -0
  255. package/dist/collection/shared/components/spinner/spinner.css +1 -0
  256. package/dist/collection/shared/components/spinner/spinner.js +19 -0
  257. package/dist/collection/shared/components/spinner/spinner.js.map +1 -0
  258. package/dist/collection/shared/components/submit-button/context.js +10 -0
  259. package/dist/collection/shared/components/submit-button/context.js.map +1 -0
  260. package/dist/collection/shared/components/submit-button/submit-button.css +1 -0
  261. package/dist/collection/shared/components/submit-button/submit-button.js +198 -0
  262. package/dist/collection/shared/components/submit-button/submit-button.js.map +1 -0
  263. package/dist/collection/shared/store/flash-store.js +43 -0
  264. package/dist/collection/shared/store/flash-store.js.map +1 -0
  265. package/dist/collection/shared/store/unidy-store.js +33 -0
  266. package/dist/collection/shared/store/unidy-store.js.map +1 -0
  267. package/dist/collection/ticketable/api/get-with-schema.js +35 -0
  268. package/dist/collection/ticketable/api/get-with-schema.js.map +1 -0
  269. package/dist/collection/ticketable/api/schemas.js +12 -0
  270. package/dist/collection/ticketable/api/schemas.js.map +1 -0
  271. package/dist/collection/ticketable/api/subscriptions.js +47 -0
  272. package/dist/collection/ticketable/api/subscriptions.js.map +1 -0
  273. package/dist/collection/ticketable/api/tickets.js +48 -0
  274. package/dist/collection/ticketable/api/tickets.js.map +1 -0
  275. package/dist/collection/ticketable/components/pagination/pagination-button.js +108 -0
  276. package/dist/collection/ticketable/components/pagination/pagination-button.js.map +1 -0
  277. package/dist/collection/ticketable/components/pagination/pagination-page.js +69 -0
  278. package/dist/collection/ticketable/components/pagination/pagination-page.js.map +1 -0
  279. package/dist/collection/ticketable/components/ticketable-list/skeleton-helpers.js +54 -0
  280. package/dist/collection/ticketable/components/ticketable-list/skeleton-helpers.js.map +1 -0
  281. package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js +505 -0
  282. package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js.map +1 -0
  283. package/dist/collection/ticketable/index.js +13 -0
  284. package/dist/collection/ticketable/index.js.map +1 -0
  285. package/dist/collection/ticketable/store/pagination-store.js +9 -0
  286. package/dist/collection/ticketable/store/pagination-store.js.map +1 -0
  287. package/dist/components/auth-store.js +182 -0
  288. package/dist/components/auth-store.js.map +1 -0
  289. package/dist/components/auth.js +613 -0
  290. package/dist/components/auth.js.map +1 -0
  291. package/dist/components/component-utils.js +39 -0
  292. package/dist/components/component-utils.js.map +1 -0
  293. package/dist/components/exports.js +4262 -0
  294. package/dist/components/exports.js.map +1 -0
  295. package/dist/components/field.js +134 -0
  296. package/dist/components/field.js.map +1 -0
  297. package/dist/components/flash-store.js +47 -0
  298. package/dist/components/flash-store.js.map +1 -0
  299. package/dist/components/helpers.js +9 -0
  300. package/dist/components/helpers.js.map +1 -0
  301. package/dist/components/helpers2.js +9 -0
  302. package/dist/components/helpers2.js.map +1 -0
  303. package/dist/components/i18n.js +3070 -0
  304. package/dist/components/i18n.js.map +1 -0
  305. package/dist/components/index.d.ts +33 -0
  306. package/dist/components/index.js +5929 -0
  307. package/dist/components/index.js.map +1 -0
  308. package/dist/components/index2.js +6327 -0
  309. package/dist/components/index2.js.map +1 -0
  310. package/dist/components/index3.js +281 -0
  311. package/dist/components/index3.js.map +1 -0
  312. package/dist/components/logger.js +111 -0
  313. package/dist/components/logger.js.map +1 -0
  314. package/dist/components/newsletter-helpers.js +278 -0
  315. package/dist/components/newsletter-helpers.js.map +1 -0
  316. package/dist/components/newsletter-store.js +34 -0
  317. package/dist/components/newsletter-store.js.map +1 -0
  318. package/dist/components/pagination-store.js +14 -0
  319. package/dist/components/pagination-store.js.map +1 -0
  320. package/dist/components/profile-helpers.js +36 -0
  321. package/dist/components/profile-helpers.js.map +1 -0
  322. package/dist/components/profile-store.js +18 -0
  323. package/dist/components/profile-store.js.map +1 -0
  324. package/dist/components/profile.js +151 -0
  325. package/dist/components/profile.js.map +1 -0
  326. package/dist/components/raw-field.js +318 -0
  327. package/dist/components/raw-field.js.map +1 -0
  328. package/dist/components/spinner.js +35 -0
  329. package/dist/components/spinner.js.map +1 -0
  330. package/dist/components/submit-button.js +233 -0
  331. package/dist/components/submit-button.js.map +1 -0
  332. package/dist/components/u-conditional-render.d.ts +11 -0
  333. package/dist/components/u-conditional-render.js +120 -0
  334. package/dist/components/u-conditional-render.js.map +1 -0
  335. package/dist/components/u-config.d.ts +11 -0
  336. package/dist/components/u-config.js +118 -0
  337. package/dist/components/u-config.js.map +1 -0
  338. package/dist/components/u-email-field.d.ts +11 -0
  339. package/dist/components/u-email-field.js +99 -0
  340. package/dist/components/u-email-field.js.map +1 -0
  341. package/dist/components/u-error-message.d.ts +11 -0
  342. package/dist/components/u-error-message.js +105 -0
  343. package/dist/components/u-error-message.js.map +1 -0
  344. package/dist/components/u-field.d.ts +11 -0
  345. package/dist/components/u-field.js +9 -0
  346. package/dist/components/u-field.js.map +1 -0
  347. package/dist/components/u-flash-message.d.ts +11 -0
  348. package/dist/components/u-flash-message.js +58 -0
  349. package/dist/components/u-flash-message.js.map +1 -0
  350. package/dist/components/u-full-profile.d.ts +11 -0
  351. package/dist/components/u-full-profile.js +87 -0
  352. package/dist/components/u-full-profile.js.map +1 -0
  353. package/dist/components/u-logout-button.d.ts +11 -0
  354. package/dist/components/u-logout-button.js +61 -0
  355. package/dist/components/u-logout-button.js.map +1 -0
  356. package/dist/components/u-magic-code-field.d.ts +11 -0
  357. package/dist/components/u-magic-code-field.js +106 -0
  358. package/dist/components/u-magic-code-field.js.map +1 -0
  359. package/dist/components/u-missing-field.d.ts +11 -0
  360. package/dist/components/u-missing-field.js +51 -0
  361. package/dist/components/u-missing-field.js.map +1 -0
  362. package/dist/components/u-missing-fields-submit-button.d.ts +11 -0
  363. package/dist/components/u-missing-fields-submit-button.js +70 -0
  364. package/dist/components/u-missing-fields-submit-button.js.map +1 -0
  365. package/dist/components/u-newsletter-checkbox.d.ts +11 -0
  366. package/dist/components/u-newsletter-checkbox.js +93 -0
  367. package/dist/components/u-newsletter-checkbox.js.map +1 -0
  368. package/dist/components/u-newsletter-logout-button.d.ts +11 -0
  369. package/dist/components/u-newsletter-logout-button.js +56 -0
  370. package/dist/components/u-newsletter-logout-button.js.map +1 -0
  371. package/dist/components/u-newsletter-preference-checkbox.d.ts +11 -0
  372. package/dist/components/u-newsletter-preference-checkbox.js +140 -0
  373. package/dist/components/u-newsletter-preference-checkbox.js.map +1 -0
  374. package/dist/components/u-newsletter-resend-doi-button.d.ts +11 -0
  375. package/dist/components/u-newsletter-resend-doi-button.js +70 -0
  376. package/dist/components/u-newsletter-resend-doi-button.js.map +1 -0
  377. package/dist/components/u-newsletter-root.d.ts +11 -0
  378. package/dist/components/u-newsletter-root.js +90 -0
  379. package/dist/components/u-newsletter-root.js.map +1 -0
  380. package/dist/components/u-newsletter-toggle-subscription-button.d.ts +11 -0
  381. package/dist/components/u-newsletter-toggle-subscription-button.js +97 -0
  382. package/dist/components/u-newsletter-toggle-subscription-button.js.map +1 -0
  383. package/dist/components/u-pagination-button.d.ts +11 -0
  384. package/dist/components/u-pagination-button.js +86 -0
  385. package/dist/components/u-pagination-button.js.map +1 -0
  386. package/dist/components/u-pagination-page.d.ts +11 -0
  387. package/dist/components/u-pagination-page.js +66 -0
  388. package/dist/components/u-pagination-page.js.map +1 -0
  389. package/dist/components/u-passkey.d.ts +11 -0
  390. package/dist/components/u-passkey.js +65 -0
  391. package/dist/components/u-passkey.js.map +1 -0
  392. package/dist/components/u-password-field.d.ts +11 -0
  393. package/dist/components/u-password-field.js +127 -0
  394. package/dist/components/u-password-field.js.map +1 -0
  395. package/dist/components/u-profile.d.ts +11 -0
  396. package/dist/components/u-profile.js +9 -0
  397. package/dist/components/u-profile.js.map +1 -0
  398. package/dist/components/u-raw-field.d.ts +11 -0
  399. package/dist/components/u-raw-field.js +9 -0
  400. package/dist/components/u-raw-field.js.map +1 -0
  401. package/dist/components/u-registration-button.d.ts +11 -0
  402. package/dist/components/u-registration-button.js +70 -0
  403. package/dist/components/u-registration-button.js.map +1 -0
  404. package/dist/components/u-reset-password-button.d.ts +11 -0
  405. package/dist/components/u-reset-password-button.js +72 -0
  406. package/dist/components/u-reset-password-button.js.map +1 -0
  407. package/dist/components/u-send-magic-code-button.d.ts +11 -0
  408. package/dist/components/u-send-magic-code-button.js +85 -0
  409. package/dist/components/u-send-magic-code-button.js.map +1 -0
  410. package/dist/components/u-signed-in.d.ts +11 -0
  411. package/dist/components/u-signed-in.js +44 -0
  412. package/dist/components/u-signed-in.js.map +1 -0
  413. package/dist/components/u-signin-root.d.ts +11 -0
  414. package/dist/components/u-signin-root.js +63 -0
  415. package/dist/components/u-signin-root.js.map +1 -0
  416. package/dist/components/u-signin-step.d.ts +11 -0
  417. package/dist/components/u-signin-step.js +84 -0
  418. package/dist/components/u-signin-step.js.map +1 -0
  419. package/dist/components/u-signin-strategy.d.ts +11 -0
  420. package/dist/components/u-signin-strategy.js +50 -0
  421. package/dist/components/u-signin-strategy.js.map +1 -0
  422. package/dist/components/u-social-login-button.d.ts +11 -0
  423. package/dist/components/u-social-login-button.js +125 -0
  424. package/dist/components/u-social-login-button.js.map +1 -0
  425. package/dist/components/u-spinner.d.ts +11 -0
  426. package/dist/components/u-spinner.js +9 -0
  427. package/dist/components/u-spinner.js.map +1 -0
  428. package/dist/components/u-submit-button.d.ts +11 -0
  429. package/dist/components/u-submit-button.js +9 -0
  430. package/dist/components/u-submit-button.js.map +1 -0
  431. package/dist/components/u-ticketable-list.d.ts +11 -0
  432. package/dist/components/u-ticketable-list.js +6130 -0
  433. package/dist/components/u-ticketable-list.js.map +1 -0
  434. package/dist/components/unidy-store.js +37 -0
  435. package/dist/components/unidy-store.js.map +1 -0
  436. package/dist/esm/app-globals-BHWOrMsm.js +8 -0
  437. package/dist/esm/app-globals-BHWOrMsm.js.map +1 -0
  438. package/dist/esm/auth-CAHM6e4m.js +612 -0
  439. package/dist/esm/auth-CAHM6e4m.js.map +1 -0
  440. package/dist/esm/auth-store-ItTnEMlF.js +182 -0
  441. package/dist/esm/auth-store-ItTnEMlF.js.map +1 -0
  442. package/dist/esm/component-utils-BGq0leDV.js +39 -0
  443. package/dist/esm/component-utils-BGq0leDV.js.map +1 -0
  444. package/dist/esm/flash-store-CMXH65i_.js +47 -0
  445. package/dist/esm/flash-store-CMXH65i_.js.map +1 -0
  446. package/dist/esm/helpers-BqFCd65h.js +9 -0
  447. package/dist/esm/helpers-BqFCd65h.js.map +1 -0
  448. package/dist/esm/helpers-DUHc_Cx7.js +9 -0
  449. package/dist/esm/helpers-DUHc_Cx7.js.map +1 -0
  450. package/dist/esm/i18n-OKf8uE5j.js +3069 -0
  451. package/dist/esm/i18n-OKf8uE5j.js.map +1 -0
  452. package/dist/esm/index-COQ27Nb6.js +14684 -0
  453. package/dist/esm/index-COQ27Nb6.js.map +1 -0
  454. package/dist/esm/index-DVkRTYPC.js +281 -0
  455. package/dist/esm/index-DVkRTYPC.js.map +1 -0
  456. package/dist/esm/index-Du3hUdhU.js +6325 -0
  457. package/dist/esm/index-Du3hUdhU.js.map +1 -0
  458. package/dist/esm/index.js +40 -0
  459. package/dist/esm/index.js.map +1 -0
  460. package/dist/esm/loader.js +12 -0
  461. package/dist/esm/loader.js.map +1 -0
  462. package/dist/esm/newsletter-helpers-ChXON0f4.js +278 -0
  463. package/dist/esm/newsletter-helpers-ChXON0f4.js.map +1 -0
  464. package/dist/esm/newsletter-store-CIsyE51r.js +34 -0
  465. package/dist/esm/newsletter-store-CIsyE51r.js.map +1 -0
  466. package/dist/esm/pagination-store-B9lk_lqK.js +14 -0
  467. package/dist/esm/pagination-store-B9lk_lqK.js.map +1 -0
  468. package/dist/esm/profile-helpers-Beduxnin.js +36 -0
  469. package/dist/esm/profile-helpers-Beduxnin.js.map +1 -0
  470. package/dist/esm/profile-store-CsSDT9Tb.js +18 -0
  471. package/dist/esm/profile-store-CsSDT9Tb.js.map +1 -0
  472. package/dist/esm/sdk.js +49 -0
  473. package/dist/esm/sdk.js.map +1 -0
  474. package/dist/esm/u-conditional-render.entry.js +100 -0
  475. package/dist/esm/u-conditional-render.entry.js.map +1 -0
  476. package/dist/esm/u-config.entry.js +89 -0
  477. package/dist/esm/u-config.entry.js.map +1 -0
  478. package/dist/esm/u-email-field.entry.js +75 -0
  479. package/dist/esm/u-email-field.entry.js.map +1 -0
  480. package/dist/esm/u-error-message.entry.js +80 -0
  481. package/dist/esm/u-error-message.entry.js.map +1 -0
  482. package/dist/esm/u-field.u-raw-field.entry.js.map +1 -0
  483. package/dist/esm/u-field_2.entry.js +368 -0
  484. package/dist/esm/u-flash-message.entry.js +35 -0
  485. package/dist/esm/u-flash-message.entry.js.map +1 -0
  486. package/dist/esm/u-full-profile.entry.js +35 -0
  487. package/dist/esm/u-full-profile.entry.js.map +1 -0
  488. package/dist/esm/u-logout-button.u-signed-in.entry.js.map +1 -0
  489. package/dist/esm/u-logout-button_2.entry.js +59 -0
  490. package/dist/esm/u-magic-code-field.entry.js +89 -0
  491. package/dist/esm/u-magic-code-field.entry.js.map +1 -0
  492. package/dist/esm/u-missing-field.entry.js +20 -0
  493. package/dist/esm/u-missing-field.entry.js.map +1 -0
  494. package/dist/esm/u-missing-fields-submit-button.entry.js +44 -0
  495. package/dist/esm/u-missing-fields-submit-button.entry.js.map +1 -0
  496. package/dist/esm/u-newsletter-checkbox.entry.js +75 -0
  497. package/dist/esm/u-newsletter-checkbox.entry.js.map +1 -0
  498. package/dist/esm/u-newsletter-logout-button.entry.js +39 -0
  499. package/dist/esm/u-newsletter-logout-button.entry.js.map +1 -0
  500. package/dist/esm/u-newsletter-preference-checkbox.entry.js +118 -0
  501. package/dist/esm/u-newsletter-preference-checkbox.entry.js.map +1 -0
  502. package/dist/esm/u-newsletter-resend-doi-button.entry.js +47 -0
  503. package/dist/esm/u-newsletter-resend-doi-button.entry.js.map +1 -0
  504. package/dist/esm/u-newsletter-root.entry.js +70 -0
  505. package/dist/esm/u-newsletter-root.entry.js.map +1 -0
  506. package/dist/esm/u-newsletter-toggle-subscription-button.entry.js +71 -0
  507. package/dist/esm/u-newsletter-toggle-subscription-button.entry.js.map +1 -0
  508. package/dist/esm/u-pagination-button.entry.js +61 -0
  509. package/dist/esm/u-pagination-button.entry.js.map +1 -0
  510. package/dist/esm/u-pagination-page.entry.js +42 -0
  511. package/dist/esm/u-pagination-page.entry.js.map +1 -0
  512. package/dist/esm/u-passkey.entry.js +45 -0
  513. package/dist/esm/u-passkey.entry.js.map +1 -0
  514. package/dist/esm/u-password-field.entry.js +104 -0
  515. package/dist/esm/u-password-field.entry.js.map +1 -0
  516. package/dist/esm/u-profile.u-submit-button.entry.js.map +1 -0
  517. package/dist/esm/u-profile_2.entry.js +326 -0
  518. package/dist/esm/u-registration-button.entry.js +46 -0
  519. package/dist/esm/u-registration-button.entry.js.map +1 -0
  520. package/dist/esm/u-reset-password-button.entry.js +54 -0
  521. package/dist/esm/u-reset-password-button.entry.js.map +1 -0
  522. package/dist/esm/u-send-magic-code-button.entry.js +66 -0
  523. package/dist/esm/u-send-magic-code-button.entry.js.map +1 -0
  524. package/dist/esm/u-signin-root.entry.js +41 -0
  525. package/dist/esm/u-signin-root.entry.js.map +1 -0
  526. package/dist/esm/u-signin-step.entry.js +64 -0
  527. package/dist/esm/u-signin-step.entry.js.map +1 -0
  528. package/dist/esm/u-signin-strategy.entry.js +28 -0
  529. package/dist/esm/u-signin-strategy.entry.js.map +1 -0
  530. package/dist/esm/u-social-login-button.entry.js +98 -0
  531. package/dist/esm/u-social-login-button.entry.js.map +1 -0
  532. package/dist/esm/u-spinner.entry.js +16 -0
  533. package/dist/esm/u-spinner.entry.js.map +1 -0
  534. package/dist/esm/u-ticketable-list.entry.js +6095 -0
  535. package/dist/esm/u-ticketable-list.entry.js.map +1 -0
  536. package/dist/esm/unidy-store-CAcMVdD8.js +37 -0
  537. package/dist/esm/unidy-store-CAcMVdD8.js.map +1 -0
  538. package/dist/index.cjs.js +1 -0
  539. package/dist/index.js +1 -0
  540. package/dist/sdk/index.esm.js +2 -0
  541. package/dist/sdk/index.esm.js.map +1 -0
  542. package/dist/sdk/loader.esm.js.map +1 -0
  543. package/dist/sdk/locales/de.json +133 -0
  544. package/dist/sdk/locales/en.json +133 -0
  545. package/dist/sdk/locales/fr.json +133 -0
  546. package/dist/sdk/locales/it.json +133 -0
  547. package/dist/sdk/locales/nl_be.json +133 -0
  548. package/dist/sdk/locales/ro.json +133 -0
  549. package/dist/sdk/p-1bad3fd0.entry.js +2 -0
  550. package/dist/sdk/p-1bad3fd0.entry.js.map +1 -0
  551. package/dist/sdk/p-1d6982cd.entry.js +2 -0
  552. package/dist/sdk/p-1d6982cd.entry.js.map +1 -0
  553. package/dist/sdk/p-23d8e922.entry.js +2 -0
  554. package/dist/sdk/p-23d8e922.entry.js.map +1 -0
  555. package/dist/sdk/p-2855d3bb.entry.js +2 -0
  556. package/dist/sdk/p-2855d3bb.entry.js.map +1 -0
  557. package/dist/sdk/p-288f37c3.entry.js +2 -0
  558. package/dist/sdk/p-288f37c3.entry.js.map +1 -0
  559. package/dist/sdk/p-32842e98.entry.js +2 -0
  560. package/dist/sdk/p-32842e98.entry.js.map +1 -0
  561. package/dist/sdk/p-34af7470.entry.js +2 -0
  562. package/dist/sdk/p-34af7470.entry.js.map +1 -0
  563. package/dist/sdk/p-39126514.entry.js +2 -0
  564. package/dist/sdk/p-39126514.entry.js.map +1 -0
  565. package/dist/sdk/p-438f62e5.entry.js +2 -0
  566. package/dist/sdk/p-438f62e5.entry.js.map +1 -0
  567. package/dist/sdk/p-46013b2f.entry.js +2 -0
  568. package/dist/sdk/p-46013b2f.entry.js.map +1 -0
  569. package/dist/sdk/p-46cdb255.entry.js +2 -0
  570. package/dist/sdk/p-46cdb255.entry.js.map +1 -0
  571. package/dist/sdk/p-4d9bde6e.entry.js +2 -0
  572. package/dist/sdk/p-4d9bde6e.entry.js.map +1 -0
  573. package/dist/sdk/p-5c40c6ea.entry.js +2 -0
  574. package/dist/sdk/p-5c40c6ea.entry.js.map +1 -0
  575. package/dist/sdk/p-5c8b31bd.entry.js +2 -0
  576. package/dist/sdk/p-5c8b31bd.entry.js.map +1 -0
  577. package/dist/sdk/p-69172b22.entry.js +2 -0
  578. package/dist/sdk/p-69172b22.entry.js.map +1 -0
  579. package/dist/sdk/p-7381aca7.entry.js +2 -0
  580. package/dist/sdk/p-7381aca7.entry.js.map +1 -0
  581. package/dist/sdk/p-BGq0leDV.js +2 -0
  582. package/dist/sdk/p-BGq0leDV.js.map +1 -0
  583. package/dist/sdk/p-BR6L248H.js +2 -0
  584. package/dist/sdk/p-BR6L248H.js.map +1 -0
  585. package/dist/sdk/p-BhrvnKAS.js +2 -0
  586. package/dist/sdk/p-BhrvnKAS.js.map +1 -0
  587. package/dist/sdk/p-BqFCd65h.js +2 -0
  588. package/dist/sdk/p-BqFCd65h.js.map +1 -0
  589. package/dist/sdk/p-CMw6v6sC.js +2 -0
  590. package/dist/sdk/p-CMw6v6sC.js.map +1 -0
  591. package/dist/sdk/p-COQ27Nb6.js +14 -0
  592. package/dist/sdk/p-COQ27Nb6.js.map +1 -0
  593. package/dist/sdk/p-CSLU6kes.js +2 -0
  594. package/dist/sdk/p-CSLU6kes.js.map +1 -0
  595. package/dist/sdk/p-Cai8JwlG.js +2 -0
  596. package/dist/sdk/p-Cai8JwlG.js.map +1 -0
  597. package/dist/sdk/p-CpJghKnM.js +2 -0
  598. package/dist/sdk/p-CpJghKnM.js.map +1 -0
  599. package/dist/sdk/p-DAn4FkxC.js +2 -0
  600. package/dist/sdk/p-DAn4FkxC.js.map +1 -0
  601. package/dist/sdk/p-DUHc_Cx7.js +2 -0
  602. package/dist/sdk/p-DUHc_Cx7.js.map +1 -0
  603. package/dist/sdk/p-FFRhPCmc.js +2 -0
  604. package/dist/sdk/p-FFRhPCmc.js.map +1 -0
  605. package/dist/sdk/p-Jrp0G45B.js +2 -0
  606. package/dist/sdk/p-Jrp0G45B.js.map +1 -0
  607. package/dist/sdk/p-MA26cw6g.js +2 -0
  608. package/dist/sdk/p-MA26cw6g.js.map +1 -0
  609. package/dist/sdk/p-P0eZf5rH.js +2 -0
  610. package/dist/sdk/p-P0eZf5rH.js.map +1 -0
  611. package/dist/sdk/p-PSIHL0wP.js +2 -0
  612. package/dist/sdk/p-PSIHL0wP.js.map +1 -0
  613. package/dist/sdk/p-a341c7f6.entry.js +2 -0
  614. package/dist/sdk/p-a341c7f6.entry.js.map +1 -0
  615. package/dist/sdk/p-a38cd448.entry.js +2 -0
  616. package/dist/sdk/p-a38cd448.entry.js.map +1 -0
  617. package/dist/sdk/p-a45ef398.entry.js +2 -0
  618. package/dist/sdk/p-a45ef398.entry.js.map +1 -0
  619. package/dist/sdk/p-b5a6ad01.entry.js +2 -0
  620. package/dist/sdk/p-b5a6ad01.entry.js.map +1 -0
  621. package/dist/sdk/p-b93bf91d.entry.js +2 -0
  622. package/dist/sdk/p-b93bf91d.entry.js.map +1 -0
  623. package/dist/sdk/p-baf5dcb7.entry.js +2 -0
  624. package/dist/sdk/p-baf5dcb7.entry.js.map +1 -0
  625. package/dist/sdk/p-c07a43e2.entry.js +2 -0
  626. package/dist/sdk/p-c07a43e2.entry.js.map +1 -0
  627. package/dist/sdk/p-c98ad60d.entry.js +2 -0
  628. package/dist/sdk/p-c98ad60d.entry.js.map +1 -0
  629. package/dist/sdk/p-d0c0fb6b.entry.js +2 -0
  630. package/dist/sdk/p-d0c0fb6b.entry.js.map +1 -0
  631. package/dist/sdk/p-d47aaf26.entry.js +2 -0
  632. package/dist/sdk/p-d47aaf26.entry.js.map +1 -0
  633. package/dist/sdk/p-e5ef30ef.entry.js +2 -0
  634. package/dist/sdk/p-e5ef30ef.entry.js.map +1 -0
  635. package/dist/sdk/p-eb348798.entry.js +2 -0
  636. package/dist/sdk/p-eb348798.entry.js.map +1 -0
  637. package/dist/sdk/p-f82f500d.entry.js +2 -0
  638. package/dist/sdk/p-f82f500d.entry.js.map +1 -0
  639. package/dist/sdk/p-f88ed6e8.entry.js +2 -0
  640. package/dist/sdk/p-f88ed6e8.entry.js.map +1 -0
  641. package/dist/sdk/p-f9affafe.entry.js +2 -0
  642. package/dist/sdk/p-f9affafe.entry.js.map +1 -0
  643. package/dist/sdk/p-jyF1XwDG.js +2 -0
  644. package/dist/sdk/p-jyF1XwDG.js.map +1 -0
  645. package/dist/sdk/sdk.css +39 -0
  646. package/dist/sdk/sdk.esm.js +2 -0
  647. package/dist/sdk/sdk.esm.js.map +1 -0
  648. package/dist/sdk/u-conditional-render.entry.esm.js.map +1 -0
  649. package/dist/sdk/u-config.entry.esm.js.map +1 -0
  650. package/dist/sdk/u-email-field.entry.esm.js.map +1 -0
  651. package/dist/sdk/u-error-message.entry.esm.js.map +1 -0
  652. package/dist/sdk/u-field.u-raw-field.entry.esm.js.map +1 -0
  653. package/dist/sdk/u-flash-message.entry.esm.js.map +1 -0
  654. package/dist/sdk/u-full-profile.entry.esm.js.map +1 -0
  655. package/dist/sdk/u-logout-button.u-signed-in.entry.esm.js.map +1 -0
  656. package/dist/sdk/u-magic-code-field.entry.esm.js.map +1 -0
  657. package/dist/sdk/u-missing-field.entry.esm.js.map +1 -0
  658. package/dist/sdk/u-missing-fields-submit-button.entry.esm.js.map +1 -0
  659. package/dist/sdk/u-newsletter-checkbox.entry.esm.js.map +1 -0
  660. package/dist/sdk/u-newsletter-logout-button.entry.esm.js.map +1 -0
  661. package/dist/sdk/u-newsletter-preference-checkbox.entry.esm.js.map +1 -0
  662. package/dist/sdk/u-newsletter-resend-doi-button.entry.esm.js.map +1 -0
  663. package/dist/sdk/u-newsletter-root.entry.esm.js.map +1 -0
  664. package/dist/sdk/u-newsletter-toggle-subscription-button.entry.esm.js.map +1 -0
  665. package/dist/sdk/u-pagination-button.entry.esm.js.map +1 -0
  666. package/dist/sdk/u-pagination-page.entry.esm.js.map +1 -0
  667. package/dist/sdk/u-passkey.entry.esm.js.map +1 -0
  668. package/dist/sdk/u-password-field.entry.esm.js.map +1 -0
  669. package/dist/sdk/u-profile.u-submit-button.entry.esm.js.map +1 -0
  670. package/dist/sdk/u-registration-button.entry.esm.js.map +1 -0
  671. package/dist/sdk/u-reset-password-button.entry.esm.js.map +1 -0
  672. package/dist/sdk/u-send-magic-code-button.entry.esm.js.map +1 -0
  673. package/dist/sdk/u-signin-root.entry.esm.js.map +1 -0
  674. package/dist/sdk/u-signin-step.entry.esm.js.map +1 -0
  675. package/dist/sdk/u-signin-strategy.entry.esm.js.map +1 -0
  676. package/dist/sdk/u-social-login-button.entry.esm.js.map +1 -0
  677. package/dist/sdk/u-spinner.entry.esm.js.map +1 -0
  678. package/dist/sdk/u-ticketable-list.entry.esm.js.map +1 -0
  679. package/dist/types/api/client.d.ts +32 -0
  680. package/dist/types/api/index.d.ts +22 -0
  681. package/dist/types/api/shared.d.ts +20 -0
  682. package/dist/types/auth/api/auth.d.ts +302 -0
  683. package/dist/types/auth/auth-helpers.d.ts +376 -0
  684. package/dist/types/auth/auth.d.ts +62 -0
  685. package/dist/types/auth/components/helpers.d.ts +1 -0
  686. package/dist/types/auth/components/logout-button/logout-button.d.ts +11 -0
  687. package/dist/types/auth/components/magic-code-field/magic-code-field.d.ts +10 -0
  688. package/dist/types/auth/components/missing-field/missing-field.d.ts +4 -0
  689. package/dist/types/auth/components/missing-fields-submit-button/missing-fields-submit-button.d.ts +5 -0
  690. package/dist/types/auth/components/passkey/passkey.d.ts +9 -0
  691. package/dist/types/auth/components/password-field/password-field.d.ts +15 -0
  692. package/dist/types/auth/components/registration/registration-button.d.ts +11 -0
  693. package/dist/types/auth/components/reset-pass-button/reset-pass-button.d.ts +7 -0
  694. package/dist/types/auth/components/send-magic-code-button/send-magic-code-button.d.ts +11 -0
  695. package/dist/types/auth/components/signed-in/signed-in.d.ts +5 -0
  696. package/dist/types/auth/components/signin-root/signin-root.d.ts +14 -0
  697. package/dist/types/auth/components/signin-step/signin-step.d.ts +8 -0
  698. package/dist/types/auth/components/signin-strategy/signin-strategy.d.ts +5 -0
  699. package/dist/types/auth/components/social-logins/logos/apple.d.ts +4 -0
  700. package/dist/types/auth/components/social-logins/logos/discord.d.ts +4 -0
  701. package/dist/types/auth/components/social-logins/logos/facebook.d.ts +4 -0
  702. package/dist/types/auth/components/social-logins/logos/google.d.ts +4 -0
  703. package/dist/types/auth/components/social-logins/logos/linkedin.d.ts +4 -0
  704. package/dist/types/auth/components/social-logins/social-login-button.d.ts +24 -0
  705. package/dist/types/auth/components/submit-button/auth-submit-button.d.ts +3 -0
  706. package/dist/types/auth/error-definitions.d.ts +23 -0
  707. package/dist/types/auth/index.d.ts +15 -0
  708. package/dist/types/auth/passkey-auth.d.ts +2 -0
  709. package/dist/types/auth/store/auth-store.d.ts +58 -0
  710. package/dist/types/components.d.ts +1270 -0
  711. package/dist/types/globalScript.d.ts +1 -0
  712. package/dist/types/i18n.d.ts +3 -0
  713. package/dist/types/index.d.ts +16 -0
  714. package/dist/types/logger.d.ts +55 -0
  715. package/dist/types/newsletter/api/newsletters.d.ts +198 -0
  716. package/dist/types/newsletter/components/helpers.d.ts +1 -0
  717. package/dist/types/newsletter/components/logout-button/logout-button.d.ts +8 -0
  718. package/dist/types/newsletter/components/newsletter-checkbox/newsletter-checkbox.d.ts +15 -0
  719. package/dist/types/newsletter/components/newsletter-root/newsletter-root.d.ts +11 -0
  720. package/dist/types/newsletter/components/preference-checkbox/preference-checkbox.d.ts +28 -0
  721. package/dist/types/newsletter/components/resend-doi-button/resend-doi-button.d.ts +8 -0
  722. package/dist/types/newsletter/components/submit-button/newsletter-submit-button.d.ts +3 -0
  723. package/dist/types/newsletter/components/toggle-subscription-button/toggle-subscription-button.d.ts +12 -0
  724. package/dist/types/newsletter/index.d.ts +10 -0
  725. package/dist/types/newsletter/newsletter-helpers.d.ts +15 -0
  726. package/dist/types/newsletter/store/newsletter-store.d.ts +25 -0
  727. package/dist/types/profile/api/profile.d.ts +238 -0
  728. package/dist/types/profile/components/field/field.d.ts +39 -0
  729. package/dist/types/profile/components/full-profile/full-profile.d.ts +6 -0
  730. package/dist/types/profile/components/profile/profile.d.ts +27 -0
  731. package/dist/types/profile/components/raw-field/raw-field.d.ts +45 -0
  732. package/dist/types/profile/components/raw-input-fields/Input.d.ts +17 -0
  733. package/dist/types/profile/components/raw-input-fields/MultiSelect.d.ts +28 -0
  734. package/dist/types/profile/components/raw-input-fields/RadioGroup.d.ts +30 -0
  735. package/dist/types/profile/components/raw-input-fields/Select.d.ts +24 -0
  736. package/dist/types/profile/components/raw-input-fields/Textarea.d.ts +17 -0
  737. package/dist/types/profile/components/submit-button/profile-submit-button.d.ts +2 -0
  738. package/dist/types/profile/index.d.ts +12 -0
  739. package/dist/types/profile/profile-helpers.d.ts +7 -0
  740. package/dist/types/profile/store/profile-store.d.ts +39 -0
  741. package/dist/types/shared/component-utils.d.ts +16 -0
  742. package/dist/types/shared/components/conditional-render/conditional-render.d.ts +11 -0
  743. package/dist/types/shared/components/config/config.d.ts +32 -0
  744. package/dist/types/shared/components/email-field/email-field.d.ts +13 -0
  745. package/dist/types/shared/components/error-message/error-message.d.ts +15 -0
  746. package/dist/types/shared/components/flash-message/close-icon.d.ts +1 -0
  747. package/dist/types/shared/components/flash-message/flash-message.d.ts +6 -0
  748. package/dist/types/shared/components/spinner/spinner.d.ts +3 -0
  749. package/dist/types/shared/components/submit-button/context.d.ts +9 -0
  750. package/dist/types/shared/components/submit-button/submit-button.d.ts +20 -0
  751. package/dist/types/shared/store/flash-store.d.ts +29 -0
  752. package/dist/types/shared/store/unidy-store.d.ts +12 -0
  753. package/dist/types/stencil-public-runtime.d.ts +1756 -0
  754. package/dist/types/ticketable/api/get-with-schema.d.ts +3 -0
  755. package/dist/types/ticketable/api/schemas.d.ts +18 -0
  756. package/dist/types/ticketable/api/subscriptions.d.ts +84 -0
  757. package/dist/types/ticketable/api/tickets.d.ts +86 -0
  758. package/dist/types/ticketable/components/pagination/pagination-button.d.ts +14 -0
  759. package/dist/types/ticketable/components/pagination/pagination-page.d.ts +12 -0
  760. package/dist/types/ticketable/components/ticketable-list/skeleton-helpers.d.ts +13 -0
  761. package/dist/types/ticketable/components/ticketable-list/ticketable-list.d.ts +41 -0
  762. package/dist/types/ticketable/index.d.ts +12 -0
  763. package/dist/types/ticketable/store/pagination-store.d.ts +10 -0
  764. package/loader/cdn.js +1 -0
  765. package/loader/index.cjs.js +1 -0
  766. package/loader/index.d.ts +24 -0
  767. package/loader/index.es2017.js +1 -0
  768. package/loader/index.js +2 -0
  769. package/package.json +23 -18
@@ -0,0 +1,277 @@
1
+ import { getUnidyClient } from "../api";
2
+ import { Auth } from "../auth/auth";
3
+ import { t } from "../i18n";
4
+ import { createLogger } from "../logger";
5
+ import { Flash } from "../shared/store/flash-store";
6
+ import { newsletterStore, persist, } from "./store/newsletter-store";
7
+ const logger = createLogger("NewsletterHelpers");
8
+ const PERSIST_KEY_PREFIX = "unidy_newsletter_";
9
+ export function newsletterLogout() {
10
+ newsletterStore.state.preferenceToken = "";
11
+ newsletterStore.state.existingSubscriptions = [];
12
+ sessionStorage.removeItem(`${PERSIST_KEY_PREFIX}preferenceToken`);
13
+ sessionStorage.removeItem(`${PERSIST_KEY_PREFIX}email`);
14
+ }
15
+ export async function resendDoi(internalName) {
16
+ const { preferenceToken } = newsletterStore.state;
17
+ const authInstance = await Auth.getInstance();
18
+ const idToken = await authInstance.getToken();
19
+ const response = await getUnidyClient().newsletters.resendDoi(internalName, { redirect_to_after_confirmation: redirectToAfterConfirmationUrl() }, {
20
+ preferenceToken: typeof preferenceToken === "string" ? preferenceToken : "",
21
+ idToken: typeof idToken === "string" ? idToken : "",
22
+ });
23
+ if (response.status === 204) {
24
+ return true;
25
+ }
26
+ if (response.status === 401) {
27
+ Flash.error.addMessage(t("newsletter.errors.unauthorized"));
28
+ newsletterLogout();
29
+ return false;
30
+ }
31
+ return false;
32
+ }
33
+ export async function sendLoginEmail(email) {
34
+ const response = await getUnidyClient().newsletters.sendLoginEmail({
35
+ email,
36
+ redirect_uri: redirectToAfterConfirmationUrl(),
37
+ });
38
+ if (response.status === 204) {
39
+ Flash.info.addMessage(t("newsletter.success.login_email_sent"));
40
+ }
41
+ else if (response.status === 404) {
42
+ Flash.error.addMessage(t("newsletter.errors.login_email_not_found"));
43
+ }
44
+ else {
45
+ Flash.error.addMessage(t("errors.unknown", { defaultValue: "An unknown error occurred" }));
46
+ }
47
+ }
48
+ export async function fetchSubscriptions() {
49
+ const { preferenceToken } = newsletterStore.state;
50
+ // either preference token is needed or the user must be authenticated
51
+ if (!preferenceToken && !newsletterStore.state.isAuthenticated) {
52
+ logger.error("Preference token or authentication is required to fetch subscriptions");
53
+ return;
54
+ }
55
+ const authInstance = await Auth.getInstance();
56
+ const idToken = await authInstance.getToken();
57
+ newsletterStore.state.fetchingSubscriptions = true;
58
+ const response = await getUnidyClient().newsletters.listSubscriptions({
59
+ preferenceToken,
60
+ idToken: typeof idToken === "string" ? idToken : "",
61
+ });
62
+ newsletterStore.state.fetchingSubscriptions = false;
63
+ if (response.status === 401) {
64
+ newsletterLogout();
65
+ Flash.error.addMessage(t("newsletter.errors.unauthorized"));
66
+ return;
67
+ }
68
+ if (response.success && response.data) {
69
+ newsletterStore.state.existingSubscriptions = response.data.map((sub) => ({
70
+ newsletter_internal_name: sub.newsletter_internal_name,
71
+ confirmed: sub.confirmed_at !== null,
72
+ preference_identifiers: sub.preference_identifiers || [],
73
+ }));
74
+ // init checked newsletters and preferences
75
+ const checkedNewsletters = { ...newsletterStore.state.checkedNewsletters };
76
+ for (const sub of response.data) {
77
+ checkedNewsletters[sub.newsletter_internal_name] = [...(sub.preference_identifiers || [])];
78
+ }
79
+ newsletterStore.state.checkedNewsletters = checkedNewsletters;
80
+ }
81
+ }
82
+ async function handleAlreadySubscribedError(email, errors) {
83
+ if (newsletterStore.state.isAuthenticated || newsletterStore.state.preferenceToken) {
84
+ const existingNames = new Set(newsletterStore.state.existingSubscriptions.map((s) => s.newsletter_internal_name));
85
+ const newSubscriptions = errors
86
+ .filter((err) => err.error_identifier === "already_subscribed" && !existingNames.has(err.meta.newsletter_internal_name))
87
+ .map((err) => ({
88
+ newsletter_internal_name: err.meta.newsletter_internal_name,
89
+ confirmed: null,
90
+ preference_identifiers: [],
91
+ }));
92
+ if (newSubscriptions.length > 0) {
93
+ newsletterStore.state.existingSubscriptions = [...newsletterStore.state.existingSubscriptions, ...newSubscriptions];
94
+ }
95
+ }
96
+ else {
97
+ await sendLoginEmail(email);
98
+ }
99
+ }
100
+ async function handleCreateSubscriptionRequest(email, internalNames, showSuccessMessage = true) {
101
+ const authInstance = await Auth.getInstance();
102
+ const idToken = await authInstance.getToken();
103
+ const { checkedNewsletters } = newsletterStore.state;
104
+ const [error, response] = await getUnidyClient().newsletters.createSubscriptions({
105
+ email,
106
+ newsletter_subscriptions: internalNames.map((newsletter) => ({
107
+ newsletter_internal_name: newsletter,
108
+ preference_identifiers: checkedNewsletters[newsletter] || [],
109
+ })),
110
+ redirect_to_after_confirmation: redirectToAfterConfirmationUrl(),
111
+ }, {
112
+ idToken: typeof idToken === "string" ? idToken : "",
113
+ });
114
+ if (error === null) {
115
+ if (response.data?.results && response.data.results.length > 0) {
116
+ const newSubscriptions = response.data.results.map((result) => ({
117
+ newsletter_internal_name: result.newsletter_internal_name,
118
+ confirmed: result.confirmed_at !== null,
119
+ preference_identifiers: result.preference_identifiers || [],
120
+ }));
121
+ newsletterStore.state.existingSubscriptions = [...newsletterStore.state.existingSubscriptions, ...newSubscriptions];
122
+ }
123
+ if (showSuccessMessage) {
124
+ Flash.success.addMessage(t("newsletter.success.subscribe"));
125
+ }
126
+ return true;
127
+ }
128
+ if (error === "unauthorized") {
129
+ Flash.error.addMessage(t("newsletter.errors.unauthorized"));
130
+ newsletterLogout();
131
+ return false;
132
+ }
133
+ if (error === "newsletter_error") {
134
+ const errors = response.data?.errors || [];
135
+ const errorMap = {};
136
+ // special error case which is handled differently: if user is not authenticated, we send a login email, otherwise we add the
137
+ // already_subscribed subscriptions to the existing subscriptions
138
+ const hasAlreadySubscribedError = errors.some((err) => err.error_identifier === "already_subscribed");
139
+ if (hasAlreadySubscribedError) {
140
+ await handleAlreadySubscribedError(email, errors);
141
+ }
142
+ const newsletterNotFoundError = errors.some((err) => err.error_identifier === "newsletter_not_found");
143
+ if (newsletterNotFoundError) {
144
+ errorMap.general = "newsletter_not_found";
145
+ }
146
+ const hasInvalidEmailError = errors.some((err) => err.error_identifier === "validation_error" && err.error_details && "email" in err.error_details);
147
+ if (hasInvalidEmailError) {
148
+ errorMap.email = "invalid_email";
149
+ }
150
+ else {
151
+ for (const err of errors) {
152
+ errorMap[err.meta.newsletter_internal_name] = err.error_identifier;
153
+ }
154
+ }
155
+ newsletterStore.state.errors = errorMap;
156
+ }
157
+ else {
158
+ Flash.error.addMessage(t("errors.unknown", { defaultValue: "An unknown error occurred" }));
159
+ }
160
+ return false;
161
+ }
162
+ export async function subscribeToNewsletter(internalName, email) {
163
+ return handleCreateSubscriptionRequest(email, [internalName], false);
164
+ }
165
+ export async function createSubscriptions({ email }) {
166
+ const internalNames = Object.keys(newsletterStore.state.checkedNewsletters);
167
+ await handleCreateSubscriptionRequest(email, internalNames, true);
168
+ }
169
+ export async function deleteSubscription(internalName) {
170
+ const { preferenceToken } = newsletterStore.state;
171
+ // either preference token is needed or the user must be authenticated to delete a subscription
172
+ if (!preferenceToken && !newsletterStore.state.isAuthenticated) {
173
+ logger.error("Preference token or authentication is required to delete a subscription");
174
+ return false;
175
+ }
176
+ const authInstance = await Auth.getInstance();
177
+ const idToken = await authInstance.getToken();
178
+ const response = await getUnidyClient().newsletters.deleteSubscription(internalName, {
179
+ preferenceToken,
180
+ idToken: typeof idToken === "string" ? idToken : "",
181
+ });
182
+ if (response.status === 200 && response.data?.new_preference_token) {
183
+ // if user is not authenticated, we need to store the new preference token which is used for the next request
184
+ if (!newsletterStore.state.isAuthenticated) {
185
+ newsletterStore.state.preferenceToken = response.data.new_preference_token;
186
+ persist("preferenceToken");
187
+ }
188
+ newsletterStore.state.existingSubscriptions = newsletterStore.state.existingSubscriptions.filter((sub) => sub.newsletter_internal_name !== internalName);
189
+ // Reset checked preferences to defaults (preferences marked with checked='true')
190
+ const defaultPrefs = newsletterStore.state.defaultPreferences[internalName];
191
+ newsletterStore.state.checkedNewsletters = {
192
+ ...newsletterStore.state.checkedNewsletters,
193
+ [internalName]: defaultPrefs ? [...defaultPrefs] : [],
194
+ };
195
+ return true;
196
+ }
197
+ if (response.status === 204) {
198
+ newsletterLogout();
199
+ newsletterStore.state.checkedNewsletters = {};
200
+ return true;
201
+ }
202
+ if (response.status === 401) {
203
+ Flash.error.addMessage(t("newsletter.errors.unauthorized"));
204
+ newsletterLogout();
205
+ return false;
206
+ }
207
+ if (response.status === 422) {
208
+ return false;
209
+ }
210
+ Flash.error.addMessage(t("errors.unknown", { defaultValue: "An unknown error occurred" }));
211
+ return false;
212
+ }
213
+ export function getSubscription(internalName) {
214
+ return newsletterStore.state.existingSubscriptions.find((sub) => sub.newsletter_internal_name === internalName);
215
+ }
216
+ export function isSubscribed(internalName) {
217
+ return newsletterStore.state.existingSubscriptions.some((sub) => sub.newsletter_internal_name === internalName);
218
+ }
219
+ export function isConfirmed(internalName) {
220
+ const sub = getSubscription(internalName);
221
+ return sub?.confirmed ?? false;
222
+ }
223
+ function redirectToAfterConfirmationUrl() {
224
+ const baseUrl = `${location.origin}${location.pathname}`;
225
+ const params = new URLSearchParams(location.search);
226
+ for (const key of ["email", "newsletter_error"]) {
227
+ params.delete(key);
228
+ }
229
+ const queryString = params.toString();
230
+ return queryString ? `${baseUrl}?${queryString}` : baseUrl;
231
+ }
232
+ export function getSubscriptionPreferences(internalName) {
233
+ const subscription = getSubscription(internalName);
234
+ return subscription?.preference_identifiers || [];
235
+ }
236
+ export async function updateSubscriptionPreferences(internalName) {
237
+ const { preferenceToken } = newsletterStore.state;
238
+ // Either preference token is needed or the user must be authenticated
239
+ if (!preferenceToken && !newsletterStore.state.isAuthenticated) {
240
+ logger.error("Preference token or authentication is required to update subscription preferences");
241
+ return false;
242
+ }
243
+ // Check if the subscription exists
244
+ if (!isSubscribed(internalName)) {
245
+ logger.error(`Cannot update preferences: not subscribed to newsletter '${internalName}'`);
246
+ return false;
247
+ }
248
+ const authInstance = await Auth.getInstance();
249
+ const idToken = await authInstance.getToken();
250
+ const preferenceIdentifiers = newsletterStore.state.checkedNewsletters[internalName] || [];
251
+ const response = await getUnidyClient().newsletters.updateSubscription(internalName, { preference_identifiers: preferenceIdentifiers }, {
252
+ preferenceToken,
253
+ idToken: typeof idToken === "string" ? idToken : "",
254
+ });
255
+ if (response.status === 401) {
256
+ Flash.error.addMessage(t("newsletter.errors.unauthorized"));
257
+ newsletterLogout();
258
+ return false;
259
+ }
260
+ if (response.success && response.data) {
261
+ // Update the local subscription with the new preferences
262
+ const subscriptionIndex = newsletterStore.state.existingSubscriptions.findIndex((sub) => sub.newsletter_internal_name === internalName);
263
+ if (subscriptionIndex !== -1) {
264
+ const updatedSubscriptions = [...newsletterStore.state.existingSubscriptions];
265
+ updatedSubscriptions[subscriptionIndex] = {
266
+ ...updatedSubscriptions[subscriptionIndex],
267
+ preference_identifiers: response.data.preference_identifiers || [],
268
+ };
269
+ newsletterStore.state.existingSubscriptions = updatedSubscriptions;
270
+ }
271
+ Flash.success.addMessage(t("newsletter.success.preferences_updated"));
272
+ return true;
273
+ }
274
+ Flash.error.addMessage(t("errors.unknown", { defaultValue: "An unknown error occurred" }));
275
+ return false;
276
+ }
277
+ //# sourceMappingURL=newsletter-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"newsletter-helpers.js","sourceRoot":"","sources":["../../src/newsletter/newsletter-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { getUnidyClient } from \"../api\";\nimport { Auth } from \"../auth/auth\";\nimport { t } from \"../i18n\";\nimport { createLogger } from \"../logger\";\nimport { Flash } from \"../shared/store/flash-store\";\nimport {\n type CheckedNewsletters,\n type ExistingSubscription,\n type NewsletterErrorIdentifier,\n newsletterStore,\n persist,\n} from \"./store/newsletter-store\";\n\nconst logger = createLogger(\"NewsletterHelpers\");\n\nconst PERSIST_KEY_PREFIX = \"unidy_newsletter_\";\n\nexport function newsletterLogout(): void {\n newsletterStore.state.preferenceToken = \"\";\n newsletterStore.state.existingSubscriptions = [];\n sessionStorage.removeItem(`${PERSIST_KEY_PREFIX}preferenceToken`);\n sessionStorage.removeItem(`${PERSIST_KEY_PREFIX}email`);\n}\n\nexport async function resendDoi(internalName: string): Promise<boolean> {\n const { preferenceToken } = newsletterStore.state;\n\n const authInstance = await Auth.getInstance();\n const idToken = await authInstance.getToken();\n\n const response = await getUnidyClient().newsletters.resendDoi(\n internalName,\n { redirect_to_after_confirmation: redirectToAfterConfirmationUrl() },\n {\n preferenceToken: typeof preferenceToken === \"string\" ? preferenceToken : \"\",\n idToken: typeof idToken === \"string\" ? idToken : \"\",\n },\n );\n\n if (response.status === 204) {\n return true;\n }\n\n if (response.status === 401) {\n Flash.error.addMessage(t(\"newsletter.errors.unauthorized\"));\n newsletterLogout();\n return false;\n }\n\n return false;\n}\n\nexport async function sendLoginEmail(email: string): Promise<void> {\n const response = await getUnidyClient().newsletters.sendLoginEmail({\n email,\n redirect_uri: redirectToAfterConfirmationUrl(),\n });\n\n if (response.status === 204) {\n Flash.info.addMessage(t(\"newsletter.success.login_email_sent\"));\n } else if (response.status === 404) {\n Flash.error.addMessage(t(\"newsletter.errors.login_email_not_found\"));\n } else {\n Flash.error.addMessage(t(\"errors.unknown\", { defaultValue: \"An unknown error occurred\" }));\n }\n}\n\nexport async function fetchSubscriptions(): Promise<void> {\n const { preferenceToken } = newsletterStore.state;\n\n // either preference token is needed or the user must be authenticated\n if (!preferenceToken && !newsletterStore.state.isAuthenticated) {\n logger.error(\"Preference token or authentication is required to fetch subscriptions\");\n return;\n }\n\n const authInstance = await Auth.getInstance();\n const idToken = await authInstance.getToken();\n\n newsletterStore.state.fetchingSubscriptions = true;\n\n const response = await getUnidyClient().newsletters.listSubscriptions({\n preferenceToken,\n idToken: typeof idToken === \"string\" ? idToken : \"\",\n });\n\n newsletterStore.state.fetchingSubscriptions = false;\n\n if (response.status === 401) {\n newsletterLogout();\n Flash.error.addMessage(t(\"newsletter.errors.unauthorized\"));\n return;\n }\n\n if (response.success && response.data) {\n newsletterStore.state.existingSubscriptions = response.data.map(\n (sub): ExistingSubscription => ({\n newsletter_internal_name: sub.newsletter_internal_name,\n confirmed: sub.confirmed_at !== null,\n preference_identifiers: sub.preference_identifiers || [],\n }),\n );\n\n // init checked newsletters and preferences\n const checkedNewsletters: CheckedNewsletters = { ...newsletterStore.state.checkedNewsletters };\n for (const sub of response.data) {\n checkedNewsletters[sub.newsletter_internal_name] = [...(sub.preference_identifiers || [])];\n }\n newsletterStore.state.checkedNewsletters = checkedNewsletters;\n }\n}\n\nasync function handleAlreadySubscribedError(\n email: string,\n errors: Array<{ error_identifier: string; meta: { newsletter_internal_name: string } }>,\n): Promise<void> {\n if (newsletterStore.state.isAuthenticated || newsletterStore.state.preferenceToken) {\n const existingNames = new Set(newsletterStore.state.existingSubscriptions.map((s) => s.newsletter_internal_name));\n\n const newSubscriptions: ExistingSubscription[] = errors\n .filter((err) => err.error_identifier === \"already_subscribed\" && !existingNames.has(err.meta.newsletter_internal_name))\n .map((err) => ({\n newsletter_internal_name: err.meta.newsletter_internal_name,\n confirmed: null,\n preference_identifiers: [],\n }));\n\n if (newSubscriptions.length > 0) {\n newsletterStore.state.existingSubscriptions = [...newsletterStore.state.existingSubscriptions, ...newSubscriptions];\n }\n } else {\n await sendLoginEmail(email);\n }\n}\n\nasync function handleCreateSubscriptionRequest(email: string, internalNames: string[], showSuccessMessage = true): Promise<boolean> {\n const authInstance = await Auth.getInstance();\n const idToken = await authInstance.getToken();\n const { checkedNewsletters } = newsletterStore.state;\n\n const [error, response] = await getUnidyClient().newsletters.createSubscriptions(\n {\n email,\n newsletter_subscriptions: internalNames.map((newsletter) => ({\n newsletter_internal_name: newsletter,\n preference_identifiers: checkedNewsletters[newsletter] || [],\n })),\n redirect_to_after_confirmation: redirectToAfterConfirmationUrl(),\n },\n {\n idToken: typeof idToken === \"string\" ? idToken : \"\",\n },\n );\n\n if (error === null) {\n if (response.data?.results && response.data.results.length > 0) {\n const newSubscriptions: ExistingSubscription[] = response.data.results.map((result) => ({\n newsletter_internal_name: result.newsletter_internal_name,\n confirmed: result.confirmed_at !== null,\n preference_identifiers: result.preference_identifiers || [],\n }));\n\n newsletterStore.state.existingSubscriptions = [...newsletterStore.state.existingSubscriptions, ...newSubscriptions];\n }\n\n if (showSuccessMessage) {\n Flash.success.addMessage(t(\"newsletter.success.subscribe\"));\n }\n\n return true;\n }\n\n if (error === \"unauthorized\") {\n Flash.error.addMessage(t(\"newsletter.errors.unauthorized\"));\n newsletterLogout();\n return false;\n }\n\n if (error === \"newsletter_error\") {\n const errors = response.data?.errors || [];\n const errorMap: Record<string, NewsletterErrorIdentifier> = {};\n\n // special error case which is handled differently: if user is not authenticated, we send a login email, otherwise we add the\n // already_subscribed subscriptions to the existing subscriptions\n const hasAlreadySubscribedError = errors.some((err) => err.error_identifier === \"already_subscribed\");\n if (hasAlreadySubscribedError) {\n await handleAlreadySubscribedError(email, errors);\n }\n\n const newsletterNotFoundError = errors.some((err) => err.error_identifier === \"newsletter_not_found\");\n if (newsletterNotFoundError) {\n errorMap.general = \"newsletter_not_found\";\n }\n\n const hasInvalidEmailError = errors.some(\n (err) => err.error_identifier === \"validation_error\" && err.error_details && \"email\" in err.error_details,\n );\n\n if (hasInvalidEmailError) {\n errorMap.email = \"invalid_email\";\n } else {\n for (const err of errors) {\n errorMap[err.meta.newsletter_internal_name] = err.error_identifier as NewsletterErrorIdentifier;\n }\n }\n\n newsletterStore.state.errors = errorMap;\n } else {\n Flash.error.addMessage(t(\"errors.unknown\", { defaultValue: \"An unknown error occurred\" }));\n }\n\n return false;\n}\n\nexport async function subscribeToNewsletter(internalName: string, email: string): Promise<boolean> {\n return handleCreateSubscriptionRequest(email, [internalName], false);\n}\n\nexport async function createSubscriptions({ email }: { email: string }): Promise<void> {\n const internalNames = Object.keys(newsletterStore.state.checkedNewsletters);\n await handleCreateSubscriptionRequest(email, internalNames, true);\n}\n\nexport async function deleteSubscription(internalName: string): Promise<boolean> {\n const { preferenceToken } = newsletterStore.state;\n\n // either preference token is needed or the user must be authenticated to delete a subscription\n if (!preferenceToken && !newsletterStore.state.isAuthenticated) {\n logger.error(\"Preference token or authentication is required to delete a subscription\");\n return false;\n }\n\n const authInstance = await Auth.getInstance();\n const idToken = await authInstance.getToken();\n\n const response = await getUnidyClient().newsletters.deleteSubscription(internalName, {\n preferenceToken,\n idToken: typeof idToken === \"string\" ? idToken : \"\",\n });\n\n if (response.status === 200 && response.data?.new_preference_token) {\n // if user is not authenticated, we need to store the new preference token which is used for the next request\n if (!newsletterStore.state.isAuthenticated) {\n newsletterStore.state.preferenceToken = response.data.new_preference_token;\n persist(\"preferenceToken\");\n }\n\n newsletterStore.state.existingSubscriptions = newsletterStore.state.existingSubscriptions.filter(\n (sub) => sub.newsletter_internal_name !== internalName,\n );\n\n // Reset checked preferences to defaults (preferences marked with checked='true')\n const defaultPrefs = newsletterStore.state.defaultPreferences[internalName];\n newsletterStore.state.checkedNewsletters = {\n ...newsletterStore.state.checkedNewsletters,\n [internalName]: defaultPrefs ? [...defaultPrefs] : [],\n };\n\n return true;\n }\n\n if (response.status === 204) {\n newsletterLogout();\n\n newsletterStore.state.checkedNewsletters = {};\n return true;\n }\n\n if (response.status === 401) {\n Flash.error.addMessage(t(\"newsletter.errors.unauthorized\"));\n newsletterLogout();\n return false;\n }\n\n if (response.status === 422) {\n return false;\n }\n\n Flash.error.addMessage(t(\"errors.unknown\", { defaultValue: \"An unknown error occurred\" }));\n return false;\n}\n\nexport function getSubscription(internalName: string): ExistingSubscription | undefined {\n return newsletterStore.state.existingSubscriptions.find((sub) => sub.newsletter_internal_name === internalName);\n}\n\nexport function isSubscribed(internalName: string): boolean {\n return newsletterStore.state.existingSubscriptions.some((sub) => sub.newsletter_internal_name === internalName);\n}\n\nexport function isConfirmed(internalName: string): boolean {\n const sub = getSubscription(internalName);\n return sub?.confirmed ?? false;\n}\n\nfunction redirectToAfterConfirmationUrl(): string {\n const baseUrl = `${location.origin}${location.pathname}`;\n const params = new URLSearchParams(location.search);\n for (const key of [\"email\", \"newsletter_error\"]) {\n params.delete(key);\n }\n const queryString = params.toString();\n return queryString ? `${baseUrl}?${queryString}` : baseUrl;\n}\n\nexport function getSubscriptionPreferences(internalName: string): string[] {\n const subscription = getSubscription(internalName);\n return subscription?.preference_identifiers || [];\n}\n\nexport async function updateSubscriptionPreferences(internalName: string): Promise<boolean> {\n const { preferenceToken } = newsletterStore.state;\n\n // Either preference token is needed or the user must be authenticated\n if (!preferenceToken && !newsletterStore.state.isAuthenticated) {\n logger.error(\"Preference token or authentication is required to update subscription preferences\");\n return false;\n }\n\n // Check if the subscription exists\n if (!isSubscribed(internalName)) {\n logger.error(`Cannot update preferences: not subscribed to newsletter '${internalName}'`);\n return false;\n }\n\n const authInstance = await Auth.getInstance();\n const idToken = await authInstance.getToken();\n\n const preferenceIdentifiers = newsletterStore.state.checkedNewsletters[internalName] || [];\n\n const response = await getUnidyClient().newsletters.updateSubscription(\n internalName,\n { preference_identifiers: preferenceIdentifiers },\n {\n preferenceToken,\n idToken: typeof idToken === \"string\" ? idToken : \"\",\n },\n );\n\n if (response.status === 401) {\n Flash.error.addMessage(t(\"newsletter.errors.unauthorized\"));\n newsletterLogout();\n return false;\n }\n\n if (response.success && response.data) {\n // Update the local subscription with the new preferences\n const subscriptionIndex = newsletterStore.state.existingSubscriptions.findIndex((sub) => sub.newsletter_internal_name === internalName);\n\n if (subscriptionIndex !== -1) {\n const updatedSubscriptions = [...newsletterStore.state.existingSubscriptions];\n updatedSubscriptions[subscriptionIndex] = {\n ...updatedSubscriptions[subscriptionIndex],\n preference_identifiers: response.data.preference_identifiers || [],\n };\n newsletterStore.state.existingSubscriptions = updatedSubscriptions;\n }\n\n Flash.success.addMessage(t(\"newsletter.success.preferences_updated\"));\n return true;\n }\n\n Flash.error.addMessage(t(\"errors.unknown\", { defaultValue: \"An unknown error occurred\" }));\n return false;\n}\n"]}
@@ -0,0 +1,34 @@
1
+ import { createStore } from "@stencil/store";
2
+ const PERSIST_KEY_PREFIX = "unidy_newsletter_";
3
+ export const persist = (key) => {
4
+ sessionStorage.setItem(`${PERSIST_KEY_PREFIX}${key}`, newsletterStore.state[key]);
5
+ };
6
+ const getPersistedValue = (key) => {
7
+ return sessionStorage.getItem(`${PERSIST_KEY_PREFIX}${key}`);
8
+ };
9
+ const initialState = {
10
+ email: getPersistedValue("email") ?? "",
11
+ preferenceToken: getPersistedValue("preferenceToken") ?? "",
12
+ checkedNewsletters: {},
13
+ defaultPreferences: {},
14
+ fetchingSubscriptions: false,
15
+ existingSubscriptions: [],
16
+ errors: {},
17
+ isAuthenticated: false,
18
+ };
19
+ export const newsletterStore = createStore(initialState);
20
+ export const storeDefaultPreference = (internalName, preferenceIdentifier) => {
21
+ const current = newsletterStore.state.defaultPreferences[internalName] ?? new Set();
22
+ const updated = new Set(current);
23
+ updated.add(preferenceIdentifier);
24
+ newsletterStore.state.defaultPreferences = {
25
+ ...newsletterStore.state.defaultPreferences,
26
+ [internalName]: updated,
27
+ };
28
+ };
29
+ export const reset = () => {
30
+ sessionStorage.removeItem(`${PERSIST_KEY_PREFIX}preferenceToken`);
31
+ sessionStorage.removeItem(`${PERSIST_KEY_PREFIX}email`);
32
+ newsletterStore.state = initialState;
33
+ };
34
+ //# sourceMappingURL=newsletter-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"newsletter-store.js","sourceRoot":"","sources":["../../../src/newsletter/store/newsletter-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAsC7C,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAE/C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAgC,EAAE,EAAE;IAC1D,cAAc,CAAC,OAAO,CAAC,GAAG,kBAAkB,GAAG,GAAG,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACpF,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,GAAgC,EAAE,EAAE;IAC7D,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,kBAAkB,GAAG,GAAG,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,YAAY,GAAoB;IACpC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE;IACvC,eAAe,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE;IAC3D,kBAAkB,EAAE,EAAE;IACtB,kBAAkB,EAAE,EAAE;IAEtB,qBAAqB,EAAE,KAAK;IAC5B,qBAAqB,EAAE,EAAE;IAEzB,MAAM,EAAE,EAAE;IACV,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAkB,YAAY,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,YAAoC,EAAE,oBAA0C,EAAE,EAAE;IACzH,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;IACpF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,eAAe,CAAC,KAAK,CAAC,kBAAkB,GAAG;QACzC,GAAG,eAAe,CAAC,KAAK,CAAC,kBAAkB;QAC3C,CAAC,YAAY,CAAC,EAAE,OAAO;KACxB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,EAAE;IACxB,cAAc,CAAC,UAAU,CAAC,GAAG,kBAAkB,iBAAiB,CAAC,CAAC;IAClE,cAAc,CAAC,UAAU,CAAC,GAAG,kBAAkB,OAAO,CAAC,CAAC;IACxD,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC;AACvC,CAAC,CAAC","sourcesContent":["import { createStore } from \"@stencil/store\";\n\nexport type NewsletterErrorIdentifier =\n | \"unconfirmed\"\n | \"already_subscribed\"\n | \"invalid_email\"\n | \"newsletter_not_found\"\n | \"preferences_not_found\"\n | \"invalid_preference_token\"\n | \"unknown\";\n\nexport type NewsletterInternalName = string;\nexport type PreferenceIdentifier = string;\n\nexport interface ExistingSubscription {\n newsletter_internal_name: NewsletterInternalName;\n confirmed: boolean;\n preference_identifiers: PreferenceIdentifier[];\n}\n\nexport type CheckedNewsletters = Record<NewsletterInternalName, PreferenceIdentifier[]>;\n\nexport type DefaultPreferences = Record<NewsletterInternalName, Set<PreferenceIdentifier>>;\n\ninterface NewsletterState {\n email: string;\n preferenceToken: string;\n checkedNewsletters: CheckedNewsletters;\n defaultPreferences: DefaultPreferences;\n\n fetchingSubscriptions: boolean;\n existingSubscriptions: ExistingSubscription[];\n\n errors: Record<string, NewsletterErrorIdentifier>;\n\n isAuthenticated: boolean;\n}\n\nconst PERSIST_KEY_PREFIX = \"unidy_newsletter_\";\n\nexport const persist = (key: \"email\" | \"preferenceToken\") => {\n sessionStorage.setItem(`${PERSIST_KEY_PREFIX}${key}`, newsletterStore.state[key]);\n};\n\nconst getPersistedValue = (key: \"email\" | \"preferenceToken\") => {\n return sessionStorage.getItem(`${PERSIST_KEY_PREFIX}${key}`);\n};\n\nconst initialState: NewsletterState = {\n email: getPersistedValue(\"email\") ?? \"\",\n preferenceToken: getPersistedValue(\"preferenceToken\") ?? \"\",\n checkedNewsletters: {},\n defaultPreferences: {},\n\n fetchingSubscriptions: false,\n existingSubscriptions: [],\n\n errors: {},\n isAuthenticated: false,\n};\n\nexport const newsletterStore = createStore<NewsletterState>(initialState);\n\nexport const storeDefaultPreference = (internalName: NewsletterInternalName, preferenceIdentifier: PreferenceIdentifier) => {\n const current = newsletterStore.state.defaultPreferences[internalName] ?? new Set();\n const updated = new Set(current);\n updated.add(preferenceIdentifier);\n newsletterStore.state.defaultPreferences = {\n ...newsletterStore.state.defaultPreferences,\n [internalName]: updated,\n };\n};\n\nexport const reset = () => {\n sessionStorage.removeItem(`${PERSIST_KEY_PREFIX}preferenceToken`);\n sessionStorage.removeItem(`${PERSIST_KEY_PREFIX}email`);\n newsletterStore.state = initialState;\n};\n"]}
@@ -0,0 +1,168 @@
1
+ import * as Sentry from "@sentry/browser";
2
+ import * as z from "zod";
3
+ const FieldType = z.enum(["text", "textarea", "number", "boolean", "select", "radio", "date", "datetime-local", "checkbox", "tel"]);
4
+ const BaseFieldDataSchema = z
5
+ .object({
6
+ required: z.boolean(),
7
+ label: z.string(),
8
+ attr_name: z.string(),
9
+ locked: z.boolean().optional(),
10
+ locked_text: z.string().optional(),
11
+ })
12
+ .strict();
13
+ const SelectOptionSchema = z
14
+ .object({
15
+ value: z.string(),
16
+ label: z.string(),
17
+ })
18
+ .strict();
19
+ const RadioValue = z.union([z.string(), z.literal("_NOT_SET_"), z.boolean()]).nullable();
20
+ const RadioOptionSchema = z
21
+ .object({
22
+ value: RadioValue,
23
+ label: z.string(),
24
+ checked: z.boolean(),
25
+ })
26
+ .strict();
27
+ const TextFieldSchema = BaseFieldDataSchema.extend({
28
+ value: z.union([z.string(), z.null()]),
29
+ type: z.enum(["text", "textarea"]),
30
+ }).strict();
31
+ const PhoneFieldSchema = BaseFieldDataSchema.extend({
32
+ value: z.union([z.string().nullable()]),
33
+ type: z.enum(["tel"]),
34
+ }).strict();
35
+ const RadioFieldSchema = BaseFieldDataSchema.extend({
36
+ value: RadioValue,
37
+ type: z.enum(["radio"]),
38
+ radio_options: z.array(RadioOptionSchema),
39
+ }).strict();
40
+ const SelectFieldSchema = BaseFieldDataSchema.extend({
41
+ value: z.string().nullable(),
42
+ type: z.enum(["select"]),
43
+ options: z.array(SelectOptionSchema),
44
+ }).strict();
45
+ const DateFieldSchema = BaseFieldDataSchema.extend({
46
+ value: z.union([z.string(), z.null()]),
47
+ type: z.enum(["date", "datetime-local"]),
48
+ }).strict();
49
+ const CustomFieldSchema = BaseFieldDataSchema.extend({
50
+ value: z.union([z.string(), z.null(), z.boolean(), z.number(), z.array(z.string())]),
51
+ type: FieldType,
52
+ readonly: z.boolean(),
53
+ radio_options: z.array(RadioOptionSchema).optional(),
54
+ options: z.array(SelectOptionSchema).optional(),
55
+ }).strict();
56
+ export const UserProfileSchema = z.object({
57
+ salutation: RadioFieldSchema,
58
+ first_name: TextFieldSchema,
59
+ last_name: TextFieldSchema,
60
+ email: TextFieldSchema,
61
+ phone_number: PhoneFieldSchema,
62
+ company_name: TextFieldSchema,
63
+ address_line_1: TextFieldSchema,
64
+ address_line_2: TextFieldSchema,
65
+ city: TextFieldSchema,
66
+ postal_code: TextFieldSchema,
67
+ country_code: SelectFieldSchema,
68
+ date_of_birth: DateFieldSchema,
69
+ preferred_language: TextFieldSchema.optional(),
70
+ custom_attributes: z.record(z.string(), CustomFieldSchema),
71
+ });
72
+ const UserProfileErrorSchema = z
73
+ .object({
74
+ error_identifier: z.string(),
75
+ })
76
+ .strict();
77
+ const FormErrorsValue = z.union([z.array(z.string()), z.array(z.tuple([z.number(), z.array(z.string())]))]);
78
+ const FormErrorsRawSchema = z.record(z.string(), FormErrorsValue);
79
+ const UserProfileFormErrorSchema = z
80
+ .object({
81
+ errors: FormErrorsRawSchema,
82
+ })
83
+ .strict()
84
+ .transform(({ errors }) => {
85
+ const flatErrors = Object.fromEntries(Object.entries(errors).map(([field, value]) => {
86
+ const errorMessages = Array.isArray(value) && value.length > 0 && typeof value[0] === "string"
87
+ ? value
88
+ : value.flatMap(([, arr]) => arr);
89
+ return [field, errorMessages.join(" | ")];
90
+ }));
91
+ return { errors, flatErrors };
92
+ });
93
+ const UserProfileRailsFormErrorSchema = z
94
+ .object({
95
+ error_details: FormErrorsRawSchema,
96
+ })
97
+ .loose()
98
+ .transform(({ error_details }) => ({ errors: error_details }))
99
+ .pipe(UserProfileFormErrorSchema);
100
+ const ProfileResultSchema = z.union([
101
+ UserProfileSchema,
102
+ UserProfileErrorSchema,
103
+ UserProfileFormErrorSchema,
104
+ UserProfileRailsFormErrorSchema,
105
+ ]);
106
+ export class ProfileService {
107
+ client;
108
+ constructor(client) {
109
+ this.client = client;
110
+ }
111
+ async fetchProfile({ idToken, lang }) {
112
+ if (!idToken) {
113
+ return { status: 401, success: false, headers: new Headers(), error: "missing id_token" };
114
+ }
115
+ try {
116
+ const resp = await this.client.get(`/api/sdk/v1/profile${lang ? `?lang=${lang}` : ""}`, { "X-ID-Token": idToken });
117
+ const parsed = ProfileResultSchema.safeParse(resp.data);
118
+ if (!parsed.success) {
119
+ return { status: 400, success: false, headers: new Headers(), error: "invalid profile data" };
120
+ }
121
+ const data = parsed.data;
122
+ if ("error_identifier" in data) {
123
+ return { ...resp, data, error: data.error_identifier };
124
+ }
125
+ return { ...resp, data };
126
+ }
127
+ catch (error) {
128
+ Sentry.captureException(error);
129
+ return {
130
+ status: error instanceof TypeError ? 0 : 500,
131
+ success: false,
132
+ headers: new Headers(),
133
+ error: error instanceof Error ? error.message : String(error),
134
+ };
135
+ }
136
+ }
137
+ async updateProfile({ idToken, data, lang }) {
138
+ if (!idToken) {
139
+ return { status: 401, success: false, headers: new Headers(), error: "missing id_token" };
140
+ }
141
+ const payload = data;
142
+ try {
143
+ const resp = await this.client.patch(`/api/sdk/v1/profile${lang ? `?lang=${lang}` : ""}`, { ...payload }, { "X-ID-Token": idToken });
144
+ const parsed = ProfileResultSchema.safeParse(resp.data);
145
+ if (!parsed.success) {
146
+ return { status: 400, success: false, headers: new Headers(), error: "invalid profile data" };
147
+ }
148
+ const result = parsed.data;
149
+ if ("errors" in result) {
150
+ return { ...resp, data: result };
151
+ }
152
+ if ("error_identifier" in result) {
153
+ return { ...resp, data: result, error: result.error_identifier };
154
+ }
155
+ return { ...resp, data: result };
156
+ }
157
+ catch (error) {
158
+ Sentry.captureException(error);
159
+ return {
160
+ status: error instanceof TypeError ? 0 : 500,
161
+ success: false,
162
+ headers: new Headers(),
163
+ error: error instanceof Error ? error.message : String(error),
164
+ };
165
+ }
166
+ }
167
+ }
168
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/profile/api/profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAGzB,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AAEpI,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,kBAAkB,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEzF,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,eAAe,GAAG,mBAAmB,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACnC,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;CACtB,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IACvB,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;CAC1C,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,MAAM,CAAC;IACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;CACrC,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,eAAe,GAAG,mBAAmB,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACzC,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,MAAM,CAAC;IACnD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpF,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;IACpD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,eAAe;IAC3B,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,eAAe;IACtB,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,eAAe;IAC7B,cAAc,EAAE,eAAe;IAC/B,cAAc,EAAE,eAAe;IAC/B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,eAAe;IAC5B,YAAY,EAAE,iBAAiB;IAC/B,aAAa,EAAE,eAAe;IAC9B,kBAAkB,EAAE,eAAe,CAAC,QAAQ,EAAE;IAC9C,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC7B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5G,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC;AAElE,MAAM,0BAA0B,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,MAAM,EAAE,mBAAmB;CAC5B,CAAC;KACD,MAAM,EAAE;KACR,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IACxB,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;QAC5C,MAAM,aAAa,GACjB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;YACtE,CAAC,CAAE,KAAkB;YACrB,CAAC,CAAE,KAAmC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACrE,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CACH,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC,CAAC,CAAC;AAEL,MAAM,+BAA+B,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,aAAa,EAAE,mBAAmB;CACnC,CAAC;KACD,KAAK,EAAE;KACP,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;KAC7D,IAAI,CAAC,0BAA0B,CAAC,CAAC;AAMpC,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC;IAClC,iBAAiB;IACjB,sBAAsB;IACtB,0BAA0B;IAC1B,+BAA+B;CAChC,CAAC,CAAC;AAaH,MAAM,OAAO,cAAc;IACL;IAApB,YAAoB,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAEzC,KAAK,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAoB;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAC5F,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAU,sBAAsB,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;YAE5H,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;YAChG,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YAEzB,IAAI,kBAAkB,IAAI,IAAI,EAAE,CAAC;gBAC/B,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzD,CAAC;YAED,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO;gBACL,MAAM,EAAE,KAAK,YAAY,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;gBAC5C,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,IAAI,OAAO,EAAE;gBACtB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAqB;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAC5F,CAAC;QAED,MAAM,OAAO,GAAG,IAAc,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAClC,sBAAsB,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACnD,EAAE,GAAG,OAAO,EAAE,EACd,EAAE,YAAY,EAAE,OAAO,EAAE,CAC1B,CAAC;YAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;YAChG,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;YAE3B,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;gBACvB,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACnC,CAAC;YAED,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAC;gBACjC,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACnE,CAAC;YAED,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO;gBACL,MAAM,EAAE,KAAK,YAAY,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;gBAC5C,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,IAAI,OAAO,EAAE;gBACtB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;CACF","sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport * as z from \"zod\";\nimport type { ApiClient, ApiResponse } from \"../../api\";\n\nconst FieldType = z.enum([\"text\", \"textarea\", \"number\", \"boolean\", \"select\", \"radio\", \"date\", \"datetime-local\", \"checkbox\", \"tel\"]);\n\nconst BaseFieldDataSchema = z\n .object({\n required: z.boolean(),\n label: z.string(),\n attr_name: z.string(),\n locked: z.boolean().optional(),\n locked_text: z.string().optional(),\n })\n .strict();\n\nconst SelectOptionSchema = z\n .object({\n value: z.string(),\n label: z.string(),\n })\n .strict();\n\nconst RadioValue = z.union([z.string(), z.literal(\"_NOT_SET_\"), z.boolean()]).nullable();\n\nconst RadioOptionSchema = z\n .object({\n value: RadioValue,\n label: z.string(),\n checked: z.boolean(),\n })\n .strict();\n\nconst TextFieldSchema = BaseFieldDataSchema.extend({\n value: z.union([z.string(), z.null()]),\n type: z.enum([\"text\", \"textarea\"]),\n}).strict();\n\nconst PhoneFieldSchema = BaseFieldDataSchema.extend({\n value: z.union([z.string().nullable()]),\n type: z.enum([\"tel\"]),\n}).strict();\n\nconst RadioFieldSchema = BaseFieldDataSchema.extend({\n value: RadioValue,\n type: z.enum([\"radio\"]),\n radio_options: z.array(RadioOptionSchema),\n}).strict();\n\nconst SelectFieldSchema = BaseFieldDataSchema.extend({\n value: z.string().nullable(),\n type: z.enum([\"select\"]),\n options: z.array(SelectOptionSchema),\n}).strict();\n\nconst DateFieldSchema = BaseFieldDataSchema.extend({\n value: z.union([z.string(), z.null()]),\n type: z.enum([\"date\", \"datetime-local\"]),\n}).strict();\n\nconst CustomFieldSchema = BaseFieldDataSchema.extend({\n value: z.union([z.string(), z.null(), z.boolean(), z.number(), z.array(z.string())]),\n type: FieldType,\n readonly: z.boolean(),\n radio_options: z.array(RadioOptionSchema).optional(),\n options: z.array(SelectOptionSchema).optional(),\n}).strict();\n\nexport const UserProfileSchema = z.object({\n salutation: RadioFieldSchema,\n first_name: TextFieldSchema,\n last_name: TextFieldSchema,\n email: TextFieldSchema,\n phone_number: PhoneFieldSchema,\n company_name: TextFieldSchema,\n address_line_1: TextFieldSchema,\n address_line_2: TextFieldSchema,\n city: TextFieldSchema,\n postal_code: TextFieldSchema,\n country_code: SelectFieldSchema,\n date_of_birth: DateFieldSchema,\n preferred_language: TextFieldSchema.optional(),\n custom_attributes: z.record(z.string(), CustomFieldSchema),\n});\n\nconst UserProfileErrorSchema = z\n .object({\n error_identifier: z.string(),\n })\n .strict();\n\nconst FormErrorsValue = z.union([z.array(z.string()), z.array(z.tuple([z.number(), z.array(z.string())]))]);\n\nconst FormErrorsRawSchema = z.record(z.string(), FormErrorsValue);\n\nconst UserProfileFormErrorSchema = z\n .object({\n errors: FormErrorsRawSchema,\n })\n .strict()\n .transform(({ errors }) => {\n const flatErrors = Object.fromEntries(\n Object.entries(errors).map(([field, value]) => {\n const errorMessages =\n Array.isArray(value) && value.length > 0 && typeof value[0] === \"string\"\n ? (value as string[])\n : (value as Array<[number, string[]]>).flatMap(([, arr]) => arr);\n return [field, errorMessages.join(\" | \")];\n }),\n );\n return { errors, flatErrors };\n });\n\nconst UserProfileRailsFormErrorSchema = z\n .object({\n error_details: FormErrorsRawSchema,\n })\n .loose()\n .transform(({ error_details }) => ({ errors: error_details }))\n .pipe(UserProfileFormErrorSchema);\n\nexport type UserProfileData = z.infer<typeof UserProfileSchema>;\nexport type UserProfileError = z.infer<typeof UserProfileErrorSchema>;\nexport type UserProfileFormError = z.infer<typeof UserProfileFormErrorSchema>;\n\nconst ProfileResultSchema = z.union([\n UserProfileSchema,\n UserProfileErrorSchema,\n UserProfileFormErrorSchema,\n UserProfileRailsFormErrorSchema,\n]);\n\nexport type ProfileResult = UserProfileData | UserProfileError | UserProfileFormError | Record<string, string>;\n\ndeclare global {\n interface Window {\n UNIDY?: { auth?: { id_token?: string } };\n }\n}\n\ntype FetchProfileArgs = { idToken: string; lang?: string };\ntype UpdateProfileArgs = { idToken: string; data: unknown; lang?: string };\n\nexport class ProfileService {\n constructor(private client: ApiClient) {}\n\n async fetchProfile({ idToken, lang }: FetchProfileArgs): Promise<ApiResponse<ProfileResult>> {\n if (!idToken) {\n return { status: 401, success: false, headers: new Headers(), error: \"missing id_token\" };\n }\n\n try {\n const resp = await this.client.get<unknown>(`/api/sdk/v1/profile${lang ? `?lang=${lang}` : \"\"}`, { \"X-ID-Token\": idToken });\n\n const parsed = ProfileResultSchema.safeParse(resp.data);\n if (!parsed.success) {\n return { status: 400, success: false, headers: new Headers(), error: \"invalid profile data\" };\n }\n\n const data = parsed.data;\n\n if (\"error_identifier\" in data) {\n return { ...resp, data, error: data.error_identifier };\n }\n\n return { ...resp, data };\n } catch (error) {\n Sentry.captureException(error);\n return {\n status: error instanceof TypeError ? 0 : 500,\n success: false,\n headers: new Headers(),\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n async updateProfile({ idToken, data, lang }: UpdateProfileArgs): Promise<ApiResponse<ProfileResult>> {\n if (!idToken) {\n return { status: 401, success: false, headers: new Headers(), error: \"missing id_token\" };\n }\n\n const payload = data as object;\n\n try {\n const resp = await this.client.patch<unknown>(\n `/api/sdk/v1/profile${lang ? `?lang=${lang}` : \"\"}`,\n { ...payload },\n { \"X-ID-Token\": idToken },\n );\n\n const parsed = ProfileResultSchema.safeParse(resp.data);\n if (!parsed.success) {\n return { status: 400, success: false, headers: new Headers(), error: \"invalid profile data\" };\n }\n\n const result = parsed.data;\n\n if (\"errors\" in result) {\n return { ...resp, data: result };\n }\n\n if (\"error_identifier\" in result) {\n return { ...resp, data: result, error: result.error_identifier };\n }\n\n return { ...resp, data: result };\n } catch (error) {\n Sentry.captureException(error);\n return {\n status: error instanceof TypeError ? 0 : 500,\n success: false,\n headers: new Headers(),\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--u-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--u-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--u-default-font-family:var(--u-font-sans);--u-default-mono-font-family:var(--u-font-mono);--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{font-family:var(--u-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--u-default-font-feature-settings,normal);font-variation-settings:var(--u-default-font-variation-settings,normal);-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--u-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--u-default-mono-font-feature-settings,normal);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--u-default-mono-font-variation-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex;padding-block:0}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components,utilities; /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer base{}@layer components;@layer utilities{.u\:flex{display:flex}.u\:justify-end{justify-content:flex-end}} /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer base{}@layer components,utilities; /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer base{}@layer components;@layer utilities{.block{display:block}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}:host{display:block}.field-error:focus{border-color:red;outline-color:red}.multi-select-readonly-container{list-style:none}.multi-select-readonly-container li{display:inline-block}[part=input]:disabled,[part=select]:disabled{cursor:not-allowed}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}