@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
@@ -1,188 +1,213 @@
1
- import * as Sentry from "@sentry/browser";
2
- import * as z from "zod/mini";
3
- import EventEmitter from "eventemitter3";
4
- import { createLogger } from "../../logger";
5
- const NewsletterSubscriptionSchema = z.object({
6
- id: z.number(),
7
- email: z.string(),
8
- newsletter_internal_name: z.string(),
9
- preference_identifiers: z.array(z.string()),
10
- preference_token: z.string(),
11
- confirmed_at: z.union([z.string(), z.null()]),
12
- });
13
- const NewsletterSubscriptionErrorSchema = z.object({
14
- error_identifier: z.string(),
15
- error_details: z.optional(z.record(z.string(), z.array(z.string()))),
16
- meta: z.object({
17
- newsletter_internal_name: z.string(),
18
- }),
19
- });
20
- const CreateSubscriptionsResponseSchema = z.object({
21
- results: z.array(NewsletterSubscriptionSchema),
22
- errors: z.array(NewsletterSubscriptionErrorSchema),
23
- });
24
- const AdditionalFieldsSchema = z.object({
25
- first_name: z.optional(z.union([z.string(), z.null()])),
26
- last_name: z.optional(z.union([z.string(), z.null()])),
27
- salutation: z.optional(z.union([z.literal("mr"), z.literal("mrs"), z.literal("mx"), z.null()])),
28
- phone_number: z.optional(z.union([z.string(), z.null()])),
29
- date_of_birth: z.optional(z.union([z.string(), z.null()])),
30
- company_name: z.optional(z.union([z.string(), z.null()])),
31
- address_line_1: z.optional(z.union([z.string(), z.null()])),
32
- address_line_2: z.optional(z.union([z.string(), z.null()])),
33
- city: z.optional(z.union([z.string(), z.null()])),
34
- postal_code: z.optional(z.union([z.string(), z.null()])),
35
- country_code: z.optional(z.union([z.string(), z.null()])),
36
- preferred_language: z.optional(z.union([z.string(), z.null()])),
37
- custom_attributes: z.optional(z.union([z.record(z.string(), z.unknown()), z.null()])),
38
- });
39
- const CreateSubscriptionsPayloadSchema = z.object({
40
- email: z.string(),
41
- additional_fields: z.optional(AdditionalFieldsSchema),
42
- newsletter_subscriptions: z.array(z.object({
43
- newsletter_internal_name: z.string(),
44
- preference_identifiers: z.optional(z.array(z.string())),
45
- })),
46
- redirect_to_after_confirmation: z.optional(z.string()),
47
- });
48
- const UpdateSubscriptionPayloadSchema = z.object({
49
- preference_identifiers: z.array(z.string()),
50
- });
51
- const LoginEmailPayloadSchema = z.object({
52
- email: z.string(),
53
- redirect_uri: z.string(),
54
- });
55
- const ResendDoiPayloadSchema = z.object({
56
- redirect_to_after_confirmation: z.optional(z.string()),
57
- });
58
- const PreferenceSchema = z.object({
59
- id: z.number(),
60
- name: z.string(),
61
- description: z.union([z.string(), z.null()]),
62
- plugin_identifier: z.union([z.string(), z.null()]),
63
- position: z.number(),
64
- default: z.boolean(),
65
- hidden: z.boolean(),
66
- });
67
- const PreferenceGroupSchema = z.object({
68
- id: z.number(),
69
- name: z.string(),
70
- position: z.number(),
71
- flat: z.boolean(),
72
- preferences: z.array(PreferenceSchema),
73
- });
74
- const NewsletterSchema = z.object({
75
- id: z.number(),
76
- internal_name: z.string(),
77
- default: z.boolean(),
78
- position: z.number(),
79
- opt_in_type: z.string(),
80
- title: z.string(),
81
- description: z.union([z.string(), z.null()]),
82
- created_at: z.string(),
83
- updated_at: z.string(),
84
- preference_groups: z.array(PreferenceGroupSchema),
85
- });
86
- const NewslettersResponseSchema = z.object({
87
- newsletters: z.array(NewsletterSchema),
88
- });
89
- export class NewsletterService extends EventEmitter {
90
- client;
91
- logger = createLogger("NewsletterService");
92
- constructor(client) {
93
- super();
94
- this.client = client;
1
+ import * as z from "zod";
2
+ import { BaseService } from "../../api";
3
+ import { CreateSubscriptionsPayloadSchema, CreateSubscriptionsResponseSchema, DeleteSubscriptionResponseSchema, LoginEmailPayloadSchema, NewsletterErrorResponseSchema, NewsletterSchema, NewsletterSubscriptionSchema, NewslettersResponseSchema, ResendDoiPayloadSchema, UpdateSubscriptionPayloadSchema, } from "./schemas";
4
+ export class NewsletterService extends BaseService {
5
+ constructor(client, deps) {
6
+ super(client, "NewsletterService", deps);
95
7
  }
96
- buildAuthHeaders(auth) {
97
- if (!auth)
98
- return undefined;
99
- const headers = {};
100
- if (auth.idToken) {
101
- headers["X-ID-Token"] = auth.idToken;
102
- }
103
- if (auth.preferenceToken) {
104
- headers["X-Preference-Token"] = auth.preferenceToken;
105
- }
106
- return Object.keys(headers).length > 0 ? headers : undefined;
8
+ async buildNewsletterAuthHeaders(options) {
9
+ const idToken = await this.getIdToken();
10
+ return this.buildAuthHeaders({
11
+ "X-ID-Token": idToken ?? undefined,
12
+ "X-Preference-Token": options?.preferenceToken,
13
+ });
107
14
  }
108
- async createSubscriptions(payload, auth) {
15
+ /**
16
+ * Create newsletter subscriptions for a user
17
+ */
18
+ async create(args) {
19
+ const { payload, options } = args;
109
20
  CreateSubscriptionsPayloadSchema.parse(payload);
110
- const response = await this.client.post("/api/sdk/v1/newsletters/newsletter_subscription", payload, this.buildAuthHeaders(auth));
111
- switch (response.status) {
112
- case 401:
113
- this.emit("unauthorized", response);
114
- return ["unauthorized", response];
115
- case 429:
116
- this.logger.warn("Rate limit exceeded");
117
- this.emit("rate_limit_exceeded", response);
118
- return ["rate_limit_exceeded", response];
119
- case 500:
120
- Sentry.captureException(response);
121
- return ["server_error", response];
122
- case 0:
123
- return ["network_error", response];
124
- default:
125
- if (response.data) {
126
- try {
127
- const validatedData = CreateSubscriptionsResponseSchema.parse(response.data);
128
- if (validatedData.errors.length > 0) {
129
- this.emit("newsletter_error", response);
130
- return ["newsletter_error", response];
131
- }
132
- return [null, response];
133
- }
134
- catch (_validationError) {
135
- return ["schema_validation_error", response];
136
- }
21
+ const headers = await this.buildNewsletterAuthHeaders(options);
22
+ const response = await this.client.post("/api/sdk/v1/newsletters/newsletter_subscription", payload, headers);
23
+ return this.handleResponse(response, () => {
24
+ if (!response.success) {
25
+ const parsed = NewsletterErrorResponseSchema.safeParse(response.data);
26
+ const error = parsed.success ? parsed.data : { error_identifier: "unknown_error" };
27
+ switch (response.status) {
28
+ case 401:
29
+ return ["unauthorized", error];
30
+ case 429:
31
+ this.logger.warn("Rate limit exceeded");
32
+ return ["rate_limit_exceeded", error];
33
+ case 500:
34
+ this.errorReporter.captureException(response);
35
+ return ["server_error", error];
36
+ default:
37
+ return ["server_error", error];
137
38
  }
138
- return ["error", response];
139
- }
39
+ }
40
+ const data = CreateSubscriptionsResponseSchema.parse(response.data);
41
+ if (data.errors.length > 0) {
42
+ return ["newsletter_error", data];
43
+ }
44
+ return [null, data];
45
+ });
140
46
  }
141
- async listSubscriptions(auth) {
142
- return this.client.get("/api/sdk/v1/newsletters/newsletter_subscription", this.buildAuthHeaders(auth));
47
+ /**
48
+ * List all subscriptions for the authenticated user
49
+ */
50
+ async list(args) {
51
+ const headers = await this.buildNewsletterAuthHeaders(args?.options);
52
+ const response = await this.client.get("/api/sdk/v1/newsletters/newsletter_subscription", headers);
53
+ return this.handleResponse(response, () => {
54
+ if (!response.success) {
55
+ const parsed = NewsletterErrorResponseSchema.safeParse(response.data);
56
+ const error = parsed.success ? parsed.data : { error_identifier: "unknown_error" };
57
+ if (response.status === 401) {
58
+ return ["unauthorized", error];
59
+ }
60
+ return ["server_error", error];
61
+ }
62
+ const data = z.array(NewsletterSubscriptionSchema).parse(response.data);
63
+ return [null, data];
64
+ });
143
65
  }
144
- async getSubscription(internalName, auth) {
145
- return this.client.get(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, this.buildAuthHeaders(auth));
66
+ /**
67
+ * Get a specific subscription by newsletter internal name
68
+ */
69
+ async get(args) {
70
+ const { internalName, options } = args;
71
+ const headers = await this.buildNewsletterAuthHeaders(options);
72
+ const response = await this.client.get(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, headers);
73
+ return this.handleResponse(response, () => {
74
+ if (!response.success) {
75
+ const parsed = NewsletterErrorResponseSchema.safeParse(response.data);
76
+ const error = parsed.success ? parsed.data : { error_identifier: "unknown_error" };
77
+ if (response.status === 401) {
78
+ return ["unauthorized", error];
79
+ }
80
+ if (response.status === 404) {
81
+ return ["not_found", error];
82
+ }
83
+ return ["server_error", error];
84
+ }
85
+ const data = NewsletterSubscriptionSchema.parse(response.data);
86
+ return [null, data];
87
+ });
146
88
  }
147
- async updateSubscription(internalName, payload, auth) {
89
+ /**
90
+ * Update a subscription's preferences
91
+ */
92
+ async update(args) {
93
+ const { internalName, payload, options } = args;
148
94
  UpdateSubscriptionPayloadSchema.parse(payload);
149
- return this.client.patch(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, payload, this.buildAuthHeaders(auth));
95
+ const headers = await this.buildNewsletterAuthHeaders(options);
96
+ const response = await this.client.patch(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, payload, headers);
97
+ return this.handleResponse(response, () => {
98
+ if (!response.success) {
99
+ const parsed = NewsletterErrorResponseSchema.safeParse(response.data);
100
+ const error = parsed.success ? parsed.data : { error_identifier: "unknown_error" };
101
+ if (response.status === 401) {
102
+ return ["unauthorized", error];
103
+ }
104
+ if (response.status === 404) {
105
+ return ["not_found", error];
106
+ }
107
+ return ["server_error", error];
108
+ }
109
+ const data = NewsletterSubscriptionSchema.parse(response.data);
110
+ return [null, data];
111
+ });
150
112
  }
151
- async deleteSubscription(internalName, auth) {
152
- return this.client.delete(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, this.buildAuthHeaders(auth));
113
+ /**
114
+ * Delete a subscription
115
+ */
116
+ async delete(args) {
117
+ const { internalName, options } = args;
118
+ const headers = await this.buildNewsletterAuthHeaders(options);
119
+ const response = await this.client.delete(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, headers);
120
+ return this.handleResponse(response, () => {
121
+ if (!response.success) {
122
+ const parsed = NewsletterErrorResponseSchema.safeParse(response.data);
123
+ const error = parsed.success ? parsed.data : { error_identifier: "unknown_error" };
124
+ if (response.status === 401) {
125
+ return ["unauthorized", error];
126
+ }
127
+ if (response.status === 404) {
128
+ return ["not_found", error];
129
+ }
130
+ return ["server_error", error];
131
+ }
132
+ const data = DeleteSubscriptionResponseSchema.parse(response.data);
133
+ return [null, data];
134
+ });
153
135
  }
154
- async resendDoi(internalName, payload, auth) {
136
+ /**
137
+ * Resend double opt-in confirmation email
138
+ */
139
+ async resendDoi(args) {
140
+ const { internalName, payload, options } = args;
155
141
  ResendDoiPayloadSchema.parse(payload);
156
- return this.client.post(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription/resend_doi`, payload, this.buildAuthHeaders(auth));
142
+ const headers = await this.buildNewsletterAuthHeaders(options);
143
+ const response = await this.client.post(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription/resend_doi`, payload, headers);
144
+ return this.handleResponse(response, () => {
145
+ if (!response.success) {
146
+ const parsed = NewsletterErrorResponseSchema.safeParse(response.data);
147
+ const error = parsed.success ? parsed.data : { error_identifier: "unknown_error" };
148
+ if (response.status === 401) {
149
+ return ["unauthorized", error];
150
+ }
151
+ if (response.status === 404) {
152
+ return ["not_found", error];
153
+ }
154
+ if (error.error_identifier === "already_confirmed") {
155
+ return ["already_confirmed", error];
156
+ }
157
+ return ["server_error", error];
158
+ }
159
+ return [null, null];
160
+ });
157
161
  }
158
- async sendLoginEmail(payload) {
162
+ /**
163
+ * Send a login email for newsletter management
164
+ */
165
+ async sendLoginEmail(args) {
166
+ const { payload } = args;
159
167
  LoginEmailPayloadSchema.parse(payload);
160
- return this.client.post("/api/sdk/v1/newsletters/newsletter_subscription/login_email", payload);
161
- }
162
- async listNewsletters() {
163
- return this.client.get("/api/sdk/v1/newsletters");
164
- }
165
- async getNewsletter(internalName) {
166
- return this.client.get(`/api/sdk/v1/newsletters/${internalName}`);
167
- }
168
- onError(callback, errorIdentifier) {
169
- this.on("newsletter_error", (response) => {
170
- if (!response.data?.errors) {
171
- return;
168
+ const response = await this.client.post("/api/sdk/v1/newsletters/newsletter_subscription/login_email", payload);
169
+ return this.handleResponse(response, () => {
170
+ if (!response.success) {
171
+ const parsed = NewsletterErrorResponseSchema.safeParse(response.data);
172
+ const error = parsed.success ? parsed.data : { error_identifier: "unknown_error" };
173
+ if (response.status === 429) {
174
+ return ["rate_limit_exceeded", error];
175
+ }
176
+ return ["server_error", error];
172
177
  }
173
- const errors = errorIdentifier
174
- ? response.data.errors.filter((error) => error.error_identifier === errorIdentifier)
175
- : response.data.errors;
176
- if (errors.length > 0) {
177
- callback(errors);
178
+ return [null, null];
179
+ });
180
+ }
181
+ /**
182
+ * List all available newsletters
183
+ */
184
+ async listAll() {
185
+ const response = await this.client.get("/api/sdk/v1/newsletters");
186
+ return this.handleResponse(response, () => {
187
+ if (!response.success) {
188
+ return ["server_error", null];
178
189
  }
190
+ const data = NewslettersResponseSchema.parse(response.data);
191
+ return [null, data];
179
192
  });
180
193
  }
181
- onRateLimitError(callback) {
182
- this.on("rate_limit_exceeded", (response) => {
183
- if (response.status === 429) {
184
- callback();
194
+ /**
195
+ * Get a newsletter by its internal name
196
+ */
197
+ async getByName(args) {
198
+ const { internalName } = args;
199
+ const response = await this.client.get(`/api/sdk/v1/newsletters/${internalName}`);
200
+ return this.handleResponse(response, () => {
201
+ if (!response.success) {
202
+ const parsed = NewsletterErrorResponseSchema.safeParse(response.data);
203
+ const error = parsed.success ? parsed.data : { error_identifier: "unknown_error" };
204
+ if (response.status === 404) {
205
+ return ["not_found", error];
206
+ }
207
+ return ["server_error", error];
185
208
  }
209
+ const data = NewsletterSchema.parse(response.data);
210
+ return [null, data];
186
211
  });
187
212
  }
188
213
  }
@@ -1 +1 @@
1
- {"version":3,"file":"newsletters.js","sourceRoot":"","sources":["../../../src/newsletter/api/newsletters.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport * as z from \"zod/mini\";\nimport type { ApiClient, ApiResponse } from \"../../api\";\nimport EventEmitter from \"eventemitter3\";\nimport { createLogger } from \"../../logger\";\n\nconst NewsletterSubscriptionSchema = z.object({\n id: z.number(),\n email: z.string(),\n newsletter_internal_name: z.string(),\n preference_identifiers: z.array(z.string()),\n preference_token: z.string(),\n confirmed_at: z.union([z.string(), z.null()]),\n});\n\nconst NewsletterSubscriptionErrorSchema = z.object({\n error_identifier: z.string(),\n error_details: z.optional(z.record(z.string(), z.array(z.string()))),\n meta: z.object({\n newsletter_internal_name: z.string(),\n }),\n});\n\nconst CreateSubscriptionsResponseSchema = z.object({\n results: z.array(NewsletterSubscriptionSchema),\n errors: z.array(NewsletterSubscriptionErrorSchema),\n});\n\nconst AdditionalFieldsSchema = z.object({\n first_name: z.optional(z.union([z.string(), z.null()])),\n last_name: z.optional(z.union([z.string(), z.null()])),\n salutation: z.optional(z.union([z.literal(\"mr\"), z.literal(\"mrs\"), z.literal(\"mx\"), z.null()])),\n phone_number: z.optional(z.union([z.string(), z.null()])),\n date_of_birth: z.optional(z.union([z.string(), z.null()])),\n company_name: z.optional(z.union([z.string(), z.null()])),\n address_line_1: z.optional(z.union([z.string(), z.null()])),\n address_line_2: z.optional(z.union([z.string(), z.null()])),\n city: z.optional(z.union([z.string(), z.null()])),\n postal_code: z.optional(z.union([z.string(), z.null()])),\n country_code: z.optional(z.union([z.string(), z.null()])),\n preferred_language: z.optional(z.union([z.string(), z.null()])),\n custom_attributes: z.optional(z.union([z.record(z.string(), z.unknown()), z.null()])),\n});\n\nconst CreateSubscriptionsPayloadSchema = z.object({\n email: z.string(),\n additional_fields: z.optional(AdditionalFieldsSchema),\n newsletter_subscriptions: z.array(\n z.object({\n newsletter_internal_name: z.string(),\n preference_identifiers: z.optional(z.array(z.string())),\n }),\n ),\n redirect_to_after_confirmation: z.optional(z.string()),\n});\n\nconst UpdateSubscriptionPayloadSchema = z.object({\n preference_identifiers: z.array(z.string()),\n});\n\nconst LoginEmailPayloadSchema = z.object({\n email: z.string(),\n redirect_uri: z.string(),\n});\n\nconst ResendDoiPayloadSchema = z.object({\n redirect_to_after_confirmation: z.optional(z.string()),\n});\n\nconst PreferenceSchema = z.object({\n id: z.number(),\n name: z.string(),\n description: z.union([z.string(), z.null()]),\n plugin_identifier: z.union([z.string(), z.null()]),\n position: z.number(),\n default: z.boolean(),\n hidden: z.boolean(),\n});\n\nconst PreferenceGroupSchema = z.object({\n id: z.number(),\n name: z.string(),\n position: z.number(),\n flat: z.boolean(),\n preferences: z.array(PreferenceSchema),\n});\n\nconst NewsletterSchema = z.object({\n id: z.number(),\n internal_name: z.string(),\n default: z.boolean(),\n position: z.number(),\n opt_in_type: z.string(),\n title: z.string(),\n description: z.union([z.string(), z.null()]),\n created_at: z.string(),\n updated_at: z.string(),\n preference_groups: z.array(PreferenceGroupSchema),\n});\n\nconst NewslettersResponseSchema = z.object({\n newsletters: z.array(NewsletterSchema),\n});\n\nexport type NewsletterSubscription = z.infer<typeof NewsletterSubscriptionSchema>;\nexport type NewsletterSubscriptionError = z.infer<typeof NewsletterSubscriptionErrorSchema>;\nexport type CreateSubscriptionsResponse = z.infer<typeof CreateSubscriptionsResponseSchema>;\nexport type CreateSubscriptionsPayload = z.infer<typeof CreateSubscriptionsPayloadSchema>;\nexport type AdditionalFields = z.infer<typeof AdditionalFieldsSchema>;\nexport type UpdateSubscriptionPayload = z.infer<typeof UpdateSubscriptionPayloadSchema>;\nexport type LoginEmailPayload = z.infer<typeof LoginEmailPayloadSchema>;\nexport type ResendDoiPayload = z.infer<typeof ResendDoiPayloadSchema>;\nexport type Newsletter = z.infer<typeof NewsletterSchema>;\nexport type NewslettersResponse = z.infer<typeof NewslettersResponseSchema>;\nexport type Preference = z.infer<typeof PreferenceSchema>;\nexport type PreferenceGroup = z.infer<typeof PreferenceGroupSchema>;\n\nexport type SubscriptionAuthOptions = {\n idToken?: string;\n preferenceToken?: string;\n};\n\nexport type CreateSubscriptionsResult =\n | [\"schema_validation_error\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"rate_limit_exceeded\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"unauthorized\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"newsletter_error\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"network_error\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"server_error\", ApiResponse<CreateSubscriptionsResponse>]\n | [\"error\", ApiResponse<CreateSubscriptionsResponse>]\n | [null, ApiResponse<CreateSubscriptionsResponse>];\n\nexport class NewsletterService extends EventEmitter {\n private client: ApiClient;\n private logger = createLogger(\"NewsletterService\");\n\n constructor(client: ApiClient) {\n super();\n this.client = client;\n }\n\n private buildAuthHeaders(auth?: SubscriptionAuthOptions): HeadersInit | undefined {\n if (!auth) return undefined;\n\n const headers: Record<string, string> = {};\n if (auth.idToken) {\n headers[\"X-ID-Token\"] = auth.idToken;\n }\n if (auth.preferenceToken) {\n headers[\"X-Preference-Token\"] = auth.preferenceToken;\n }\n return Object.keys(headers).length > 0 ? headers : undefined;\n }\n\n async createSubscriptions(payload: CreateSubscriptionsPayload, auth?: SubscriptionAuthOptions): Promise<CreateSubscriptionsResult> {\n CreateSubscriptionsPayloadSchema.parse(payload);\n\n const response = await this.client.post<CreateSubscriptionsResponse>(\n \"/api/sdk/v1/newsletters/newsletter_subscription\",\n payload,\n this.buildAuthHeaders(auth),\n );\n\n switch (response.status) {\n case 401:\n this.emit(\"unauthorized\", response);\n return [\"unauthorized\", response];\n case 429:\n this.logger.warn(\"Rate limit exceeded\");\n this.emit(\"rate_limit_exceeded\", response);\n return [\"rate_limit_exceeded\", response];\n case 500:\n Sentry.captureException(response);\n return [\"server_error\", response];\n case 0:\n return [\"network_error\", response];\n default:\n if (response.data) {\n try {\n const validatedData = CreateSubscriptionsResponseSchema.parse(response.data);\n\n if (validatedData.errors.length > 0) {\n this.emit(\"newsletter_error\", response);\n return [\"newsletter_error\", response];\n }\n\n return [null, response];\n } catch (_validationError) {\n return [\"schema_validation_error\", response];\n }\n }\n\n return [\"error\", response];\n }\n }\n\n async listSubscriptions(auth: SubscriptionAuthOptions): Promise<ApiResponse<NewsletterSubscription[]>> {\n return this.client.get<NewsletterSubscription[]>(\"/api/sdk/v1/newsletters/newsletter_subscription\", this.buildAuthHeaders(auth));\n }\n\n async getSubscription(internalName: string, auth: SubscriptionAuthOptions): Promise<ApiResponse<NewsletterSubscription>> {\n return this.client.get<NewsletterSubscription>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`,\n this.buildAuthHeaders(auth),\n );\n }\n\n async updateSubscription(\n internalName: string,\n payload: UpdateSubscriptionPayload,\n auth: SubscriptionAuthOptions,\n ): Promise<ApiResponse<NewsletterSubscription>> {\n UpdateSubscriptionPayloadSchema.parse(payload);\n\n return this.client.patch<NewsletterSubscription>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`,\n payload,\n this.buildAuthHeaders(auth),\n );\n }\n\n async deleteSubscription(\n internalName: string,\n auth: SubscriptionAuthOptions,\n ): Promise<ApiResponse<{ new_preference_token: string } | null>> {\n return this.client.delete<{ new_preference_token: string } | null>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`,\n this.buildAuthHeaders(auth),\n );\n }\n\n async resendDoi(internalName: string, payload: ResendDoiPayload, auth: SubscriptionAuthOptions): Promise<ApiResponse<null>> {\n ResendDoiPayloadSchema.parse(payload);\n\n return this.client.post<null>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription/resend_doi`,\n payload,\n this.buildAuthHeaders(auth),\n );\n }\n\n async sendLoginEmail(payload: LoginEmailPayload): Promise<ApiResponse<null>> {\n LoginEmailPayloadSchema.parse(payload);\n\n return this.client.post<null>(\"/api/sdk/v1/newsletters/newsletter_subscription/login_email\", payload);\n }\n\n async listNewsletters(): Promise<ApiResponse<NewslettersResponse>> {\n return this.client.get<NewslettersResponse>(\"/api/sdk/v1/newsletters\");\n }\n\n async getNewsletter(internalName: string): Promise<ApiResponse<Newsletter>> {\n return this.client.get<Newsletter>(`/api/sdk/v1/newsletters/${internalName}`);\n }\n\n onError(\n callback: (errors: z.infer<typeof NewsletterSubscriptionErrorSchema>[]) => void,\n errorIdentifier?: \"unconfirmed\" | \"already_subscribed\" | \"invalid_email\",\n ): void {\n this.on(\"newsletter_error\", (response: ApiResponse<CreateSubscriptionsResponse>) => {\n if (!response.data?.errors) {\n return;\n }\n\n const errors = errorIdentifier\n ? response.data.errors.filter((error: { error_identifier: string }) => error.error_identifier === errorIdentifier)\n : response.data.errors;\n\n if (errors.length > 0) {\n callback(errors);\n }\n });\n }\n\n onRateLimitError(callback: () => void): void {\n this.on(\"rate_limit_exceeded\", (response: ApiResponse<CreateSubscriptionsResponse>) => {\n if (response.status === 429) {\n callback();\n }\n });\n }\n}\n"]}
1
+ {"version":3,"file":"newsletters.js","sourceRoot":"","sources":["../../../src/newsletter/api/newsletters.ts"],"names":[],"mappings":"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","sourcesContent":["import * as z from \"zod\";\nimport { type ApiClientInterface, BaseService, type CommonErrors, type ServiceDependencies, type Payload, type Options } from \"../../api\";\nimport {\n CreateSubscriptionsPayloadSchema,\n CreateSubscriptionsResponseSchema,\n DeleteSubscriptionResponseSchema,\n LoginEmailPayloadSchema,\n NewsletterErrorResponseSchema,\n NewsletterSchema,\n NewsletterSubscriptionSchema,\n NewslettersResponseSchema,\n ResendDoiPayloadSchema,\n UpdateSubscriptionPayloadSchema,\n type CreateSubscriptionsPayload,\n type CreateSubscriptionsResponse,\n type LoginEmailPayload,\n type Newsletter,\n type NewsletterErrorResponse,\n type NewsletterSubscription,\n type NewslettersResponse,\n type ResendDoiPayload,\n type UpdateSubscriptionPayload,\n} from \"./schemas\";\n\n// Re-export types for external use\nexport type {\n AdditionalFields,\n CreateSubscriptionsPayload,\n CreateSubscriptionsResponse,\n LoginEmailPayload,\n Newsletter,\n NewsletterErrorResponse,\n NewsletterSubscription,\n NewsletterSubscriptionError,\n NewslettersResponse,\n Preference,\n PreferenceGroup,\n ResendDoiPayload,\n UpdateSubscriptionPayload,\n} from \"./schemas\";\n\n// Options type for newsletter methods (only preferenceToken can be passed per-call)\nexport type NewsletterOptions = { preferenceToken: string };\n\n// Argument types for unified interface\nexport type NewsletterCreateArgs = Payload<CreateSubscriptionsPayload> & Options<NewsletterOptions>;\nexport type NewsletterListArgs = Options<NewsletterOptions>;\nexport type NewsletterGetArgs = { internalName: string } & Options<NewsletterOptions>;\nexport type NewsletterUpdateArgs = { internalName: string } & Payload<UpdateSubscriptionPayload> & Options<NewsletterOptions>;\nexport type NewsletterDeleteArgs = { internalName: string } & Options<NewsletterOptions>;\nexport type NewsletterResendDoiArgs = { internalName: string } & Payload<ResendDoiPayload> & Options<NewsletterOptions>;\nexport type NewsletterSendLoginEmailArgs = Payload<LoginEmailPayload>;\nexport type NewsletterGetByNameArgs = { internalName: string };\n\n// Result types using tuples\nexport type NewsletterCreateResult =\n | CommonErrors\n | [\"rate_limit_exceeded\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [\"newsletter_error\", CreateSubscriptionsResponse]\n | [null, CreateSubscriptionsResponse];\n\nexport type NewsletterListResult =\n | CommonErrors\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, NewsletterSubscription[]];\n\nexport type NewsletterGetResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, NewsletterSubscription];\n\nexport type NewsletterUpdateResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, NewsletterSubscription];\n\nexport type NewsletterDeleteResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, { new_preference_token: string } | null];\n\nexport type NewsletterResendDoiResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"unauthorized\", NewsletterErrorResponse]\n | [\"already_confirmed\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, null];\n\nexport type NewsletterSendLoginEmailResult =\n | CommonErrors\n | [\"rate_limit_exceeded\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, null];\n\nexport type NewsletterListAllResult = CommonErrors | [\"server_error\", null] | [null, NewslettersResponse];\n\nexport type NewsletterGetByNameResult =\n | CommonErrors\n | [\"not_found\", NewsletterErrorResponse]\n | [\"server_error\", NewsletterErrorResponse]\n | [null, Newsletter];\n\nexport class NewsletterService extends BaseService {\n constructor(client: ApiClientInterface, deps?: ServiceDependencies) {\n super(client, \"NewsletterService\", deps);\n }\n\n private async buildNewsletterAuthHeaders(options?: Partial<NewsletterOptions>): Promise<HeadersInit | undefined> {\n const idToken = await this.getIdToken();\n return this.buildAuthHeaders({\n \"X-ID-Token\": idToken ?? undefined,\n \"X-Preference-Token\": options?.preferenceToken,\n });\n }\n\n /**\n * Create newsletter subscriptions for a user\n */\n async create(args: NewsletterCreateArgs): Promise<NewsletterCreateResult> {\n const { payload, options } = args;\n CreateSubscriptionsPayloadSchema.parse(payload);\n\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.post<unknown>(\"/api/sdk/v1/newsletters/newsletter_subscription\", payload, headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n switch (response.status) {\n case 401:\n return [\"unauthorized\", error];\n case 429:\n this.logger.warn(\"Rate limit exceeded\");\n return [\"rate_limit_exceeded\", error];\n case 500:\n this.errorReporter.captureException(response);\n return [\"server_error\", error];\n default:\n return [\"server_error\", error];\n }\n }\n\n const data = CreateSubscriptionsResponseSchema.parse(response.data);\n if (data.errors.length > 0) {\n return [\"newsletter_error\", data];\n }\n return [null, data];\n });\n }\n\n /**\n * List all subscriptions for the authenticated user\n */\n async list(args?: NewsletterListArgs): Promise<NewsletterListResult> {\n const headers = await this.buildNewsletterAuthHeaders(args?.options);\n const response = await this.client.get<unknown>(\"/api/sdk/v1/newsletters/newsletter_subscription\", headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n return [\"server_error\", error];\n }\n\n const data = z.array(NewsletterSubscriptionSchema).parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Get a specific subscription by newsletter internal name\n */\n async get(args: NewsletterGetArgs): Promise<NewsletterGetResult> {\n const { internalName, options } = args;\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.get<unknown>(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n return [\"server_error\", error];\n }\n\n const data = NewsletterSubscriptionSchema.parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Update a subscription's preferences\n */\n async update(args: NewsletterUpdateArgs): Promise<NewsletterUpdateResult> {\n const { internalName, payload, options } = args;\n UpdateSubscriptionPayloadSchema.parse(payload);\n\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.patch<unknown>(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, payload, headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n return [\"server_error\", error];\n }\n\n const data = NewsletterSubscriptionSchema.parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Delete a subscription\n */\n async delete(args: NewsletterDeleteArgs): Promise<NewsletterDeleteResult> {\n const { internalName, options } = args;\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.delete<unknown>(`/api/sdk/v1/newsletters/${internalName}/newsletter_subscription`, headers);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n return [\"server_error\", error];\n }\n\n const data = DeleteSubscriptionResponseSchema.parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Resend double opt-in confirmation email\n */\n async resendDoi(args: NewsletterResendDoiArgs): Promise<NewsletterResendDoiResult> {\n const { internalName, payload, options } = args;\n ResendDoiPayloadSchema.parse(payload);\n\n const headers = await this.buildNewsletterAuthHeaders(options);\n const response = await this.client.post<unknown>(\n `/api/sdk/v1/newsletters/${internalName}/newsletter_subscription/resend_doi`,\n payload,\n headers,\n );\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 401) {\n return [\"unauthorized\", error];\n }\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n if (error.error_identifier === \"already_confirmed\") {\n return [\"already_confirmed\", error];\n }\n return [\"server_error\", error];\n }\n\n return [null, null];\n });\n }\n\n /**\n * Send a login email for newsletter management\n */\n async sendLoginEmail(args: NewsletterSendLoginEmailArgs): Promise<NewsletterSendLoginEmailResult> {\n const { payload } = args;\n LoginEmailPayloadSchema.parse(payload);\n\n const response = await this.client.post<unknown>(\"/api/sdk/v1/newsletters/newsletter_subscription/login_email\", payload);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 429) {\n return [\"rate_limit_exceeded\", error];\n }\n return [\"server_error\", error];\n }\n\n return [null, null];\n });\n }\n\n /**\n * List all available newsletters\n */\n async listAll(): Promise<NewsletterListAllResult> {\n const response = await this.client.get<unknown>(\"/api/sdk/v1/newsletters\");\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n return [\"server_error\", null];\n }\n\n const data = NewslettersResponseSchema.parse(response.data);\n return [null, data];\n });\n }\n\n /**\n * Get a newsletter by its internal name\n */\n async getByName(args: NewsletterGetByNameArgs): Promise<NewsletterGetByNameResult> {\n const { internalName } = args;\n const response = await this.client.get<unknown>(`/api/sdk/v1/newsletters/${internalName}`);\n\n return this.handleResponse(response, () => {\n if (!response.success) {\n const parsed = NewsletterErrorResponseSchema.safeParse(response.data);\n const error = parsed.success ? parsed.data : { error_identifier: \"unknown_error\" };\n if (response.status === 404) {\n return [\"not_found\", error];\n }\n return [\"server_error\", error];\n }\n\n const data = NewsletterSchema.parse(response.data);\n return [null, data];\n });\n }\n}\n"]}
@@ -0,0 +1,112 @@
1
+ import * as z from "zod";
2
+ import { BaseErrorSchema } from "../../api/shared";
3
+ // Salutation enum
4
+ export const SalutationEnum = z.enum(["mr", "mrs", "mx"]);
5
+ // Newsletter subscription from API
6
+ export const NewsletterSubscriptionSchema = z.object({
7
+ id: z.number(),
8
+ email: z.string(),
9
+ newsletter_internal_name: z.string(),
10
+ preference_identifiers: z.array(z.string()),
11
+ preference_token: z.string(),
12
+ confirmed_at: z.string().nullable(),
13
+ });
14
+ // Newsletter subscription error extends base error with typed meta
15
+ export const NewsletterSubscriptionErrorSchema = BaseErrorSchema.extend({
16
+ error_details: z.record(z.string(), z.array(z.string())).optional(),
17
+ meta: z.object({
18
+ newsletter_internal_name: z.string(),
19
+ }),
20
+ });
21
+ // Create subscriptions response
22
+ export const CreateSubscriptionsResponseSchema = z.object({
23
+ results: z.array(NewsletterSubscriptionSchema),
24
+ errors: z.array(NewsletterSubscriptionErrorSchema),
25
+ });
26
+ // Additional fields for subscription creation - using .partial() for all optional fields
27
+ export const AdditionalFieldsSchema = z
28
+ .object({
29
+ first_name: z.string().nullable(),
30
+ last_name: z.string().nullable(),
31
+ salutation: SalutationEnum.nullable(),
32
+ phone_number: z.string().nullable(),
33
+ date_of_birth: z.string().nullable(),
34
+ company_name: z.string().nullable(),
35
+ address_line_1: z.string().nullable(),
36
+ address_line_2: z.string().nullable(),
37
+ city: z.string().nullable(),
38
+ postal_code: z.string().nullable(),
39
+ country_code: z.string().nullable(),
40
+ preferred_language: z.string().nullable(),
41
+ custom_attributes: z.record(z.string(), z.unknown()).nullable(),
42
+ })
43
+ .partial();
44
+ // Create subscriptions payload
45
+ export const CreateSubscriptionsPayloadSchema = z.object({
46
+ email: z.string(),
47
+ additional_fields: z.optional(AdditionalFieldsSchema),
48
+ newsletter_subscriptions: z.array(z.object({
49
+ newsletter_internal_name: z.string(),
50
+ preference_identifiers: z.optional(z.array(z.string())),
51
+ })),
52
+ redirect_to_after_confirmation: z.optional(z.string()),
53
+ });
54
+ // Update subscription payload
55
+ export const UpdateSubscriptionPayloadSchema = z.object({
56
+ preference_identifiers: z.array(z.string()),
57
+ });
58
+ // Login email payload
59
+ export const LoginEmailPayloadSchema = z.object({
60
+ email: z.string(),
61
+ redirect_uri: z.string(),
62
+ });
63
+ // Resend DOI payload
64
+ export const ResendDoiPayloadSchema = z
65
+ .object({
66
+ redirect_to_after_confirmation: z.string(),
67
+ })
68
+ .partial();
69
+ // Preference schema
70
+ export const PreferenceSchema = z.object({
71
+ id: z.number(),
72
+ name: z.string(),
73
+ description: z.string().nullable(),
74
+ plugin_identifier: z.string().nullable(),
75
+ position: z.number(),
76
+ default: z.boolean(),
77
+ hidden: z.boolean(),
78
+ });
79
+ // Preference group schema
80
+ export const PreferenceGroupSchema = z.object({
81
+ id: z.number(),
82
+ name: z.string(),
83
+ position: z.number(),
84
+ flat: z.boolean(),
85
+ preferences: z.array(PreferenceSchema),
86
+ });
87
+ // Newsletter schema
88
+ export const NewsletterSchema = z.object({
89
+ id: z.number(),
90
+ internal_name: z.string(),
91
+ default: z.boolean(),
92
+ position: z.number(),
93
+ opt_in_type: z.string(),
94
+ title: z.string(),
95
+ description: z.string().nullable(),
96
+ created_at: z.string(),
97
+ updated_at: z.string(),
98
+ preference_groups: z.array(PreferenceGroupSchema),
99
+ });
100
+ // Newsletters list response
101
+ export const NewslettersResponseSchema = z.object({
102
+ newsletters: z.array(NewsletterSchema),
103
+ });
104
+ // Delete subscription response
105
+ export const DeleteSubscriptionResponseSchema = z
106
+ .object({
107
+ new_preference_token: z.string(),
108
+ })
109
+ .nullable();
110
+ // Generic newsletter error response (extends base error)
111
+ export const NewsletterErrorResponseSchema = BaseErrorSchema;
112
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/newsletter/api/schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import * as z from \"zod\";\nimport { BaseErrorSchema } from \"../../api/shared\";\n\n// Salutation enum\nexport const SalutationEnum = z.enum([\"mr\", \"mrs\", \"mx\"]);\n\n// Newsletter subscription from API\nexport const NewsletterSubscriptionSchema = z.object({\n id: z.number(),\n email: z.string(),\n newsletter_internal_name: z.string(),\n preference_identifiers: z.array(z.string()),\n preference_token: z.string(),\n confirmed_at: z.string().nullable(),\n});\n\n// Newsletter subscription error extends base error with typed meta\nexport const NewsletterSubscriptionErrorSchema = BaseErrorSchema.extend({\n error_details: z.record(z.string(), z.array(z.string())).optional(),\n meta: z.object({\n newsletter_internal_name: z.string(),\n }),\n});\n\n// Create subscriptions response\nexport const CreateSubscriptionsResponseSchema = z.object({\n results: z.array(NewsletterSubscriptionSchema),\n errors: z.array(NewsletterSubscriptionErrorSchema),\n});\n\n// Additional fields for subscription creation - using .partial() for all optional fields\nexport const AdditionalFieldsSchema = z\n .object({\n first_name: z.string().nullable(),\n last_name: z.string().nullable(),\n salutation: SalutationEnum.nullable(),\n phone_number: z.string().nullable(),\n date_of_birth: z.string().nullable(),\n company_name: z.string().nullable(),\n address_line_1: z.string().nullable(),\n address_line_2: z.string().nullable(),\n city: z.string().nullable(),\n postal_code: z.string().nullable(),\n country_code: z.string().nullable(),\n preferred_language: z.string().nullable(),\n custom_attributes: z.record(z.string(), z.unknown()).nullable(),\n })\n .partial();\n\n// Create subscriptions payload\nexport const CreateSubscriptionsPayloadSchema = z.object({\n email: z.string(),\n additional_fields: z.optional(AdditionalFieldsSchema),\n newsletter_subscriptions: z.array(\n z.object({\n newsletter_internal_name: z.string(),\n preference_identifiers: z.optional(z.array(z.string())),\n }),\n ),\n redirect_to_after_confirmation: z.optional(z.string()),\n});\n\n// Update subscription payload\nexport const UpdateSubscriptionPayloadSchema = z.object({\n preference_identifiers: z.array(z.string()),\n});\n\n// Login email payload\nexport const LoginEmailPayloadSchema = z.object({\n email: z.string(),\n redirect_uri: z.string(),\n});\n\n// Resend DOI payload\nexport const ResendDoiPayloadSchema = z\n .object({\n redirect_to_after_confirmation: z.string(),\n })\n .partial();\n\n// Preference schema\nexport const PreferenceSchema = z.object({\n id: z.number(),\n name: z.string(),\n description: z.string().nullable(),\n plugin_identifier: z.string().nullable(),\n position: z.number(),\n default: z.boolean(),\n hidden: z.boolean(),\n});\n\n// Preference group schema\nexport const PreferenceGroupSchema = z.object({\n id: z.number(),\n name: z.string(),\n position: z.number(),\n flat: z.boolean(),\n preferences: z.array(PreferenceSchema),\n});\n\n// Newsletter schema\nexport const NewsletterSchema = z.object({\n id: z.number(),\n internal_name: z.string(),\n default: z.boolean(),\n position: z.number(),\n opt_in_type: z.string(),\n title: z.string(),\n description: z.string().nullable(),\n created_at: z.string(),\n updated_at: z.string(),\n preference_groups: z.array(PreferenceGroupSchema),\n});\n\n// Newsletters list response\nexport const NewslettersResponseSchema = z.object({\n newsletters: z.array(NewsletterSchema),\n});\n\n// Delete subscription response\nexport const DeleteSubscriptionResponseSchema = z\n .object({\n new_preference_token: z.string(),\n })\n .nullable();\n\n// Generic newsletter error response (extends base error)\nexport const NewsletterErrorResponseSchema = BaseErrorSchema;\n\n// Export types\nexport type Salutation = z.infer<typeof SalutationEnum>;\nexport type NewsletterSubscription = z.infer<typeof NewsletterSubscriptionSchema>;\nexport type NewsletterSubscriptionError = z.infer<typeof NewsletterSubscriptionErrorSchema>;\nexport type CreateSubscriptionsResponse = z.infer<typeof CreateSubscriptionsResponseSchema>;\nexport type CreateSubscriptionsPayload = z.infer<typeof CreateSubscriptionsPayloadSchema>;\nexport type AdditionalFields = z.infer<typeof AdditionalFieldsSchema>;\nexport type UpdateSubscriptionPayload = z.infer<typeof UpdateSubscriptionPayloadSchema>;\nexport type LoginEmailPayload = z.infer<typeof LoginEmailPayloadSchema>;\nexport type ResendDoiPayload = z.infer<typeof ResendDoiPayloadSchema>;\nexport type Newsletter = z.infer<typeof NewsletterSchema>;\nexport type NewslettersResponse = z.infer<typeof NewslettersResponseSchema>;\nexport type Preference = z.infer<typeof PreferenceSchema>;\nexport type PreferenceGroup = z.infer<typeof PreferenceGroupSchema>;\nexport type NewsletterErrorResponse = z.infer<typeof NewsletterErrorResponseSchema>;\n"]}