@unidy.io/sdk 1.1.4 → 1.2.0-alpha2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/dist/cjs/app-globals-DSKjcXX_.js.map +1 -1
  2. package/dist/cjs/{auth-store-BaxuIp4z.js → auth-store-DC9EVec8.js} +2 -3
  3. package/dist/cjs/auth-store-DC9EVec8.js.map +1 -0
  4. package/dist/cjs/{i18n-BoDZ8kd2.js → i18n-BAZB-eHh.js} +2 -8
  5. package/dist/cjs/{i18n-BoDZ8kd2.js.map → i18n-BAZB-eHh.js.map} +1 -1
  6. package/dist/cjs/{index-R2MKLaem.js → index-CvFbf5-D.js} +1477 -1105
  7. package/dist/cjs/index-CvFbf5-D.js.map +1 -0
  8. package/dist/cjs/index.cjs.js +6 -5
  9. package/dist/cjs/index.cjs.js.map +1 -1
  10. package/dist/cjs/{newsletter-helpers-DR0vsegt.js → newsletter-helpers-Dj0yYHZf.js} +61 -74
  11. package/dist/cjs/newsletter-helpers-Dj0yYHZf.js.map +1 -0
  12. package/dist/cjs/{profile-helpers-B2h2III_.js → profile-helpers-D66Ycaft.js} +3 -3
  13. package/dist/cjs/{profile-helpers-B2h2III_.js.map → profile-helpers-D66Ycaft.js.map} +1 -1
  14. package/dist/cjs/u-conditional-render.cjs.entry.js +5 -6
  15. package/dist/cjs/u-conditional-render.entry.cjs.js.map +1 -1
  16. package/dist/cjs/u-config.cjs.entry.js +5 -6
  17. package/dist/cjs/u-config.entry.cjs.js.map +1 -1
  18. package/dist/cjs/u-email-field.cjs.entry.js +2 -2
  19. package/dist/cjs/u-error-message.cjs.entry.js +3 -3
  20. package/dist/cjs/u-error-message.entry.cjs.js.map +1 -1
  21. package/dist/cjs/u-field.u-raw-field.entry.cjs.js.map +1 -1
  22. package/dist/cjs/u-field_2.cjs.entry.js +2 -2
  23. package/dist/cjs/u-full-profile.cjs.entry.js +1 -1
  24. package/dist/cjs/u-logout-button.cjs.entry.js +6 -7
  25. package/dist/cjs/u-logout-button.entry.cjs.js.map +1 -1
  26. package/dist/cjs/u-magic-code-field.cjs.entry.js +5 -6
  27. package/dist/cjs/u-magic-code-field.entry.cjs.js.map +1 -1
  28. package/dist/cjs/u-missing-field.cjs.entry.js +1 -1
  29. package/dist/cjs/u-missing-fields-submit-button.cjs.entry.js +9 -5
  30. package/dist/cjs/u-missing-fields-submit-button.entry.cjs.js.map +1 -1
  31. package/dist/cjs/u-newsletter-checkbox.cjs.entry.js +5 -6
  32. package/dist/cjs/u-newsletter-checkbox.entry.cjs.js.map +1 -1
  33. package/dist/cjs/u-newsletter-logout-button.cjs.entry.js +6 -7
  34. package/dist/cjs/u-newsletter-logout-button.entry.cjs.js.map +1 -1
  35. package/dist/cjs/u-newsletter-preference-checkbox.cjs.entry.js +5 -6
  36. package/dist/cjs/u-newsletter-preference-checkbox.entry.cjs.js.map +1 -1
  37. package/dist/cjs/u-newsletter-resend-doi-button.cjs.entry.js +4 -5
  38. package/dist/cjs/u-newsletter-resend-doi-button.entry.cjs.js.map +1 -1
  39. package/dist/cjs/u-newsletter-root.cjs.entry.js +5 -6
  40. package/dist/cjs/u-newsletter-root.entry.cjs.js.map +1 -1
  41. package/dist/cjs/u-newsletter-toggle-subscription-button.cjs.entry.js +4 -5
  42. package/dist/cjs/u-newsletter-toggle-subscription-button.entry.cjs.js.map +1 -1
  43. package/dist/cjs/u-passkey.cjs.entry.js +5 -6
  44. package/dist/cjs/u-passkey.entry.cjs.js.map +1 -1
  45. package/dist/cjs/u-password-field.cjs.entry.js +2 -2
  46. package/dist/cjs/u-profile.u-submit-button.entry.cjs.js.map +1 -1
  47. package/dist/cjs/u-profile_2.cjs.entry.js +35 -55
  48. package/dist/cjs/u-registration-button.cjs.entry.js +2 -2
  49. package/dist/cjs/u-reset-password-button.cjs.entry.js +4 -5
  50. package/dist/cjs/u-reset-password-button.entry.cjs.js.map +1 -1
  51. package/dist/cjs/u-send-magic-code-button.cjs.entry.js +5 -6
  52. package/dist/cjs/u-send-magic-code-button.entry.cjs.js.map +1 -1
  53. package/dist/cjs/u-signed-in.cjs.entry.js +1 -1
  54. package/dist/cjs/u-signin-root.cjs.entry.js +1 -1
  55. package/dist/cjs/u-signin-step.cjs.entry.js +5 -6
  56. package/dist/cjs/u-signin-step.entry.cjs.js.map +1 -1
  57. package/dist/cjs/u-signin-strategy.cjs.entry.js +1 -1
  58. package/dist/cjs/u-social-login-button.cjs.entry.js +2 -2
  59. package/dist/cjs/u-spinner.cjs.entry.js +1 -1
  60. package/dist/cjs/u-spinner.entry.cjs.js.map +1 -1
  61. package/dist/cjs/u-ticketable-list.cjs.entry.js +39 -29
  62. package/dist/cjs/u-ticketable-list.entry.cjs.js.map +1 -1
  63. package/dist/collection/api/base-client.js +129 -0
  64. package/dist/collection/api/base-client.js.map +1 -0
  65. package/dist/collection/api/base-service.js +72 -0
  66. package/dist/collection/api/base-service.js.map +1 -0
  67. package/dist/collection/api/client.js +18 -139
  68. package/dist/collection/api/client.js.map +1 -1
  69. package/dist/collection/api/index.js +25 -5
  70. package/dist/collection/api/index.js.map +1 -1
  71. package/dist/collection/api/shared.js +11 -2
  72. package/dist/collection/api/shared.js.map +1 -1
  73. package/dist/collection/api/standalone.js +88 -0
  74. package/dist/collection/api/standalone.js.map +1 -0
  75. package/dist/collection/auth/api/auth.js +66 -124
  76. package/dist/collection/auth/api/auth.js.map +1 -1
  77. package/dist/collection/auth/api/schemas.js +78 -0
  78. package/dist/collection/auth/api/schemas.js.map +1 -0
  79. package/dist/collection/auth/auth-helpers.js +47 -36
  80. package/dist/collection/auth/auth-helpers.js.map +1 -1
  81. package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js +4 -1
  82. package/dist/collection/auth/components/missing-fields-submit-button/missing-fields-submit-button.js.map +1 -1
  83. package/dist/collection/auth/components/password-field/password-field.js +1 -1
  84. package/dist/collection/auth/passkey-auth.js +8 -6
  85. package/dist/collection/auth/passkey-auth.js.map +1 -1
  86. package/dist/collection/auth/store/auth-store.js +0 -1
  87. package/dist/collection/auth/store/auth-store.js.map +1 -1
  88. package/dist/collection/locales/de.json +0 -1
  89. package/dist/collection/locales/en.json +0 -1
  90. package/dist/collection/locales/fr.json +0 -1
  91. package/dist/collection/locales/it.json +0 -1
  92. package/dist/collection/locales/nl_be.json +0 -1
  93. package/dist/collection/locales/ro.json +0 -1
  94. package/dist/collection/newsletter/api/newsletters.js +192 -167
  95. package/dist/collection/newsletter/api/newsletters.js.map +1 -1
  96. package/dist/collection/newsletter/api/schemas.js +112 -0
  97. package/dist/collection/newsletter/api/schemas.js.map +1 -0
  98. package/dist/collection/newsletter/newsletter-helpers.js +57 -70
  99. package/dist/collection/newsletter/newsletter-helpers.js.map +1 -1
  100. package/dist/collection/profile/api/profile.js +56 -155
  101. package/dist/collection/profile/api/profile.js.map +1 -1
  102. package/dist/collection/profile/api/schemas.js +120 -0
  103. package/dist/collection/profile/api/schemas.js.map +1 -0
  104. package/dist/collection/profile/components/field/field.css +1 -1
  105. package/dist/collection/profile/components/profile/profile.js +35 -101
  106. package/dist/collection/profile/components/profile/profile.js.map +1 -1
  107. package/dist/collection/shared/components/config/config.js +2 -2
  108. package/dist/collection/shared/components/error-message/error-message.js +3 -3
  109. package/dist/collection/shared/components/error-message/error-message.js.map +1 -1
  110. package/dist/collection/shared/components/spinner/spinner.css +1 -1
  111. package/dist/collection/shared/components/submit-button/submit-button.css +1 -1
  112. package/dist/collection/ticketable/api/schemas.js +58 -9
  113. package/dist/collection/ticketable/api/schemas.js.map +1 -1
  114. package/dist/collection/ticketable/api/subscriptions.js +13 -44
  115. package/dist/collection/ticketable/api/subscriptions.js.map +1 -1
  116. package/dist/collection/ticketable/api/ticketable-service.js +74 -0
  117. package/dist/collection/ticketable/api/ticketable-service.js.map +1 -0
  118. package/dist/collection/ticketable/api/tickets.js +13 -45
  119. package/dist/collection/ticketable/api/tickets.js.map +1 -1
  120. package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js +37 -77
  121. package/dist/collection/ticketable/components/ticketable-list/ticketable-list.js.map +1 -1
  122. package/dist/components/auth-store.js +0 -1
  123. package/dist/components/auth-store.js.map +1 -1
  124. package/dist/components/field.js +1 -1
  125. package/dist/components/field.js.map +1 -1
  126. package/dist/components/i18n.js +0 -6
  127. package/dist/components/i18n.js.map +1 -1
  128. package/dist/components/index.js +1 -2
  129. package/dist/components/index.js.map +1 -1
  130. package/dist/components/index2.js +1475 -1106
  131. package/dist/components/index2.js.map +1 -1
  132. package/dist/components/newsletter-helpers.js +57 -70
  133. package/dist/components/newsletter-helpers.js.map +1 -1
  134. package/dist/components/profile.js +34 -54
  135. package/dist/components/profile.js.map +1 -1
  136. package/dist/components/spinner.js +1 -1
  137. package/dist/components/spinner.js.map +1 -1
  138. package/dist/components/submit-button.js +1 -1
  139. package/dist/components/submit-button.js.map +1 -1
  140. package/dist/components/u-config.js +1 -2
  141. package/dist/components/u-config.js.map +1 -1
  142. package/dist/components/u-error-message.js +2 -2
  143. package/dist/components/u-error-message.js.map +1 -1
  144. package/dist/components/u-logout-button.js +1 -1
  145. package/dist/components/u-magic-code-field.js +1 -1
  146. package/dist/components/u-missing-fields-submit-button.js +4 -1
  147. package/dist/components/u-missing-fields-submit-button.js.map +1 -1
  148. package/dist/components/u-newsletter-root.js +1 -1
  149. package/dist/components/u-passkey.js +1 -1
  150. package/dist/components/u-reset-password-button.js +1 -1
  151. package/dist/components/u-send-magic-code-button.js +1 -1
  152. package/dist/components/u-signin-step.js +1 -1
  153. package/dist/components/u-ticketable-list.js +36 -29
  154. package/dist/components/u-ticketable-list.js.map +1 -1
  155. package/dist/esm/app-globals-CPU9ZcqZ.js.map +1 -1
  156. package/dist/esm/{auth-store-CVvBlKGv.js → auth-store-BMqUdTpC.js} +2 -3
  157. package/dist/esm/auth-store-BMqUdTpC.js.map +1 -0
  158. package/dist/esm/{i18n-CLdWzy5J.js → i18n-BANodpxG.js} +2 -8
  159. package/dist/esm/{i18n-CLdWzy5J.js.map → i18n-BANodpxG.js.map} +1 -1
  160. package/dist/esm/{index-DSDkaHWI.js → index-2p1QEJrx.js} +1477 -1108
  161. package/dist/esm/index-2p1QEJrx.js.map +1 -0
  162. package/dist/esm/index.js +3 -4
  163. package/dist/esm/index.js.map +1 -1
  164. package/dist/esm/{newsletter-helpers-Dc_24im3.js → newsletter-helpers-D64LTcSM.js} +61 -74
  165. package/dist/esm/newsletter-helpers-D64LTcSM.js.map +1 -0
  166. package/dist/esm/{profile-helpers-CglNd6Nw.js → profile-helpers-DAvXZ9Uj.js} +3 -3
  167. package/dist/esm/{profile-helpers-CglNd6Nw.js.map → profile-helpers-DAvXZ9Uj.js.map} +1 -1
  168. package/dist/esm/u-conditional-render.entry.js +5 -6
  169. package/dist/esm/u-conditional-render.entry.js.map +1 -1
  170. package/dist/esm/u-config.entry.js +4 -5
  171. package/dist/esm/u-config.entry.js.map +1 -1
  172. package/dist/esm/u-email-field.entry.js +2 -2
  173. package/dist/esm/u-error-message.entry.js +3 -3
  174. package/dist/esm/u-error-message.entry.js.map +1 -1
  175. package/dist/esm/u-field.u-raw-field.entry.js.map +1 -1
  176. package/dist/esm/u-field_2.entry.js +2 -2
  177. package/dist/esm/u-full-profile.entry.js +1 -1
  178. package/dist/esm/u-logout-button.entry.js +5 -6
  179. package/dist/esm/u-logout-button.entry.js.map +1 -1
  180. package/dist/esm/u-magic-code-field.entry.js +4 -5
  181. package/dist/esm/u-magic-code-field.entry.js.map +1 -1
  182. package/dist/esm/u-missing-field.entry.js +1 -1
  183. package/dist/esm/u-missing-fields-submit-button.entry.js +9 -5
  184. package/dist/esm/u-missing-fields-submit-button.entry.js.map +1 -1
  185. package/dist/esm/u-newsletter-checkbox.entry.js +5 -6
  186. package/dist/esm/u-newsletter-checkbox.entry.js.map +1 -1
  187. package/dist/esm/u-newsletter-logout-button.entry.js +6 -7
  188. package/dist/esm/u-newsletter-logout-button.entry.js.map +1 -1
  189. package/dist/esm/u-newsletter-preference-checkbox.entry.js +5 -6
  190. package/dist/esm/u-newsletter-preference-checkbox.entry.js.map +1 -1
  191. package/dist/esm/u-newsletter-resend-doi-button.entry.js +4 -5
  192. package/dist/esm/u-newsletter-resend-doi-button.entry.js.map +1 -1
  193. package/dist/esm/u-newsletter-root.entry.js +4 -5
  194. package/dist/esm/u-newsletter-root.entry.js.map +1 -1
  195. package/dist/esm/u-newsletter-toggle-subscription-button.entry.js +4 -5
  196. package/dist/esm/u-newsletter-toggle-subscription-button.entry.js.map +1 -1
  197. package/dist/esm/u-passkey.entry.js +4 -5
  198. package/dist/esm/u-passkey.entry.js.map +1 -1
  199. package/dist/esm/u-password-field.entry.js +2 -2
  200. package/dist/esm/u-profile.u-submit-button.entry.js.map +1 -1
  201. package/dist/esm/u-profile_2.entry.js +36 -56
  202. package/dist/esm/u-registration-button.entry.js +2 -2
  203. package/dist/esm/u-reset-password-button.entry.js +3 -4
  204. package/dist/esm/u-reset-password-button.entry.js.map +1 -1
  205. package/dist/esm/u-send-magic-code-button.entry.js +4 -5
  206. package/dist/esm/u-send-magic-code-button.entry.js.map +1 -1
  207. package/dist/esm/u-signed-in.entry.js +1 -1
  208. package/dist/esm/u-signin-root.entry.js +1 -1
  209. package/dist/esm/u-signin-step.entry.js +4 -5
  210. package/dist/esm/u-signin-step.entry.js.map +1 -1
  211. package/dist/esm/u-signin-strategy.entry.js +1 -1
  212. package/dist/esm/u-social-login-button.entry.js +2 -2
  213. package/dist/esm/u-spinner.entry.js +1 -1
  214. package/dist/esm/u-spinner.entry.js.map +1 -1
  215. package/dist/esm/u-ticketable-list.entry.js +40 -30
  216. package/dist/esm/u-ticketable-list.entry.js.map +1 -1
  217. package/dist/sdk/index.esm.js +1 -1
  218. package/dist/sdk/index.esm.js.map +1 -1
  219. package/dist/sdk/locales/de.json +0 -1
  220. package/dist/sdk/locales/en.json +0 -1
  221. package/dist/sdk/locales/fr.json +0 -1
  222. package/dist/sdk/locales/it.json +0 -1
  223. package/dist/sdk/locales/nl_be.json +0 -1
  224. package/dist/sdk/locales/ro.json +0 -1
  225. package/dist/sdk/{p-5babee6b.entry.js → p-098eef67.entry.js} +2 -2
  226. package/dist/sdk/p-0e74de96.entry.js +2 -0
  227. package/dist/sdk/p-0e74de96.entry.js.map +1 -0
  228. package/dist/sdk/p-0ed36cbb.entry.js +2 -0
  229. package/dist/sdk/p-0ed36cbb.entry.js.map +1 -0
  230. package/dist/sdk/p-1149e044.entry.js +2 -0
  231. package/dist/sdk/p-1149e044.entry.js.map +1 -0
  232. package/dist/sdk/p-16d763fd.entry.js +2 -0
  233. package/dist/sdk/p-16d763fd.entry.js.map +1 -0
  234. package/dist/sdk/p-1d404c36.entry.js +2 -0
  235. package/dist/sdk/p-1d404c36.entry.js.map +1 -0
  236. package/dist/sdk/p-32da9922.entry.js +2 -0
  237. package/dist/sdk/p-32da9922.entry.js.map +1 -0
  238. package/dist/sdk/p-3d3a9c90.entry.js +2 -0
  239. package/dist/sdk/p-3d3a9c90.entry.js.map +1 -0
  240. package/dist/sdk/p-43024bd6.entry.js +2 -0
  241. package/dist/sdk/p-43024bd6.entry.js.map +1 -0
  242. package/dist/sdk/{p-e2e7061b.entry.js → p-5da49d00.entry.js} +2 -2
  243. package/dist/sdk/{p-f961fbea.entry.js → p-67af762e.entry.js} +2 -2
  244. package/dist/sdk/{p-f961fbea.entry.js.map → p-67af762e.entry.js.map} +1 -1
  245. package/dist/sdk/p-7099bd56.entry.js +2 -0
  246. package/dist/sdk/p-7099bd56.entry.js.map +1 -0
  247. package/dist/sdk/p-745742f1.entry.js +2 -0
  248. package/dist/sdk/{p-9e71a36c.entry.js → p-74e6523f.entry.js} +2 -2
  249. package/dist/sdk/p-86d16818.entry.js +2 -0
  250. package/dist/sdk/{p-effaf86b.entry.js.map → p-86d16818.entry.js.map} +1 -1
  251. package/dist/sdk/{p-DA84OuuU.js → p-BasehRhW.js} +2 -2
  252. package/dist/sdk/{p-DA84OuuU.js.map → p-BasehRhW.js.map} +1 -1
  253. package/dist/sdk/p-C4aHo4nN.js +2 -0
  254. package/dist/sdk/p-C4aHo4nN.js.map +1 -0
  255. package/dist/sdk/p-CFiZLMAA.js.map +1 -1
  256. package/dist/sdk/p-DGDhaqCd.js +2 -0
  257. package/dist/sdk/p-DGDhaqCd.js.map +1 -0
  258. package/dist/sdk/{p-CbRhHGU5.js → p-DSq94RWc.js} +2 -2
  259. package/dist/sdk/{p-CbRhHGU5.js.map → p-DSq94RWc.js.map} +1 -1
  260. package/dist/sdk/p-DSwwVdp1.js +2 -0
  261. package/dist/sdk/p-DSwwVdp1.js.map +1 -0
  262. package/dist/sdk/p-a037bbe3.entry.js +2 -0
  263. package/dist/sdk/p-a037bbe3.entry.js.map +1 -0
  264. package/dist/sdk/p-adcb7911.entry.js +2 -0
  265. package/dist/sdk/p-adcb7911.entry.js.map +1 -0
  266. package/dist/sdk/{p-39b61f33.entry.js → p-bbbec3d4.entry.js} +2 -2
  267. package/dist/sdk/{p-f232929b.entry.js → p-c2fba7c8.entry.js} +2 -2
  268. package/dist/sdk/p-c4618822.entry.js +2 -0
  269. package/dist/sdk/p-c4618822.entry.js.map +1 -0
  270. package/dist/sdk/p-ca4e57f2.entry.js +2 -0
  271. package/dist/sdk/p-ca4e57f2.entry.js.map +1 -0
  272. package/dist/sdk/p-ce4ab77c.entry.js +2 -0
  273. package/dist/sdk/p-ce4ab77c.entry.js.map +1 -0
  274. package/dist/sdk/p-d143e097.entry.js +2 -0
  275. package/dist/sdk/p-d143e097.entry.js.map +1 -0
  276. package/dist/sdk/{p-a69b83ec.entry.js → p-e0d2397c.entry.js} +2 -2
  277. package/dist/sdk/{p-80034205.entry.js → p-e6beb9d7.entry.js} +2 -2
  278. package/dist/sdk/p-ecc7fcff.entry.js +2 -0
  279. package/dist/sdk/p-ecc7fcff.entry.js.map +1 -0
  280. package/dist/sdk/{p-2cb6a2d0.entry.js → p-f1788e52.entry.js} +2 -2
  281. package/dist/sdk/p-fb665a5c.entry.js +2 -0
  282. package/dist/sdk/p-fb665a5c.entry.js.map +1 -0
  283. package/dist/sdk/p-fc67cf07.entry.js +2 -0
  284. package/dist/sdk/p-fc67cf07.entry.js.map +1 -0
  285. package/dist/sdk/sdk.esm.js +1 -1
  286. package/dist/sdk/u-conditional-render.entry.esm.js.map +1 -1
  287. package/dist/sdk/u-config.entry.esm.js.map +1 -1
  288. package/dist/sdk/u-error-message.entry.esm.js.map +1 -1
  289. package/dist/sdk/u-field.u-raw-field.entry.esm.js.map +1 -1
  290. package/dist/sdk/u-logout-button.entry.esm.js.map +1 -1
  291. package/dist/sdk/u-magic-code-field.entry.esm.js.map +1 -1
  292. package/dist/sdk/u-missing-fields-submit-button.entry.esm.js.map +1 -1
  293. package/dist/sdk/u-newsletter-checkbox.entry.esm.js.map +1 -1
  294. package/dist/sdk/u-newsletter-logout-button.entry.esm.js.map +1 -1
  295. package/dist/sdk/u-newsletter-preference-checkbox.entry.esm.js.map +1 -1
  296. package/dist/sdk/u-newsletter-resend-doi-button.entry.esm.js.map +1 -1
  297. package/dist/sdk/u-newsletter-root.entry.esm.js.map +1 -1
  298. package/dist/sdk/u-newsletter-toggle-subscription-button.entry.esm.js.map +1 -1
  299. package/dist/sdk/u-passkey.entry.esm.js.map +1 -1
  300. package/dist/sdk/u-profile.u-submit-button.entry.esm.js.map +1 -1
  301. package/dist/sdk/u-reset-password-button.entry.esm.js.map +1 -1
  302. package/dist/sdk/u-send-magic-code-button.entry.esm.js.map +1 -1
  303. package/dist/sdk/u-signin-step.entry.esm.js.map +1 -1
  304. package/dist/sdk/u-spinner.entry.esm.js.map +1 -1
  305. package/dist/sdk/u-ticketable-list.entry.esm.js.map +1 -1
  306. package/dist/types/api/base-client.d.ts +54 -0
  307. package/dist/types/api/base-service.d.ts +62 -0
  308. package/dist/types/api/client.d.ts +9 -31
  309. package/dist/types/api/index.d.ts +1 -0
  310. package/dist/types/api/shared.d.ts +11 -0
  311. package/dist/types/api/standalone.d.ts +105 -0
  312. package/dist/types/auth/api/auth.d.ts +71 -287
  313. package/dist/types/auth/api/schemas.d.ts +572 -0
  314. package/dist/types/auth/auth-helpers.d.ts +65 -66
  315. package/dist/types/auth/store/auth-store.d.ts +3 -3
  316. package/dist/types/components.d.ts +0 -72
  317. package/dist/types/newsletter/api/newsletters.d.ts +73 -196
  318. package/dist/types/newsletter/api/schemas.d.ts +192 -0
  319. package/dist/types/profile/api/profile.d.ts +12 -237
  320. package/dist/types/profile/api/schemas.d.ts +336 -0
  321. package/dist/types/profile/components/profile/profile.d.ts +1 -17
  322. package/dist/types/shared/components/error-message/error-message.d.ts +1 -1
  323. package/dist/types/ticketable/api/schemas.d.ts +108 -15
  324. package/dist/types/ticketable/api/subscriptions.d.ts +16 -83
  325. package/dist/types/ticketable/api/ticketable-service.d.ts +39 -0
  326. package/dist/types/ticketable/api/tickets.d.ts +16 -85
  327. package/dist/types/ticketable/components/ticketable-list/ticketable-list.d.ts +2 -12
  328. package/package.json +5 -1
  329. package/dist/cjs/auth-NU3DBc-6.js +0 -581
  330. package/dist/cjs/auth-NU3DBc-6.js.map +0 -1
  331. package/dist/cjs/auth-store-BaxuIp4z.js.map +0 -1
  332. package/dist/cjs/index-R2MKLaem.js.map +0 -1
  333. package/dist/cjs/newsletter-helpers-DR0vsegt.js.map +0 -1
  334. package/dist/collection/ticketable/api/get-with-schema.js +0 -35
  335. package/dist/collection/ticketable/api/get-with-schema.js.map +0 -1
  336. package/dist/components/auth.js +0 -580
  337. package/dist/components/auth.js.map +0 -1
  338. package/dist/esm/auth-nsjRdpvS.js +0 -579
  339. package/dist/esm/auth-nsjRdpvS.js.map +0 -1
  340. package/dist/esm/auth-store-CVvBlKGv.js.map +0 -1
  341. package/dist/esm/index-DSDkaHWI.js.map +0 -1
  342. package/dist/esm/newsletter-helpers-Dc_24im3.js.map +0 -1
  343. package/dist/sdk/p-0ab98e7a.entry.js +0 -2
  344. package/dist/sdk/p-0ab98e7a.entry.js.map +0 -1
  345. package/dist/sdk/p-0d324822.entry.js +0 -2
  346. package/dist/sdk/p-0d324822.entry.js.map +0 -1
  347. package/dist/sdk/p-0fb37ee9.entry.js +0 -2
  348. package/dist/sdk/p-0fb37ee9.entry.js.map +0 -1
  349. package/dist/sdk/p-3049e73f.entry.js +0 -2
  350. package/dist/sdk/p-3049e73f.entry.js.map +0 -1
  351. package/dist/sdk/p-312b919e.entry.js +0 -2
  352. package/dist/sdk/p-312b919e.entry.js.map +0 -1
  353. package/dist/sdk/p-319c5d3b.entry.js +0 -2
  354. package/dist/sdk/p-319c5d3b.entry.js.map +0 -1
  355. package/dist/sdk/p-34b98f55.entry.js +0 -2
  356. package/dist/sdk/p-34b98f55.entry.js.map +0 -1
  357. package/dist/sdk/p-4ec3302d.entry.js +0 -2
  358. package/dist/sdk/p-4ec3302d.entry.js.map +0 -1
  359. package/dist/sdk/p-568eabbc.entry.js +0 -2
  360. package/dist/sdk/p-568eabbc.entry.js.map +0 -1
  361. package/dist/sdk/p-5b40a68b.entry.js +0 -2
  362. package/dist/sdk/p-5b40a68b.entry.js.map +0 -1
  363. package/dist/sdk/p-66587fdd.entry.js +0 -2
  364. package/dist/sdk/p-66587fdd.entry.js.map +0 -1
  365. package/dist/sdk/p-88d93d64.entry.js +0 -2
  366. package/dist/sdk/p-90e2253e.entry.js +0 -2
  367. package/dist/sdk/p-90e2253e.entry.js.map +0 -1
  368. package/dist/sdk/p-BiILQPdb.js +0 -2
  369. package/dist/sdk/p-BiILQPdb.js.map +0 -1
  370. package/dist/sdk/p-DdUvQelg.js +0 -2
  371. package/dist/sdk/p-DdUvQelg.js.map +0 -1
  372. package/dist/sdk/p-PKvQIsOt.js +0 -2
  373. package/dist/sdk/p-PKvQIsOt.js.map +0 -1
  374. package/dist/sdk/p-a4f5940f.entry.js +0 -2
  375. package/dist/sdk/p-a4f5940f.entry.js.map +0 -1
  376. package/dist/sdk/p-aMrLKr2m.js +0 -2
  377. package/dist/sdk/p-aMrLKr2m.js.map +0 -1
  378. package/dist/sdk/p-bfb04b17.entry.js +0 -2
  379. package/dist/sdk/p-bfb04b17.entry.js.map +0 -1
  380. package/dist/sdk/p-c6816542.entry.js +0 -2
  381. package/dist/sdk/p-c6816542.entry.js.map +0 -1
  382. package/dist/sdk/p-da363474.entry.js +0 -2
  383. package/dist/sdk/p-da363474.entry.js.map +0 -1
  384. package/dist/sdk/p-e54d5d38.entry.js +0 -2
  385. package/dist/sdk/p-e54d5d38.entry.js.map +0 -1
  386. package/dist/sdk/p-e81bbd62.entry.js +0 -2
  387. package/dist/sdk/p-e81bbd62.entry.js.map +0 -1
  388. package/dist/sdk/p-effaf86b.entry.js +0 -2
  389. package/dist/types/ticketable/api/get-with-schema.d.ts +0 -3
  390. /package/dist/sdk/{p-5babee6b.entry.js.map → p-098eef67.entry.js.map} +0 -0
  391. /package/dist/sdk/{p-e2e7061b.entry.js.map → p-5da49d00.entry.js.map} +0 -0
  392. /package/dist/sdk/{p-88d93d64.entry.js.map → p-745742f1.entry.js.map} +0 -0
  393. /package/dist/sdk/{p-9e71a36c.entry.js.map → p-74e6523f.entry.js.map} +0 -0
  394. /package/dist/sdk/{p-39b61f33.entry.js.map → p-bbbec3d4.entry.js.map} +0 -0
  395. /package/dist/sdk/{p-f232929b.entry.js.map → p-c2fba7c8.entry.js.map} +0 -0
  396. /package/dist/sdk/{p-a69b83ec.entry.js.map → p-e0d2397c.entry.js.map} +0 -0
  397. /package/dist/sdk/{p-80034205.entry.js.map → p-e6beb9d7.entry.js.map} +0 -0
  398. /package/dist/sdk/{p-2cb6a2d0.entry.js.map → p-f1788e52.entry.js.map} +0 -0
package/dist/esm/index.js CHANGED
@@ -1,13 +1,12 @@
1
- export { A as ApiClient, a as AuthService, N as NewsletterService, c as PaginationMetaSchema, d as PaginationParamsSchema, P as ProfileService, S as SchemaValidationErrorSchema, e as SubscriptionsService, T as TicketsService, U as UnidyClient, b as UserProfileSchema, g as getUnidyClient } from './index-DSDkaHWI.js';
2
- export { s as authState, a as authStore, m as missingFieldNames, b as onAuthChange } from './auth-store-CVvBlKGv.js';
3
- export { A as Auth } from './auth-nsjRdpvS.js';
1
+ export { A as ApiClient, h as Auth, a as AuthService, B as BaseErrorSchema, e as BaseService, N as NewsletterService, c as PaginationMetaSchema, d as PaginationParamsSchema, P as ProfileService, S as SchemaValidationErrorSchema, f as SubscriptionsService, T as TicketsService, U as UnidyClient, b as UserProfileSchema, g as getUnidyClient } from './index-2p1QEJrx.js';
2
+ export { s as authState, a as authStore, m as missingFieldNames, b as onAuthChange } from './auth-store-BMqUdTpC.js';
4
3
  export { a as onProfileChange, s as profileState, p as profileStore } from './profile-store-RmZB2PTc.js';
5
4
  export { c as createPaginationStore } from './pagination-store-DzdJOp-n.js';
6
5
  export { F as Flash } from './flash-store-CEvWSG0c.js';
7
- import './i18n-CLdWzy5J.js';
8
6
  import './index-Ci3aTmzp.js';
9
7
  import './unidy-store-BldTAtO0.js';
10
8
  import './index-Bjp1XO-f.js';
9
+ import './i18n-BANodpxG.js';
11
10
  import './component-utils-D1lzXl_Z.js';
12
11
 
13
12
  const AUTH_ERROR_CODES = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["src/auth/error-definitions.ts"],"sourcesContent":["export const AUTH_ERROR_CODES = {\n EMAIL: {\n NOT_FOUND: \"account_not_found\",\n },\n PASSWORD: {\n INVALID: \"invalid_password\",\n NOT_SET: \"password_not_set\",\n RESET_PASSWORD_ALREADY_SENT: \"reset_password_already_sent\",\n },\n MAGIC_CODE: {\n RECENTLY_CREATED: \"magic_code_recently_created\",\n EXPIRED: \"magic_code_expired\",\n USED: \"magic_code_used\",\n NOT_VALID: \"magic_code_not_valid\",\n },\n PASSWORD_RESET: {\n // TODO: figure out how to handle password requirements --> it should be same as in Unidy\n // just a placeholder for now\n PASSWORD_TOO_WEAK: \"password_too_weak\",\n },\n GENERAL: {\n ACCOUNT_LOCKED: \"account_locked\",\n SIGN_IN_EXPIRED: \"sign_in_expired\",\n },\n} as const;\n"],"names":[],"mappings":";;;;;;;;;;;;AAAa,MAAA,gBAAgB,GAAG;AAC9B,IAAA,KAAK,EAAE;AACL,QAAA,SAAS,EAAE,mBAAmB;AAC/B,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,2BAA2B,EAAE,6BAA6B;AAC3D,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,gBAAgB,EAAE,6BAA6B;AAC/C,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,SAAS,EAAE,sBAAsB;AAClC,KAAA;AACD,IAAA,cAAc,EAAE;;;AAGd,QAAA,iBAAiB,EAAE,mBAAmB;AACvC,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,cAAc,EAAE,gBAAgB;AAChC,QAAA,eAAe,EAAE,iBAAiB;AACnC,KAAA;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["src/auth/error-definitions.ts"],"sourcesContent":["export const AUTH_ERROR_CODES = {\n EMAIL: {\n NOT_FOUND: \"account_not_found\",\n },\n PASSWORD: {\n INVALID: \"invalid_password\",\n NOT_SET: \"password_not_set\",\n RESET_PASSWORD_ALREADY_SENT: \"reset_password_already_sent\",\n },\n MAGIC_CODE: {\n RECENTLY_CREATED: \"magic_code_recently_created\",\n EXPIRED: \"magic_code_expired\",\n USED: \"magic_code_used\",\n NOT_VALID: \"magic_code_not_valid\",\n },\n PASSWORD_RESET: {\n // TODO: figure out how to handle password requirements --> it should be same as in Unidy\n // just a placeholder for now\n PASSWORD_TOO_WEAK: \"password_too_weak\",\n },\n GENERAL: {\n ACCOUNT_LOCKED: \"account_locked\",\n SIGN_IN_EXPIRED: \"sign_in_expired\",\n },\n} as const;\n"],"names":[],"mappings":";;;;;;;;;;;AAAa,MAAA,gBAAgB,GAAG;AAC9B,IAAA,KAAK,EAAE;AACL,QAAA,SAAS,EAAE,mBAAmB;AAC/B,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,2BAA2B,EAAE,6BAA6B;AAC3D,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,gBAAgB,EAAE,6BAA6B;AAC/C,QAAA,OAAO,EAAE,oBAAoB;AAC7B,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,SAAS,EAAE,sBAAsB;AAClC,KAAA;AACD,IAAA,cAAc,EAAE;;;AAGd,QAAA,iBAAiB,EAAE,mBAAmB;AACvC,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,cAAc,EAAE,gBAAgB;AAChC,QAAA,eAAe,EAAE,iBAAiB;AACnC,KAAA;;;;;"}
@@ -1,6 +1,5 @@
1
- import { g as getUnidyClient } from './index-DSDkaHWI.js';
2
- import { A as Auth } from './auth-nsjRdpvS.js';
3
- import { t } from './i18n-CLdWzy5J.js';
1
+ import { g as getUnidyClient } from './index-2p1QEJrx.js';
2
+ import { t } from './i18n-BANodpxG.js';
4
3
  import { e as createLogger } from './index-Ci3aTmzp.js';
5
4
  import { F as Flash } from './flash-store-CEvWSG0c.js';
6
5
  import { n as newsletterStore, p as persist } from './newsletter-store-DBL1A203.js';
@@ -15,16 +14,15 @@ function newsletterLogout() {
15
14
  }
16
15
  async function resendDoi(internalName) {
17
16
  const { preferenceToken } = newsletterStore.state;
18
- const authInstance = await Auth.getInstance();
19
- const idToken = await authInstance.getToken();
20
- const response = await getUnidyClient().newsletters.resendDoi(internalName, { redirect_to_after_confirmation: redirectToAfterConfirmationUrl() }, {
21
- preferenceToken: typeof preferenceToken === "string" ? preferenceToken : "",
22
- idToken: typeof idToken === "string" ? idToken : "",
17
+ const [error] = await getUnidyClient().newsletters.resendDoi({
18
+ internalName,
19
+ payload: { redirect_to_after_confirmation: redirectToAfterConfirmationUrl() },
20
+ options: { preferenceToken },
23
21
  });
24
- if (response.status === 204) {
22
+ if (error === null) {
25
23
  return true;
26
24
  }
27
- if (response.status === 401) {
25
+ if (error === "unauthorized") {
28
26
  Flash.error.addMessage(t("newsletter.errors.unauthorized"));
29
27
  newsletterLogout();
30
28
  return false;
@@ -32,15 +30,17 @@ async function resendDoi(internalName) {
32
30
  return false;
33
31
  }
34
32
  async function sendLoginEmail(email) {
35
- const response = await getUnidyClient().newsletters.sendLoginEmail({
36
- email,
37
- redirect_uri: redirectToAfterConfirmationUrl(),
33
+ const [error] = await getUnidyClient().newsletters.sendLoginEmail({
34
+ payload: {
35
+ email,
36
+ redirect_uri: redirectToAfterConfirmationUrl(),
37
+ },
38
38
  });
39
- if (response.status === 204) {
39
+ if (error === null) {
40
40
  Flash.info.addMessage(t("newsletter.success.login_email_sent"));
41
41
  }
42
- else if (response.status === 404) {
43
- Flash.error.addMessage(t("newsletter.errors.login_email_not_found"));
42
+ else if (error === "rate_limit_exceeded") {
43
+ Flash.error.addMessage(t("newsletter.errors.rate_limit_exceeded", { defaultValue: "Too many requests. Please try again later." }));
44
44
  }
45
45
  else {
46
46
  Flash.error.addMessage(t("errors.unknown", { defaultValue: "An unknown error occurred" }));
@@ -53,28 +53,25 @@ async function fetchSubscriptions() {
53
53
  logger.error("Preference token or authentication is required to fetch subscriptions");
54
54
  return;
55
55
  }
56
- const authInstance = await Auth.getInstance();
57
- const idToken = await authInstance.getToken();
58
56
  newsletterStore.state.fetchingSubscriptions = true;
59
- const response = await getUnidyClient().newsletters.listSubscriptions({
60
- preferenceToken,
61
- idToken: typeof idToken === "string" ? idToken : "",
57
+ const [error, data] = await getUnidyClient().newsletters.list({
58
+ options: { preferenceToken },
62
59
  });
63
60
  newsletterStore.state.fetchingSubscriptions = false;
64
- if (response.status === 401) {
61
+ if (error === "unauthorized") {
65
62
  newsletterLogout();
66
63
  Flash.error.addMessage(t("newsletter.errors.unauthorized"));
67
64
  return;
68
65
  }
69
- if (response.success && response.data) {
70
- newsletterStore.state.existingSubscriptions = response.data.map((sub) => ({
66
+ if (error === null && data && Array.isArray(data)) {
67
+ newsletterStore.state.existingSubscriptions = data.map((sub) => ({
71
68
  newsletter_internal_name: sub.newsletter_internal_name,
72
69
  confirmed: sub.confirmed_at !== null,
73
70
  preference_identifiers: sub.preference_identifiers || [],
74
71
  }));
75
72
  // init checked newsletters and preferences
76
73
  const checkedNewsletters = { ...newsletterStore.state.checkedNewsletters };
77
- for (const sub of response.data) {
74
+ for (const sub of data) {
78
75
  checkedNewsletters[sub.newsletter_internal_name] = [...(sub.preference_identifiers || [])];
79
76
  }
80
77
  newsletterStore.state.checkedNewsletters = checkedNewsletters;
@@ -87,7 +84,7 @@ async function handleAlreadySubscribedError(email, errors) {
87
84
  .filter((err) => err.error_identifier === "already_subscribed" && !existingNames.has(err.meta.newsletter_internal_name))
88
85
  .map((err) => ({
89
86
  newsletter_internal_name: err.meta.newsletter_internal_name,
90
- confirmed: null,
87
+ confirmed: false, // We don't know the confirmation status for already_subscribed errors
91
88
  preference_identifiers: [],
92
89
  }));
93
90
  if (newSubscriptions.length > 0) {
@@ -99,22 +96,20 @@ async function handleAlreadySubscribedError(email, errors) {
99
96
  }
100
97
  }
101
98
  async function handleCreateSubscriptionRequest(email, internalNames, showSuccessMessage = true) {
102
- const authInstance = await Auth.getInstance();
103
- const idToken = await authInstance.getToken();
104
99
  const { checkedNewsletters } = newsletterStore.state;
105
- const [error, response] = await getUnidyClient().newsletters.createSubscriptions({
106
- email,
107
- newsletter_subscriptions: internalNames.map((newsletter) => ({
108
- newsletter_internal_name: newsletter,
109
- preference_identifiers: checkedNewsletters[newsletter] || [],
110
- })),
111
- redirect_to_after_confirmation: redirectToAfterConfirmationUrl(),
112
- }, {
113
- idToken: typeof idToken === "string" ? idToken : "",
100
+ const [error, response] = await getUnidyClient().newsletters.create({
101
+ payload: {
102
+ email,
103
+ newsletter_subscriptions: internalNames.map((newsletter) => ({
104
+ newsletter_internal_name: newsletter,
105
+ preference_identifiers: checkedNewsletters[newsletter] || [],
106
+ })),
107
+ redirect_to_after_confirmation: redirectToAfterConfirmationUrl(),
108
+ },
114
109
  });
115
- if (error === null) {
116
- if (response.data?.results && response.data.results.length > 0) {
117
- const newSubscriptions = response.data.results.map((result) => ({
110
+ if (error === null && response && "results" in response) {
111
+ if (response.results.length > 0) {
112
+ const newSubscriptions = response.results.map((result) => ({
118
113
  newsletter_internal_name: result.newsletter_internal_name,
119
114
  confirmed: result.confirmed_at !== null,
120
115
  preference_identifiers: result.preference_identifiers || [],
@@ -131,8 +126,8 @@ async function handleCreateSubscriptionRequest(email, internalNames, showSuccess
131
126
  newsletterLogout();
132
127
  return false;
133
128
  }
134
- if (error === "newsletter_error") {
135
- const errors = response.data?.errors || [];
129
+ if (error === "newsletter_error" && response) {
130
+ const errors = response.errors || [];
136
131
  const errorMap = {};
137
132
  // special error case which is handled differently: if user is not authenticated, we send a login email, otherwise we add the
138
133
  // already_subscribed subscriptions to the existing subscriptions
@@ -174,38 +169,31 @@ async function deleteSubscription(internalName) {
174
169
  logger.error("Preference token or authentication is required to delete a subscription");
175
170
  return false;
176
171
  }
177
- const authInstance = await Auth.getInstance();
178
- const idToken = await authInstance.getToken();
179
- const response = await getUnidyClient().newsletters.deleteSubscription(internalName, {
180
- preferenceToken,
181
- idToken: typeof idToken === "string" ? idToken : "",
172
+ const [error, data] = await getUnidyClient().newsletters.delete({
173
+ internalName,
174
+ options: { preferenceToken },
182
175
  });
183
- if (response.status === 200 && response.data?.new_preference_token) {
184
- // if user is not authenticated, we need to store the new preference token which is used for the next request
185
- if (!newsletterStore.state.isAuthenticated) {
186
- newsletterStore.state.preferenceToken = response.data.new_preference_token;
187
- persist("preferenceToken");
176
+ if (error === null) {
177
+ if (data && "new_preference_token" in data) {
178
+ // if user is not authenticated, we need to store the new preference token which is used for the next request
179
+ if (!newsletterStore.state.isAuthenticated) {
180
+ newsletterStore.state.preferenceToken = data.new_preference_token;
181
+ persist("preferenceToken");
182
+ }
183
+ newsletterStore.state.existingSubscriptions = newsletterStore.state.existingSubscriptions.filter((sub) => sub.newsletter_internal_name !== internalName);
184
+ return true;
188
185
  }
189
- newsletterStore.state.existingSubscriptions = newsletterStore.state.existingSubscriptions.filter((sub) => sub.newsletter_internal_name !== internalName);
190
- // Reset checked preferences to defaults (preferences marked with checked='true')
191
- const defaultPrefs = newsletterStore.state.defaultPreferences[internalName];
192
- newsletterStore.state.checkedNewsletters = {
193
- ...newsletterStore.state.checkedNewsletters,
194
- [internalName]: defaultPrefs ? [...defaultPrefs] : [],
195
- };
196
- return true;
197
- }
198
- if (response.status === 204) {
186
+ // data is null - last subscription was deleted
199
187
  newsletterLogout();
200
188
  newsletterStore.state.checkedNewsletters = {};
201
189
  return true;
202
190
  }
203
- if (response.status === 401) {
191
+ if (error === "unauthorized") {
204
192
  Flash.error.addMessage(t("newsletter.errors.unauthorized"));
205
193
  newsletterLogout();
206
194
  return false;
207
195
  }
208
- if (response.status === 422) {
196
+ if (error === "not_found") {
209
197
  return false;
210
198
  }
211
199
  Flash.error.addMessage(t("errors.unknown", { defaultValue: "An unknown error occurred" }));
@@ -242,26 +230,25 @@ async function updateSubscriptionPreferences(internalName) {
242
230
  logger.error(`Cannot update preferences: not subscribed to newsletter '${internalName}'`);
243
231
  return false;
244
232
  }
245
- const authInstance = await Auth.getInstance();
246
- const idToken = await authInstance.getToken();
247
233
  const preferenceIdentifiers = newsletterStore.state.checkedNewsletters[internalName] || [];
248
- const response = await getUnidyClient().newsletters.updateSubscription(internalName, { preference_identifiers: preferenceIdentifiers }, {
249
- preferenceToken,
250
- idToken: typeof idToken === "string" ? idToken : "",
234
+ const [error, data] = await getUnidyClient().newsletters.update({
235
+ internalName,
236
+ payload: { preference_identifiers: preferenceIdentifiers },
237
+ options: { preferenceToken },
251
238
  });
252
- if (response.status === 401) {
239
+ if (error === "unauthorized") {
253
240
  Flash.error.addMessage(t("newsletter.errors.unauthorized"));
254
241
  newsletterLogout();
255
242
  return false;
256
243
  }
257
- if (response.success && response.data) {
244
+ if (error === null && data && "preference_identifiers" in data) {
258
245
  // Update the local subscription with the new preferences
259
246
  const subscriptionIndex = newsletterStore.state.existingSubscriptions.findIndex((sub) => sub.newsletter_internal_name === internalName);
260
247
  if (subscriptionIndex !== -1) {
261
248
  const updatedSubscriptions = [...newsletterStore.state.existingSubscriptions];
262
249
  updatedSubscriptions[subscriptionIndex] = {
263
250
  ...updatedSubscriptions[subscriptionIndex],
264
- preference_identifiers: response.data.preference_identifiers || [],
251
+ preference_identifiers: data.preference_identifiers || [],
265
252
  };
266
253
  newsletterStore.state.existingSubscriptions = updatedSubscriptions;
267
254
  }
@@ -273,6 +260,6 @@ async function updateSubscriptionPreferences(internalName) {
273
260
  }
274
261
 
275
262
  export { isSubscribed as a, subscribeToNewsletter as b, createSubscriptions as c, deleteSubscription as d, fetchSubscriptions as f, isConfirmed as i, newsletterLogout as n, resendDoi as r, sendLoginEmail as s, updateSubscriptionPreferences as u };
276
- //# sourceMappingURL=newsletter-helpers-Dc_24im3.js.map
263
+ //# sourceMappingURL=newsletter-helpers-D64LTcSM.js.map
277
264
 
278
- //# sourceMappingURL=newsletter-helpers-Dc_24im3.js.map
265
+ //# sourceMappingURL=newsletter-helpers-D64LTcSM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"newsletter-helpers-D64LTcSM.js","sources":["src/newsletter/newsletter-helpers.ts"],"sourcesContent":["import { getUnidyClient } from \"../api\";\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 [error] = await getUnidyClient().newsletters.resendDoi({\n internalName,\n payload: { redirect_to_after_confirmation: redirectToAfterConfirmationUrl() },\n options: { preferenceToken },\n });\n\n if (error === null) {\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 return false;\n}\n\nexport async function sendLoginEmail(email: string): Promise<void> {\n const [error] = await getUnidyClient().newsletters.sendLoginEmail({\n payload: {\n email,\n redirect_uri: redirectToAfterConfirmationUrl(),\n },\n });\n\n if (error === null) {\n Flash.info.addMessage(t(\"newsletter.success.login_email_sent\"));\n } else if (error === \"rate_limit_exceeded\") {\n Flash.error.addMessage(t(\"newsletter.errors.rate_limit_exceeded\", { defaultValue: \"Too many requests. Please try again later.\" }));\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 newsletterStore.state.fetchingSubscriptions = true;\n\n const [error, data] = await getUnidyClient().newsletters.list({\n options: { preferenceToken },\n });\n\n newsletterStore.state.fetchingSubscriptions = false;\n\n if (error === \"unauthorized\") {\n newsletterLogout();\n Flash.error.addMessage(t(\"newsletter.errors.unauthorized\"));\n return;\n }\n\n if (error === null && data && Array.isArray(data)) {\n newsletterStore.state.existingSubscriptions = 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 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: false, // We don't know the confirmation status for already_subscribed errors\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 { checkedNewsletters } = newsletterStore.state;\n\n const [error, response] = await getUnidyClient().newsletters.create({\n payload: {\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\n if (error === null && response && \"results\" in response) {\n if (response.results.length > 0) {\n const newSubscriptions: ExistingSubscription[] = response.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\" && response) {\n const errors = response.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 [error, data] = await getUnidyClient().newsletters.delete({\n internalName,\n options: { preferenceToken },\n });\n\n if (error === null) {\n if (data && \"new_preference_token\" in data) {\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 = 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 return true;\n }\n\n // data is null - last subscription was deleted\n newsletterLogout();\n newsletterStore.state.checkedNewsletters = {};\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 === \"not_found\") {\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 preferenceIdentifiers = newsletterStore.state.checkedNewsletters[internalName] || [];\n\n const [error, data] = await getUnidyClient().newsletters.update({\n internalName,\n payload: { preference_identifiers: preferenceIdentifiers },\n options: { preferenceToken },\n });\n\n if (error === \"unauthorized\") {\n Flash.error.addMessage(t(\"newsletter.errors.unauthorized\"));\n newsletterLogout();\n return false;\n }\n\n if (error === null && data && \"preference_identifiers\" in 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: 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"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { s as state } from './profile-store-RmZB2PTc.js';
2
- import { t } from './i18n-CLdWzy5J.js';
2
+ import { t } from './i18n-BANodpxG.js';
3
3
 
4
4
  function validateRequiredFieldsUnchanged(sWC) {
5
5
  for (const key of Object.keys(sWC)) {
@@ -31,6 +31,6 @@ function buildPayload(stateData) {
31
31
  }
32
32
 
33
33
  export { buildPayload as b, validateRequiredFieldsUnchanged as v };
34
- //# sourceMappingURL=profile-helpers-CglNd6Nw.js.map
34
+ //# sourceMappingURL=profile-helpers-DAvXZ9Uj.js.map
35
35
 
36
- //# sourceMappingURL=profile-helpers-CglNd6Nw.js.map
36
+ //# sourceMappingURL=profile-helpers-DAvXZ9Uj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile-helpers-CglNd6Nw.js","sources":["src/profile/profile-helpers.ts"],"sourcesContent":["import { type ProfileRaw, state as profileState } from \"./store/profile-store\";\nimport { t } from \"../i18n\";\n\nexport function validateRequiredFieldsUnchanged(sWC: ProfileRaw) {\n for (const key of Object.keys(sWC)) {\n if (key === \"custom_attributes\") continue;\n const field = sWC[key];\n if (field.required === true && (field.value === \"\" || field.value === null)) {\n profileState.errors = { [key]: t(\"errors.required_field\", { field: key }) };\n return false;\n }\n }\n\n for (const key of Object.keys(sWC.custom_attributes ?? {})) {\n const field = sWC.custom_attributes?.[key];\n const fieldDisplayName = `custom_attributes.${key}`;\n if (field?.required === true && (field.value === \"\" || field.value === null)) {\n profileState.errors = { [fieldDisplayName]: t(\"errors.required_field\", { field: fieldDisplayName }) };\n return false;\n }\n }\n\n return true;\n}\n\nexport function buildPayload(stateData: ProfileRaw) {\n return {\n ...Object.fromEntries(\n Object.entries(stateData)\n .filter(([k]) => k !== \"custom_attributes\")\n .map(([k, v]: [string, unknown]) => [k, (v as { value: unknown }).value]),\n ),\n custom_attributes: Object.fromEntries(\n Object.entries(stateData.custom_attributes ?? {}).map(([k, v]: [string, unknown]) => [k, (v as { value: unknown }).value]),\n ),\n };\n}\n"],"names":["profileState"],"mappings":";;;AAGM,SAAU,+BAA+B,CAAC,GAAe,EAAA;IAC7D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAClC,IAAI,GAAG,KAAK,mBAAmB;YAAE;AACjC,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;QACtB,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,KAAK,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE;AAC3E,YAAAA,KAAY,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;AAC3E,YAAA,OAAO,KAAK;;;AAIhB,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,EAAE;QAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC;AAC1C,QAAA,MAAM,gBAAgB,GAAG,CAAqB,kBAAA,EAAA,GAAG,EAAE;QACnD,IAAI,KAAK,EAAE,QAAQ,KAAK,IAAI,KAAK,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE;AAC5E,YAAAA,KAAY,CAAC,MAAM,GAAG,EAAE,CAAC,gBAAgB,GAAG,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,EAAE;AACrG,YAAA,OAAO,KAAK;;;AAIhB,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,YAAY,CAAC,SAAqB,EAAA;IAChD,OAAO;QACL,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,SAAS;aACrB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,mBAAmB;AACzC,aAAA,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAoB,KAAK,CAAC,CAAC,EAAG,CAAwB,CAAC,KAAK,CAAC,CAAC,CAC5E;AACD,QAAA,iBAAiB,EAAE,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAoB,KAAK,CAAC,CAAC,EAAG,CAAwB,CAAC,KAAK,CAAC,CAAC,CAC3H;KACF;AACH;;;;"}
1
+ {"version":3,"file":"profile-helpers-DAvXZ9Uj.js","sources":["src/profile/profile-helpers.ts"],"sourcesContent":["import { type ProfileRaw, state as profileState } from \"./store/profile-store\";\nimport { t } from \"../i18n\";\n\nexport function validateRequiredFieldsUnchanged(sWC: ProfileRaw) {\n for (const key of Object.keys(sWC)) {\n if (key === \"custom_attributes\") continue;\n const field = sWC[key];\n if (field.required === true && (field.value === \"\" || field.value === null)) {\n profileState.errors = { [key]: t(\"errors.required_field\", { field: key }) };\n return false;\n }\n }\n\n for (const key of Object.keys(sWC.custom_attributes ?? {})) {\n const field = sWC.custom_attributes?.[key];\n const fieldDisplayName = `custom_attributes.${key}`;\n if (field?.required === true && (field.value === \"\" || field.value === null)) {\n profileState.errors = { [fieldDisplayName]: t(\"errors.required_field\", { field: fieldDisplayName }) };\n return false;\n }\n }\n\n return true;\n}\n\nexport function buildPayload(stateData: ProfileRaw) {\n return {\n ...Object.fromEntries(\n Object.entries(stateData)\n .filter(([k]) => k !== \"custom_attributes\")\n .map(([k, v]: [string, unknown]) => [k, (v as { value: unknown }).value]),\n ),\n custom_attributes: Object.fromEntries(\n Object.entries(stateData.custom_attributes ?? {}).map(([k, v]: [string, unknown]) => [k, (v as { value: unknown }).value]),\n ),\n };\n}\n"],"names":["profileState"],"mappings":";;;AAGM,SAAU,+BAA+B,CAAC,GAAe,EAAA;IAC7D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAClC,IAAI,GAAG,KAAK,mBAAmB;YAAE;AACjC,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;QACtB,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,KAAK,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE;AAC3E,YAAAA,KAAY,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;AAC3E,YAAA,OAAO,KAAK;;;AAIhB,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,EAAE;QAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC;AAC1C,QAAA,MAAM,gBAAgB,GAAG,CAAqB,kBAAA,EAAA,GAAG,EAAE;QACnD,IAAI,KAAK,EAAE,QAAQ,KAAK,IAAI,KAAK,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE;AAC5E,YAAAA,KAAY,CAAC,MAAM,GAAG,EAAE,CAAC,gBAAgB,GAAG,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,EAAE;AACrG,YAAA,OAAO,KAAK;;;AAIhB,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,YAAY,CAAC,SAAqB,EAAA;IAChD,OAAO;QACL,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,SAAS;aACrB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,mBAAmB;AACzC,aAAA,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAoB,KAAK,CAAC,CAAC,EAAG,CAAwB,CAAC,KAAK,CAAC,CAAC,CAC5E;AACD,QAAA,iBAAiB,EAAE,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAoB,KAAK,CAAC,CAAC,EAAG,CAAwB,CAAC,KAAK,CAAC,CAAC,CAC3H;KACF;AACH;;;;"}
@@ -1,15 +1,14 @@
1
1
  import { U as UnidyComponent, r as registerInstance, h, H as Host } from './index-Ci3aTmzp.js';
2
- import { s as state } from './auth-store-CVvBlKGv.js';
3
- import { i as isConfirmed, a as isSubscribed } from './newsletter-helpers-Dc_24im3.js';
2
+ import { s as state } from './auth-store-BMqUdTpC.js';
3
+ import { i as isConfirmed, a as isSubscribed } from './newsletter-helpers-D64LTcSM.js';
4
4
  import { n as newsletterStore } from './newsletter-store-DBL1A203.js';
5
5
  import { p as profileStore } from './profile-store-RmZB2PTc.js';
6
6
  import './index-Bjp1XO-f.js';
7
7
  import './unidy-store-BldTAtO0.js';
8
- import './index-DSDkaHWI.js';
9
- import './i18n-CLdWzy5J.js';
10
- import './auth-nsjRdpvS.js';
11
- import './component-utils-D1lzXl_Z.js';
8
+ import './index-2p1QEJrx.js';
9
+ import './i18n-BANodpxG.js';
12
10
  import './flash-store-CEvWSG0c.js';
11
+ import './component-utils-D1lzXl_Z.js';
13
12
 
14
13
  const PREDEFINED_CONDITIONS = {
15
14
  "auth.passkeyEnabled": () => state.availableLoginOptions?.passkey,
@@ -1 +1 @@
1
- {"version":3,"file":"u-conditional-render.entry.js","sources":["src/shared/components/conditional-render/conditional-render.tsx"],"sourcesContent":["import { Component, Host, h, Prop } from \"@stencil/core\";\nimport { type AuthState, authState } from \"../../../auth/store/auth-store\";\nimport { UnidyComponent } from \"../../../logger\";\nimport * as NewsletterHelpers from \"../../../newsletter/newsletter-helpers\";\nimport { newsletterStore } from \"../../../newsletter/store/newsletter-store\";\nimport { profileStore } from \"../../../profile/store/profile-store\";\n\nconst PREDEFINED_CONDITIONS: Record<string, (...args: unknown[]) => unknown> = {\n \"auth.passkeyEnabled\": () => authState.availableLoginOptions?.passkey,\n \"auth.passwordEnabled\": () => authState.availableLoginOptions?.password,\n \"auth.magicCodeEnabled\": () => authState.availableLoginOptions?.magic_link,\n \"auth.socialLoginsEnabled\": () => (authState.availableLoginOptions?.social_logins?.length ?? 0) > 0,\n \"auth.loading\": () => authState.loading,\n \"auth.authenticated\": () => authState.authenticated,\n \"auth.magicCodeSent\": () => authState.magicCodeStep === \"sent\" || authState.magicCodeStep === \"requested\",\n \"auth.magicCodeRequested\": () => authState.magicCodeStep === \"requested\",\n \"auth.resetPasswordSent\": () => authState.resetPassword.step === \"sent\" || authState.resetPassword.step === \"requested\",\n \"auth.resetPasswordRequested\": () => authState.resetPassword.step === \"requested\",\n\n \"newsletter.hasCheckedNewsletters\": () => Object.keys(newsletterStore.state.checkedNewsletters).length > 0,\n \"newsletter.hasPreferenceToken\": () => !!newsletterStore.state.preferenceToken,\n \"newsletter.hasEmail\": () => !!newsletterStore.state.email,\n \"newsletter.subscribed\": (newsletterInternalName: string) => NewsletterHelpers.isSubscribed(newsletterInternalName),\n \"newsletter.confirmed\": (newsletterInternalName: string) => NewsletterHelpers.isConfirmed(newsletterInternalName),\n \"newsletter.loggedIn\": () => newsletterStore.state.isAuthenticated || newsletterStore.state.preferenceToken !== \"\",\n\n \"profile.loading\": () => profileStore.state.loading,\n \"profile.hasErrors\": () => Object.keys(profileStore.state.errors).some((key) => profileStore.state.errors[key] !== null),\n \"profile.hasFlashErrors\": () => Object.keys(profileStore.state.flashErrors).some((key) => profileStore.state.flashErrors[key] !== null),\n \"profile.phoneValid\": () => profileStore.state.phoneValid,\n \"profile.hasData\": () => Object.keys(profileStore.state.data).length > 0,\n};\n\nfunction isTruthy(value: unknown): boolean {\n return Boolean(value);\n}\n\n@Component({\n tag: \"u-conditional-render\",\n shadow: true,\n})\nexport class ConditionalRender extends UnidyComponent {\n @Prop() when?: string; // condition to check\n @Prop() is?: string; // optional value to compare against\n @Prop() not = false;\n @Prop() conditionFunction?: (state: AuthState) => boolean;\n\n private evaluateCondition(): unknown {\n const predefinedFunction = PREDEFINED_CONDITIONS[this.when];\n if (predefinedFunction) {\n return predefinedFunction(this.is);\n }\n\n return null;\n }\n\n private shouldRender(): boolean {\n if (!this.when && !this.conditionFunction) {\n this.logger.error(\"[u-conditional-render] Either 'when' or 'conditionFunction' prop is required\");\n }\n\n if (this.conditionFunction) {\n const result = this.conditionFunction(authState);\n return this.not ? !result : result;\n }\n\n const value = this.evaluateCondition();\n if (value === null) {\n return false;\n }\n\n const normalizedIs = this.is?.toString().toLowerCase();\n let result: boolean;\n\n if (typeof value === \"boolean\") {\n if (normalizedIs === \"false\" || normalizedIs === \"disabled\") {\n result = !value;\n } else {\n result = value;\n }\n } else if (this.is === undefined) {\n result = isTruthy(value);\n } else if (normalizedIs === \"enabled\" || normalizedIs === \"true\") {\n result = isTruthy(value);\n } else if (normalizedIs === \"disabled\" || normalizedIs === \"false\") {\n result = !isTruthy(value);\n } else {\n result = String(value) === String(this.is); // to compare exact value\n }\n\n return this.not ? !result : result;\n }\n\n render() {\n if (!this.shouldRender()) {\n return null;\n }\n\n return (\n <Host aria-live=\"polite\">\n <slot />\n </Host>\n );\n }\n}\n"],"names":["authState","NewsletterHelpers.isSubscribed","NewsletterHelpers.isConfirmed"],"mappings":"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"}
1
+ {"version":3,"file":"u-conditional-render.entry.js","sources":["src/shared/components/conditional-render/conditional-render.tsx"],"sourcesContent":["import { Component, Host, h, Prop } from \"@stencil/core\";\nimport { type AuthState, authState } from \"../../../auth/store/auth-store\";\nimport { UnidyComponent } from \"../../../logger\";\nimport * as NewsletterHelpers from \"../../../newsletter/newsletter-helpers\";\nimport { newsletterStore } from \"../../../newsletter/store/newsletter-store\";\nimport { profileStore } from \"../../../profile/store/profile-store\";\n\nconst PREDEFINED_CONDITIONS: Record<string, (...args: unknown[]) => unknown> = {\n \"auth.passkeyEnabled\": () => authState.availableLoginOptions?.passkey,\n \"auth.passwordEnabled\": () => authState.availableLoginOptions?.password,\n \"auth.magicCodeEnabled\": () => authState.availableLoginOptions?.magic_link,\n \"auth.socialLoginsEnabled\": () => (authState.availableLoginOptions?.social_logins?.length ?? 0) > 0,\n \"auth.loading\": () => authState.loading,\n \"auth.authenticated\": () => authState.authenticated,\n \"auth.magicCodeSent\": () => authState.magicCodeStep === \"sent\" || authState.magicCodeStep === \"requested\",\n \"auth.magicCodeRequested\": () => authState.magicCodeStep === \"requested\",\n \"auth.resetPasswordSent\": () => authState.resetPassword.step === \"sent\" || authState.resetPassword.step === \"requested\",\n \"auth.resetPasswordRequested\": () => authState.resetPassword.step === \"requested\",\n\n \"newsletter.hasCheckedNewsletters\": () => Object.keys(newsletterStore.state.checkedNewsletters).length > 0,\n \"newsletter.hasPreferenceToken\": () => !!newsletterStore.state.preferenceToken,\n \"newsletter.hasEmail\": () => !!newsletterStore.state.email,\n \"newsletter.subscribed\": (newsletterInternalName: string) => NewsletterHelpers.isSubscribed(newsletterInternalName),\n \"newsletter.confirmed\": (newsletterInternalName: string) => NewsletterHelpers.isConfirmed(newsletterInternalName),\n \"newsletter.loggedIn\": () => newsletterStore.state.isAuthenticated || newsletterStore.state.preferenceToken !== \"\",\n\n \"profile.loading\": () => profileStore.state.loading,\n \"profile.hasErrors\": () => Object.keys(profileStore.state.errors).some((key) => profileStore.state.errors[key] !== null),\n \"profile.hasFlashErrors\": () => Object.keys(profileStore.state.flashErrors).some((key) => profileStore.state.flashErrors[key] !== null),\n \"profile.phoneValid\": () => profileStore.state.phoneValid,\n \"profile.hasData\": () => Object.keys(profileStore.state.data).length > 0,\n};\n\nfunction isTruthy(value: unknown): boolean {\n return Boolean(value);\n}\n\n@Component({\n tag: \"u-conditional-render\",\n shadow: true,\n})\nexport class ConditionalRender extends UnidyComponent {\n @Prop() when?: string; // condition to check\n @Prop() is?: string; // optional value to compare against\n @Prop() not = false;\n @Prop() conditionFunction?: (state: AuthState) => boolean;\n\n private evaluateCondition(): unknown {\n const predefinedFunction = PREDEFINED_CONDITIONS[this.when];\n if (predefinedFunction) {\n return predefinedFunction(this.is);\n }\n\n return null;\n }\n\n private shouldRender(): boolean {\n if (!this.when && !this.conditionFunction) {\n this.logger.error(\"[u-conditional-render] Either 'when' or 'conditionFunction' prop is required\");\n }\n\n if (this.conditionFunction) {\n const result = this.conditionFunction(authState);\n return this.not ? !result : result;\n }\n\n const value = this.evaluateCondition();\n if (value === null) {\n return false;\n }\n\n const normalizedIs = this.is?.toString().toLowerCase();\n let result: boolean;\n\n if (typeof value === \"boolean\") {\n if (normalizedIs === \"false\" || normalizedIs === \"disabled\") {\n result = !value;\n } else {\n result = value;\n }\n } else if (this.is === undefined) {\n result = isTruthy(value);\n } else if (normalizedIs === \"enabled\" || normalizedIs === \"true\") {\n result = isTruthy(value);\n } else if (normalizedIs === \"disabled\" || normalizedIs === \"false\") {\n result = !isTruthy(value);\n } else {\n result = String(value) === String(this.is); // to compare exact value\n }\n\n return this.not ? !result : result;\n }\n\n render() {\n if (!this.shouldRender()) {\n return null;\n }\n\n return (\n <Host aria-live=\"polite\">\n <slot />\n </Host>\n );\n }\n}\n"],"names":["authState","NewsletterHelpers.isSubscribed","NewsletterHelpers.isConfirmed"],"mappings":"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"}
@@ -1,13 +1,12 @@
1
1
  import { U as UnidyComponent, r as registerInstance, c as createEvent, h, d as captureException } from './index-Ci3aTmzp.js';
2
- import { i as instance } from './i18n-CLdWzy5J.js';
2
+ import { i as instance } from './i18n-BANodpxG.js';
3
3
  import { u as unidyState } from './unidy-store-BldTAtO0.js';
4
- import './auth-store-CVvBlKGv.js';
5
- import { A as Auth } from './auth-nsjRdpvS.js';
6
- import { g as getUnidyClient } from './index-DSDkaHWI.js';
4
+ import './auth-store-BMqUdTpC.js';
5
+ import { h as Auth, g as getUnidyClient } from './index-2p1QEJrx.js';
7
6
  import './index-Bjp1XO-f.js';
8
7
  import './profile-store-RmZB2PTc.js';
9
- import './component-utils-D1lzXl_Z.js';
10
8
  import './flash-store-CEvWSG0c.js';
9
+ import './component-utils-D1lzXl_Z.js';
11
10
 
12
11
  const UnidyConfig = class extends UnidyComponent {
13
12
  constructor(hostRef) {
@@ -1 +1 @@
1
- {"version":3,"file":"u-config.entry.js","sources":["src/shared/components/config/config.tsx"],"sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport { Component, Prop, Watch, Event, type EventEmitter, h } from \"@stencil/core\";\nimport i18n from \"../../../i18n\";\nimport { unidyState } from \"../../store/unidy-store\";\nimport { Auth } from \"../../../auth\";\nimport { getUnidyClient } from \"../../../api/\";\nimport { UnidyComponent } from \"../../../logger\";\n\nexport interface Config {\n apiKey: string;\n baseUrl: string;\n locale: string;\n mode: \"production\" | \"development\";\n}\n\nexport interface ConfigChange {\n key: string;\n value: string;\n previousValue: string;\n}\n\ntype TranslationTree = {\n [key: string]: string | TranslationTree;\n};\n\n@Component({\n tag: \"u-config\",\n shadow: false,\n})\nexport class UnidyConfig extends UnidyComponent {\n @Prop() mode: \"production\" | \"development\" = \"production\";\n @Prop() baseUrl = \"\";\n @Prop() apiKey = \"\";\n @Prop() customTranslations: string | Record<string, TranslationTree> = \"\";\n @Prop() fallbackLocale = \"en\";\n @Prop() locale = \"en\";\n\n @Event() unidyInitialized!: EventEmitter<Config>;\n @Event() configChange!: EventEmitter<ConfigChange>;\n\n componentWillLoad() {\n if (!this.baseUrl || !this.apiKey) {\n this.logger.error(\"baseUrl and apiKey are required\");\n return;\n }\n\n unidyState.apiKey = this.apiKey;\n unidyState.baseUrl = this.baseUrl;\n unidyState.locale = this.locale;\n unidyState.isConfigured = true;\n\n this.unidyInitialized.emit({\n apiKey: this.apiKey,\n baseUrl: this.baseUrl,\n locale: this.locale,\n mode: this.mode,\n });\n\n i18n.options.fallbackLng = this.fallbackLocale;\n\n this.loadCustomTranslations();\n unidyState.locale = this.locale;\n\n Auth.initialize(getUnidyClient());\n }\n\n // extend the list of properties that should be watched when new properties are added to the Config\n @Watch(\"mode\")\n @Watch(\"locale\")\n onPropChange(newValue: string, oldValue: string, propName: keyof Config) {\n if (oldValue === undefined) return;\n\n if (propName in unidyState) {\n (unidyState as Record<keyof Config, string>)[propName] = newValue;\n }\n\n this.configChange.emit({\n key: propName,\n value: newValue,\n previousValue: oldValue,\n });\n }\n\n render() {\n return <slot />;\n }\n\n private loadCustomTranslations() {\n if (this.customTranslations) {\n try {\n const translations = typeof this.customTranslations === \"string\" ? JSON.parse(this.customTranslations) : this.customTranslations;\n\n for (const lang in translations) {\n if (Object.hasOwn(translations, lang)) {\n i18n.addResourceBundle(lang, \"translation\", translations[lang], true, true);\n }\n }\n } catch (error) {\n Sentry.captureException(\"Failed to parse customTranslations\", error);\n }\n }\n }\n}\n"],"names":["i18n","Sentry.captureException"],"mappings":";;;;;;;;;;;MA6Ba,WAAY,GAAA,cAAQ,cAAc,CAAA;;;;;;;IACrC,IAAI,GAAiC,YAAY;IACjD,OAAO,GAAG,EAAE;IACZ,MAAM,GAAG,EAAE;IACX,kBAAkB,GAA6C,EAAE;IACjE,cAAc,GAAG,IAAI;IACrB,MAAM,GAAG,IAAI;AAEZ,IAAA,gBAAgB;AAChB,IAAA,YAAY;IAErB,iBAAiB,GAAA;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC;YACpD;;AAGF,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC/B,QAAA,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AACjC,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC/B,QAAA,UAAU,CAAC,YAAY,GAAG,IAAI;AAE9B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,SAAA,CAAC;QAEFA,QAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc;QAE9C,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAE/B,QAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;;;AAMnC,IAAA,YAAY,CAAC,QAAgB,EAAE,QAAgB,EAAE,QAAsB,EAAA;QACrE,IAAI,QAAQ,KAAK,SAAS;YAAE;AAE5B,QAAA,IAAI,QAAQ,IAAI,UAAU,EAAE;AACzB,YAAA,UAA2C,CAAC,QAAQ,CAAC,GAAG,QAAQ;;AAGnE,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrB,YAAA,GAAG,EAAE,QAAQ;AACb,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,aAAa,EAAE,QAAQ;AACxB,SAAA,CAAC;;IAGJ,MAAM,GAAA;QACJ,OAAO,8DAAQ;;IAGT,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI;gBACF,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,kBAAkB,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,kBAAkB;AAEhI,gBAAA,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;oBAC/B,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;AACrC,wBAAAA,QAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;;;;YAG/E,OAAO,KAAK,EAAE;AACd,gBAAAC,gBAAuB,CAAC,oCAAoC,EAAE,KAAK,CAAC;;;;;;;;;;;;"}
1
+ {"version":3,"file":"u-config.entry.js","sources":["src/shared/components/config/config.tsx"],"sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport { Component, Prop, Watch, Event, type EventEmitter, h } from \"@stencil/core\";\nimport i18n from \"../../../i18n\";\nimport { unidyState } from \"../../store/unidy-store\";\nimport { Auth } from \"../../../auth\";\nimport { getUnidyClient } from \"../../../api/\";\nimport { UnidyComponent } from \"../../../logger\";\n\nexport interface Config {\n apiKey: string;\n baseUrl: string;\n locale: string;\n mode: \"production\" | \"development\";\n}\n\nexport interface ConfigChange {\n key: string;\n value: string;\n previousValue: string;\n}\n\ntype TranslationTree = {\n [key: string]: string | TranslationTree;\n};\n\n@Component({\n tag: \"u-config\",\n shadow: false,\n})\nexport class UnidyConfig extends UnidyComponent {\n @Prop() mode: \"production\" | \"development\" = \"production\";\n @Prop() baseUrl = \"\";\n @Prop() apiKey = \"\";\n @Prop() customTranslations: string | Record<string, TranslationTree> = \"\";\n @Prop() fallbackLocale = \"en\";\n @Prop() locale = \"en\";\n\n @Event() unidyInitialized!: EventEmitter<Config>;\n @Event() configChange!: EventEmitter<ConfigChange>;\n\n componentWillLoad() {\n if (!this.baseUrl || !this.apiKey) {\n this.logger.error(\"baseUrl and apiKey are required\");\n return;\n }\n\n unidyState.apiKey = this.apiKey;\n unidyState.baseUrl = this.baseUrl;\n unidyState.locale = this.locale;\n unidyState.isConfigured = true;\n\n this.unidyInitialized.emit({\n apiKey: this.apiKey,\n baseUrl: this.baseUrl,\n locale: this.locale,\n mode: this.mode,\n });\n\n i18n.options.fallbackLng = this.fallbackLocale;\n\n this.loadCustomTranslations();\n unidyState.locale = this.locale;\n\n Auth.initialize(getUnidyClient());\n }\n\n // extend the list of properties that should be watched when new properties are added to the Config\n @Watch(\"mode\")\n @Watch(\"locale\")\n onPropChange(newValue: string, oldValue: string, propName: keyof Config) {\n if (oldValue === undefined) return;\n\n if (propName in unidyState) {\n (unidyState as Record<keyof Config, string>)[propName] = newValue;\n }\n\n this.configChange.emit({\n key: propName,\n value: newValue,\n previousValue: oldValue,\n });\n }\n\n render() {\n return <slot />;\n }\n\n private loadCustomTranslations() {\n if (this.customTranslations) {\n try {\n const translations = typeof this.customTranslations === \"string\" ? JSON.parse(this.customTranslations) : this.customTranslations;\n\n for (const lang in translations) {\n if (Object.hasOwn(translations, lang)) {\n i18n.addResourceBundle(lang, \"translation\", translations[lang], true, true);\n }\n }\n } catch (error) {\n Sentry.captureException(\"Failed to parse customTranslations\", error);\n }\n }\n }\n}\n"],"names":["i18n","Sentry.captureException"],"mappings":";;;;;;;;;;MA6Ba,WAAY,GAAA,cAAQ,cAAc,CAAA;;;;;;;IACrC,IAAI,GAAiC,YAAY;IACjD,OAAO,GAAG,EAAE;IACZ,MAAM,GAAG,EAAE;IACX,kBAAkB,GAA6C,EAAE;IACjE,cAAc,GAAG,IAAI;IACrB,MAAM,GAAG,IAAI;AAEZ,IAAA,gBAAgB;AAChB,IAAA,YAAY;IAErB,iBAAiB,GAAA;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC;YACpD;;AAGF,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC/B,QAAA,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AACjC,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC/B,QAAA,UAAU,CAAC,YAAY,GAAG,IAAI;AAE9B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,SAAA,CAAC;QAEFA,QAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc;QAE9C,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAE/B,QAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;;;AAMnC,IAAA,YAAY,CAAC,QAAgB,EAAE,QAAgB,EAAE,QAAsB,EAAA;QACrE,IAAI,QAAQ,KAAK,SAAS;YAAE;AAE5B,QAAA,IAAI,QAAQ,IAAI,UAAU,EAAE;AACzB,YAAA,UAA2C,CAAC,QAAQ,CAAC,GAAG,QAAQ;;AAGnE,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrB,YAAA,GAAG,EAAE,QAAQ;AACb,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,aAAa,EAAE,QAAQ;AACxB,SAAA,CAAC;;IAGJ,MAAM,GAAA;QACJ,OAAO,8DAAQ;;IAGT,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI;gBACF,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,kBAAkB,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,kBAAkB;AAEhI,gBAAA,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;oBAC/B,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;AACrC,wBAAAA,QAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;;;;YAG/E,OAAO,KAAK,EAAE;AACd,gBAAAC,gBAAuB,CAAC,oCAAoC,EAAE,KAAK,CAAC;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, g as getElement, h } from './index-Ci3aTmzp.js';
2
2
  import { g as getParentSigninStep } from './helpers-DUHc_Cx7.js';
3
- import { a as authStore, s as state } from './auth-store-CVvBlKGv.js';
4
- import { t } from './i18n-CLdWzy5J.js';
3
+ import { a as authStore, s as state } from './auth-store-BMqUdTpC.js';
4
+ import { t } from './i18n-BANodpxG.js';
5
5
  import { g as getParentNewsletterRoot } from './helpers-BqFCd65h.js';
6
6
  import { n as newsletterStore } from './newsletter-store-DBL1A203.js';
7
7
  import './index-Bjp1XO-f.js';
@@ -1,9 +1,9 @@
1
1
  import { r as registerInstance, g as getElement, h, H as Host } from './index-Ci3aTmzp.js';
2
- import { s as state } from './auth-store-CVvBlKGv.js';
3
- import { t } from './i18n-CLdWzy5J.js';
2
+ import { t } from './i18n-BANodpxG.js';
3
+ import { s as state } from './auth-store-BMqUdTpC.js';
4
+ import { u as unidyState } from './unidy-store-BldTAtO0.js';
4
5
  import { n as newsletterStore } from './newsletter-store-DBL1A203.js';
5
6
  import { h as hasSlotContent } from './component-utils-D1lzXl_Z.js';
6
- import { u as unidyState } from './unidy-store-BldTAtO0.js';
7
7
  import './index-Bjp1XO-f.js';
8
8
 
9
9
  const ErrorMessage = class {
@@ -1 +1 @@
1
- {"version":3,"file":"u-error-message.entry.js","sources":["src/shared/components/error-message/error-message.tsx"],"sourcesContent":["import { Component, Element, Host, h, Prop } from \"@stencil/core\";\nimport { authState } from \"../../../auth/store/auth-store\";\nimport { t } from \"../../../i18n\";\nimport { type NewsletterErrorIdentifier, newsletterStore } from \"../../../newsletter/store/newsletter-store\";\nimport { hasSlotContent } from \"../../component-utils\";\nimport { unidyState } from \"../../store/unidy-store\";\n\nexport type AuthErrorType = \"email\" | \"password\" | \"magicCode\" | \"resetPassword\" | \"general\" | \"connection\" | \"passkey\";\n\n@Component({\n tag: \"u-error-message\",\n shadow: true,\n})\nexport class ErrorMessage {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() for!: string;\n\n @Prop() errorMessages?: Record<string, string>;\n @Element() el!: HTMLElement;\n\n private detectContext(): \"auth\" | \"newsletter\" | \"profile\" | \"other\" {\n if (this.el.closest(\"u-signin-root\") || this.el.closest(\"u-signin-step\")) return \"auth\";\n\n if (this.el.closest(\"u-profile\")) return \"profile\";\n\n if (this.el.closest(\"u-newsletter-root\")) return \"newsletter\";\n\n if (this.for === \"general\" || this.for === \"connection\") return \"other\";\n\n throw new Error(\n \"No context found for error message. Make sure you are using the component within a u-signin-root, u-profile, or u-newsletter-root.\",\n );\n }\n\n private get context(): \"auth\" | \"newsletter\" | \"profile\" | \"other\" {\n return this.detectContext();\n }\n\n private getAuthErrorMessage(errorCode: string): string {\n if (this.errorMessages?.[errorCode]) {\n return this.errorMessages[errorCode];\n }\n\n const translatedError = t(`errors.${errorCode}`);\n if (translatedError !== `errors.${errorCode}`) {\n return translatedError;\n }\n\n return errorCode || t(\"errors.unknown\", { defaultValue: \"An error occurred\" });\n }\n\n private getNewsletterErrorMessage(errorIdentifier: NewsletterErrorIdentifier): string {\n return t(`newsletter.errors.${errorIdentifier}`) || t(\"errors.unknown\", { defaultValue: \"An unknown error occurred\" });\n }\n\n private getErrorMessage(errorCode: string): string | null {\n if (this.context === \"auth\") {\n return this.getAuthErrorMessage(errorCode);\n }\n\n return this.getNewsletterErrorMessage(errorCode as NewsletterErrorIdentifier);\n }\n\n private getAuthErrorCode(): string | null {\n const forValue = this.for as AuthErrorType;\n\n if (forValue === \"connection\") {\n return unidyState.backendConnected ? null : \"connection_failed\";\n }\n\n if (forValue === \"general\") {\n return authState.globalErrors.auth;\n }\n\n return authState.errors[forValue];\n }\n\n private getNewsletterErrorCode(): string | null {\n const error = newsletterStore.state.errors[this.for];\n return error ?? null;\n }\n\n render() {\n const errorCode = this.context === \"newsletter\" ? this.getNewsletterErrorCode() : this.getAuthErrorCode();\n\n if (!errorCode) {\n return null;\n }\n\n // Only render connection_failed for \"general\" and \"connection\" types\n if (errorCode === \"connection_failed\" && this.for !== \"general\" && this.for !== \"connection\") {\n return null;\n }\n\n const errorMessage = this.getErrorMessage(errorCode);\n const formattedMessage = errorMessage?.includes(\"\\n\") ? <div style={{ whiteSpace: \"pre-line\" }}>{errorMessage}</div> : errorMessage;\n\n return <Host class={this.componentClassName}>{hasSlotContent(this.el) ? <slot /> : formattedMessage}</Host>;\n }\n}\n"],"names":["authState"],"mappings":"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"}
1
+ {"version":3,"file":"u-error-message.entry.js","sources":["src/shared/components/error-message/error-message.tsx"],"sourcesContent":["import { Component, Element, h, Host, Prop } from \"@stencil/core\";\nimport { t } from \"../../../i18n\";\nimport { authState } from \"../../../auth/store/auth-store\";\nimport { unidyState } from \"../../store/unidy-store\";\nimport { type NewsletterErrorIdentifier, newsletterStore } from \"../../../newsletter/store/newsletter-store\";\nimport { hasSlotContent } from \"../../component-utils\";\n\nexport type AuthErrorType = \"email\" | \"password\" | \"magicCode\" | \"resetPassword\" | \"general\" | \"connection\";\n\n@Component({\n tag: \"u-error-message\",\n shadow: true,\n})\nexport class ErrorMessage {\n @Prop({ attribute: \"class-name\" }) componentClassName = \"\";\n @Prop() for!: string;\n\n @Prop() errorMessages?: Record<string, string>;\n @Element() el!: HTMLElement;\n\n private detectContext(): \"auth\" | \"newsletter\" | \"profile\" | \"other\" {\n if (this.el.closest(\"u-signin-root\") || this.el.closest(\"u-signin-step\")) return \"auth\";\n\n if (this.el.closest(\"u-profile\")) return \"profile\";\n\n if (this.el.closest(\"u-newsletter-root\")) return \"newsletter\";\n\n if (this.for === \"general\" || this.for === \"connection\") return \"other\";\n\n throw new Error(\n \"No context found for error message. Make sure you are using the component within a u-signin-root, u-profile, or u-newsletter-root.\",\n );\n }\n\n private get context(): \"auth\" | \"newsletter\" | \"profile\" | \"other\" {\n return this.detectContext();\n }\n\n private getAuthErrorMessage(errorCode: string): string {\n if (this.errorMessages?.[errorCode]) {\n return this.errorMessages[errorCode];\n }\n\n const translatedError = t(`errors.${errorCode}`);\n if (translatedError !== `errors.${errorCode}`) {\n return translatedError;\n }\n\n return errorCode || t(\"errors.unknown\", { defaultValue: \"An error occurred\" });\n }\n\n private getNewsletterErrorMessage(errorIdentifier: NewsletterErrorIdentifier): string {\n return t(`newsletter.errors.${errorIdentifier}`) || t(\"errors.unknown\", { defaultValue: \"An unknown error occurred\" });\n }\n\n private getErrorMessage(errorCode: string): string | null {\n if (this.context === \"auth\") {\n return this.getAuthErrorMessage(errorCode);\n }\n\n return this.getNewsletterErrorMessage(errorCode as NewsletterErrorIdentifier);\n }\n\n private getAuthErrorCode(): string | null {\n const forValue = this.for as AuthErrorType;\n\n if (forValue === \"connection\") {\n return unidyState.backendConnected ? null : \"connection_failed\";\n }\n\n if (forValue === \"general\") {\n return authState.globalErrors.auth;\n }\n\n return authState.errors[forValue];\n }\n\n private getNewsletterErrorCode(): string | null {\n const error = newsletterStore.state.errors[this.for];\n return error ?? null;\n }\n\n render() {\n const errorCode = this.context === \"newsletter\" ? this.getNewsletterErrorCode() : this.getAuthErrorCode();\n\n if (!errorCode) {\n return null;\n }\n\n // Only render connection_failed for \"general\" and \"connection\" types\n if (errorCode === \"connection_failed\" && this.for !== \"general\" && this.for !== \"connection\") {\n return null;\n }\n\n const errorMessage = this.getErrorMessage(errorCode);\n const formattedMessage = errorMessage?.includes(\"\\n\") ? <div style={{ whiteSpace: \"pre-line\" }}>{errorMessage}</div> : errorMessage;\n\n return <Host class={this.componentClassName}>{hasSlotContent(this.el) ? <slot /> : formattedMessage}</Host>;\n }\n}\n"],"names":["authState"],"mappings":"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"}