@hexclave/shared 1.0.40 → 1.0.42

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 (1066) hide show
  1. package/dist/admin-interface-Y9EZqwD6.d.ts +379 -0
  2. package/dist/admin-interface-Y9EZqwD6.d.ts.map +1 -0
  3. package/dist/admin-metrics-bsOkw4YQ.d.ts +807 -0
  4. package/dist/admin-metrics-bsOkw4YQ.d.ts.map +1 -0
  5. package/dist/ai/image-limits.d.ts.map +1 -1
  6. package/dist/ai/image-limits.js +6 -7
  7. package/dist/ai/image-limits.js.map +1 -1
  8. package/dist/ai/llms/llms.d.ts.map +1 -1
  9. package/dist/ai/llms/llms.js +2 -4
  10. package/dist/ai/llms/llms.js.map +1 -1
  11. package/dist/ai/unified-prompts/reminders.js +3 -6
  12. package/dist/ai/unified-prompts/reminders.js.map +1 -1
  13. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -1
  14. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +3 -5
  15. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -1
  16. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.js +3 -6
  17. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.js.map +1 -1
  18. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.js +3 -6
  19. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.js.map +1 -1
  20. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.js +3 -6
  21. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.js.map +1 -1
  22. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js +3 -6
  23. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js.map +1 -1
  24. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js +3 -6
  25. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js.map +1 -1
  26. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts.map +1 -1
  27. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.js +5 -6
  28. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.js.map +1 -1
  29. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js +1 -2
  30. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js.map +1 -1
  31. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js +3 -6
  32. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js.map +1 -1
  33. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js +3 -6
  34. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js.map +1 -1
  35. package/dist/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -1
  36. package/dist/ai/unified-prompts/skill-site-prompt.js +2 -4
  37. package/dist/ai/unified-prompts/skill-site-prompt.js.map +1 -1
  38. package/dist/analytics-IjkAsefy.d.ts +14 -0
  39. package/dist/analytics-IjkAsefy.d.ts.map +1 -0
  40. package/dist/apps/apps-config.d.ts.map +1 -1
  41. package/dist/apps/apps-config.js +2 -3
  42. package/dist/apps/apps-config.js.map +1 -1
  43. package/dist/apps/apps-ui.d.ts +1 -2
  44. package/dist/apps/apps-ui.d.ts.map +1 -1
  45. package/dist/apps/apps-ui.js +4 -5
  46. package/dist/apps/apps-ui.js.map +1 -1
  47. package/dist/client-interface-iIw4nU5k.d.ts +447 -0
  48. package/dist/client-interface-iIw4nU5k.d.ts.map +1 -0
  49. package/dist/config/db-sync-mappings.js +2 -3
  50. package/dist/config/db-sync-mappings.js.map +1 -1
  51. package/dist/config/format.d.ts +2 -61
  52. package/dist/config/format.js +2 -192
  53. package/dist/config/format.js.map +1 -1
  54. package/dist/config/migrate-catalogs-to-product-lines.d.ts.map +1 -1
  55. package/dist/config/migrate-catalogs-to-product-lines.js +2 -196
  56. package/dist/config/migrate-catalogs-to-product-lines.js.map +1 -1
  57. package/dist/config/schema-fuzzer.test.js +18 -172
  58. package/dist/config/schema-fuzzer.test.js.map +1 -1
  59. package/dist/config/schema.d.ts +2 -2328
  60. package/dist/config/schema.js +6 -351
  61. package/dist/config/schema.js.map +1 -1
  62. package/dist/config-authoring.d.ts +1 -1
  63. package/dist/config-authoring.d.ts.map +1 -1
  64. package/dist/config-authoring.js +2 -3
  65. package/dist/config-authoring.js.map +1 -1
  66. package/dist/config-authoring.test.js +1 -3
  67. package/dist/config-authoring.test.js.map +1 -1
  68. package/dist/config-eval.d.ts.map +1 -1
  69. package/dist/config-eval.js +4 -46
  70. package/dist/config-eval.js.map +1 -1
  71. package/dist/config-rendering.d.ts.map +1 -1
  72. package/dist/config-rendering.js +2 -48
  73. package/dist/config-rendering.js.map +1 -1
  74. package/dist/connected-accounts-D5CKe50A.d.ts +67 -0
  75. package/dist/connected-accounts-D5CKe50A.d.ts.map +1 -0
  76. package/dist/contact-channels-DW8yQxlc.d.ts +180 -0
  77. package/dist/contact-channels-DW8yQxlc.d.ts.map +1 -0
  78. package/dist/country-codes-CRWDroBE.d.ts +11 -0
  79. package/dist/country-codes-CRWDroBE.d.ts.map +1 -0
  80. package/dist/crud-CqmEW9s6.d.ts +98 -0
  81. package/dist/crud-CqmEW9s6.d.ts.map +1 -0
  82. package/dist/crud.d.ts +2 -98
  83. package/dist/crud.js +3 -71
  84. package/dist/crud.js.map +1 -1
  85. package/dist/currency-constants-Cq_q8twn.d.ts +45 -0
  86. package/dist/currency-constants-Cq_q8twn.d.ts.map +1 -0
  87. package/dist/current-user-BBoN3hsn.d.ts +284 -0
  88. package/dist/current-user-BBoN3hsn.d.ts.map +1 -0
  89. package/dist/dates-B6ne9iOR.d.ts +23 -0
  90. package/dist/dates-B6ne9iOR.d.ts.map +1 -0
  91. package/dist/email-outbox-B1wmVPRG.d.ts +1464 -0
  92. package/dist/{interface/crud/email-outbox.d.ts.map → email-outbox-B1wmVPRG.d.ts.map} +1 -1
  93. package/dist/emails-Ba4yEaCS.d.ts +40 -0
  94. package/dist/emails-Ba4yEaCS.d.ts.map +1 -0
  95. package/dist/errors-Cl-RUyed.d.ts +238 -0
  96. package/dist/errors-Cl-RUyed.d.ts.map +1 -0
  97. package/dist/esm/ai/image-limits.d.ts.map +1 -1
  98. package/dist/esm/ai/image-limits.js +5 -5
  99. package/dist/esm/ai/image-limits.js.map +1 -1
  100. package/dist/esm/ai/llms/llms.d.ts +1 -1
  101. package/dist/esm/ai/llms/llms.d.ts.map +1 -1
  102. package/dist/esm/ai/llms/llms.js +1 -2
  103. package/dist/esm/ai/llms/llms.js.map +1 -1
  104. package/dist/esm/ai/unified-prompts/reminders.js +1 -2
  105. package/dist/esm/ai/unified-prompts/reminders.js.map +1 -1
  106. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -1
  107. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +26 -28
  108. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -1
  109. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.js +1 -2
  110. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.js.map +1 -1
  111. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.js +1 -2
  112. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.js.map +1 -1
  113. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.js +1 -2
  114. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.js.map +1 -1
  115. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js +1 -2
  116. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js.map +1 -1
  117. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js +1 -2
  118. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js.map +1 -1
  119. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts.map +1 -1
  120. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.js +2 -3
  121. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.js.map +1 -1
  122. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js +1 -1
  123. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js.map +1 -1
  124. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js +1 -2
  125. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js.map +1 -1
  126. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js +1 -2
  127. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js.map +1 -1
  128. package/dist/esm/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -1
  129. package/dist/esm/ai/unified-prompts/skill-site-prompt.js +1 -2
  130. package/dist/esm/ai/unified-prompts/skill-site-prompt.js.map +1 -1
  131. package/dist/esm/apps/apps-config.d.ts.map +1 -1
  132. package/dist/esm/apps/apps-config.js +1 -1
  133. package/dist/esm/apps/apps-config.js.map +1 -1
  134. package/dist/esm/apps/apps-ui.d.ts +2 -3
  135. package/dist/esm/apps/apps-ui.d.ts.map +1 -1
  136. package/dist/esm/apps/apps-ui.js +2 -3
  137. package/dist/esm/apps/apps-ui.js.map +1 -1
  138. package/dist/esm/config/db-sync-mappings.js +1 -1
  139. package/dist/esm/config/db-sync-mappings.js.map +1 -1
  140. package/dist/esm/config/format.d.ts +1 -1
  141. package/dist/esm/config/format.d.ts.map +1 -1
  142. package/dist/esm/config/format.js +1 -190
  143. package/dist/esm/config/format.js.map +1 -1
  144. package/dist/esm/config/migrate-catalogs-to-product-lines.d.ts.map +1 -1
  145. package/dist/esm/config/migrate-catalogs-to-product-lines.js +1 -194
  146. package/dist/esm/config/migrate-catalogs-to-product-lines.js.map +1 -1
  147. package/dist/esm/config/schema-fuzzer.test.js +20 -173
  148. package/dist/esm/config/schema-fuzzer.test.js.map +1 -1
  149. package/dist/esm/config/schema.d.ts +81 -82
  150. package/dist/esm/config/schema.d.ts.map +1 -1
  151. package/dist/esm/config/schema.js +2 -347
  152. package/dist/esm/config/schema.js.map +1 -1
  153. package/dist/esm/config-authoring.d.ts +1 -1
  154. package/dist/esm/config-authoring.d.ts.map +1 -1
  155. package/dist/esm/config-authoring.js +1 -1
  156. package/dist/esm/config-authoring.js.map +1 -1
  157. package/dist/esm/config-authoring.test.js +2 -3
  158. package/dist/esm/config-authoring.test.js.map +1 -1
  159. package/dist/esm/config-eval.d.ts +1 -1
  160. package/dist/esm/config-eval.d.ts.map +1 -1
  161. package/dist/esm/config-eval.js +1 -43
  162. package/dist/esm/config-eval.js.map +1 -1
  163. package/dist/esm/config-rendering.d.ts.map +1 -1
  164. package/dist/esm/config-rendering.js +1 -46
  165. package/dist/esm/config-rendering.js.map +1 -1
  166. package/dist/esm/crud.d.ts +1 -1
  167. package/dist/esm/crud.d.ts.map +1 -1
  168. package/dist/esm/crud.js +2 -69
  169. package/dist/esm/crud.js.map +1 -1
  170. package/dist/esm/helpers/emails.js +1 -2
  171. package/dist/esm/helpers/emails.js.map +1 -1
  172. package/dist/esm/helpers/init-prompt.d.ts.map +1 -1
  173. package/dist/esm/helpers/init-prompt.js +1 -2
  174. package/dist/esm/helpers/init-prompt.js.map +1 -1
  175. package/dist/esm/helpers/password.d.ts +1 -1
  176. package/dist/esm/helpers/password.d.ts.map +1 -1
  177. package/dist/esm/helpers/password.js +1 -2
  178. package/dist/esm/helpers/password.js.map +1 -1
  179. package/dist/esm/helpers/production-mode.d.ts +1 -1
  180. package/dist/esm/helpers/production-mode.d.ts.map +1 -1
  181. package/dist/esm/helpers/production-mode.js +1 -2
  182. package/dist/esm/helpers/production-mode.js.map +1 -1
  183. package/dist/esm/helpers/support-sla.d.ts.map +1 -1
  184. package/dist/esm/helpers/support-sla.js +1 -1
  185. package/dist/esm/helpers/support-sla.js.map +1 -1
  186. package/dist/esm/helpers/support-sla.test.js +2 -3
  187. package/dist/esm/helpers/support-sla.test.js.map +1 -1
  188. package/dist/esm/helpers/vault/client-side.d.ts.map +1 -1
  189. package/dist/esm/helpers/vault/client-side.js +1 -20
  190. package/dist/esm/helpers/vault/client-side.js.map +1 -1
  191. package/dist/esm/helpers/vault/server-side.js +1 -2
  192. package/dist/esm/helpers/vault/server-side.js.map +1 -1
  193. package/dist/esm/hooks/use-async-callback.d.ts.map +1 -1
  194. package/dist/esm/hooks/use-async-callback.js +1 -2
  195. package/dist/esm/hooks/use-async-callback.js.map +1 -1
  196. package/dist/esm/hooks/use-async-external-store.d.ts +1 -1
  197. package/dist/esm/hooks/use-async-external-store.d.ts.map +1 -1
  198. package/dist/esm/hooks/use-async-external-store.js +1 -2
  199. package/dist/esm/hooks/use-async-external-store.js.map +1 -1
  200. package/dist/esm/hooks/use-hash.js +1 -2
  201. package/dist/esm/hooks/use-hash.js.map +1 -1
  202. package/dist/esm/hooks/use-hover.d.ts.map +1 -1
  203. package/dist/esm/hooks/use-hover.js +1 -2
  204. package/dist/esm/hooks/use-hover.js.map +1 -1
  205. package/dist/esm/hooks/use-strict-memo.d.ts.map +1 -1
  206. package/dist/esm/hooks/use-strict-memo.js +1 -70
  207. package/dist/esm/hooks/use-strict-memo.js.map +1 -1
  208. package/dist/esm/index.d.ts +4 -4
  209. package/dist/esm/index.js +1 -2
  210. package/dist/esm/interface/admin-interface.d.ts +19 -19
  211. package/dist/esm/interface/admin-interface.d.ts.map +1 -1
  212. package/dist/esm/interface/admin-interface.js +2 -3
  213. package/dist/esm/interface/admin-interface.js.map +1 -1
  214. package/dist/esm/interface/admin-metrics.d.ts +2 -2
  215. package/dist/esm/interface/admin-metrics.d.ts.map +1 -1
  216. package/dist/esm/interface/admin-metrics.js +1 -2
  217. package/dist/esm/interface/admin-metrics.js.map +1 -1
  218. package/dist/esm/interface/client-interface.d.ts +22 -22
  219. package/dist/esm/interface/client-interface.d.ts.map +1 -1
  220. package/dist/esm/interface/client-interface.js +32 -16
  221. package/dist/esm/interface/client-interface.js.map +1 -1
  222. package/dist/esm/interface/client-interface.test.js +84 -13
  223. package/dist/esm/interface/client-interface.test.js.map +1 -1
  224. package/dist/esm/interface/conversations.d.ts +11 -11
  225. package/dist/esm/interface/conversations.d.ts.map +1 -1
  226. package/dist/esm/interface/conversations.js +1 -2
  227. package/dist/esm/interface/conversations.js.map +1 -1
  228. package/dist/esm/interface/crud/analytics.d.ts.map +1 -1
  229. package/dist/esm/interface/crud/analytics.js +1 -1
  230. package/dist/esm/interface/crud/connected-accounts.d.ts +15 -17
  231. package/dist/esm/interface/crud/connected-accounts.d.ts.map +1 -1
  232. package/dist/esm/interface/crud/connected-accounts.js +1 -2
  233. package/dist/esm/interface/crud/connected-accounts.js.map +1 -1
  234. package/dist/esm/interface/crud/contact-channels.d.ts +24 -26
  235. package/dist/esm/interface/crud/contact-channels.d.ts.map +1 -1
  236. package/dist/esm/interface/crud/contact-channels.js +1 -2
  237. package/dist/esm/interface/crud/contact-channels.js.map +1 -1
  238. package/dist/esm/interface/crud/current-user.d.ts +11 -13
  239. package/dist/esm/interface/crud/current-user.d.ts.map +1 -1
  240. package/dist/esm/interface/crud/current-user.js +25 -29
  241. package/dist/esm/interface/crud/current-user.js.map +1 -1
  242. package/dist/esm/interface/crud/email-outbox.d.ts +10 -12
  243. package/dist/esm/interface/crud/email-outbox.d.ts.map +1 -1
  244. package/dist/esm/interface/crud/email-outbox.js +1 -2
  245. package/dist/esm/interface/crud/email-outbox.js.map +1 -1
  246. package/dist/esm/interface/crud/email-templates.d.ts +16 -18
  247. package/dist/esm/interface/crud/email-templates.d.ts.map +1 -1
  248. package/dist/esm/interface/crud/email-templates.js +1 -2
  249. package/dist/esm/interface/crud/email-templates.js.map +1 -1
  250. package/dist/esm/interface/crud/emails.d.ts +6 -8
  251. package/dist/esm/interface/crud/emails.d.ts.map +1 -1
  252. package/dist/esm/interface/crud/emails.js +1 -2
  253. package/dist/esm/interface/crud/emails.js.map +1 -1
  254. package/dist/esm/interface/crud/internal-api-keys.d.ts +16 -18
  255. package/dist/esm/interface/crud/internal-api-keys.d.ts.map +1 -1
  256. package/dist/esm/interface/crud/internal-api-keys.js +1 -2
  257. package/dist/esm/interface/crud/internal-api-keys.js.map +1 -1
  258. package/dist/esm/interface/crud/invoices.d.ts.map +1 -1
  259. package/dist/esm/interface/crud/invoices.js +1 -2
  260. package/dist/esm/interface/crud/invoices.js.map +1 -1
  261. package/dist/esm/interface/crud/items.d.ts +6 -8
  262. package/dist/esm/interface/crud/items.d.ts.map +1 -1
  263. package/dist/esm/interface/crud/items.js +12 -16
  264. package/dist/esm/interface/crud/items.js.map +1 -1
  265. package/dist/esm/interface/crud/notification-preferences.d.ts +6 -8
  266. package/dist/esm/interface/crud/notification-preferences.d.ts.map +1 -1
  267. package/dist/esm/interface/crud/notification-preferences.js +8 -12
  268. package/dist/esm/interface/crud/notification-preferences.js.map +1 -1
  269. package/dist/esm/interface/crud/oauth-providers.d.ts +24 -26
  270. package/dist/esm/interface/crud/oauth-providers.d.ts.map +1 -1
  271. package/dist/esm/interface/crud/oauth-providers.js +1 -2
  272. package/dist/esm/interface/crud/oauth-providers.js.map +1 -1
  273. package/dist/esm/interface/crud/products.d.ts +16 -17
  274. package/dist/esm/interface/crud/products.d.ts.map +1 -1
  275. package/dist/esm/interface/crud/products.js +3 -2
  276. package/dist/esm/interface/crud/products.js.map +1 -1
  277. package/dist/esm/interface/crud/project-api-keys.d.ts +3 -4
  278. package/dist/esm/interface/crud/project-api-keys.d.ts.map +1 -1
  279. package/dist/esm/interface/crud/project-api-keys.js +1 -2
  280. package/dist/esm/interface/crud/project-api-keys.js.map +1 -1
  281. package/dist/esm/interface/crud/project-permissions.d.ts +29 -31
  282. package/dist/esm/interface/crud/project-permissions.d.ts.map +1 -1
  283. package/dist/esm/interface/crud/project-permissions.js +1 -2
  284. package/dist/esm/interface/crud/project-permissions.js.map +1 -1
  285. package/dist/esm/interface/crud/projects.d.ts +28 -30
  286. package/dist/esm/interface/crud/projects.d.ts.map +1 -1
  287. package/dist/esm/interface/crud/projects.js +3 -2
  288. package/dist/esm/interface/crud/projects.js.map +1 -1
  289. package/dist/esm/interface/crud/session-replays.d.ts.map +1 -1
  290. package/dist/esm/interface/crud/session-replays.js +1 -1
  291. package/dist/esm/interface/crud/sessions.d.ts +15 -17
  292. package/dist/esm/interface/crud/sessions.d.ts.map +1 -1
  293. package/dist/esm/interface/crud/sessions.js +1 -2
  294. package/dist/esm/interface/crud/sessions.js.map +1 -1
  295. package/dist/esm/interface/crud/sign-up-rules.d.ts.map +1 -1
  296. package/dist/esm/interface/crud/sign-up-rules.js +1 -1
  297. package/dist/esm/interface/crud/svix-token.d.ts +8 -10
  298. package/dist/esm/interface/crud/svix-token.d.ts.map +1 -1
  299. package/dist/esm/interface/crud/svix-token.js +1 -2
  300. package/dist/esm/interface/crud/svix-token.js.map +1 -1
  301. package/dist/esm/interface/crud/team-invitation-details.d.ts +6 -8
  302. package/dist/esm/interface/crud/team-invitation-details.d.ts.map +1 -1
  303. package/dist/esm/interface/crud/team-invitation-details.js +1 -2
  304. package/dist/esm/interface/crud/team-invitation-details.js.map +1 -1
  305. package/dist/esm/interface/crud/team-invitation.d.ts +7 -9
  306. package/dist/esm/interface/crud/team-invitation.d.ts.map +1 -1
  307. package/dist/esm/interface/crud/team-invitation.js +1 -2
  308. package/dist/esm/interface/crud/team-invitation.js.map +1 -1
  309. package/dist/esm/interface/crud/team-member-profiles.d.ts +14 -16
  310. package/dist/esm/interface/crud/team-member-profiles.d.ts.map +1 -1
  311. package/dist/esm/interface/crud/team-member-profiles.js +1 -2
  312. package/dist/esm/interface/crud/team-member-profiles.js.map +1 -1
  313. package/dist/esm/interface/crud/team-memberships.d.ts +14 -16
  314. package/dist/esm/interface/crud/team-memberships.d.ts.map +1 -1
  315. package/dist/esm/interface/crud/team-memberships.js +1 -2
  316. package/dist/esm/interface/crud/team-memberships.js.map +1 -1
  317. package/dist/esm/interface/crud/team-permissions.d.ts +29 -31
  318. package/dist/esm/interface/crud/team-permissions.d.ts.map +1 -1
  319. package/dist/esm/interface/crud/team-permissions.js +1 -2
  320. package/dist/esm/interface/crud/team-permissions.js.map +1 -1
  321. package/dist/esm/interface/crud/teams.d.ts +36 -38
  322. package/dist/esm/interface/crud/teams.d.ts.map +1 -1
  323. package/dist/esm/interface/crud/teams.js +2 -4
  324. package/dist/esm/interface/crud/teams.js.map +1 -1
  325. package/dist/esm/interface/crud/transactions.d.ts +12 -14
  326. package/dist/esm/interface/crud/transactions.d.ts.map +1 -1
  327. package/dist/esm/interface/crud/transactions.js +7 -13
  328. package/dist/esm/interface/crud/transactions.js.map +1 -1
  329. package/dist/esm/interface/crud/users.d.ts +5 -6
  330. package/dist/esm/interface/crud/users.d.ts.map +1 -1
  331. package/dist/esm/interface/crud/users.js +9 -5
  332. package/dist/esm/interface/crud/users.js.map +1 -1
  333. package/dist/esm/interface/handler-urls.d.ts +1 -1
  334. package/dist/esm/interface/handler-urls.d.ts.map +1 -1
  335. package/dist/esm/interface/handler-urls.js +1 -2
  336. package/dist/esm/interface/page-component-versions.d.ts +1 -1
  337. package/dist/esm/interface/page-component-versions.d.ts.map +1 -1
  338. package/dist/esm/interface/page-component-versions.js +1 -2
  339. package/dist/esm/interface/page-component-versions.js.map +1 -1
  340. package/dist/esm/interface/plan-usage.d.ts +1 -1
  341. package/dist/esm/interface/plan-usage.d.ts.map +1 -1
  342. package/dist/esm/interface/plan-usage.js +1 -2
  343. package/dist/esm/interface/plan-usage.js.map +1 -1
  344. package/dist/esm/interface/server-interface.d.ts +19 -19
  345. package/dist/esm/interface/server-interface.d.ts.map +1 -1
  346. package/dist/esm/interface/server-interface.js +2 -3
  347. package/dist/esm/interface/server-interface.js.map +1 -1
  348. package/dist/esm/interface/webhooks.d.ts.map +1 -1
  349. package/dist/esm/interface/webhooks.js +1 -2
  350. package/dist/esm/interface/webhooks.js.map +1 -1
  351. package/dist/esm/known-errors.d.ts +2 -2
  352. package/dist/esm/known-errors.d.ts.map +1 -1
  353. package/dist/esm/known-errors.js +10 -21
  354. package/dist/esm/known-errors.js.map +1 -1
  355. package/dist/esm/payments/payment-methods.d.ts.map +1 -1
  356. package/dist/esm/payments/payment-methods.js +1 -1
  357. package/dist/esm/payments/payment-methods.js.map +1 -1
  358. package/dist/esm/payments/stripe-limits.d.ts.map +1 -1
  359. package/dist/esm/payments/stripe-limits.js +1 -1
  360. package/dist/esm/payments/stripe-limits.js.map +1 -1
  361. package/dist/esm/plans.d.ts.map +1 -1
  362. package/dist/esm/plans.js +1 -1
  363. package/dist/esm/plans.js.map +1 -1
  364. package/dist/esm/schema-fields.d.ts +3 -3
  365. package/dist/esm/schema-fields.d.ts.map +1 -1
  366. package/dist/esm/schema-fields.js +3 -64
  367. package/dist/esm/schema-fields.js.map +1 -1
  368. package/dist/esm/sessions.d.ts +1 -1
  369. package/dist/esm/sessions.d.ts.map +1 -1
  370. package/dist/esm/sessions.js +1 -2
  371. package/dist/esm/sessions.js.map +1 -1
  372. package/dist/esm/sessions.test.js +2 -3
  373. package/dist/esm/sessions.test.js.map +1 -1
  374. package/dist/esm/utils/analytics-clickmap-overlay.d.ts.map +1 -1
  375. package/dist/esm/utils/analytics-clickmap-overlay.js +1 -1
  376. package/dist/esm/utils/api-keys.d.ts.map +1 -1
  377. package/dist/esm/utils/api-keys.js +1 -2
  378. package/dist/esm/utils/api-keys.js.map +1 -1
  379. package/dist/esm/utils/arrays.d.ts.map +1 -1
  380. package/dist/esm/utils/arrays.js +1 -470
  381. package/dist/esm/utils/arrays.js.map +1 -1
  382. package/dist/esm/utils/auth-methods.d.ts.map +1 -1
  383. package/dist/esm/utils/auth-methods.js +1 -1
  384. package/dist/esm/utils/auth-methods.js.map +1 -1
  385. package/dist/esm/utils/base64.d.ts.map +1 -1
  386. package/dist/esm/utils/base64.js +1 -10
  387. package/dist/esm/utils/base64.js.map +1 -1
  388. package/dist/esm/utils/booleans.d.ts.map +1 -1
  389. package/dist/esm/utils/booleans.js +1 -25
  390. package/dist/esm/utils/booleans.js.map +1 -1
  391. package/dist/esm/utils/browser-compat.d.ts.map +1 -1
  392. package/dist/esm/utils/browser-compat.js +1 -1
  393. package/dist/esm/utils/browser-compat.js.map +1 -1
  394. package/dist/esm/utils/bytes.d.ts.map +1 -1
  395. package/dist/esm/utils/bytes.js +3 -198
  396. package/dist/esm/utils/bytes.js.map +1 -1
  397. package/dist/esm/utils/caches.d.ts +1 -1
  398. package/dist/esm/utils/caches.d.ts.map +1 -1
  399. package/dist/esm/utils/caches.js +1 -27
  400. package/dist/esm/utils/caches.js.map +1 -1
  401. package/dist/esm/utils/cel-fields.d.ts.map +1 -1
  402. package/dist/esm/utils/cel-fields.js +1 -2
  403. package/dist/esm/utils/cel-fields.js.map +1 -1
  404. package/dist/esm/utils/cloud-hosts.d.ts.map +1 -1
  405. package/dist/esm/utils/cloud-hosts.js +1 -27
  406. package/dist/esm/utils/cloud-hosts.js.map +1 -1
  407. package/dist/esm/utils/compile-time.d.ts.map +1 -1
  408. package/dist/esm/utils/compile-time.js +1 -1
  409. package/dist/esm/utils/compile-time.js.map +1 -1
  410. package/dist/esm/utils/country-codes.d.ts.map +1 -1
  411. package/dist/esm/utils/country-codes.js +1 -16
  412. package/dist/esm/utils/country-codes.js.map +1 -1
  413. package/dist/esm/utils/crypto.d.ts.map +1 -1
  414. package/dist/esm/utils/crypto.js +3 -113
  415. package/dist/esm/utils/crypto.js.map +1 -1
  416. package/dist/esm/utils/currencies.d.ts +1 -1
  417. package/dist/esm/utils/currencies.d.ts.map +1 -1
  418. package/dist/esm/utils/currencies.js +2 -37
  419. package/dist/esm/utils/currencies.js.map +1 -1
  420. package/dist/esm/utils/currency-constants.d.ts.map +1 -1
  421. package/dist/esm/utils/currency-constants.js +1 -1
  422. package/dist/esm/utils/currency-constants.js.map +1 -1
  423. package/dist/esm/utils/dates.d.ts.map +1 -1
  424. package/dist/esm/utils/dates.js +1 -44
  425. package/dist/esm/utils/dates.js.map +1 -1
  426. package/dist/esm/utils/dev-env-state-path.d.ts.map +1 -1
  427. package/dist/esm/utils/dev-env-state-path.js +1 -2
  428. package/dist/esm/utils/dev-env-state-path.js.map +1 -1
  429. package/dist/esm/utils/dev-tool.d.ts.map +1 -1
  430. package/dist/esm/utils/dev-tool.js +1 -1
  431. package/dist/esm/utils/dom.d.ts.map +1 -1
  432. package/dist/esm/utils/dom.js +1 -1
  433. package/dist/esm/utils/dom.js.map +1 -1
  434. package/dist/esm/utils/elements-chain.d.ts.map +1 -1
  435. package/dist/esm/utils/elements-chain.js +5 -50
  436. package/dist/esm/utils/elements-chain.js.map +1 -1
  437. package/dist/esm/utils/env.d.ts.map +1 -1
  438. package/dist/esm/utils/env.js +1 -2
  439. package/dist/esm/utils/env.js.map +1 -1
  440. package/dist/esm/utils/env.test.js +2 -3
  441. package/dist/esm/utils/env.test.js.map +1 -1
  442. package/dist/esm/utils/errors.d.ts +1 -1
  443. package/dist/esm/utils/errors.d.ts.map +1 -1
  444. package/dist/esm/utils/errors.js +1 -2
  445. package/dist/esm/utils/errors.js.map +1 -1
  446. package/dist/esm/utils/esbuild.d.ts +1 -1
  447. package/dist/esm/utils/esbuild.d.ts.map +1 -1
  448. package/dist/esm/utils/esbuild.js +2 -3
  449. package/dist/esm/utils/esbuild.js.map +1 -1
  450. package/dist/esm/utils/featurebase.d.ts.map +1 -1
  451. package/dist/esm/utils/featurebase.js +1 -2
  452. package/dist/esm/utils/featurebase.js.map +1 -1
  453. package/dist/esm/utils/fs.d.ts.map +1 -1
  454. package/dist/esm/utils/fs.js +1 -2
  455. package/dist/esm/utils/fs.js.map +1 -1
  456. package/dist/esm/utils/functions.d.ts.map +1 -1
  457. package/dist/esm/utils/functions.js +1 -24
  458. package/dist/esm/utils/functions.js.map +1 -1
  459. package/dist/esm/utils/geo.d.ts.map +1 -1
  460. package/dist/esm/utils/geo.js +1 -2
  461. package/dist/esm/utils/geo.js.map +1 -1
  462. package/dist/esm/utils/globals.d.ts.map +1 -1
  463. package/dist/esm/utils/globals.js +1 -1
  464. package/dist/esm/utils/globals.js.map +1 -1
  465. package/dist/esm/utils/hashes.d.ts.map +1 -1
  466. package/dist/esm/utils/hashes.js +1 -2
  467. package/dist/esm/utils/hashes.js.map +1 -1
  468. package/dist/esm/utils/html.d.ts.map +1 -1
  469. package/dist/esm/utils/html.js +1 -19
  470. package/dist/esm/utils/html.js.map +1 -1
  471. package/dist/esm/utils/http.d.ts.map +1 -1
  472. package/dist/esm/utils/http.js +1 -19
  473. package/dist/esm/utils/http.js.map +1 -1
  474. package/dist/esm/utils/ips.d.ts.map +1 -1
  475. package/dist/esm/utils/ips.js +1 -25
  476. package/dist/esm/utils/ips.js.map +1 -1
  477. package/dist/esm/utils/json.d.ts +1 -1
  478. package/dist/esm/utils/json.d.ts.map +1 -1
  479. package/dist/esm/utils/json.js +1 -155
  480. package/dist/esm/utils/json.js.map +1 -1
  481. package/dist/esm/utils/jsx-editable-transpiler.d.ts.map +1 -1
  482. package/dist/esm/utils/jsx-editable-transpiler.js +1 -2
  483. package/dist/esm/utils/jsx-editable-transpiler.js.map +1 -1
  484. package/dist/esm/utils/jsx-editable-transpiler.test.js +2 -3
  485. package/dist/esm/utils/jsx-editable-transpiler.test.js.map +1 -1
  486. package/dist/esm/utils/jwt.d.ts.map +1 -1
  487. package/dist/esm/utils/jwt.js +1 -2
  488. package/dist/esm/utils/jwt.js.map +1 -1
  489. package/dist/esm/utils/locks.d.ts.map +1 -1
  490. package/dist/esm/utils/locks.js +1 -2
  491. package/dist/esm/utils/locks.js.map +1 -1
  492. package/dist/esm/utils/maps.d.ts.map +1 -1
  493. package/dist/esm/utils/maps.js +1 -111
  494. package/dist/esm/utils/maps.js.map +1 -1
  495. package/dist/esm/utils/math.d.ts.map +1 -1
  496. package/dist/esm/utils/math.js +1 -11
  497. package/dist/esm/utils/math.js.map +1 -1
  498. package/dist/esm/utils/monkey-patch.d.ts.map +1 -1
  499. package/dist/esm/utils/monkey-patch.js +2 -3
  500. package/dist/esm/utils/monkey-patch.js.map +1 -1
  501. package/dist/esm/utils/node-http.js +1 -2
  502. package/dist/esm/utils/node-http.js.map +1 -1
  503. package/dist/esm/utils/numbers.d.ts.map +1 -1
  504. package/dist/esm/utils/numbers.js +1 -45
  505. package/dist/esm/utils/numbers.js.map +1 -1
  506. package/dist/esm/utils/oauth.d.ts.map +1 -1
  507. package/dist/esm/utils/oauth.js +1 -1
  508. package/dist/esm/utils/oauth.js.map +1 -1
  509. package/dist/esm/utils/objects.d.ts.map +1 -1
  510. package/dist/esm/utils/objects.js +1 -622
  511. package/dist/esm/utils/objects.js.map +1 -1
  512. package/dist/esm/utils/paginated-lists.d.ts.map +1 -1
  513. package/dist/esm/utils/paginated-lists.js +1 -2
  514. package/dist/esm/utils/paginated-lists.js.map +1 -1
  515. package/dist/esm/utils/paginated-lists.test.js +2 -3
  516. package/dist/esm/utils/paginated-lists.test.js.map +1 -1
  517. package/dist/esm/utils/passkey.d.ts +1 -1
  518. package/dist/esm/utils/passkey.js +1 -1
  519. package/dist/esm/utils/promises.d.ts +1 -1
  520. package/dist/esm/utils/promises.d.ts.map +1 -1
  521. package/dist/esm/utils/promises.js +2 -161
  522. package/dist/esm/utils/promises.js.map +1 -1
  523. package/dist/esm/utils/proxies.d.ts.map +1 -1
  524. package/dist/esm/utils/proxies.js +1 -37
  525. package/dist/esm/utils/proxies.js.map +1 -1
  526. package/dist/esm/utils/react.d.ts.map +1 -1
  527. package/dist/esm/utils/react.js +1 -41
  528. package/dist/esm/utils/react.js.map +1 -1
  529. package/dist/esm/utils/redirect-urls.d.ts.map +1 -1
  530. package/dist/esm/utils/redirect-urls.js +2 -92
  531. package/dist/esm/utils/redirect-urls.js.map +1 -1
  532. package/dist/esm/utils/regex.js +1 -1
  533. package/dist/esm/utils/regex.js.map +1 -1
  534. package/dist/esm/utils/results.d.ts.map +1 -1
  535. package/dist/esm/utils/results.js +1 -213
  536. package/dist/esm/utils/results.js.map +1 -1
  537. package/dist/esm/utils/sentry.js +1 -1
  538. package/dist/esm/utils/sentry.js.map +1 -1
  539. package/dist/esm/utils/stores.d.ts +3 -3
  540. package/dist/esm/utils/stores.d.ts.map +1 -1
  541. package/dist/esm/utils/stores.js +1 -2
  542. package/dist/esm/utils/stores.js.map +1 -1
  543. package/dist/esm/utils/strings.d.ts.map +1 -1
  544. package/dist/esm/utils/strings.js +1 -251
  545. package/dist/esm/utils/strings.js.map +1 -1
  546. package/dist/esm/utils/strings.nicify.test.js +2 -3
  547. package/dist/esm/utils/strings.nicify.test.js.map +1 -1
  548. package/dist/esm/utils/telemetry.d.ts.map +1 -1
  549. package/dist/esm/utils/telemetry.js +1 -2
  550. package/dist/esm/utils/telemetry.js.map +1 -1
  551. package/dist/esm/utils/turnstile-browser.d.ts +1 -1
  552. package/dist/esm/utils/turnstile-browser.d.ts.map +1 -1
  553. package/dist/esm/utils/turnstile-browser.js +1 -2
  554. package/dist/esm/utils/turnstile-browser.js.map +1 -1
  555. package/dist/esm/utils/turnstile-flow.d.ts +1 -1
  556. package/dist/esm/utils/turnstile-flow.d.ts.map +1 -1
  557. package/dist/esm/utils/turnstile-flow.js +1 -2
  558. package/dist/esm/utils/turnstile-flow.js.map +1 -1
  559. package/dist/esm/utils/turnstile-flow.test.js +2 -3
  560. package/dist/esm/utils/turnstile-flow.test.js.map +1 -1
  561. package/dist/esm/utils/turnstile.d.ts.map +1 -1
  562. package/dist/esm/utils/turnstile.js +1 -1
  563. package/dist/esm/utils/turnstile.js.map +1 -1
  564. package/dist/esm/utils/typed-arrays.js +1 -2
  565. package/dist/esm/utils/typed-arrays.js.map +1 -1
  566. package/dist/esm/utils/types.d.ts +1 -1
  567. package/dist/esm/utils/types.d.ts.map +1 -1
  568. package/dist/esm/utils/types.js +1 -1
  569. package/dist/esm/utils/types.js.map +1 -1
  570. package/dist/esm/utils/unicode.d.ts.map +1 -1
  571. package/dist/esm/utils/unicode.js +1 -13
  572. package/dist/esm/utils/unicode.js.map +1 -1
  573. package/dist/esm/utils/urls.d.ts.map +1 -1
  574. package/dist/esm/utils/urls.js +1 -151
  575. package/dist/esm/utils/urls.js.map +1 -1
  576. package/dist/esm/utils/uuids.d.ts.map +1 -1
  577. package/dist/esm/utils/uuids.js +2 -26
  578. package/dist/esm/utils/uuids.js.map +1 -1
  579. package/dist/format-4JG1MGv5.d.ts +61 -0
  580. package/dist/format-4JG1MGv5.d.ts.map +1 -0
  581. package/dist/handler-urls-BHt3v8Ai.d.ts +70 -0
  582. package/dist/handler-urls-BHt3v8Ai.d.ts.map +1 -0
  583. package/dist/helpers/emails.js +2 -4
  584. package/dist/helpers/emails.js.map +1 -1
  585. package/dist/helpers/init-prompt.d.ts.map +1 -1
  586. package/dist/helpers/init-prompt.js +2 -4
  587. package/dist/helpers/init-prompt.js.map +1 -1
  588. package/dist/helpers/password.d.ts +1 -1
  589. package/dist/helpers/password.d.ts.map +1 -1
  590. package/dist/helpers/password.js +2 -4
  591. package/dist/helpers/password.js.map +1 -1
  592. package/dist/helpers/production-mode.d.ts +1 -1
  593. package/dist/helpers/production-mode.d.ts.map +1 -1
  594. package/dist/helpers/production-mode.js +2 -4
  595. package/dist/helpers/production-mode.js.map +1 -1
  596. package/dist/helpers/support-sla.d.ts.map +1 -1
  597. package/dist/helpers/support-sla.js +2 -3
  598. package/dist/helpers/support-sla.js.map +1 -1
  599. package/dist/helpers/support-sla.test.js +1 -3
  600. package/dist/helpers/support-sla.test.js.map +1 -1
  601. package/dist/helpers/vault/client-side.d.ts.map +1 -1
  602. package/dist/helpers/vault/client-side.js +2 -22
  603. package/dist/helpers/vault/client-side.js.map +1 -1
  604. package/dist/helpers/vault/server-side.js +2 -4
  605. package/dist/helpers/vault/server-side.js.map +1 -1
  606. package/dist/hooks/use-async-callback.d.ts.map +1 -1
  607. package/dist/hooks/use-async-callback.js +4 -5
  608. package/dist/hooks/use-async-callback.js.map +1 -1
  609. package/dist/hooks/use-async-external-store.d.ts +1 -1
  610. package/dist/hooks/use-async-external-store.d.ts.map +1 -1
  611. package/dist/hooks/use-async-external-store.js +2 -4
  612. package/dist/hooks/use-async-external-store.js.map +1 -1
  613. package/dist/hooks/use-hash.js +2 -4
  614. package/dist/hooks/use-hash.js.map +1 -1
  615. package/dist/hooks/use-hover.d.ts.map +1 -1
  616. package/dist/hooks/use-hover.js +2 -4
  617. package/dist/hooks/use-hover.js.map +1 -1
  618. package/dist/hooks/use-strict-memo.d.ts.map +1 -1
  619. package/dist/hooks/use-strict-memo.js +2 -72
  620. package/dist/hooks/use-strict-memo.js.map +1 -1
  621. package/dist/index.d.ts +4 -4
  622. package/dist/index.js +27 -29
  623. package/dist/interface/admin-interface.d.ts +3 -379
  624. package/dist/interface/admin-interface.js +3 -5
  625. package/dist/interface/admin-interface.js.map +1 -1
  626. package/dist/interface/admin-metrics.d.ts +2 -807
  627. package/dist/interface/admin-metrics.js +2 -4
  628. package/dist/interface/admin-metrics.js.map +1 -1
  629. package/dist/interface/client-interface.d.ts +2 -447
  630. package/dist/interface/client-interface.js +33 -18
  631. package/dist/interface/client-interface.js.map +1 -1
  632. package/dist/interface/client-interface.test.js +83 -13
  633. package/dist/interface/client-interface.test.js.map +1 -1
  634. package/dist/interface/conversations.d.ts +11 -11
  635. package/dist/interface/conversations.d.ts.map +1 -1
  636. package/dist/interface/conversations.js +2 -4
  637. package/dist/interface/conversations.js.map +1 -1
  638. package/dist/interface/crud/analytics.d.ts +2 -14
  639. package/dist/interface/crud/connected-accounts.d.ts +2 -68
  640. package/dist/interface/crud/connected-accounts.js +2 -4
  641. package/dist/interface/crud/connected-accounts.js.map +1 -1
  642. package/dist/interface/crud/contact-channels.d.ts +2 -181
  643. package/dist/interface/crud/contact-channels.js +2 -4
  644. package/dist/interface/crud/contact-channels.js.map +1 -1
  645. package/dist/interface/crud/current-user.d.ts +2 -285
  646. package/dist/interface/crud/current-user.js +2 -4
  647. package/dist/interface/crud/current-user.js.map +1 -1
  648. package/dist/interface/crud/email-outbox.d.ts +2 -1465
  649. package/dist/interface/crud/email-outbox.js +4 -5
  650. package/dist/interface/crud/email-outbox.js.map +1 -1
  651. package/dist/interface/crud/email-templates.d.ts +15 -16
  652. package/dist/interface/crud/email-templates.d.ts.map +1 -1
  653. package/dist/interface/crud/email-templates.js +2 -4
  654. package/dist/interface/crud/email-templates.js.map +1 -1
  655. package/dist/interface/crud/emails.d.ts +2 -41
  656. package/dist/interface/crud/emails.js +4 -5
  657. package/dist/interface/crud/emails.js.map +1 -1
  658. package/dist/interface/crud/internal-api-keys.d.ts +2 -140
  659. package/dist/interface/crud/internal-api-keys.js +2 -4
  660. package/dist/interface/crud/internal-api-keys.js.map +1 -1
  661. package/dist/interface/crud/invoices.d.ts +2 -43
  662. package/dist/interface/crud/invoices.js +2 -4
  663. package/dist/interface/crud/invoices.js.map +1 -1
  664. package/dist/interface/crud/items.d.ts +2 -30
  665. package/dist/interface/crud/items.js +2 -4
  666. package/dist/interface/crud/items.js.map +1 -1
  667. package/dist/interface/crud/notification-preferences.d.ts +2 -38
  668. package/dist/interface/crud/notification-preferences.js +2 -4
  669. package/dist/interface/crud/notification-preferences.js.map +1 -1
  670. package/dist/interface/crud/oauth-providers.d.ts +2 -186
  671. package/dist/interface/crud/oauth-providers.js +2 -4
  672. package/dist/interface/crud/oauth-providers.js.map +1 -1
  673. package/dist/interface/crud/products.d.ts +2 -182
  674. package/dist/interface/crud/products.js +4 -4
  675. package/dist/interface/crud/products.js.map +1 -1
  676. package/dist/interface/crud/project-api-keys.d.ts +2 -203
  677. package/dist/interface/crud/project-api-keys.js +2 -4
  678. package/dist/interface/crud/project-api-keys.js.map +1 -1
  679. package/dist/interface/crud/project-permissions.d.ts +2 -161
  680. package/dist/interface/crud/project-permissions.js +4 -5
  681. package/dist/interface/crud/project-permissions.js.map +1 -1
  682. package/dist/interface/crud/projects.d.ts +2 -901
  683. package/dist/interface/crud/projects.js +6 -5
  684. package/dist/interface/crud/projects.js.map +1 -1
  685. package/dist/interface/crud/session-replays.d.ts +2 -83
  686. package/dist/interface/crud/sessions.d.ts +2 -150
  687. package/dist/interface/crud/sessions.js +2 -4
  688. package/dist/interface/crud/sessions.js.map +1 -1
  689. package/dist/interface/crud/sign-up-rules.d.ts.map +1 -1
  690. package/dist/interface/crud/svix-token.d.ts +2 -31
  691. package/dist/interface/crud/svix-token.js +2 -4
  692. package/dist/interface/crud/svix-token.js.map +1 -1
  693. package/dist/interface/crud/team-invitation-details.d.ts +5 -6
  694. package/dist/interface/crud/team-invitation-details.d.ts.map +1 -1
  695. package/dist/interface/crud/team-invitation-details.js +4 -5
  696. package/dist/interface/crud/team-invitation-details.js.map +1 -1
  697. package/dist/interface/crud/team-invitation.d.ts +2 -54
  698. package/dist/interface/crud/team-invitation.js +4 -5
  699. package/dist/interface/crud/team-invitation.js.map +1 -1
  700. package/dist/interface/crud/team-member-profiles.d.ts +2 -286
  701. package/dist/interface/crud/team-member-profiles.js +4 -5
  702. package/dist/interface/crud/team-member-profiles.js.map +1 -1
  703. package/dist/interface/crud/team-memberships.d.ts +2 -75
  704. package/dist/interface/crud/team-memberships.js +2 -4
  705. package/dist/interface/crud/team-memberships.js.map +1 -1
  706. package/dist/interface/crud/team-permissions.d.ts +2 -169
  707. package/dist/interface/crud/team-permissions.js +4 -5
  708. package/dist/interface/crud/team-permissions.js.map +1 -1
  709. package/dist/interface/crud/teams.d.ts +2 -299
  710. package/dist/interface/crud/teams.js +5 -7
  711. package/dist/interface/crud/teams.js.map +1 -1
  712. package/dist/interface/crud/transactions.d.ts +2 -183
  713. package/dist/interface/crud/transactions.js +2 -4
  714. package/dist/interface/crud/transactions.js.map +1 -1
  715. package/dist/interface/crud/users.d.ts +2 -653
  716. package/dist/interface/crud/users.js +12 -8
  717. package/dist/interface/crud/users.js.map +1 -1
  718. package/dist/interface/handler-urls.d.ts +2 -51
  719. package/dist/interface/handler-urls.js +12 -14
  720. package/dist/interface/page-component-versions.d.ts +2 -25
  721. package/dist/interface/page-component-versions.js +2 -4
  722. package/dist/interface/page-component-versions.js.map +1 -1
  723. package/dist/interface/plan-usage.d.ts +2 -57
  724. package/dist/interface/plan-usage.js +2 -4
  725. package/dist/interface/plan-usage.js.map +1 -1
  726. package/dist/interface/server-interface.d.ts +2 -257
  727. package/dist/interface/server-interface.js +3 -5
  728. package/dist/interface/server-interface.js.map +1 -1
  729. package/dist/interface/webhooks.d.ts +2 -326
  730. package/dist/interface/webhooks.js +2 -4
  731. package/dist/interface/webhooks.js.map +1 -1
  732. package/dist/internal-api-keys-D8IYDodH.d.ts +139 -0
  733. package/dist/internal-api-keys-D8IYDodH.d.ts.map +1 -0
  734. package/dist/invoices-CHo9YKbI.d.ts +43 -0
  735. package/dist/invoices-CHo9YKbI.d.ts.map +1 -0
  736. package/dist/items-DlLSlVUD.d.ts +29 -0
  737. package/dist/items-DlLSlVUD.d.ts.map +1 -0
  738. package/dist/json-a1QIXu5z.d.ts +15 -0
  739. package/dist/json-a1QIXu5z.d.ts.map +1 -0
  740. package/dist/known-errors-Bm4a61wL.d.ts +575 -0
  741. package/dist/known-errors-Bm4a61wL.d.ts.map +1 -0
  742. package/dist/known-errors.d.ts +2 -575
  743. package/dist/known-errors.js +11 -23
  744. package/dist/known-errors.js.map +1 -1
  745. package/dist/notification-preferences-Bmzr_EOY.d.ts +37 -0
  746. package/dist/notification-preferences-Bmzr_EOY.d.ts.map +1 -0
  747. package/dist/oauth-providers-BMkKSSlA.d.ts +185 -0
  748. package/dist/oauth-providers-BMkKSSlA.d.ts.map +1 -0
  749. package/dist/objects-DkCkeBWE.d.ts +59 -0
  750. package/dist/objects-DkCkeBWE.d.ts.map +1 -0
  751. package/dist/passkey-CKg87UH-.d.ts +2 -0
  752. package/dist/payments/payment-methods.d.ts.map +1 -1
  753. package/dist/payments/payment-methods.js +2 -3
  754. package/dist/payments/payment-methods.js.map +1 -1
  755. package/dist/payments/stripe-limits.d.ts.map +1 -1
  756. package/dist/payments/stripe-limits.js +2 -3
  757. package/dist/payments/stripe-limits.js.map +1 -1
  758. package/dist/plan-usage-DfDoj5K4.d.ts +57 -0
  759. package/dist/plan-usage-DfDoj5K4.d.ts.map +1 -0
  760. package/dist/plans.d.ts.map +1 -1
  761. package/dist/plans.js +2 -3
  762. package/dist/plans.js.map +1 -1
  763. package/dist/products-Bs74ld-v.d.ts +182 -0
  764. package/dist/products-Bs74ld-v.d.ts.map +1 -0
  765. package/dist/project-api-keys--7V5X_UW.d.ts +203 -0
  766. package/dist/project-api-keys--7V5X_UW.d.ts.map +1 -0
  767. package/dist/project-permissions-kdi675F-.d.ts +160 -0
  768. package/dist/project-permissions-kdi675F-.d.ts.map +1 -0
  769. package/dist/projects-CFTNXRfG.d.ts +900 -0
  770. package/dist/projects-CFTNXRfG.d.ts.map +1 -0
  771. package/dist/results-DP3BzoL6.d.ts +70 -0
  772. package/dist/results-DP3BzoL6.d.ts.map +1 -0
  773. package/dist/{chunk-BE-pF4vm.js → rolldown-runtime-D6vf50IK.js} +12 -18
  774. package/dist/schema-CJwkGkdf.d.ts +2328 -0
  775. package/dist/schema-CJwkGkdf.d.ts.map +1 -0
  776. package/dist/schema-fields-DqGQ4kF7.d.ts +517 -0
  777. package/dist/schema-fields-DqGQ4kF7.d.ts.map +1 -0
  778. package/dist/schema-fields.d.ts +3 -518
  779. package/dist/schema-fields.js +21 -82
  780. package/dist/schema-fields.js.map +1 -1
  781. package/dist/server-interface-CgpxsLT_.d.ts +257 -0
  782. package/dist/server-interface-CgpxsLT_.d.ts.map +1 -0
  783. package/dist/session-replays-CXqhDpZq.d.ts +83 -0
  784. package/dist/session-replays-CXqhDpZq.d.ts.map +1 -0
  785. package/dist/sessions-B7Ko2Ldr.d.ts +149 -0
  786. package/dist/sessions-B7Ko2Ldr.d.ts.map +1 -0
  787. package/dist/sessions-d8qtvBUB.d.ts +175 -0
  788. package/dist/sessions-d8qtvBUB.d.ts.map +1 -0
  789. package/dist/sessions.d.ts +2 -175
  790. package/dist/sessions.js +4 -5
  791. package/dist/sessions.js.map +1 -1
  792. package/dist/sessions.test.js +1 -3
  793. package/dist/sessions.test.js.map +1 -1
  794. package/dist/strings-DWgkUybS.d.ts +76 -0
  795. package/dist/strings-DWgkUybS.d.ts.map +1 -0
  796. package/dist/svix-token-BsMrLGvy.d.ts +30 -0
  797. package/dist/svix-token-BsMrLGvy.d.ts.map +1 -0
  798. package/dist/team-invitation-Cyqt9oWw.d.ts +53 -0
  799. package/dist/team-invitation-Cyqt9oWw.d.ts.map +1 -0
  800. package/dist/team-member-profiles-BoDEqx-0.d.ts +285 -0
  801. package/dist/team-member-profiles-BoDEqx-0.d.ts.map +1 -0
  802. package/dist/team-memberships-DZHk2A5b.d.ts +74 -0
  803. package/dist/team-memberships-DZHk2A5b.d.ts.map +1 -0
  804. package/dist/team-permissions-DqOpaOWh.d.ts +168 -0
  805. package/dist/team-permissions-DqOpaOWh.d.ts.map +1 -0
  806. package/dist/teams-CQMcBnjM.d.ts +298 -0
  807. package/dist/teams-CQMcBnjM.d.ts.map +1 -0
  808. package/dist/transactions-DhnbvGH5.d.ts +182 -0
  809. package/dist/transactions-DhnbvGH5.d.ts.map +1 -0
  810. package/dist/types-DfTcxNtM.d.ts +77 -0
  811. package/dist/types-DfTcxNtM.d.ts.map +1 -0
  812. package/dist/users-DHNRwoSz.d.ts +653 -0
  813. package/dist/users-DHNRwoSz.d.ts.map +1 -0
  814. package/dist/utils/analytics-clickmap-overlay.d.ts.map +1 -1
  815. package/dist/utils/analytics-clickmap-overlay.js +2 -3
  816. package/dist/utils/analytics-clickmap-overlay.js.map +1 -1
  817. package/dist/utils/api-keys.d.ts.map +1 -1
  818. package/dist/utils/api-keys.js +4 -5
  819. package/dist/utils/api-keys.js.map +1 -1
  820. package/dist/utils/arrays.d.ts.map +1 -1
  821. package/dist/utils/arrays.js +2 -472
  822. package/dist/utils/arrays.js.map +1 -1
  823. package/dist/utils/auth-methods.d.ts.map +1 -1
  824. package/dist/utils/auth-methods.js +2 -3
  825. package/dist/utils/auth-methods.js.map +1 -1
  826. package/dist/utils/base64.d.ts.map +1 -1
  827. package/dist/utils/base64.js +2 -12
  828. package/dist/utils/base64.js.map +1 -1
  829. package/dist/utils/booleans.d.ts.map +1 -1
  830. package/dist/utils/booleans.js +2 -27
  831. package/dist/utils/booleans.js.map +1 -1
  832. package/dist/utils/browser-compat.d.ts.map +1 -1
  833. package/dist/utils/browser-compat.js +2 -3
  834. package/dist/utils/browser-compat.js.map +1 -1
  835. package/dist/utils/bytes.d.ts.map +1 -1
  836. package/dist/utils/bytes.js +4 -200
  837. package/dist/utils/bytes.js.map +1 -1
  838. package/dist/utils/caches.d.ts.map +1 -1
  839. package/dist/utils/caches.js +2 -29
  840. package/dist/utils/caches.js.map +1 -1
  841. package/dist/utils/cel-fields.d.ts.map +1 -1
  842. package/dist/utils/cel-fields.js +2 -4
  843. package/dist/utils/cel-fields.js.map +1 -1
  844. package/dist/utils/cloud-hosts.d.ts.map +1 -1
  845. package/dist/utils/cloud-hosts.js +2 -29
  846. package/dist/utils/cloud-hosts.js.map +1 -1
  847. package/dist/utils/compile-time.d.ts.map +1 -1
  848. package/dist/utils/compile-time.js +2 -3
  849. package/dist/utils/compile-time.js.map +1 -1
  850. package/dist/utils/country-codes.d.ts +2 -11
  851. package/dist/utils/country-codes.js +2 -18
  852. package/dist/utils/country-codes.js.map +1 -1
  853. package/dist/utils/crypto.d.ts.map +1 -1
  854. package/dist/utils/crypto.js +4 -115
  855. package/dist/utils/crypto.js.map +1 -1
  856. package/dist/utils/currencies.d.ts +1 -1
  857. package/dist/utils/currencies.d.ts.map +1 -1
  858. package/dist/utils/currencies.js +3 -39
  859. package/dist/utils/currencies.js.map +1 -1
  860. package/dist/utils/currency-constants.d.ts +2 -45
  861. package/dist/utils/currency-constants.js +2 -3
  862. package/dist/utils/currency-constants.js.map +1 -1
  863. package/dist/utils/dates.d.ts +2 -23
  864. package/dist/utils/dates.js +2 -46
  865. package/dist/utils/dates.js.map +1 -1
  866. package/dist/utils/dev-env-state-path.d.ts.map +1 -1
  867. package/dist/utils/dev-env-state-path.js +2 -4
  868. package/dist/utils/dev-env-state-path.js.map +1 -1
  869. package/dist/utils/dev-tool.d.ts.map +1 -1
  870. package/dist/utils/dev-tool.js +2 -3
  871. package/dist/utils/dev-tool.js.map +1 -1
  872. package/dist/utils/dom.d.ts.map +1 -1
  873. package/dist/utils/dom.js +2 -3
  874. package/dist/utils/dom.js.map +1 -1
  875. package/dist/utils/elements-chain.d.ts.map +1 -1
  876. package/dist/utils/elements-chain.js +6 -52
  877. package/dist/utils/elements-chain.js.map +1 -1
  878. package/dist/utils/env.d.ts.map +1 -1
  879. package/dist/utils/env.js +2 -4
  880. package/dist/utils/env.js.map +1 -1
  881. package/dist/utils/env.test.js +1 -3
  882. package/dist/utils/env.test.js.map +1 -1
  883. package/dist/utils/errors.d.ts +2 -238
  884. package/dist/utils/errors.js +2 -4
  885. package/dist/utils/errors.js.map +1 -1
  886. package/dist/utils/esbuild.d.ts +1 -1
  887. package/dist/utils/esbuild.d.ts.map +1 -1
  888. package/dist/utils/esbuild.js +5 -6
  889. package/dist/utils/esbuild.js.map +1 -1
  890. package/dist/utils/featurebase.d.ts.map +1 -1
  891. package/dist/utils/featurebase.js +2 -4
  892. package/dist/utils/featurebase.js.map +1 -1
  893. package/dist/utils/fs.d.ts.map +1 -1
  894. package/dist/utils/fs.js +5 -6
  895. package/dist/utils/fs.js.map +1 -1
  896. package/dist/utils/functions.d.ts.map +1 -1
  897. package/dist/utils/functions.js +2 -26
  898. package/dist/utils/functions.js.map +1 -1
  899. package/dist/utils/geo.d.ts.map +1 -1
  900. package/dist/utils/geo.js +2 -4
  901. package/dist/utils/geo.js.map +1 -1
  902. package/dist/utils/globals.d.ts.map +1 -1
  903. package/dist/utils/globals.js +2 -3
  904. package/dist/utils/globals.js.map +1 -1
  905. package/dist/utils/hashes.d.ts.map +1 -1
  906. package/dist/utils/hashes.js +4 -5
  907. package/dist/utils/hashes.js.map +1 -1
  908. package/dist/utils/html.d.ts.map +1 -1
  909. package/dist/utils/html.js +2 -21
  910. package/dist/utils/html.js.map +1 -1
  911. package/dist/utils/http.d.ts.map +1 -1
  912. package/dist/utils/http.js +2 -21
  913. package/dist/utils/http.js.map +1 -1
  914. package/dist/utils/ips.d.ts.map +1 -1
  915. package/dist/utils/ips.js +4 -28
  916. package/dist/utils/ips.js.map +1 -1
  917. package/dist/utils/json.d.ts +2 -15
  918. package/dist/utils/json.js +2 -157
  919. package/dist/utils/json.js.map +1 -1
  920. package/dist/utils/jsx-editable-transpiler.d.ts.map +1 -1
  921. package/dist/utils/jsx-editable-transpiler.js +7 -8
  922. package/dist/utils/jsx-editable-transpiler.js.map +1 -1
  923. package/dist/utils/jsx-editable-transpiler.test.js +1 -3
  924. package/dist/utils/jsx-editable-transpiler.test.js.map +1 -1
  925. package/dist/utils/jwt.d.ts.map +1 -1
  926. package/dist/utils/jwt.js +6 -7
  927. package/dist/utils/jwt.js.map +1 -1
  928. package/dist/utils/locks.d.ts.map +1 -1
  929. package/dist/utils/locks.js +2 -4
  930. package/dist/utils/locks.js.map +1 -1
  931. package/dist/utils/maps.d.ts.map +1 -1
  932. package/dist/utils/maps.js +2 -113
  933. package/dist/utils/maps.js.map +1 -1
  934. package/dist/utils/math.d.ts.map +1 -1
  935. package/dist/utils/math.js +2 -13
  936. package/dist/utils/math.js.map +1 -1
  937. package/dist/utils/monkey-patch.d.ts.map +1 -1
  938. package/dist/utils/monkey-patch.js +3 -5
  939. package/dist/utils/monkey-patch.js.map +1 -1
  940. package/dist/utils/node-http.js +2 -4
  941. package/dist/utils/node-http.js.map +1 -1
  942. package/dist/utils/numbers.d.ts.map +1 -1
  943. package/dist/utils/numbers.js +2 -47
  944. package/dist/utils/numbers.js.map +1 -1
  945. package/dist/utils/oauth.d.ts.map +1 -1
  946. package/dist/utils/oauth.js +2 -3
  947. package/dist/utils/oauth.js.map +1 -1
  948. package/dist/utils/objects.d.ts +2 -59
  949. package/dist/utils/objects.js +2 -624
  950. package/dist/utils/objects.js.map +1 -1
  951. package/dist/utils/paginated-lists.d.ts.map +1 -1
  952. package/dist/utils/paginated-lists.js +2 -4
  953. package/dist/utils/paginated-lists.js.map +1 -1
  954. package/dist/utils/paginated-lists.test.js +1 -3
  955. package/dist/utils/paginated-lists.test.js.map +1 -1
  956. package/dist/utils/passkey.d.ts +2 -2
  957. package/dist/utils/promises.d.ts +1 -1
  958. package/dist/utils/promises.d.ts.map +1 -1
  959. package/dist/utils/promises.js +3 -163
  960. package/dist/utils/promises.js.map +1 -1
  961. package/dist/utils/proxies.d.ts.map +1 -1
  962. package/dist/utils/proxies.js +2 -39
  963. package/dist/utils/proxies.js.map +1 -1
  964. package/dist/utils/react.d.ts.map +1 -1
  965. package/dist/utils/react.js +4 -44
  966. package/dist/utils/react.js.map +1 -1
  967. package/dist/utils/redirect-urls.d.ts.map +1 -1
  968. package/dist/utils/redirect-urls.js +3 -94
  969. package/dist/utils/redirect-urls.js.map +1 -1
  970. package/dist/utils/regex.js +2 -3
  971. package/dist/utils/regex.js.map +1 -1
  972. package/dist/utils/results.d.ts +2 -70
  973. package/dist/utils/results.js +2 -215
  974. package/dist/utils/results.js.map +1 -1
  975. package/dist/utils/sentry.js +2 -3
  976. package/dist/utils/sentry.js.map +1 -1
  977. package/dist/utils/stores.d.ts +1 -1
  978. package/dist/utils/stores.d.ts.map +1 -1
  979. package/dist/utils/stores.js +2 -4
  980. package/dist/utils/stores.js.map +1 -1
  981. package/dist/utils/strings.d.ts +2 -76
  982. package/dist/utils/strings.js +2 -253
  983. package/dist/utils/strings.js.map +1 -1
  984. package/dist/utils/strings.nicify.test.js +1 -3
  985. package/dist/utils/strings.nicify.test.js.map +1 -1
  986. package/dist/utils/telemetry.d.ts.map +1 -1
  987. package/dist/utils/telemetry.js +2 -4
  988. package/dist/utils/telemetry.js.map +1 -1
  989. package/dist/utils/turnstile-browser.d.ts.map +1 -1
  990. package/dist/utils/turnstile-browser.js +2 -4
  991. package/dist/utils/turnstile-browser.js.map +1 -1
  992. package/dist/utils/turnstile-flow.d.ts.map +1 -1
  993. package/dist/utils/turnstile-flow.js +2 -4
  994. package/dist/utils/turnstile-flow.js.map +1 -1
  995. package/dist/utils/turnstile-flow.test.js +1 -3
  996. package/dist/utils/turnstile-flow.test.js.map +1 -1
  997. package/dist/utils/turnstile.d.ts.map +1 -1
  998. package/dist/utils/turnstile.js +2 -3
  999. package/dist/utils/turnstile.js.map +1 -1
  1000. package/dist/utils/typed-arrays.js +2 -4
  1001. package/dist/utils/typed-arrays.js.map +1 -1
  1002. package/dist/utils/types.d.ts +2 -77
  1003. package/dist/utils/types.js +2 -3
  1004. package/dist/utils/types.js.map +1 -1
  1005. package/dist/utils/unicode.d.ts.map +1 -1
  1006. package/dist/utils/unicode.js +2 -15
  1007. package/dist/utils/unicode.js.map +1 -1
  1008. package/dist/utils/urls.d.ts.map +1 -1
  1009. package/dist/utils/urls.js +2 -153
  1010. package/dist/utils/urls.js.map +1 -1
  1011. package/dist/utils/uuids.d.ts.map +1 -1
  1012. package/dist/utils/uuids.js +3 -28
  1013. package/dist/utils/uuids.js.map +1 -1
  1014. package/dist/webhooks-8Ts1Clcb.d.ts +326 -0
  1015. package/dist/webhooks-8Ts1Clcb.d.ts.map +1 -0
  1016. package/package.json +2 -8
  1017. package/src/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.ts +1 -0
  1018. package/src/interface/client-interface.test.ts +77 -12
  1019. package/src/interface/client-interface.ts +9 -9
  1020. package/dist/config/format.d.ts.map +0 -1
  1021. package/dist/config/schema.d.ts.map +0 -1
  1022. package/dist/crud.d.ts.map +0 -1
  1023. package/dist/interface/admin-interface.d.ts.map +0 -1
  1024. package/dist/interface/admin-metrics.d.ts.map +0 -1
  1025. package/dist/interface/client-interface.d.ts.map +0 -1
  1026. package/dist/interface/crud/analytics.d.ts.map +0 -1
  1027. package/dist/interface/crud/connected-accounts.d.ts.map +0 -1
  1028. package/dist/interface/crud/contact-channels.d.ts.map +0 -1
  1029. package/dist/interface/crud/current-user.d.ts.map +0 -1
  1030. package/dist/interface/crud/emails.d.ts.map +0 -1
  1031. package/dist/interface/crud/internal-api-keys.d.ts.map +0 -1
  1032. package/dist/interface/crud/invoices.d.ts.map +0 -1
  1033. package/dist/interface/crud/items.d.ts.map +0 -1
  1034. package/dist/interface/crud/notification-preferences.d.ts.map +0 -1
  1035. package/dist/interface/crud/oauth-providers.d.ts.map +0 -1
  1036. package/dist/interface/crud/products.d.ts.map +0 -1
  1037. package/dist/interface/crud/project-api-keys.d.ts.map +0 -1
  1038. package/dist/interface/crud/project-permissions.d.ts.map +0 -1
  1039. package/dist/interface/crud/projects.d.ts.map +0 -1
  1040. package/dist/interface/crud/session-replays.d.ts.map +0 -1
  1041. package/dist/interface/crud/sessions.d.ts.map +0 -1
  1042. package/dist/interface/crud/svix-token.d.ts.map +0 -1
  1043. package/dist/interface/crud/team-invitation.d.ts.map +0 -1
  1044. package/dist/interface/crud/team-member-profiles.d.ts.map +0 -1
  1045. package/dist/interface/crud/team-memberships.d.ts.map +0 -1
  1046. package/dist/interface/crud/team-permissions.d.ts.map +0 -1
  1047. package/dist/interface/crud/teams.d.ts.map +0 -1
  1048. package/dist/interface/crud/transactions.d.ts.map +0 -1
  1049. package/dist/interface/crud/users.d.ts.map +0 -1
  1050. package/dist/interface/handler-urls.d.ts.map +0 -1
  1051. package/dist/interface/page-component-versions.d.ts.map +0 -1
  1052. package/dist/interface/plan-usage.d.ts.map +0 -1
  1053. package/dist/interface/server-interface.d.ts.map +0 -1
  1054. package/dist/interface/webhooks.d.ts.map +0 -1
  1055. package/dist/known-errors.d.ts.map +0 -1
  1056. package/dist/schema-fields.d.ts.map +0 -1
  1057. package/dist/sessions.d.ts.map +0 -1
  1058. package/dist/utils/country-codes.d.ts.map +0 -1
  1059. package/dist/utils/currency-constants.d.ts.map +0 -1
  1060. package/dist/utils/dates.d.ts.map +0 -1
  1061. package/dist/utils/errors.d.ts.map +0 -1
  1062. package/dist/utils/json.d.ts.map +0 -1
  1063. package/dist/utils/objects.d.ts.map +0 -1
  1064. package/dist/utils/results.d.ts.map +0 -1
  1065. package/dist/utils/strings.d.ts.map +0 -1
  1066. package/dist/utils/types.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"known-errors.js","names":[],"sources":["../../src/known-errors.tsx"],"sourcesContent":["import { HexclaveAssertionError, StatusError, throwErr } from \"./utils/errors\";\nimport { identityArgs } from \"./utils/functions\";\nimport { Json } from \"./utils/json\";\nimport { deindent } from \"./utils/strings\";\n\nexport type KnownErrorJson = {\n code: string,\n message: string,\n details?: Json,\n};\n\nexport type AbstractKnownErrorConstructor<Args extends any[]> =\n & (abstract new (...args: Args) => KnownError)\n & {\n constructorArgsFromJson: (json: KnownErrorJson) => Args,\n };\n\nexport type KnownErrorConstructor<SuperInstance extends KnownError, Args extends any[]> = {\n new(...args: Args): SuperInstance & { constructorArgs: Args },\n errorCode: string,\n constructorArgsFromJson: (json: KnownErrorJson) => Args,\n isInstance: (error: unknown) => error is SuperInstance & { constructorArgs: Args },\n};\n\nexport abstract class KnownError extends StatusError {\n private readonly __stackKnownErrorBrand = \"stack-known-error-brand-sentinel\" as const;\n public name = \"KnownError\";\n\n constructor(\n public readonly statusCode: number,\n public readonly humanReadableMessage: string,\n public readonly details?: Json,\n ) {\n super(\n statusCode,\n humanReadableMessage\n );\n }\n\n public static isKnownError(error: unknown): error is KnownError {\n // like instanceof, but also works for errors thrown in other realms or by different versions of the same package\n return typeof error === \"object\" && error !== null && \"__stackKnownErrorBrand\" in error && error.__stackKnownErrorBrand === \"stack-known-error-brand-sentinel\";\n }\n\n public override getBody(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toDescriptiveJson(), undefined, 2));\n }\n\n public override getHeaders(): Record<string, string[]> {\n return {\n \"Content-Type\": [\"application/json; charset=utf-8\"],\n // Hexclave rebrand: dual-emit both X-Hexclave-* and X-Stack-* so old and new SDKs can both read it.\n \"X-Stack-Known-Error\": [this.errorCode],\n \"X-Hexclave-Known-Error\": [this.errorCode],\n };\n }\n\n public override toDescriptiveJson(): Json {\n return {\n code: this.errorCode,\n ...this.details ? { details: this.details } : {},\n error: this.humanReadableMessage,\n };\n }\n\n get errorCode(): string {\n return (this.constructor as any).errorCode ?? throwErr(`Can't find error code for this KnownError. Is its constructor a KnownErrorConstructor? ${this}`);\n }\n\n public static constructorArgsFromJson(json: KnownErrorJson): ConstructorParameters<typeof KnownError> {\n return [\n 400,\n json.message,\n json,\n ];\n }\n\n public static fromJson(json: KnownErrorJson): KnownError {\n for (const [_, KnownErrorType] of Object.entries(KnownErrors)) {\n if (json.code === KnownErrorType.prototype.errorCode) {\n const constructorArgs = KnownErrorType.constructorArgsFromJson(json);\n return new KnownErrorType(\n // @ts-ignore-next-line\n ...constructorArgs,\n );\n }\n }\n\n throw new Error(`An error occurred. Please update your version of the Hexclave SDK. ${json.code}: ${json.message}`);\n }\n}\n\nconst knownErrorConstructorErrorCodeSentinel = Symbol(\"knownErrorConstructorErrorCodeSentinel\");\n/**\n * Exists solely so that known errors are nominative types (ie. two KnownErrors with the same interface are not the same type)\n */\ntype KnownErrorBrand<ErrorCode extends string> = {\n /**\n * Does not exist at runtime\n *\n * Must be an object because it may be true for multiple error codes (it's true for all parents)\n */\n [knownErrorConstructorErrorCodeSentinel]: {\n [K in ErrorCode]: true\n },\n};\n\nfunction createKnownErrorConstructor<ErrorCode extends string, Super extends AbstractKnownErrorConstructor<any>, Args extends any[]>(\n SuperClass: Super,\n errorCode: ErrorCode,\n create: ((...args: Args) => Readonly<ConstructorParameters<Super>>),\n constructorArgsFromJson: ((jsonDetails: any) => NoInfer<Args>),\n): KnownErrorConstructor<InstanceType<Super> & KnownErrorBrand<ErrorCode>, Args> & { errorCode: ErrorCode };\nfunction createKnownErrorConstructor<ErrorCode extends string, Super extends AbstractKnownErrorConstructor<any>>(\n SuperClass: Super,\n errorCode: ErrorCode,\n create: \"inherit\",\n constructorArgsFromJson: \"inherit\",\n): KnownErrorConstructor<InstanceType<Super> & KnownErrorBrand<ErrorCode>, ConstructorParameters<Super>> & { errorCode: ErrorCode };\nfunction createKnownErrorConstructor<ErrorCode extends string, Super extends AbstractKnownErrorConstructor<any>, Args extends any[]>(\n SuperClass: Super,\n errorCode: ErrorCode,\n create: \"inherit\" | ((...args: Args) => Readonly<ConstructorParameters<Super>>),\n constructorArgsFromJson: \"inherit\" | ((jsonDetails: any) => NoInfer<Args>),\n): KnownErrorConstructor<InstanceType<Super> & KnownErrorBrand<ErrorCode>, Args> & { errorCode: ErrorCode } {\n const createFn = create === \"inherit\" ? identityArgs<Args> as never : create;\n const constructorArgsFromJsonFn = constructorArgsFromJson === \"inherit\" ? SuperClass.constructorArgsFromJson as never : constructorArgsFromJson;\n\n // @ts-expect-error this is not a mixin, but TS detects it as one\n class KnownErrorImpl extends SuperClass {\n public static readonly errorCode = errorCode;\n public name = `KnownError<${errorCode}>`;\n public readonly constructorArgs: Args;\n\n constructor(...args: Args) {\n // @ts-ignore legendary comment, may never be removed https://x.com/konstiwohlwend/status/1998543556567617780\n super(...createFn(...args));\n this.constructorArgs = args;\n }\n\n static constructorArgsFromJson(json: KnownErrorJson): Args {\n return constructorArgsFromJsonFn(json.details);\n }\n\n static isInstance(error: unknown): error is InstanceType<Super> & { constructorArgs: Args } {\n if (!KnownError.isKnownError(error)) return false;\n let current: unknown = error;\n while (true) {\n current = Object.getPrototypeOf(current);\n if (!current) break;\n if (\"errorCode\" in current.constructor && current.constructor.errorCode === errorCode) return true;\n }\n return false;\n }\n };\n\n // @ts-expect-error\n return KnownErrorImpl;\n}\nimport.meta.vitest?.test(\"KnownError.isInstance\", ({ expect }) => {\n expect(KnownErrors.InvalidProjectAuthentication.isInstance(undefined)).toBe(false);\n expect(KnownErrors.InvalidProjectAuthentication.isInstance(new Error())).toBe(false);\n\n const error = new KnownErrors.ProjectKeyWithoutAccessType();\n expect(KnownErrors.ProjectKeyWithoutAccessType.isInstance(error)).toBe(true);\n expect(KnownErrors.InvalidProjectAuthentication.isInstance(error)).toBe(true);\n expect(KnownErrors.InvalidAccessType.isInstance(error)).toBe(false);\n});\n\nconst UnsupportedError = createKnownErrorConstructor(\n KnownError,\n \"UNSUPPORTED_ERROR\",\n (originalErrorCode: string) => [\n 500,\n `An error occurred that is not currently supported (possibly because it was added in a version of Stack that is newer than this client). The original unsupported error code was: ${originalErrorCode}`,\n {\n originalErrorCode,\n },\n ] as const,\n (json) => [\n (json as any)?.originalErrorCode ?? throwErr(\"originalErrorCode not found in UnsupportedError details\"),\n ] as const,\n);\n\nconst BodyParsingError = createKnownErrorConstructor(\n KnownError,\n \"BODY_PARSING_ERROR\",\n (message: string) => [\n 400,\n message,\n ] as const,\n (json) => [json.message] as const,\n);\n\nconst SchemaError = createKnownErrorConstructor(\n KnownError,\n \"SCHEMA_ERROR\",\n (message: string) => [\n 400,\n message || throwErr(\"SchemaError requires a message\"),\n {\n message,\n },\n ] as const,\n (json: any) => [json.message] as const,\n);\n\nconst AllOverloadsFailed = createKnownErrorConstructor(\n KnownError,\n \"ALL_OVERLOADS_FAILED\",\n (overloadErrors: Json[]) => [\n 400,\n deindent`\n This endpoint has multiple overloads, but they all failed to process the request.\n\n ${overloadErrors.map((e, i) => deindent`\n Overload ${i + 1}: ${JSON.stringify(e, undefined, 2)}\n `).join(\"\\n\\n\")}\n `,\n {\n overload_errors: overloadErrors,\n },\n ] as const,\n (json) => [\n (json as any)?.overload_errors ?? throwErr(\"overload_errors not found in AllOverloadsFailed details\"),\n ] as const,\n);\n\nconst ProjectAuthenticationError = createKnownErrorConstructor(\n KnownError,\n \"PROJECT_AUTHENTICATION_ERROR\",\n \"inherit\",\n \"inherit\",\n);\n\nconst InvalidProjectAuthentication = createKnownErrorConstructor(\n ProjectAuthenticationError,\n \"INVALID_PROJECT_AUTHENTICATION\",\n \"inherit\",\n \"inherit\",\n);\n\nconst ProjectKeyWithoutAccessType = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"PROJECT_KEY_WITHOUT_ACCESS_TYPE\",\n () => [\n 400,\n \"Either an API key or an admin access token was provided, but the x-hexclave-access-type header is missing. Set it to 'client', 'server', or 'admin' as appropriate. (The legacy x-stack-access-type header is also accepted.)\",\n ] as const,\n () => [] as const,\n);\n\nconst InvalidAccessType = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"INVALID_ACCESS_TYPE\",\n (accessType: string) => [\n 400,\n `The x-hexclave-access-type header must be 'client', 'server', or 'admin', but was '${accessType}'. (The legacy x-stack-access-type header is also accepted.)`,\n ] as const,\n (json) => [\n (json as any)?.accessType ?? throwErr(\"accessType not found in InvalidAccessType details\"),\n ] as const,\n);\n\nconst AccessTypeWithoutProjectId = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"ACCESS_TYPE_WITHOUT_PROJECT_ID\",\n (accessType: \"client\" | \"server\" | \"admin\") => [\n 400,\n deindent`\n The x-hexclave-access-type header was '${accessType}', but the x-hexclave-project-id header was not provided. (The legacy x-stack-access-type and x-stack-project-id headers are also accepted.)\n \n For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication\n `,\n {\n request_type: accessType,\n },\n ] as const,\n (json: any) => [json.request_type] as const,\n);\n\nconst AccessTypeRequired = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"ACCESS_TYPE_REQUIRED\",\n () => [\n 400,\n deindent`\n You must specify an access level for this Hexclave project. Make sure project API keys are provided (eg. x-hexclave-publishable-client-key) and you set the x-hexclave-access-type header to 'client', 'server', or 'admin'. (The legacy x-stack-* equivalents are also accepted.)\n \n For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication\n `,\n ] as const,\n () => [] as const,\n);\n\nconst InsufficientAccessType = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"INSUFFICIENT_ACCESS_TYPE\",\n (actualAccessType: \"client\" | \"server\" | \"admin\", allowedAccessTypes: (\"client\" | \"server\" | \"admin\")[]) => [\n 401,\n `The x-hexclave-access-type header must be ${allowedAccessTypes.map(s => `'${s}'`).join(\" or \")}, but was '${actualAccessType}'. (The legacy x-stack-access-type header is also accepted.)`,\n {\n actual_access_type: actualAccessType,\n allowed_access_types: allowedAccessTypes,\n },\n ] as const,\n (json: any) => [\n json.actual_access_type,\n json.allowed_access_types,\n ] as const,\n);\n\nconst InvalidPublishableClientKey = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"INVALID_PUBLISHABLE_CLIENT_KEY\",\n (projectId: string) => [\n 401,\n `The publishable key is not valid for the project ${JSON.stringify(projectId)}. Does the project and/or the key exist?`,\n {\n project_id: projectId,\n },\n ] as const,\n (json: any) => [json.project_id] as const,\n);\n\nconst InvalidSecretServerKey = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"INVALID_SECRET_SERVER_KEY\",\n (projectId: string) => [\n 401,\n `The secret server key is not valid for the project ${JSON.stringify(projectId)}. Does the project and/or the key exist?`,\n {\n project_id: projectId,\n },\n ] as const,\n (json: any) => [json.project_id] as const,\n);\n\nconst InvalidSuperSecretAdminKey = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"INVALID_SUPER_SECRET_ADMIN_KEY\",\n (projectId: string) => [\n 401,\n `The super secret admin key is not valid for the project ${JSON.stringify(projectId)}. Does the project and/or the key exist?`,\n {\n project_id: projectId,\n },\n ] as const,\n (json: any) => [json.project_id] as const,\n);\n\nconst InvalidAdminAccessToken = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"INVALID_ADMIN_ACCESS_TOKEN\",\n \"inherit\",\n \"inherit\",\n);\n\nconst UnparsableAdminAccessToken = createKnownErrorConstructor(\n InvalidAdminAccessToken,\n \"UNPARSABLE_ADMIN_ACCESS_TOKEN\",\n () => [\n 401,\n \"Admin access token is not parsable.\",\n ] as const,\n () => [] as const,\n);\n\nconst AdminAccessTokenExpired = createKnownErrorConstructor(\n InvalidAdminAccessToken,\n \"ADMIN_ACCESS_TOKEN_EXPIRED\",\n (expiredAt: Date | undefined) => [\n 401,\n `Admin access token has expired. Please refresh it and try again.${expiredAt ? ` (The access token expired at ${expiredAt.toISOString()}.)` : \"\"}`,\n { expired_at_millis: expiredAt?.getTime() ?? null },\n ] as const,\n (json: any) => [json.expired_at_millis ? new Date(json.expired_at_millis) : undefined] as const,\n);\n\nconst InvalidProjectForAdminAccessToken = createKnownErrorConstructor(\n InvalidAdminAccessToken,\n \"INVALID_PROJECT_FOR_ADMIN_ACCESS_TOKEN\",\n () => [\n 401,\n \"Admin access tokens must be created on the internal project.\",\n ] as const,\n () => [] as const,\n);\n\nconst AdminAccessTokenIsNotAdmin = createKnownErrorConstructor(\n InvalidAdminAccessToken,\n \"ADMIN_ACCESS_TOKEN_IS_NOT_ADMIN\",\n () => [\n 401,\n \"Admin access token does not have the required permissions to access this project.\",\n ] as const,\n () => [] as const,\n);\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst ProjectAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationError,\n \"PROJECT_AUTHENTICATION_REQUIRED\",\n \"inherit\",\n \"inherit\",\n);\n\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst ClientAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"CLIENT_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"The publishable client key must be provided.\",\n ] as const,\n () => [] as const,\n);\n\nconst PublishableClientKeyRequiredForProject = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"PUBLISHABLE_CLIENT_KEY_REQUIRED_FOR_PROJECT\",\n (projectId?: string) => [\n 401,\n \"Publishable client keys are required for this project. Create one in Project Keys, or disable this requirement there to allow keyless client access.\",\n {\n project_id: projectId ?? null,\n },\n ] as const,\n (json: any) => [json.project_id ?? undefined] as const,\n);\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst ServerAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"SERVER_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"The secret server key must be provided.\",\n ] as const,\n () => [] as const,\n);\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst ClientOrServerAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"CLIENT_OR_SERVER_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"Either the publishable client key or the secret server key must be provided.\",\n ] as const,\n () => [] as const,\n);\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst ClientOrAdminAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"CLIENT_OR_ADMIN_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"Either the publishable client key or the super secret admin key must be provided.\",\n ] as const,\n () => [] as const,\n);\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst ClientOrServerOrAdminAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"CLIENT_OR_SERVER_OR_ADMIN_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"Either the publishable client key, the secret server key, or the super secret admin key must be provided.\",\n ] as const,\n () => [] as const,\n);\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst AdminAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"ADMIN_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"The super secret admin key must be provided.\",\n ] as const,\n () => [] as const,\n);\n\nconst ExpectedInternalProject = createKnownErrorConstructor(\n ProjectAuthenticationError,\n \"EXPECTED_INTERNAL_PROJECT\",\n () => [\n 401,\n \"The project ID is expected to be internal.\",\n ] as const,\n () => [] as const,\n);\n\nconst SessionAuthenticationError = createKnownErrorConstructor(\n KnownError,\n \"SESSION_AUTHENTICATION_ERROR\",\n \"inherit\",\n \"inherit\",\n);\n\nconst InvalidSessionAuthentication = createKnownErrorConstructor(\n SessionAuthenticationError,\n \"INVALID_SESSION_AUTHENTICATION\",\n \"inherit\",\n \"inherit\",\n);\n\nconst InvalidAccessToken = createKnownErrorConstructor(\n InvalidSessionAuthentication,\n \"INVALID_ACCESS_TOKEN\",\n \"inherit\",\n \"inherit\",\n);\n\nconst UnparsableAccessToken = createKnownErrorConstructor(\n InvalidAccessToken,\n \"UNPARSABLE_ACCESS_TOKEN\",\n () => [\n 401,\n \"Access token is not parsable.\",\n ] as const,\n () => [] as const,\n);\n\nconst AccessTokenExpired = createKnownErrorConstructor(\n InvalidAccessToken,\n \"ACCESS_TOKEN_EXPIRED\",\n (expiredAt: Date | undefined, projectId: string | undefined, userId: string | undefined, refreshTokenId: string | undefined) => [\n 401,\n deindent`\n Access token has expired. Please refresh it and try again.${expiredAt ? ` (The access token expired at ${expiredAt.toISOString()}.)` : \"\"}${projectId ? ` Project ID: ${projectId}.` : \"\"}${userId ? ` User ID: ${userId}.` : \"\"}${refreshTokenId ? ` Refresh token ID: ${refreshTokenId}.` : \"\"}\n\n Debug info: Most likely, you fetched the access token before it expired (for example, in a server component, pre-rendered page, or on page load), but then didn't refresh it before it expired. If this is the case, and you're using the SDK, make sure you call getAccessToken() every time you need to use the access token. If you're not using the SDK, make sure you refresh the access token with the refresh endpoint.\n `,\n {\n expired_at_millis: expiredAt?.getTime() ?? null,\n project_id: projectId ?? null,\n user_id: userId ?? null,\n refresh_token_id: refreshTokenId ?? null,\n },\n ] as const,\n (json: any) => [\n json.expired_at_millis ? new Date(json.expired_at_millis) : undefined,\n json.project_id ?? undefined,\n json.user_id ?? undefined,\n json.refresh_token_id ?? undefined,\n ] as const,\n);\n\nconst InvalidProjectForAccessToken = createKnownErrorConstructor(\n InvalidAccessToken,\n \"INVALID_PROJECT_FOR_ACCESS_TOKEN\",\n (expectedProjectId: string, actualProjectId: string) => [\n 401,\n `Access token not valid for this project. Expected project ID ${JSON.stringify(expectedProjectId)}, but the token is for project ID ${JSON.stringify(actualProjectId)}.`,\n {\n expected_project_id: expectedProjectId,\n actual_project_id: actualProjectId,\n },\n ] as const,\n (json: any) => [json.expected_project_id, json.actual_project_id] as const,\n);\n\n\nconst RefreshTokenError = createKnownErrorConstructor(\n KnownError,\n \"REFRESH_TOKEN_ERROR\",\n \"inherit\",\n \"inherit\",\n);\n\nconst RefreshTokenNotFoundOrExpired = createKnownErrorConstructor(\n RefreshTokenError,\n \"REFRESH_TOKEN_NOT_FOUND_OR_EXPIRED\",\n () => [\n 401,\n \"Refresh token not found for this project, or the session has expired/been revoked.\",\n ] as const,\n () => [] as const,\n);\n\nconst CannotDeleteCurrentSession = createKnownErrorConstructor(\n RefreshTokenError,\n \"CANNOT_DELETE_CURRENT_SESSION\",\n () => [\n 400,\n \"Cannot delete the current session.\",\n ] as const,\n () => [] as const,\n);\n\n\nconst ProviderRejected = createKnownErrorConstructor(\n RefreshTokenError,\n \"PROVIDER_REJECTED\",\n () => [\n 401,\n \"The provider refused to refresh their token. This usually means that the provider used to authenticate the user no longer regards this session as valid, and the user must re-authenticate.\",\n ] as const,\n () => [] as const,\n);\n\nconst UserWithEmailAlreadyExists = createKnownErrorConstructor(\n KnownError,\n \"USER_EMAIL_ALREADY_EXISTS\",\n (email: string, wouldWorkIfEmailWasVerified: boolean = false) => [\n 409,\n `A user with email ${JSON.stringify(email)} already exists${wouldWorkIfEmailWasVerified ? \" but the email is not verified. Please login to your existing account with the method you used to sign up, and then verify your email to sign in with this login method.\" : \".\"}`,\n {\n email,\n would_work_if_email_was_verified: wouldWorkIfEmailWasVerified,\n },\n ] as const,\n (json: any) => [json.email, json.would_work_if_email_was_verified ?? false] as const,\n);\n\nconst EmailNotVerified = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_NOT_VERIFIED\",\n () => [\n 400,\n \"The email is not verified.\",\n ] as const,\n () => [] as const,\n);\n\nconst CannotGetOwnUserWithoutUser = createKnownErrorConstructor(\n KnownError,\n \"CANNOT_GET_OWN_USER_WITHOUT_USER\",\n () => [\n 400,\n \"You have specified 'me' as a userId, but did not provide authentication for a user.\",\n ] as const,\n () => [] as const,\n);\n\nconst UserIdDoesNotExist = createKnownErrorConstructor(\n KnownError,\n \"USER_ID_DOES_NOT_EXIST\",\n (userId: string) => [\n 400,\n `The given user with the ID ${userId} does not exist.`,\n {\n user_id: userId,\n },\n ] as const,\n (json: any) => [json.user_id] as const,\n);\n\nconst UserNotFound = createKnownErrorConstructor(\n KnownError,\n \"USER_NOT_FOUND\",\n () => [\n 404,\n \"User not found.\",\n ] as const,\n () => [] as const,\n);\n\nconst RestrictedUserNotAllowed = createKnownErrorConstructor(\n KnownError,\n \"RESTRICTED_USER_NOT_ALLOWED\",\n (restrictedReason: { type: \"anonymous\" | \"email_not_verified\" | \"restricted_by_administrator\" }) => [\n 403,\n `The user in the access token is in restricted state. Reason: ${restrictedReason.type}. Please pass the X-Stack-Allow-Restricted-User header if this is intended.`,\n {\n restricted_reason: restrictedReason,\n },\n ] as const,\n (json: any) => [json.restricted_reason ?? { type: \"anonymous\" }] as const,\n);\n\nconst ProjectNotFound = createKnownErrorConstructor(\n KnownError,\n \"PROJECT_NOT_FOUND\",\n (projectId: string) => {\n if (typeof projectId !== \"string\") throw new HexclaveAssertionError(\"projectId of KnownErrors.ProjectNotFound must be a string\");\n return [\n 404,\n `Project ${projectId} not found or is not accessible with the current user.`,\n {\n project_id: projectId,\n },\n ] as const;\n },\n (json: any) => [json.project_id] as const,\n);\n\nconst CurrentProjectNotFound = createKnownErrorConstructor(\n KnownError,\n \"CURRENT_PROJECT_NOT_FOUND\",\n (projectId: string) => [\n 400,\n `The current project with ID ${projectId} was not found. Please check the value of the x-hexclave-project-id header. (The legacy x-stack-project-id header is also accepted.)`,\n {\n project_id: projectId,\n },\n ] as const,\n (json: any) => [json.project_id] as const,\n);\n\nconst BranchDoesNotExist = createKnownErrorConstructor(\n KnownError,\n \"BRANCH_DOES_NOT_EXIST\",\n (branchId: string) => [\n 400,\n `The branch with ID ${branchId} does not exist.`,\n {\n branch_id: branchId,\n },\n ] as const,\n (json: any) => [json.branch_id] as const,\n);\n\n\nconst SignUpNotEnabled = createKnownErrorConstructor(\n KnownError,\n \"SIGN_UP_NOT_ENABLED\",\n () => [\n 400,\n \"Creation of new accounts is not enabled for this project. Please ask the project owner to enable it.\",\n ] as const,\n () => [] as const,\n);\n\nconst SignUpRejected = createKnownErrorConstructor(\n KnownError,\n \"SIGN_UP_REJECTED\",\n (message?: string) => [\n 403,\n message ?? \"Your sign up was rejected by an administrator's sign-up rule.\",\n {\n message: message ?? \"Your sign up was rejected by an administrator's sign-up rule.\",\n },\n ] as const,\n (json: any) => [json.message] as const,\n);\n\nconst BotChallengeRequired = createKnownErrorConstructor(\n KnownError,\n \"BOT_CHALLENGE_REQUIRED\",\n () => [\n 409,\n \"An additional bot challenge is required before sign-up can continue.\",\n ] as const,\n () => [] as const,\n);\n\nconst BotChallengeFailed = createKnownErrorConstructor(\n KnownError,\n \"BOT_CHALLENGE_FAILED\",\n (message: string) => [\n 400,\n message,\n {\n message,\n },\n ] as const,\n (json: any) => [json.message] as const,\n);\n\nconst PasswordAuthenticationNotEnabled = createKnownErrorConstructor(\n KnownError,\n \"PASSWORD_AUTHENTICATION_NOT_ENABLED\",\n () => [\n 400,\n \"Password authentication is not enabled for this project.\",\n ] as const,\n () => [] as const,\n);\n\nconst DataVaultStoreDoesNotExist = createKnownErrorConstructor(\n KnownError,\n \"DATA_VAULT_STORE_DOES_NOT_EXIST\",\n (storeId: string) => [\n 400,\n `Data vault store with ID ${storeId} does not exist.`,\n {\n store_id: storeId,\n },\n ] as const,\n (json: any) => [json.store_id] as const,\n);\n\nconst DataVaultStoreHashedKeyDoesNotExist = createKnownErrorConstructor(\n KnownError,\n \"DATA_VAULT_STORE_HASHED_KEY_DOES_NOT_EXIST\",\n (storeId: string, hashedKey: string) => [\n 400,\n `Data vault store with ID ${storeId} does not contain a key with hash ${hashedKey}.`,\n {\n store_id: storeId,\n hashed_key: hashedKey,\n },\n ] as const,\n (json: any) => [json.store_id, json.hashed_key] as const,\n);\n\nconst PasskeyAuthenticationNotEnabled = createKnownErrorConstructor(\n KnownError,\n \"PASSKEY_AUTHENTICATION_NOT_ENABLED\",\n () => [\n 400,\n \"Passkey authentication is not enabled for this project.\",\n ] as const,\n () => [] as const,\n);\n\nconst AnonymousAccountsNotEnabled = createKnownErrorConstructor(\n KnownError,\n \"ANONYMOUS_ACCOUNTS_NOT_ENABLED\",\n () => [\n 400,\n \"Anonymous accounts are not enabled for this project.\",\n ] as const,\n () => [] as const,\n);\n\nconst AnonymousAuthenticationNotAllowed = createKnownErrorConstructor(\n KnownError,\n \"ANONYMOUS_AUTHENTICATION_NOT_ALLOWED\",\n () => [\n 401,\n \"X-Stack-Access-Token is for an anonymous user, but anonymous users are not enabled. Set the X-Stack-Allow-Anonymous-User header of this request to 'true' to allow anonymous users.\",\n ] as const,\n () => [] as const,\n);\n\n\nconst EmailPasswordMismatch = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_PASSWORD_MISMATCH\",\n () => [\n 400,\n \"Wrong e-mail or password.\",\n ] as const,\n () => [] as const,\n);\n\nconst RedirectUrlNotWhitelisted = createKnownErrorConstructor(\n KnownError,\n \"REDIRECT_URL_NOT_WHITELISTED\",\n (redirectUrl?: string) => [\n 400,\n \"Redirect URL not whitelisted. Did you forget to add this domain to the trusted domains list on the Hexclave dashboard?\",\n redirectUrl === undefined ? undefined : {\n redirect_url: redirectUrl,\n },\n ] as const,\n (json) => [(json as any)?.redirect_url] as const,\n);\n\nconst PasswordRequirementsNotMet = createKnownErrorConstructor(\n KnownError,\n \"PASSWORD_REQUIREMENTS_NOT_MET\",\n \"inherit\",\n \"inherit\",\n);\n\nconst PasswordTooShort = createKnownErrorConstructor(\n PasswordRequirementsNotMet,\n \"PASSWORD_TOO_SHORT\",\n (minLength: number) => [\n 400,\n `Password too short. Minimum length is ${minLength}.`,\n {\n min_length: minLength,\n },\n ] as const,\n (json) => [\n (json as any)?.min_length ?? throwErr(\"min_length not found in PasswordTooShort details\"),\n ] as const,\n);\n\nconst PasswordTooLong = createKnownErrorConstructor(\n PasswordRequirementsNotMet,\n \"PASSWORD_TOO_LONG\",\n (maxLength: number) => [\n 400,\n `Password too long. Maximum length is ${maxLength}.`,\n {\n maxLength,\n },\n ] as const,\n (json) => [\n (json as any)?.maxLength ?? throwErr(\"maxLength not found in PasswordTooLong details\"),\n ] as const,\n);\n\nconst UserDoesNotHavePassword = createKnownErrorConstructor(\n KnownError,\n \"USER_DOES_NOT_HAVE_PASSWORD\",\n () => [\n 400,\n \"This user does not have password authentication enabled.\",\n ] as const,\n () => [] as const,\n);\n\nconst VerificationCodeError = createKnownErrorConstructor(\n KnownError,\n \"VERIFICATION_ERROR\",\n \"inherit\",\n \"inherit\",\n);\n\nconst VerificationCodeNotFound = createKnownErrorConstructor(\n VerificationCodeError,\n \"VERIFICATION_CODE_NOT_FOUND\",\n () => [\n 404,\n \"The verification code does not exist for this project.\",\n ] as const,\n () => [] as const,\n);\n\nconst VerificationCodeExpired = createKnownErrorConstructor(\n VerificationCodeError,\n \"VERIFICATION_CODE_EXPIRED\",\n () => [\n 400,\n \"The verification code has expired.\",\n ] as const,\n () => [] as const,\n);\n\nconst VerificationCodeAlreadyUsed = createKnownErrorConstructor(\n VerificationCodeError,\n \"VERIFICATION_CODE_ALREADY_USED\",\n () => [\n 409,\n \"The verification link has already been used.\",\n ] as const,\n () => [] as const,\n);\n\nconst VerificationCodeMaxAttemptsReached = createKnownErrorConstructor(\n VerificationCodeError,\n \"VERIFICATION_CODE_MAX_ATTEMPTS_REACHED\",\n () => [\n 400,\n \"The verification code nonce has reached the maximum number of attempts. This code is not valid anymore.\",\n ] as const,\n () => [] as const,\n);\n\nconst PasswordConfirmationMismatch = createKnownErrorConstructor(\n KnownError,\n \"PASSWORD_CONFIRMATION_MISMATCH\",\n () => [\n 400,\n \"Passwords do not match.\",\n ] as const,\n () => [] as const,\n);\n\nconst EmailAlreadyVerified = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_ALREADY_VERIFIED\",\n () => [\n 409,\n \"The e-mail is already verified.\",\n ] as const,\n () => [] as const,\n);\n\nconst EmailNotAssociatedWithUser = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_NOT_ASSOCIATED_WITH_USER\",\n () => [\n 400,\n \"The e-mail is not associated with a user that could log in with that e-mail.\",\n ] as const,\n () => [] as const,\n);\n\nconst EmailIsNotPrimaryEmail = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_IS_NOT_PRIMARY_EMAIL\",\n (email: string, primaryEmail: string | null) => [\n 400,\n `The given e-mail (${email}) must equal the user's primary e-mail (${primaryEmail}).`,\n {\n email,\n primary_email: primaryEmail,\n },\n ] as const,\n (json: any) => [json.email, json.primary_email] as const,\n);\n\n\nconst PasskeyRegistrationFailed = createKnownErrorConstructor(\n KnownError,\n \"PASSKEY_REGISTRATION_FAILED\",\n (message: string) => [\n 400,\n message,\n ] as const,\n (json: any) => [json.message] as const,\n);\n\n\nconst PasskeyWebAuthnError = createKnownErrorConstructor(\n KnownError,\n \"PASSKEY_WEBAUTHN_ERROR\",\n (message: string, code: string) => [\n 400,\n message,\n {\n message,\n code,\n },\n ] as const,\n (json: any) => [json.message, json.code] as const,\n);\n\nconst PasskeyAuthenticationFailed = createKnownErrorConstructor(\n KnownError,\n \"PASSKEY_AUTHENTICATION_FAILED\",\n (message: string) => [\n 400,\n message,\n ] as const,\n (json: any) => [json.message] as const,\n);\n\n\nconst PermissionNotFound = createKnownErrorConstructor(\n KnownError,\n \"PERMISSION_NOT_FOUND\",\n (permissionId: string) => [\n 404,\n `Permission \"${permissionId}\" not found. Make sure you created it on the dashboard.`,\n {\n permission_id: permissionId,\n },\n ] as const,\n (json: any) => [json.permission_id] as const,\n);\n\nconst PermissionScopeMismatch = createKnownErrorConstructor(\n KnownError,\n \"WRONG_PERMISSION_SCOPE\",\n (permissionId: string, expectedScope: \"team\" | \"project\", actualScope: \"team\" | \"project\" | null) => [\n 404,\n `Permission ${JSON.stringify(permissionId)} not found. (It was found for a different scope ${JSON.stringify(actualScope)}, but scope ${JSON.stringify(expectedScope)} was expected.)`,\n {\n permission_id: permissionId,\n expected_scope: expectedScope,\n actual_scope: actualScope,\n },\n ] as const,\n (json: any) => [json.permission_id, json.expected_scope, json.actual_scope] as const,\n);\n\nconst ContainedPermissionNotFound = createKnownErrorConstructor(\n KnownError,\n \"CONTAINED_PERMISSION_NOT_FOUND\",\n (permissionId: string) => [\n 400,\n `Contained permission with ID \"${permissionId}\" not found. Make sure you created it on the dashboard.`,\n {\n permission_id: permissionId,\n },\n ] as const,\n (json: any) => [json.permission_id] as const,\n);\n\nconst TeamNotFound = createKnownErrorConstructor(\n KnownError,\n \"TEAM_NOT_FOUND\",\n (teamId: string) => [\n 404,\n `Team ${teamId} not found.`,\n {\n team_id: teamId,\n },\n ] as const,\n (json: any) => [json.team_id] as const,\n);\n\nconst TeamAlreadyExists = createKnownErrorConstructor(\n KnownError,\n \"TEAM_ALREADY_EXISTS\",\n (teamId: string) => [\n 409,\n `Team ${teamId} already exists.`,\n {\n team_id: teamId,\n },\n ] as const,\n (json: any) => [json.team_id] as const,\n);\n\nconst TeamMembershipNotFound = createKnownErrorConstructor(\n KnownError,\n \"TEAM_MEMBERSHIP_NOT_FOUND\",\n (teamId: string, userId: string) => [\n 404,\n `User ${userId} is not found in team ${teamId}.`,\n {\n team_id: teamId,\n user_id: userId,\n },\n ] as const,\n (json: any) => [json.team_id, json.user_id] as const,\n);\n\nconst TeamInvitationRestrictedUserNotAllowed = createKnownErrorConstructor(\n KnownError,\n \"TEAM_INVITATION_RESTRICTED_USER_NOT_ALLOWED\",\n (restrictedReason: { type: \"anonymous\" | \"email_not_verified\" | \"restricted_by_administrator\" }) => [\n 403,\n `Restricted users cannot accept team invitations. Reason: ${restrictedReason.type}. Please complete the onboarding process before accepting team invitations.`,\n {\n restricted_reason: restrictedReason,\n },\n ] as const,\n (json: any) => [json.restricted_reason ?? { type: \"anonymous\" }] as const,\n);\n\nconst TeamInvitationEmailMismatch = createKnownErrorConstructor(\n KnownError,\n \"TEAM_INVITATION_EMAIL_MISMATCH\",\n () => [\n 403,\n \"This team invitation was sent to a different email address. Sign in with the invited email, or add and verify that email on your account, then try again.\",\n ] as const,\n () => [] as const,\n);\n\n\nconst EmailTemplateAlreadyExists = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_TEMPLATE_ALREADY_EXISTS\",\n () => [\n 409,\n \"Email template already exists.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthConnectionNotConnectedToUser = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_CONNECTION_NOT_CONNECTED_TO_USER\",\n () => [\n 400,\n \"The OAuth connection is not connected to any user.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthConnectionAlreadyConnectedToAnotherUser = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_CONNECTION_ALREADY_CONNECTED_TO_ANOTHER_USER\",\n () => [\n 409,\n \"The OAuth connection is already connected to another user.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthConnectionDoesNotHaveRequiredScope = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_CONNECTION_DOES_NOT_HAVE_REQUIRED_SCOPE\",\n () => [\n 400,\n \"The OAuth connection does not have the required scope.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthAccessTokenNotAvailable = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_ACCESS_TOKEN_NOT_AVAILABLE\",\n (provider: string, details: string) => [\n 400,\n `Failed to retrieve an OAuth access token for the connected account (provider: ${provider}). ${details}`,\n {\n provider,\n details,\n } as const,\n ] as const,\n (json: any) => [json.provider, json.details] as const,\n);\n\nconst OAuthExtraScopeNotAvailableWithSharedOAuthKeys = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_EXTRA_SCOPE_NOT_AVAILABLE_WITH_SHARED_OAUTH_KEYS\",\n () => [\n 400,\n \"Extra scopes are not available with shared OAuth keys. Please add your own OAuth keys on the Hexclave dashboard to use extra scopes.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthAccessTokenNotAvailableWithSharedOAuthKeys = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_ACCESS_TOKEN_NOT_AVAILABLE_WITH_SHARED_OAUTH_KEYS\",\n () => [\n 400,\n \"Access tokens are not available with shared OAuth keys. Please add your own OAuth keys on the Hexclave dashboard to use access tokens.\",\n ] as const,\n () => [] as const,\n);\n\nconst InvalidOAuthClientIdOrSecret = createKnownErrorConstructor(\n KnownError,\n \"INVALID_OAUTH_CLIENT_ID_OR_SECRET\",\n (clientId?: string) => [\n 400,\n \"The OAuth client ID or secret is invalid. The client ID must be equal to the project ID (potentially with a hash and a branch ID), and the client secret must be a publishable client key.\",\n {\n client_id: clientId ?? null,\n },\n ] as const,\n (json: any) => [json.client_id ?? undefined] as const,\n);\n\nconst InvalidScope = createKnownErrorConstructor(\n KnownError,\n \"INVALID_SCOPE\",\n (scope: string) => [\n 400,\n `The scope \"${scope}\" is not a valid OAuth scope for Stack.`,\n ] as const,\n (json: any) => [json.scope] as const,\n);\n\nconst UserAlreadyConnectedToAnotherOAuthConnection = createKnownErrorConstructor(\n KnownError,\n \"USER_ALREADY_CONNECTED_TO_ANOTHER_OAUTH_CONNECTION\",\n () => [\n 409,\n \"The user is already connected to another OAuth account. Did you maybe selected the wrong account?\",\n ] as const,\n () => [] as const,\n);\n\nconst OuterOAuthTimeout = createKnownErrorConstructor(\n KnownError,\n \"OUTER_OAUTH_TIMEOUT\",\n () => [\n 408,\n \"The OAuth flow has timed out. Please sign in again.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthProviderNotFoundOrNotEnabled = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_PROVIDER_NOT_FOUND_OR_NOT_ENABLED\",\n () => [\n 400,\n \"The OAuth provider is not found or not enabled.\",\n ] as const,\n () => [] as const,\n);\n\nconst AppleBundleIdNotConfigured = createKnownErrorConstructor(\n KnownError,\n \"APPLE_BUNDLE_ID_NOT_CONFIGURED\",\n () => [\n 400,\n \"Apple Sign In is enabled, but no Bundle IDs are configured. Please add your app's Bundle ID in the Hexclave dashboard under OAuth Providers > Apple > Apple Bundle IDs.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthProviderAccountIdAlreadyUsedForSignIn = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_PROVIDER_ACCOUNT_ID_ALREADY_USED_FOR_SIGN_IN\",\n () => [\n 400,\n `A provider with the same account ID is already used for signing in.`,\n ] as const,\n () => [] as const,\n);\n\nconst MultiFactorAuthenticationRequired = createKnownErrorConstructor(\n KnownError,\n \"MULTI_FACTOR_AUTHENTICATION_REQUIRED\",\n (attemptCode: string) => [\n 400,\n `Multi-factor authentication is required for this user.`,\n {\n attempt_code: attemptCode,\n },\n ] as const,\n (json) => [json.attempt_code] as const,\n);\n\nconst InvalidTotpCode = createKnownErrorConstructor(\n KnownError,\n \"INVALID_TOTP_CODE\",\n () => [\n 400,\n \"The TOTP code is invalid. Please try again.\",\n ] as const,\n () => [] as const,\n);\n\nconst UserAuthenticationRequired = createKnownErrorConstructor(\n KnownError,\n \"USER_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"User authentication required for this endpoint.\",\n ] as const,\n () => [] as const,\n);\n\nconst TeamMembershipAlreadyExists = createKnownErrorConstructor(\n KnownError,\n \"TEAM_MEMBERSHIP_ALREADY_EXISTS\",\n () => [\n 409,\n \"Team membership already exists.\",\n ] as const,\n () => [] as const,\n);\n\nconst ProjectPermissionRequired = createKnownErrorConstructor(\n KnownError,\n \"PROJECT_PERMISSION_REQUIRED\",\n (userId, permissionId) => [\n 401,\n `User ${userId} does not have permission ${permissionId}.`,\n {\n user_id: userId,\n permission_id: permissionId,\n },\n ] as const,\n (json) => [json.user_id, json.permission_id] as const,\n);\n\nconst TeamPermissionRequired = createKnownErrorConstructor(\n KnownError,\n \"TEAM_PERMISSION_REQUIRED\",\n (teamId, userId, permissionId) => [\n 401,\n `User ${userId} does not have permission ${permissionId} in team ${teamId}.`,\n {\n team_id: teamId,\n user_id: userId,\n permission_id: permissionId,\n },\n ] as const,\n (json) => [json.team_id, json.user_id, json.permission_id] as const,\n);\n\nconst TeamPermissionNotFound = createKnownErrorConstructor(\n KnownError,\n \"TEAM_PERMISSION_NOT_FOUND\",\n (teamId, userId, permissionId) => [\n 401,\n `User ${userId} does not have permission ${permissionId} in team ${teamId}.`,\n {\n team_id: teamId,\n user_id: userId,\n permission_id: permissionId,\n },\n ] as const,\n (json) => [json.team_id, json.user_id, json.permission_id] as const,\n);\n\nconst InvalidSharedOAuthProviderId = createKnownErrorConstructor(\n KnownError,\n \"INVALID_SHARED_OAUTH_PROVIDER_ID\",\n (providerId) => [\n 400,\n `The shared OAuth provider with ID ${providerId} is not valid.`,\n {\n provider_id: providerId,\n },\n ] as const,\n (json) => [json.provider_id] as const,\n);\n\nconst InvalidStandardOAuthProviderId = createKnownErrorConstructor(\n KnownError,\n \"INVALID_STANDARD_OAUTH_PROVIDER_ID\",\n (providerId) => [\n 400,\n `The standard OAuth provider with ID ${providerId} is not valid.`,\n {\n provider_id: providerId,\n },\n ] as const,\n (json) => [json.provider_id] as const,\n);\n\nconst InvalidAuthorizationCode = createKnownErrorConstructor(\n KnownError,\n \"INVALID_AUTHORIZATION_CODE\",\n () => [\n 400,\n \"The given authorization code is invalid.\",\n ] as const,\n () => [] as const,\n);\n\nconst InvalidAppleCredentials = createKnownErrorConstructor(\n KnownError,\n \"INVALID_APPLE_CREDENTIALS\",\n () => [\n 400,\n \"The Apple Sign In credentials could not be verified. Please try signing in again.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthProviderAccessDenied = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_PROVIDER_ACCESS_DENIED\",\n () => [\n 400,\n \"The OAuth provider denied access to the user.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthProviderTemporarilyUnavailable = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_PROVIDER_TEMPORARILY_UNAVAILABLE\",\n () => [\n 503,\n \"The OAuth provider is temporarily unavailable. Please try again later.\",\n ] as const,\n () => [] as const,\n);\n\nconst ContactChannelAlreadyUsedForAuthBySomeoneElse = createKnownErrorConstructor(\n KnownError,\n \"CONTACT_CHANNEL_ALREADY_USED_FOR_AUTH_BY_SOMEONE_ELSE\",\n (type: \"email\", contactChannelValue?: string, wouldWorkIfEmailWasVerified: boolean = false) => [\n 409,\n `This ${type} ${contactChannelValue ? `\"(${contactChannelValue})\"` : \"\"} is already used for authentication by another account${wouldWorkIfEmailWasVerified ? \" but the email is not verified. Please login to your existing account with the method you used to sign up, and then verify your email to sign in with this login method.\" : \".\"}`,\n {\n type,\n contact_channel_value: contactChannelValue ?? null,\n would_work_if_email_was_verified: wouldWorkIfEmailWasVerified,\n },\n ] as const,\n (json) => [json.type, json.contact_channel_value, json.would_work_if_email_was_verified ?? false] as const,\n);\n\nconst InvalidPollingCodeError = createKnownErrorConstructor(\n KnownError,\n \"INVALID_POLLING_CODE\",\n (details?: Json) => [\n 400,\n \"The polling code is invalid or does not exist.\",\n details,\n ] as const,\n (json: any) => [json] as const,\n);\n\nconst CliAuthError = createKnownErrorConstructor(\n KnownError,\n \"CLI_AUTH_ERROR\",\n (message: string) => [\n 400,\n message,\n ] as const,\n (json: any) => [json.message] as const,\n);\n\nconst CliAuthExpiredError = createKnownErrorConstructor(\n KnownError,\n \"CLI_AUTH_EXPIRED_ERROR\",\n (message: string = \"CLI authentication request expired. Please try again.\") => [\n 400,\n message,\n ] as const,\n (json: any) => [json.message] as const,\n);\n\nconst CliAuthUsedError = createKnownErrorConstructor(\n KnownError,\n \"CLI_AUTH_USED_ERROR\",\n (message: string = \"This authentication token has already been used.\") => [\n 400,\n message,\n ] as const,\n (json: any) => [json.message] as const,\n);\n\n\nconst ApiKeyNotValid = createKnownErrorConstructor(\n KnownError,\n \"API_KEY_NOT_VALID\",\n \"inherit\",\n \"inherit\",\n);\n\nconst ApiKeyExpired = createKnownErrorConstructor(\n ApiKeyNotValid,\n \"API_KEY_EXPIRED\",\n () => [\n 401,\n \"API key has expired.\",\n ] as const,\n () => [] as const,\n);\n\nconst ApiKeyRevoked = createKnownErrorConstructor(\n ApiKeyNotValid,\n \"API_KEY_REVOKED\",\n () => [\n 401,\n \"API key has been revoked.\",\n ] as const,\n () => [] as const,\n);\n\nconst WrongApiKeyType = createKnownErrorConstructor(\n ApiKeyNotValid,\n \"WRONG_API_KEY_TYPE\",\n (expectedType: string, actualType: string) => [\n 400,\n `This endpoint is for ${expectedType} API keys, but a ${actualType} API key was provided.`,\n { expected_type: expectedType, actual_type: actualType },\n ] as const,\n (json) => [json.expected_type, json.actual_type] as const,\n);\n\nconst ApiKeyNotFound = createKnownErrorConstructor(\n ApiKeyNotValid,\n \"API_KEY_NOT_FOUND\",\n () => [\n 404,\n \"API key not found.\",\n ] as const,\n () => [] as const,\n);\n\nconst PublicApiKeyCannotBeRevoked = createKnownErrorConstructor(\n ApiKeyNotValid,\n \"PUBLIC_API_KEY_CANNOT_BE_REVOKED\",\n () => [\n 400,\n \"Public API keys cannot be revoked by the secretscanner endpoint.\",\n ] as const,\n () => [] as const,\n);\nconst PermissionIdAlreadyExists = createKnownErrorConstructor(\n KnownError,\n \"PERMISSION_ID_ALREADY_EXISTS\",\n (permissionId: string) => [\n 400,\n `Permission with ID \"${permissionId}\" already exists. Choose a different ID.`,\n {\n permission_id: permissionId,\n },\n ] as const,\n (json: any) => [json.permission_id] as const,\n);\n\nconst EmailRenderingError = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_RENDERING_ERROR\",\n (error: string) => [\n 400,\n `Failed to render email with theme: ${error}`,\n { error },\n ] as const,\n (json: any) => [json.error] as const,\n);\n\nconst TemplateSourceRewriteError = createKnownErrorConstructor(\n KnownError,\n \"TEMPLATE_SOURCE_REWRITE_ERROR\",\n (error: string) => [\n 400,\n `Failed to rewrite template source: ${error}`,\n { error },\n ] as const,\n (json: any) => [json.error] as const,\n);\n\nconst RequiresCustomEmailServer = createKnownErrorConstructor(\n KnownError,\n \"REQUIRES_CUSTOM_EMAIL_SERVER\",\n () => [\n 400,\n `This action requires a custom SMTP server. Please edit your email server configuration and try again.`,\n ] as const,\n () => [] as const,\n);\n\nconst EmailCapacityBoostAlreadyActive = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_CAPACITY_BOOST_ALREADY_ACTIVE\",\n (expiresAt: string) => [\n 409,\n `Email capacity boost is already active until ${expiresAt}.`,\n { expires_at: expiresAt },\n ] as const,\n (json: any) => [json.expires_at] as const,\n);\n\nconst EmailNotEditable = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_NOT_EDITABLE\",\n (emailId: string, status: string) => [\n 400,\n `Email with ID \"${emailId}\" cannot be edited because it is in status \"${status}\". Only emails in PAUSED, PREPARING, RENDERING, RENDER_ERROR, SCHEDULED, QUEUED, or SERVER_ERROR status can be edited.`,\n {\n email_id: emailId,\n status,\n },\n ] as const,\n (json: any) => [json.email_id, json.status] as const,\n);\n\nconst ItemNotFound = createKnownErrorConstructor(\n KnownError,\n \"ITEM_NOT_FOUND\",\n (itemId: string) => [\n 404,\n `Item with ID \"${itemId}\" not found.`,\n {\n item_id: itemId,\n },\n ] as const,\n (json) => [json.item_id] as const,\n);\n\nconst ItemCustomerTypeDoesNotMatch = createKnownErrorConstructor(\n KnownError,\n \"ITEM_CUSTOMER_TYPE_DOES_NOT_MATCH\",\n (itemId: string, customerId: string, itemCustomerType: \"user\" | \"team\" | \"custom\" | undefined, actualCustomerType: \"user\" | \"team\" | \"custom\") => [\n 400,\n `The ${actualCustomerType} with ID ${JSON.stringify(customerId)} is not a valid customer for the item with ID ${JSON.stringify(itemId)}. ${itemCustomerType ? `The item is configured to only be available for ${itemCustomerType} customers, but the customer is a ${actualCustomerType}.` : `The item is missing a customer type field. Please make sure it is set up correctly in your project configuration.`}`,\n {\n item_id: itemId,\n customer_id: customerId,\n item_customer_type: itemCustomerType ?? null,\n actual_customer_type: actualCustomerType,\n },\n ] as const,\n (json) => [json.item_id, json.customer_id, json.item_customer_type ?? undefined, json.actual_customer_type] as const,\n);\n\nconst CustomerDoesNotExist = createKnownErrorConstructor(\n KnownError,\n \"CUSTOMER_DOES_NOT_EXIST\",\n (customerId: string) => [\n 400,\n `Customer with ID ${JSON.stringify(customerId)} does not exist.`,\n {\n customer_id: customerId,\n },\n ] as const,\n (json) => [json.customer_id] as const,\n);\n\nconst SubscriptionInvoiceNotFound = createKnownErrorConstructor(\n KnownError,\n \"SUBSCRIPTION_INVOICE_NOT_FOUND\",\n (subscriptionInvoiceId: string) => [\n 404,\n `Subscription invoice with ID ${JSON.stringify(subscriptionInvoiceId)} does not exist.`,\n {\n subscription_invoice_id: subscriptionInvoiceId,\n },\n ] as const,\n (json) => [json.subscription_invoice_id] as const,\n);\n\nconst OneTimePurchaseNotFound = createKnownErrorConstructor(\n KnownError,\n \"ONE_TIME_PURCHASE_NOT_FOUND\",\n (purchaseId: string) => [\n 404,\n `One-time purchase with ID ${JSON.stringify(purchaseId)} does not exist.`,\n {\n one_time_purchase_id: purchaseId,\n },\n ] as const,\n (json) => [json.one_time_purchase_id] as const,\n);\n\n// Used by the three-knob refund flow's legacy backstop — these are thrown\n// when a purchase has the pre-rework `refundedAt` column set (i.e. it was\n// refunded under the previous flow). The new flow's bulldozer-derived\n// prior-refund summary can't see those rows, so this gate prevents\n// double-refunding through Stripe.\nconst SubscriptionAlreadyRefunded = createKnownErrorConstructor(\n KnownError,\n \"SUBSCRIPTION_ALREADY_REFUNDED\",\n (subscriptionId: string) => [\n 400,\n `Subscription with ID ${JSON.stringify(subscriptionId)} was already refunded.`,\n {\n subscription_id: subscriptionId,\n },\n ] as const,\n (json) => [json.subscription_id] as const,\n);\n\nconst OneTimePurchaseAlreadyRefunded = createKnownErrorConstructor(\n KnownError,\n \"ONE_TIME_PURCHASE_ALREADY_REFUNDED\",\n (purchaseId: string) => [\n 400,\n `One-time purchase with ID ${JSON.stringify(purchaseId)} was already refunded.`,\n {\n one_time_purchase_id: purchaseId,\n },\n ] as const,\n (json) => [json.one_time_purchase_id] as const,\n);\n\nconst TestModePurchaseNonRefundable = createKnownErrorConstructor(\n KnownError,\n \"TEST_MODE_PURCHASE_NON_REFUNDABLE\",\n () => [\n 400,\n \"Test mode purchases are not refundable.\",\n ] as const,\n () => [] as const,\n);\n\n\nconst ProductDoesNotExist = createKnownErrorConstructor(\n KnownError,\n \"PRODUCT_DOES_NOT_EXIST\",\n (productId: string, context: \"item_exists\" | \"server_only\" | null) => [\n 400,\n `Product with ID ${JSON.stringify(productId)} ${context === \"server_only\"\n ? \"is marked as server-only and cannot be accessed client side.\"\n : context === \"item_exists\"\n ? \"does not exist, but an item with this ID exists.\"\n : \"does not exist.\"\n }`,\n {\n product_id: productId,\n context,\n } as const,\n ] as const,\n (json) => [json.product_id, json.context] as const,\n);\n\nconst ProductCustomerTypeDoesNotMatch = createKnownErrorConstructor(\n KnownError,\n \"PRODUCT_CUSTOMER_TYPE_DOES_NOT_MATCH\",\n (productId: string | undefined, customerId: string, productCustomerType: \"user\" | \"team\" | \"custom\" | undefined, actualCustomerType: \"user\" | \"team\" | \"custom\") => [\n 400,\n `The ${actualCustomerType} with ID ${JSON.stringify(customerId)} is not a valid customer for the inline product that has been passed in. ${productCustomerType ? `The product is configured to only be available for ${productCustomerType} customers, but the customer is a ${actualCustomerType}.` : `The product is missing a customer type field. Please make sure it is set up correctly in your project configuration.`}`,\n {\n product_id: productId ?? null,\n customer_id: customerId,\n product_customer_type: productCustomerType ?? null,\n actual_customer_type: actualCustomerType,\n },\n ] as const,\n (json) => [json.product_id ?? undefined, json.customer_id, json.product_customer_type ?? undefined, json.actual_customer_type] as const,\n);\n\nconst ProductAlreadyGranted = createKnownErrorConstructor(\n KnownError,\n \"PRODUCT_ALREADY_GRANTED\",\n (productId: string, customerId: string) => [\n 400,\n `Customer with ID ${JSON.stringify(customerId)} already owns product ${JSON.stringify(productId)}.`,\n {\n product_id: productId,\n customer_id: customerId,\n },\n ] as const,\n (json) => [json.product_id, json.customer_id] as const,\n);\n\nconst ItemQuantityInsufficientAmount = createKnownErrorConstructor(\n KnownError,\n \"ITEM_QUANTITY_INSUFFICIENT_AMOUNT\",\n (itemId: string, customerId: string, quantity: number) => [\n 400,\n `The item with ID ${JSON.stringify(itemId)} has an insufficient quantity for the customer with ID ${JSON.stringify(customerId)}. An attempt was made to charge ${quantity} credits.`,\n {\n item_id: itemId,\n customer_id: customerId,\n quantity,\n },\n ] as const,\n (json) => [json.item_id, json.customer_id, json.quantity] as const,\n);\n\nconst StripeAccountInfoNotFound = createKnownErrorConstructor(\n KnownError,\n \"STRIPE_ACCOUNT_INFO_NOT_FOUND\",\n () => [\n 404,\n \"Stripe account information not found. Please make sure the user has onboarded with Stripe.\",\n ] as const,\n () => [] as const,\n);\n\nconst AnalyticsQueryTimeout = createKnownErrorConstructor(\n KnownError,\n \"ANALYTICS_QUERY_TIMEOUT\",\n (timeoutMs: number) => [\n 400,\n `The query timed out. Please try again with a shorter query or increase the timeout. Timeout was ${timeoutMs}ms.`,\n { timeout_ms: timeoutMs },\n ] as const,\n (json) => [json.timeout_ms] as const,\n);\n\nconst AnalyticsQueryError = createKnownErrorConstructor(\n KnownError,\n \"ANALYTICS_QUERY_ERROR\",\n (error: string) => [\n 400,\n `${error}`,\n { error },\n ] as const,\n (json) => [json.error] as const,\n);\n\nconst AnalyticsNotEnabled = createKnownErrorConstructor(\n KnownError,\n \"ANALYTICS_NOT_ENABLED\",\n () => [\n 400,\n \"Analytics is not enabled for this project.\",\n ] as const,\n () => [] as const,\n);\n\nconst DefaultPaymentMethodRequired = createKnownErrorConstructor(\n KnownError,\n \"DEFAULT_PAYMENT_METHOD_REQUIRED\",\n (customerType: \"user\" | \"team\", customerId: string) => [\n 400,\n \"No default payment method is set for this customer.\",\n {\n customer_type: customerType,\n customer_id: customerId,\n },\n ] as const,\n (json) => [json.customer_type, json.customer_id] as const,\n);\n\nconst NewPurchasesBlocked = createKnownErrorConstructor(\n KnownError,\n \"NEW_PURCHASES_BLOCKED\",\n () => [\n 403,\n \"New purchases are currently blocked for this project. Please contact support for more information.\",\n ] as const,\n () => [] as const,\n);\n\nexport type KnownErrors = {\n [K in keyof typeof KnownErrors]: InstanceType<typeof KnownErrors[K]>;\n};\n\nexport const KnownErrors = {\n CannotDeleteCurrentSession,\n UnsupportedError,\n BodyParsingError,\n SchemaError,\n AllOverloadsFailed,\n ProjectAuthenticationError,\n PermissionIdAlreadyExists,\n CliAuthError,\n CliAuthExpiredError,\n CliAuthUsedError,\n InvalidProjectAuthentication,\n ProjectKeyWithoutAccessType,\n InvalidAccessType,\n AccessTypeWithoutProjectId,\n AccessTypeRequired,\n CannotGetOwnUserWithoutUser,\n InsufficientAccessType,\n InvalidPublishableClientKey,\n InvalidSecretServerKey,\n InvalidSuperSecretAdminKey,\n InvalidAdminAccessToken,\n UnparsableAdminAccessToken,\n AdminAccessTokenExpired,\n InvalidProjectForAdminAccessToken,\n AdminAccessTokenIsNotAdmin,\n ProjectAuthenticationRequired,\n ClientAuthenticationRequired,\n PublishableClientKeyRequiredForProject,\n ServerAuthenticationRequired,\n ClientOrServerAuthenticationRequired,\n ClientOrAdminAuthenticationRequired,\n ClientOrServerOrAdminAuthenticationRequired,\n AdminAuthenticationRequired,\n ExpectedInternalProject,\n SessionAuthenticationError,\n InvalidSessionAuthentication,\n InvalidAccessToken,\n UnparsableAccessToken,\n AccessTokenExpired,\n InvalidProjectForAccessToken,\n RefreshTokenError,\n ProviderRejected,\n RefreshTokenNotFoundOrExpired,\n UserWithEmailAlreadyExists,\n EmailNotVerified,\n UserIdDoesNotExist,\n UserNotFound,\n RestrictedUserNotAllowed,\n ApiKeyNotFound,\n PublicApiKeyCannotBeRevoked,\n ProjectNotFound,\n CurrentProjectNotFound,\n BranchDoesNotExist,\n SignUpNotEnabled,\n SignUpRejected,\n BotChallengeRequired,\n BotChallengeFailed,\n PasswordAuthenticationNotEnabled,\n PasskeyAuthenticationNotEnabled,\n AnonymousAccountsNotEnabled,\n AnonymousAuthenticationNotAllowed,\n EmailPasswordMismatch,\n RedirectUrlNotWhitelisted,\n PasswordRequirementsNotMet,\n PasswordTooShort,\n PasswordTooLong,\n UserDoesNotHavePassword,\n VerificationCodeError,\n VerificationCodeNotFound,\n VerificationCodeExpired,\n VerificationCodeAlreadyUsed,\n VerificationCodeMaxAttemptsReached,\n PasswordConfirmationMismatch,\n EmailAlreadyVerified,\n EmailNotAssociatedWithUser,\n EmailIsNotPrimaryEmail,\n PasskeyRegistrationFailed,\n PasskeyWebAuthnError,\n PasskeyAuthenticationFailed,\n PermissionNotFound,\n PermissionScopeMismatch,\n ContainedPermissionNotFound,\n TeamNotFound,\n TeamMembershipNotFound,\n TeamInvitationRestrictedUserNotAllowed,\n TeamInvitationEmailMismatch,\n EmailTemplateAlreadyExists,\n OAuthConnectionNotConnectedToUser,\n OAuthConnectionAlreadyConnectedToAnotherUser,\n OAuthConnectionDoesNotHaveRequiredScope,\n OAuthAccessTokenNotAvailable,\n OAuthExtraScopeNotAvailableWithSharedOAuthKeys,\n OAuthAccessTokenNotAvailableWithSharedOAuthKeys,\n InvalidOAuthClientIdOrSecret,\n InvalidScope,\n UserAlreadyConnectedToAnotherOAuthConnection,\n OuterOAuthTimeout,\n OAuthProviderNotFoundOrNotEnabled,\n AppleBundleIdNotConfigured,\n OAuthProviderAccountIdAlreadyUsedForSignIn,\n MultiFactorAuthenticationRequired,\n InvalidTotpCode,\n UserAuthenticationRequired,\n TeamMembershipAlreadyExists,\n ProjectPermissionRequired,\n TeamPermissionRequired,\n InvalidSharedOAuthProviderId,\n InvalidStandardOAuthProviderId,\n InvalidAuthorizationCode,\n InvalidAppleCredentials,\n TeamPermissionNotFound,\n OAuthProviderAccessDenied,\n OAuthProviderTemporarilyUnavailable,\n ContactChannelAlreadyUsedForAuthBySomeoneElse,\n InvalidPollingCodeError,\n ApiKeyNotValid,\n ApiKeyExpired,\n ApiKeyRevoked,\n WrongApiKeyType,\n EmailRenderingError,\n TemplateSourceRewriteError,\n RequiresCustomEmailServer,\n EmailCapacityBoostAlreadyActive,\n EmailNotEditable,\n ItemNotFound,\n ItemCustomerTypeDoesNotMatch,\n CustomerDoesNotExist,\n ProductDoesNotExist,\n ProductCustomerTypeDoesNotMatch,\n ProductAlreadyGranted,\n SubscriptionInvoiceNotFound,\n OneTimePurchaseNotFound,\n SubscriptionAlreadyRefunded,\n OneTimePurchaseAlreadyRefunded,\n TestModePurchaseNonRefundable,\n ItemQuantityInsufficientAmount,\n StripeAccountInfoNotFound,\n DefaultPaymentMethodRequired,\n NewPurchasesBlocked,\n DataVaultStoreDoesNotExist,\n DataVaultStoreHashedKeyDoesNotExist,\n AnalyticsQueryTimeout,\n AnalyticsQueryError,\n AnalyticsNotEnabled,\n} satisfies Record<string, KnownErrorConstructor<any, any>>;\n\n\n// ensure that all known error codes are unique\nconst knownErrorCodes = new Set<string>();\nfor (const [_, KnownError] of Object.entries(KnownErrors)) {\n if (knownErrorCodes.has(KnownError.errorCode)) {\n throw new Error(`Duplicate known error code: ${KnownError.errorCode}`);\n }\n knownErrorCodes.add(KnownError.errorCode);\n}\n"],"mappings":"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AC,KAAK,SAAS,CAC/B;AAED,MAAM,sCAAsC,4BAC1C,YACA,+CACC,SAAiB,cAAsB;CACtC;CACA,4BAA4B,QAAQ,oCAAoC,UAAU;CAClF;EACE,UAAU;EACV,YAAY;EACb;CACF,GACA,SAAc,CAAC,KAAK,UAAU,KAAK,WAAW,CAChD;AAED,MAAM,kCAAkC,4BACtC,YACA,4CACM,CACJ,KACA,0DACD,QACK,EAAE,CACT;AAED,MAAM,8BAA8B,4BAClC,YACA,wCACM,CACJ,KACA,uDACD,QACK,EAAE,CACT;AAED,MAAM,oCAAoC,4BACxC,YACA,8CACM,CACJ,KACA,sLACD,QACK,EAAE,CACT;AAGD,MAAM,wBAAwB,4BAC5B,YACA,iCACM,CACJ,KACA,4BACD,QACK,EAAE,CACT;AAED,MAAM,4BAA4B,4BAChC,YACA,iCACC,gBAAyB;CACxB;CACA;CACA,gBAAgB,SAAY,SAAY,EACtC,cAAc,aACf;CACF,GACA,SAAS,CAAE,MAAc,aAAa,CACxC;AAED,MAAM,6BAA6B,4BACjC,YACA,iCACA,WACA,UACD;AAED,MAAM,mBAAmB,4BACvB,4BACA,uBACC,cAAsB;CACrB;CACA,yCAAyC,UAAU;CACnD,EACE,YAAY,WACb;CACF,GACA,SAAS,CACP,MAAc,cAAc,SAAS,mDAAmD,CAC1F,CACF;AAED,MAAM,kBAAkB,4BACtB,4BACA,sBACC,cAAsB;CACrB;CACA,wCAAwC,UAAU;CAClD,EACE,WACD;CACF,GACA,SAAS,CACP,MAAc,aAAa,SAAS,iDAAiD,CACvF,CACF;AAED,MAAM,0BAA0B,4BAC9B,YACA,qCACM,CACJ,KACA,2DACD,QACK,EAAE,CACT;AAED,MAAM,wBAAwB,4BAC5B,YACA,sBACA,WACA,UACD;AAED,MAAM,2BAA2B,4BAC/B,uBACA,qCACM,CACJ,KACA,yDACD,QACK,EAAE,CACT;AAED,MAAM,0BAA0B,4BAC9B,uBACA,mCACM,CACJ,KACA,qCACD,QACK,EAAE,CACT;AAED,MAAM,8BAA8B,4BAClC,uBACA,wCACM,CACJ,KACA,+CACD,QACK,EAAE,CACT;AAED,MAAM,qCAAqC,4BACzC,uBACA,gDACM,CACJ,KACA,0GACD,QACK,EAAE,CACT;AAED,MAAM,+BAA+B,4BACnC,YACA,wCACM,CACJ,KACA,0BACD,QACK,EAAE,CACT;AAED,MAAM,uBAAuB,4BAC3B,YACA,gCACM,CACJ,KACA,kCACD,QACK,EAAE,CACT;AAED,MAAM,6BAA6B,4BACjC,YACA,wCACM,CACJ,KACA,+EACD,QACK,EAAE,CACT;AAED,MAAM,yBAAyB,4BAC7B,YACA,+BACC,OAAe,iBAAgC;CAC9C;CACA,qBAAqB,MAAM,0CAA0C,aAAa;CAClF;EACE;EACA,eAAe;EAChB;CACF,GACA,SAAc,CAAC,KAAK,OAAO,KAAK,cAAc,CAChD;AAGD,MAAM,4BAA4B,4BAChC,YACA,gCACC,YAAoB,CACnB,KACA,QACD,GACA,SAAc,CAAC,KAAK,QAAQ,CAC9B;AAGD,MAAM,uBAAuB,4BAC3B,YACA,2BACC,SAAiB,SAAiB;CACjC;CACA;CACA;EACE;EACA;EACD;CACF,GACA,SAAc,CAAC,KAAK,SAAS,KAAK,KAAK,CACzC;AAED,MAAM,8BAA8B,4BAClC,YACA,kCACC,YAAoB,CACnB,KACA,QACD,GACA,SAAc,CAAC,KAAK,QAAQ,CAC9B;AAGD,MAAM,qBAAqB,4BACzB,YACA,yBACC,iBAAyB;CACxB;CACA,eAAe,aAAa;CAC5B,EACE,eAAe,cAChB;CACF,GACA,SAAc,CAAC,KAAK,cAAc,CACpC;AAED,MAAM,0BAA0B,4BAC9B,YACA,2BACC,cAAsB,eAAmC,gBAA2C;CACnG;CACA,cAAc,KAAK,UAAU,aAAa,CAAC,kDAAkD,KAAK,UAAU,YAAY,CAAC,cAAc,KAAK,UAAU,cAAc,CAAC;CACrK;EACE,eAAe;EACf,gBAAgB;EAChB,cAAc;EACf;CACF,GACA,SAAc;CAAC,KAAK;CAAe,KAAK;CAAgB,KAAK;CAAa,CAC5E;AAED,MAAM,8BAA8B,4BAClC,YACA,mCACC,iBAAyB;CACxB;CACA,iCAAiC,aAAa;CAC9C,EACE,eAAe,cAChB;CACF,GACA,SAAc,CAAC,KAAK,cAAc,CACpC;AAED,MAAM,eAAe,4BACnB,YACA,mBACC,WAAmB;CAClB;CACA,QAAQ,OAAO;CACf,EACE,SAAS,QACV;CACF,GACA,SAAc,CAAC,KAAK,QAAQ,CAC9B;AAEyB,4BACxB,YACA,wBACC,WAAmB;CAClB;CACA,QAAQ,OAAO;CACf,EACE,SAAS,QACV;CACF,GACA,SAAc,CAAC,KAAK,QAAQ,CAC9B;AAED,MAAM,yBAAyB,4BAC7B,YACA,8BACC,QAAgB,WAAmB;CAClC;CACA,QAAQ,OAAO,wBAAwB,OAAO;CAC9C;EACE,SAAS;EACT,SAAS;EACV;CACF,GACA,SAAc,CAAC,KAAK,SAAS,KAAK,QAAQ,CAC5C;AAED,MAAM,yCAAyC,4BAC7C,YACA,gDACC,qBAAmG;CAClG;CACA,4DAA4D,iBAAiB,KAAK;CAClF,EACE,mBAAmB,kBACpB;CACF,GACA,SAAc,CAAC,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC,CACjE;AAED,MAAM,8BAA8B,4BAClC,YACA,wCACM,CACJ,KACA,4JACD,QACK,EAAE,CACT;AAGD,MAAM,6BAA6B,4BACjC,YACA,uCACM,CACJ,KACA,iCACD,QACK,EAAE,CACT;AAED,MAAM,oCAAoC,4BACxC,YACA,gDACM,CACJ,KACA,qDACD,QACK,EAAE,CACT;AAED,MAAM,+CAA+C,4BACnD,YACA,4DACM,CACJ,KACA,6DACD,QACK,EAAE,CACT;AAED,MAAM,0CAA0C,4BAC9C,YACA,uDACM,CACJ,KACA,yDACD,QACK,EAAE,CACT;AAED,MAAM,+BAA+B,4BACnC,YACA,qCACC,UAAkB,YAAoB;CACrC;CACA,iFAAiF,SAAS,KAAK;CAC/F;EACE;EACA;EACD;CACF,GACA,SAAc,CAAC,KAAK,UAAU,KAAK,QAAQ,CAC7C;AAED,MAAM,iDAAiD,4BACrD,YACA,gEACM,CACJ,KACA,uIACD,QACK,EAAE,CACT;AAED,MAAM,kDAAkD,4BACtD,YACA,iEACM,CACJ,KACA,yIACD,QACK,EAAE,CACT;AAED,MAAM,+BAA+B,4BACnC,YACA,sCACC,aAAsB;CACrB;CACA;CACA,EACE,WAAW,YAAY,MACxB;CACF,GACA,SAAc,CAAC,KAAK,aAAa,OAAU,CAC7C;AAED,MAAM,eAAe,4BACnB,YACA,kBACC,UAAkB,CACjB,KACA,cAAc,MAAM,yCACrB,GACA,SAAc,CAAC,KAAK,MAAM,CAC5B;AAED,MAAM,+CAA+C,4BACnD,YACA,4DACM,CACJ,KACA,oGACD,QACK,EAAE,CACT;AAED,MAAM,oBAAoB,4BACxB,YACA,6BACM,CACJ,KACA,sDACD,QACK,EAAE,CACT;AAED,MAAM,oCAAoC,4BACxC,YACA,iDACM,CACJ,KACA,kDACD,QACK,EAAE,CACT;AAED,MAAM,6BAA6B,4BACjC,YACA,wCACM,CACJ,KACA,0KACD,QACK,EAAE,CACT;AAED,MAAM,6CAA6C,4BACjD,YACA,4DACM,CACJ,KACA,sEACD,QACK,EAAE,CACT;AAED,MAAM,oCAAoC,4BACxC,YACA,yCACC,gBAAwB;CACvB;CACA;CACA,EACE,cAAc,aACf;CACF,GACA,SAAS,CAAC,KAAK,aAAa,CAC9B;AAED,MAAM,kBAAkB,4BACtB,YACA,2BACM,CACJ,KACA,8CACD,QACK,EAAE,CACT;AAED,MAAM,6BAA6B,4BACjC,YACA,sCACM,CACJ,KACA,kDACD,QACK,EAAE,CACT;AAED,MAAM,8BAA8B,4BAClC,YACA,wCACM,CACJ,KACA,kCACD,QACK,EAAE,CACT;AAED,MAAM,4BAA4B,4BAChC,YACA,gCACC,QAAQ,iBAAiB;CACxB;CACA,QAAQ,OAAO,4BAA4B,aAAa;CACxD;EACE,SAAS;EACT,eAAe;EAChB;CACF,GACA,SAAS,CAAC,KAAK,SAAS,KAAK,cAAc,CAC7C;AAED,MAAM,yBAAyB,4BAC7B,YACA,6BACC,QAAQ,QAAQ,iBAAiB;CAChC;CACA,QAAQ,OAAO,4BAA4B,aAAa,WAAW,OAAO;CAC1E;EACE,SAAS;EACT,SAAS;EACT,eAAe;EAChB;CACF,GACA,SAAS;CAAC,KAAK;CAAS,KAAK;CAAS,KAAK;CAAc,CAC3D;AAED,MAAM,yBAAyB,4BAC7B,YACA,8BACC,QAAQ,QAAQ,iBAAiB;CAChC;CACA,QAAQ,OAAO,4BAA4B,aAAa,WAAW,OAAO;CAC1E;EACE,SAAS;EACT,SAAS;EACT,eAAe;EAChB;CACF,GACA,SAAS;CAAC,KAAK;CAAS,KAAK;CAAS,KAAK;CAAc,CAC3D;AAED,MAAM,+BAA+B,4BACnC,YACA,qCACC,eAAe;CACd;CACA,qCAAqC,WAAW;CAChD,EACE,aAAa,YACd;CACF,GACA,SAAS,CAAC,KAAK,YAAY,CAC7B;AAED,MAAM,iCAAiC,4BACrC,YACA,uCACC,eAAe;CACd;CACA,uCAAuC,WAAW;CAClD,EACE,aAAa,YACd;CACF,GACA,SAAS,CAAC,KAAK,YAAY,CAC7B;AAED,MAAM,2BAA2B,4BAC/B,YACA,oCACM,CACJ,KACA,2CACD,QACK,EAAE,CACT;AAED,MAAM,0BAA0B,4BAC9B,YACA,mCACM,CACJ,KACA,oFACD,QACK,EAAE,CACT;AAED,MAAM,4BAA4B,4BAChC,YACA,sCACM,CACJ,KACA,gDACD,QACK,EAAE,CACT;AAED,MAAM,sCAAsC,4BAC1C,YACA,gDACM,CACJ,KACA,yEACD,QACK,EAAE,CACT;AAED,MAAM,gDAAgD,4BACpD,YACA,0DACC,MAAe,qBAA8B,8BAAuC,UAAU;CAC7F;CACA,QAAQ,KAAK,GAAG,sBAAsB,KAAK,oBAAoB,MAAM,GAAG,wDAAwD,8BAA8B,6KAA6K;CAC3U;EACE;EACA,uBAAuB,uBAAuB;EAC9C,kCAAkC;EACnC;CACF,GACA,SAAS;CAAC,KAAK;CAAM,KAAK;CAAuB,KAAK,oCAAoC;CAAM,CAClG;AAED,MAAM,0BAA0B,4BAC9B,YACA,yBACC,YAAmB;CAClB;CACA;CACA;CACD,GACA,SAAc,CAAC,KAAK,CACtB;AAED,MAAM,eAAe,4BACnB,YACA,mBACC,YAAoB,CACnB,KACA,QACD,GACA,SAAc,CAAC,KAAK,QAAQ,CAC9B;AAED,MAAM,sBAAsB,4BAC1B,YACA,2BACC,UAAkB,4DAA4D,CAC7E,KACA,QACD,GACA,SAAc,CAAC,KAAK,QAAQ,CAC9B;AAED,MAAM,mBAAmB,4BACvB,YACA,wBACC,UAAkB,uDAAuD,CACxE,KACA,QACD,GACA,SAAc,CAAC,KAAK,QAAQ,CAC9B;AAGD,MAAM,iBAAiB,4BACrB,YACA,qBACA,WACA,UACD;AAED,MAAM,gBAAgB,4BACpB,gBACA,yBACM,CACJ,KACA,uBACD,QACK,EAAE,CACT;AAED,MAAM,gBAAgB,4BACpB,gBACA,yBACM,CACJ,KACA,4BACD,QACK,EAAE,CACT;AAED,MAAM,kBAAkB,4BACtB,gBACA,uBACC,cAAsB,eAAuB;CAC5C;CACA,wBAAwB,aAAa,mBAAmB,WAAW;CACnE;EAAE,eAAe;EAAc,aAAa;EAAY;CACzD,GACA,SAAS,CAAC,KAAK,eAAe,KAAK,YAAY,CACjD;AAED,MAAM,iBAAiB,4BACrB,gBACA,2BACM,CACJ,KACA,qBACD,QACK,EAAE,CACT;AAED,MAAM,8BAA8B,4BAClC,gBACA,0CACM,CACJ,KACA,mEACD,QACK,EAAE,CACT;AACD,MAAM,4BAA4B,4BAChC,YACA,iCACC,iBAAyB;CACxB;CACA,uBAAuB,aAAa;CACpC,EACE,eAAe,cAChB;CACF,GACA,SAAc,CAAC,KAAK,cAAc,CACpC;AAED,MAAM,sBAAsB,4BAC1B,YACA,0BACC,UAAkB;CACjB;CACA,sCAAsC;CACtC,EAAE,OAAO;CACV,GACA,SAAc,CAAC,KAAK,MAAM,CAC5B;AAED,MAAM,6BAA6B,4BACjC,YACA,kCACC,UAAkB;CACjB;CACA,sCAAsC;CACtC,EAAE,OAAO;CACV,GACA,SAAc,CAAC,KAAK,MAAM,CAC5B;AAED,MAAM,4BAA4B,4BAChC,YACA,sCACM,CACJ,KACA,wGACD,QACK,EAAE,CACT;AAED,MAAM,kCAAkC,4BACtC,YACA,wCACC,cAAsB;CACrB;CACA,gDAAgD,UAAU;CAC1D,EAAE,YAAY,WAAW;CAC1B,GACA,SAAc,CAAC,KAAK,WAAW,CACjC;AAED,MAAM,mBAAmB,4BACvB,YACA,uBACC,SAAiB,WAAmB;CACnC;CACA,kBAAkB,QAAQ,8CAA8C,OAAO;CAC/E;EACE,UAAU;EACV;EACD;CACF,GACA,SAAc,CAAC,KAAK,UAAU,KAAK,OAAO,CAC5C;AAED,MAAM,eAAe,4BACnB,YACA,mBACC,WAAmB;CAClB;CACA,iBAAiB,OAAO;CACxB,EACE,SAAS,QACV;CACF,GACA,SAAS,CAAC,KAAK,QAAQ,CACzB;AAED,MAAM,+BAA+B,4BACnC,YACA,sCACC,QAAgB,YAAoB,kBAA0D,uBAAmD;CAChJ;CACA,OAAO,mBAAmB,WAAW,KAAK,UAAU,WAAW,CAAC,gDAAgD,KAAK,UAAU,OAAO,CAAC,IAAI,mBAAmB,mDAAmD,iBAAiB,oCAAoC,mBAAmB,KAAK;CAC9R;EACE,SAAS;EACT,aAAa;EACb,oBAAoB,oBAAoB;EACxC,sBAAsB;EACvB;CACF,GACA,SAAS;CAAC,KAAK;CAAS,KAAK;CAAa,KAAK,sBAAsB;CAAW,KAAK;CAAqB,CAC5G;AAED,MAAM,uBAAuB,4BAC3B,YACA,4BACC,eAAuB;CACtB;CACA,oBAAoB,KAAK,UAAU,WAAW,CAAC;CAC/C,EACE,aAAa,YACd;CACF,GACA,SAAS,CAAC,KAAK,YAAY,CAC7B;AAED,MAAM,8BAA8B,4BAClC,YACA,mCACC,0BAAkC;CACjC;CACA,gCAAgC,KAAK,UAAU,sBAAsB,CAAC;CACtE,EACE,yBAAyB,uBAC1B;CACF,GACA,SAAS,CAAC,KAAK,wBAAwB,CACzC;AAED,MAAM,0BAA0B,4BAC9B,YACA,gCACC,eAAuB;CACtB;CACA,6BAA6B,KAAK,UAAU,WAAW,CAAC;CACxD,EACE,sBAAsB,YACvB;CACF,GACA,SAAS,CAAC,KAAK,qBAAqB,CACtC;AAOD,MAAM,8BAA8B,4BAClC,YACA,kCACC,mBAA2B;CAC1B;CACA,wBAAwB,KAAK,UAAU,eAAe,CAAC;CACvD,EACE,iBAAiB,gBAClB;CACF,GACA,SAAS,CAAC,KAAK,gBAAgB,CACjC;AAED,MAAM,iCAAiC,4BACrC,YACA,uCACC,eAAuB;CACtB;CACA,6BAA6B,KAAK,UAAU,WAAW,CAAC;CACxD,EACE,sBAAsB,YACvB;CACF,GACA,SAAS,CAAC,KAAK,qBAAqB,CACtC;AAED,MAAM,gCAAgC,4BACpC,YACA,2CACM,CACJ,KACA,0CACD,QACK,EAAE,CACT;AAGD,MAAM,sBAAsB,4BAC1B,YACA,2BACC,WAAmB,YAAkD;CACpE;CACA,mBAAmB,KAAK,UAAU,UAAU,CAAC,GAAG,YAAY,gBACxD,iEACA,YAAY,gBACV,qDACA;CAEN;EACE,YAAY;EACZ;EACD;CACF,GACA,SAAS,CAAC,KAAK,YAAY,KAAK,QAAQ,CAC1C;AAED,MAAM,kCAAkC,4BACtC,YACA,yCACC,WAA+B,YAAoB,qBAA6D,uBAAmD;CAClK;CACA,OAAO,mBAAmB,WAAW,KAAK,UAAU,WAAW,CAAC,2EAA2E,sBAAsB,sDAAsD,oBAAoB,oCAAoC,mBAAmB,KAAK;CACvS;EACE,YAAY,aAAa;EACzB,aAAa;EACb,uBAAuB,uBAAuB;EAC9C,sBAAsB;EACvB;CACF,GACA,SAAS;CAAC,KAAK,cAAc;CAAW,KAAK;CAAa,KAAK,yBAAyB;CAAW,KAAK;CAAqB,CAC/H;AAED,MAAM,wBAAwB,4BAC5B,YACA,4BACC,WAAmB,eAAuB;CACzC;CACA,oBAAoB,KAAK,UAAU,WAAW,CAAC,wBAAwB,KAAK,UAAU,UAAU,CAAC;CACjG;EACE,YAAY;EACZ,aAAa;EACd;CACF,GACA,SAAS,CAAC,KAAK,YAAY,KAAK,YAAY,CAC9C;AAED,MAAM,iCAAiC,4BACrC,YACA,sCACC,QAAgB,YAAoB,aAAqB;CACxD;CACA,oBAAoB,KAAK,UAAU,OAAO,CAAC,yDAAyD,KAAK,UAAU,WAAW,CAAC,kCAAkC,SAAS;CAC1K;EACE,SAAS;EACT,aAAa;EACb;EACD;CACF,GACA,SAAS;CAAC,KAAK;CAAS,KAAK;CAAa,KAAK;CAAS,CAC1D;AAED,MAAM,4BAA4B,4BAChC,YACA,uCACM,CACJ,KACA,6FACD,QACK,EAAE,CACT;AAED,MAAM,wBAAwB,4BAC5B,YACA,4BACC,cAAsB;CACrB;CACA,mGAAmG,UAAU;CAC7G,EAAE,YAAY,WAAW;CAC1B,GACA,SAAS,CAAC,KAAK,WAAW,CAC5B;AAED,MAAM,sBAAsB,4BAC1B,YACA,0BACC,UAAkB;CACjB;CACA,GAAG;CACH,EAAE,OAAO;CACV,GACA,SAAS,CAAC,KAAK,MAAM,CACvB;AAED,MAAM,sBAAsB,4BAC1B,YACA,+BACM,CACJ,KACA,6CACD,QACK,EAAE,CACT;AAED,MAAM,+BAA+B,4BACnC,YACA,oCACC,cAA+B,eAAuB;CACrD;CACA;CACA;EACE,eAAe;EACf,aAAa;EACd;CACF,GACA,SAAS,CAAC,KAAK,eAAe,KAAK,YAAY,CACjD;AAED,MAAM,sBAAsB,4BAC1B,YACA,+BACM,CACJ,KACA,qGACD,QACK,EAAE,CACT;AAMD,MAAa,cAAc;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;MAIK,kCAAkB,IAAI,KAAa;AACzC,KAAK,MAAM,CAAC,GAAG,eAAe,OAAO,QAAQ,YAAY,EAAE;AACzD,KAAI,gBAAgB,IAAI,WAAW,UAAU,CAC3C,OAAM,IAAI,MAAM,+BAA+B,WAAW,YAAY;AAExE,iBAAgB,IAAI,WAAW,UAAU"}
1
+ {"version":3,"file":"known-errors.js","names":[],"sources":["../../src/known-errors.tsx"],"sourcesContent":["import { HexclaveAssertionError, StatusError, throwErr } from \"./utils/errors\";\nimport { identityArgs } from \"./utils/functions\";\nimport { Json } from \"./utils/json\";\nimport { deindent } from \"./utils/strings\";\n\nexport type KnownErrorJson = {\n code: string,\n message: string,\n details?: Json,\n};\n\nexport type AbstractKnownErrorConstructor<Args extends any[]> =\n & (abstract new (...args: Args) => KnownError)\n & {\n constructorArgsFromJson: (json: KnownErrorJson) => Args,\n };\n\nexport type KnownErrorConstructor<SuperInstance extends KnownError, Args extends any[]> = {\n new(...args: Args): SuperInstance & { constructorArgs: Args },\n errorCode: string,\n constructorArgsFromJson: (json: KnownErrorJson) => Args,\n isInstance: (error: unknown) => error is SuperInstance & { constructorArgs: Args },\n};\n\nexport abstract class KnownError extends StatusError {\n private readonly __stackKnownErrorBrand = \"stack-known-error-brand-sentinel\" as const;\n public name = \"KnownError\";\n\n constructor(\n public readonly statusCode: number,\n public readonly humanReadableMessage: string,\n public readonly details?: Json,\n ) {\n super(\n statusCode,\n humanReadableMessage\n );\n }\n\n public static isKnownError(error: unknown): error is KnownError {\n // like instanceof, but also works for errors thrown in other realms or by different versions of the same package\n return typeof error === \"object\" && error !== null && \"__stackKnownErrorBrand\" in error && error.__stackKnownErrorBrand === \"stack-known-error-brand-sentinel\";\n }\n\n public override getBody(): Uint8Array {\n return new TextEncoder().encode(JSON.stringify(this.toDescriptiveJson(), undefined, 2));\n }\n\n public override getHeaders(): Record<string, string[]> {\n return {\n \"Content-Type\": [\"application/json; charset=utf-8\"],\n // Hexclave rebrand: dual-emit both X-Hexclave-* and X-Stack-* so old and new SDKs can both read it.\n \"X-Stack-Known-Error\": [this.errorCode],\n \"X-Hexclave-Known-Error\": [this.errorCode],\n };\n }\n\n public override toDescriptiveJson(): Json {\n return {\n code: this.errorCode,\n ...this.details ? { details: this.details } : {},\n error: this.humanReadableMessage,\n };\n }\n\n get errorCode(): string {\n return (this.constructor as any).errorCode ?? throwErr(`Can't find error code for this KnownError. Is its constructor a KnownErrorConstructor? ${this}`);\n }\n\n public static constructorArgsFromJson(json: KnownErrorJson): ConstructorParameters<typeof KnownError> {\n return [\n 400,\n json.message,\n json,\n ];\n }\n\n public static fromJson(json: KnownErrorJson): KnownError {\n for (const [_, KnownErrorType] of Object.entries(KnownErrors)) {\n if (json.code === KnownErrorType.prototype.errorCode) {\n const constructorArgs = KnownErrorType.constructorArgsFromJson(json);\n return new KnownErrorType(\n // @ts-ignore-next-line\n ...constructorArgs,\n );\n }\n }\n\n throw new Error(`An error occurred. Please update your version of the Hexclave SDK. ${json.code}: ${json.message}`);\n }\n}\n\nconst knownErrorConstructorErrorCodeSentinel = Symbol(\"knownErrorConstructorErrorCodeSentinel\");\n/**\n * Exists solely so that known errors are nominative types (ie. two KnownErrors with the same interface are not the same type)\n */\ntype KnownErrorBrand<ErrorCode extends string> = {\n /**\n * Does not exist at runtime\n *\n * Must be an object because it may be true for multiple error codes (it's true for all parents)\n */\n [knownErrorConstructorErrorCodeSentinel]: {\n [K in ErrorCode]: true\n },\n};\n\nfunction createKnownErrorConstructor<ErrorCode extends string, Super extends AbstractKnownErrorConstructor<any>, Args extends any[]>(\n SuperClass: Super,\n errorCode: ErrorCode,\n create: ((...args: Args) => Readonly<ConstructorParameters<Super>>),\n constructorArgsFromJson: ((jsonDetails: any) => NoInfer<Args>),\n): KnownErrorConstructor<InstanceType<Super> & KnownErrorBrand<ErrorCode>, Args> & { errorCode: ErrorCode };\nfunction createKnownErrorConstructor<ErrorCode extends string, Super extends AbstractKnownErrorConstructor<any>>(\n SuperClass: Super,\n errorCode: ErrorCode,\n create: \"inherit\",\n constructorArgsFromJson: \"inherit\",\n): KnownErrorConstructor<InstanceType<Super> & KnownErrorBrand<ErrorCode>, ConstructorParameters<Super>> & { errorCode: ErrorCode };\nfunction createKnownErrorConstructor<ErrorCode extends string, Super extends AbstractKnownErrorConstructor<any>, Args extends any[]>(\n SuperClass: Super,\n errorCode: ErrorCode,\n create: \"inherit\" | ((...args: Args) => Readonly<ConstructorParameters<Super>>),\n constructorArgsFromJson: \"inherit\" | ((jsonDetails: any) => NoInfer<Args>),\n): KnownErrorConstructor<InstanceType<Super> & KnownErrorBrand<ErrorCode>, Args> & { errorCode: ErrorCode } {\n const createFn = create === \"inherit\" ? identityArgs<Args> as never : create;\n const constructorArgsFromJsonFn = constructorArgsFromJson === \"inherit\" ? SuperClass.constructorArgsFromJson as never : constructorArgsFromJson;\n\n // @ts-expect-error this is not a mixin, but TS detects it as one\n class KnownErrorImpl extends SuperClass {\n public static readonly errorCode = errorCode;\n public name = `KnownError<${errorCode}>`;\n public readonly constructorArgs: Args;\n\n constructor(...args: Args) {\n // @ts-ignore legendary comment, may never be removed https://x.com/konstiwohlwend/status/1998543556567617780\n super(...createFn(...args));\n this.constructorArgs = args;\n }\n\n static constructorArgsFromJson(json: KnownErrorJson): Args {\n return constructorArgsFromJsonFn(json.details);\n }\n\n static isInstance(error: unknown): error is InstanceType<Super> & { constructorArgs: Args } {\n if (!KnownError.isKnownError(error)) return false;\n let current: unknown = error;\n while (true) {\n current = Object.getPrototypeOf(current);\n if (!current) break;\n if (\"errorCode\" in current.constructor && current.constructor.errorCode === errorCode) return true;\n }\n return false;\n }\n };\n\n // @ts-expect-error\n return KnownErrorImpl;\n}\nimport.meta.vitest?.test(\"KnownError.isInstance\", ({ expect }) => {\n expect(KnownErrors.InvalidProjectAuthentication.isInstance(undefined)).toBe(false);\n expect(KnownErrors.InvalidProjectAuthentication.isInstance(new Error())).toBe(false);\n\n const error = new KnownErrors.ProjectKeyWithoutAccessType();\n expect(KnownErrors.ProjectKeyWithoutAccessType.isInstance(error)).toBe(true);\n expect(KnownErrors.InvalidProjectAuthentication.isInstance(error)).toBe(true);\n expect(KnownErrors.InvalidAccessType.isInstance(error)).toBe(false);\n});\n\nconst UnsupportedError = createKnownErrorConstructor(\n KnownError,\n \"UNSUPPORTED_ERROR\",\n (originalErrorCode: string) => [\n 500,\n `An error occurred that is not currently supported (possibly because it was added in a version of Stack that is newer than this client). The original unsupported error code was: ${originalErrorCode}`,\n {\n originalErrorCode,\n },\n ] as const,\n (json) => [\n (json as any)?.originalErrorCode ?? throwErr(\"originalErrorCode not found in UnsupportedError details\"),\n ] as const,\n);\n\nconst BodyParsingError = createKnownErrorConstructor(\n KnownError,\n \"BODY_PARSING_ERROR\",\n (message: string) => [\n 400,\n message,\n ] as const,\n (json) => [json.message] as const,\n);\n\nconst SchemaError = createKnownErrorConstructor(\n KnownError,\n \"SCHEMA_ERROR\",\n (message: string) => [\n 400,\n message || throwErr(\"SchemaError requires a message\"),\n {\n message,\n },\n ] as const,\n (json: any) => [json.message] as const,\n);\n\nconst AllOverloadsFailed = createKnownErrorConstructor(\n KnownError,\n \"ALL_OVERLOADS_FAILED\",\n (overloadErrors: Json[]) => [\n 400,\n deindent`\n This endpoint has multiple overloads, but they all failed to process the request.\n\n ${overloadErrors.map((e, i) => deindent`\n Overload ${i + 1}: ${JSON.stringify(e, undefined, 2)}\n `).join(\"\\n\\n\")}\n `,\n {\n overload_errors: overloadErrors,\n },\n ] as const,\n (json) => [\n (json as any)?.overload_errors ?? throwErr(\"overload_errors not found in AllOverloadsFailed details\"),\n ] as const,\n);\n\nconst ProjectAuthenticationError = createKnownErrorConstructor(\n KnownError,\n \"PROJECT_AUTHENTICATION_ERROR\",\n \"inherit\",\n \"inherit\",\n);\n\nconst InvalidProjectAuthentication = createKnownErrorConstructor(\n ProjectAuthenticationError,\n \"INVALID_PROJECT_AUTHENTICATION\",\n \"inherit\",\n \"inherit\",\n);\n\nconst ProjectKeyWithoutAccessType = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"PROJECT_KEY_WITHOUT_ACCESS_TYPE\",\n () => [\n 400,\n \"Either an API key or an admin access token was provided, but the x-hexclave-access-type header is missing. Set it to 'client', 'server', or 'admin' as appropriate. (The legacy x-stack-access-type header is also accepted.)\",\n ] as const,\n () => [] as const,\n);\n\nconst InvalidAccessType = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"INVALID_ACCESS_TYPE\",\n (accessType: string) => [\n 400,\n `The x-hexclave-access-type header must be 'client', 'server', or 'admin', but was '${accessType}'. (The legacy x-stack-access-type header is also accepted.)`,\n ] as const,\n (json) => [\n (json as any)?.accessType ?? throwErr(\"accessType not found in InvalidAccessType details\"),\n ] as const,\n);\n\nconst AccessTypeWithoutProjectId = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"ACCESS_TYPE_WITHOUT_PROJECT_ID\",\n (accessType: \"client\" | \"server\" | \"admin\") => [\n 400,\n deindent`\n The x-hexclave-access-type header was '${accessType}', but the x-hexclave-project-id header was not provided. (The legacy x-stack-access-type and x-stack-project-id headers are also accepted.)\n \n For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication\n `,\n {\n request_type: accessType,\n },\n ] as const,\n (json: any) => [json.request_type] as const,\n);\n\nconst AccessTypeRequired = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"ACCESS_TYPE_REQUIRED\",\n () => [\n 400,\n deindent`\n You must specify an access level for this Hexclave project. Make sure project API keys are provided (eg. x-hexclave-publishable-client-key) and you set the x-hexclave-access-type header to 'client', 'server', or 'admin'. (The legacy x-stack-* equivalents are also accepted.)\n \n For more information, see the docs on REST API authentication: https://docs.hexclave.com/api/overview#authentication\n `,\n ] as const,\n () => [] as const,\n);\n\nconst InsufficientAccessType = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"INSUFFICIENT_ACCESS_TYPE\",\n (actualAccessType: \"client\" | \"server\" | \"admin\", allowedAccessTypes: (\"client\" | \"server\" | \"admin\")[]) => [\n 401,\n `The x-hexclave-access-type header must be ${allowedAccessTypes.map(s => `'${s}'`).join(\" or \")}, but was '${actualAccessType}'. (The legacy x-stack-access-type header is also accepted.)`,\n {\n actual_access_type: actualAccessType,\n allowed_access_types: allowedAccessTypes,\n },\n ] as const,\n (json: any) => [\n json.actual_access_type,\n json.allowed_access_types,\n ] as const,\n);\n\nconst InvalidPublishableClientKey = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"INVALID_PUBLISHABLE_CLIENT_KEY\",\n (projectId: string) => [\n 401,\n `The publishable key is not valid for the project ${JSON.stringify(projectId)}. Does the project and/or the key exist?`,\n {\n project_id: projectId,\n },\n ] as const,\n (json: any) => [json.project_id] as const,\n);\n\nconst InvalidSecretServerKey = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"INVALID_SECRET_SERVER_KEY\",\n (projectId: string) => [\n 401,\n `The secret server key is not valid for the project ${JSON.stringify(projectId)}. Does the project and/or the key exist?`,\n {\n project_id: projectId,\n },\n ] as const,\n (json: any) => [json.project_id] as const,\n);\n\nconst InvalidSuperSecretAdminKey = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"INVALID_SUPER_SECRET_ADMIN_KEY\",\n (projectId: string) => [\n 401,\n `The super secret admin key is not valid for the project ${JSON.stringify(projectId)}. Does the project and/or the key exist?`,\n {\n project_id: projectId,\n },\n ] as const,\n (json: any) => [json.project_id] as const,\n);\n\nconst InvalidAdminAccessToken = createKnownErrorConstructor(\n InvalidProjectAuthentication,\n \"INVALID_ADMIN_ACCESS_TOKEN\",\n \"inherit\",\n \"inherit\",\n);\n\nconst UnparsableAdminAccessToken = createKnownErrorConstructor(\n InvalidAdminAccessToken,\n \"UNPARSABLE_ADMIN_ACCESS_TOKEN\",\n () => [\n 401,\n \"Admin access token is not parsable.\",\n ] as const,\n () => [] as const,\n);\n\nconst AdminAccessTokenExpired = createKnownErrorConstructor(\n InvalidAdminAccessToken,\n \"ADMIN_ACCESS_TOKEN_EXPIRED\",\n (expiredAt: Date | undefined) => [\n 401,\n `Admin access token has expired. Please refresh it and try again.${expiredAt ? ` (The access token expired at ${expiredAt.toISOString()}.)` : \"\"}`,\n { expired_at_millis: expiredAt?.getTime() ?? null },\n ] as const,\n (json: any) => [json.expired_at_millis ? new Date(json.expired_at_millis) : undefined] as const,\n);\n\nconst InvalidProjectForAdminAccessToken = createKnownErrorConstructor(\n InvalidAdminAccessToken,\n \"INVALID_PROJECT_FOR_ADMIN_ACCESS_TOKEN\",\n () => [\n 401,\n \"Admin access tokens must be created on the internal project.\",\n ] as const,\n () => [] as const,\n);\n\nconst AdminAccessTokenIsNotAdmin = createKnownErrorConstructor(\n InvalidAdminAccessToken,\n \"ADMIN_ACCESS_TOKEN_IS_NOT_ADMIN\",\n () => [\n 401,\n \"Admin access token does not have the required permissions to access this project.\",\n ] as const,\n () => [] as const,\n);\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst ProjectAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationError,\n \"PROJECT_AUTHENTICATION_REQUIRED\",\n \"inherit\",\n \"inherit\",\n);\n\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst ClientAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"CLIENT_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"The publishable client key must be provided.\",\n ] as const,\n () => [] as const,\n);\n\nconst PublishableClientKeyRequiredForProject = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"PUBLISHABLE_CLIENT_KEY_REQUIRED_FOR_PROJECT\",\n (projectId?: string) => [\n 401,\n \"Publishable client keys are required for this project. Create one in Project Keys, or disable this requirement there to allow keyless client access.\",\n {\n project_id: projectId ?? null,\n },\n ] as const,\n (json: any) => [json.project_id ?? undefined] as const,\n);\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst ServerAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"SERVER_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"The secret server key must be provided.\",\n ] as const,\n () => [] as const,\n);\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst ClientOrServerAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"CLIENT_OR_SERVER_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"Either the publishable client key or the secret server key must be provided.\",\n ] as const,\n () => [] as const,\n);\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst ClientOrAdminAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"CLIENT_OR_ADMIN_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"Either the publishable client key or the super secret admin key must be provided.\",\n ] as const,\n () => [] as const,\n);\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst ClientOrServerOrAdminAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"CLIENT_OR_SERVER_OR_ADMIN_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"Either the publishable client key, the secret server key, or the super secret admin key must be provided.\",\n ] as const,\n () => [] as const,\n);\n\n/**\n * @deprecated Use InsufficientAccessType instead\n */\nconst AdminAuthenticationRequired = createKnownErrorConstructor(\n ProjectAuthenticationRequired,\n \"ADMIN_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"The super secret admin key must be provided.\",\n ] as const,\n () => [] as const,\n);\n\nconst ExpectedInternalProject = createKnownErrorConstructor(\n ProjectAuthenticationError,\n \"EXPECTED_INTERNAL_PROJECT\",\n () => [\n 401,\n \"The project ID is expected to be internal.\",\n ] as const,\n () => [] as const,\n);\n\nconst SessionAuthenticationError = createKnownErrorConstructor(\n KnownError,\n \"SESSION_AUTHENTICATION_ERROR\",\n \"inherit\",\n \"inherit\",\n);\n\nconst InvalidSessionAuthentication = createKnownErrorConstructor(\n SessionAuthenticationError,\n \"INVALID_SESSION_AUTHENTICATION\",\n \"inherit\",\n \"inherit\",\n);\n\nconst InvalidAccessToken = createKnownErrorConstructor(\n InvalidSessionAuthentication,\n \"INVALID_ACCESS_TOKEN\",\n \"inherit\",\n \"inherit\",\n);\n\nconst UnparsableAccessToken = createKnownErrorConstructor(\n InvalidAccessToken,\n \"UNPARSABLE_ACCESS_TOKEN\",\n () => [\n 401,\n \"Access token is not parsable.\",\n ] as const,\n () => [] as const,\n);\n\nconst AccessTokenExpired = createKnownErrorConstructor(\n InvalidAccessToken,\n \"ACCESS_TOKEN_EXPIRED\",\n (expiredAt: Date | undefined, projectId: string | undefined, userId: string | undefined, refreshTokenId: string | undefined) => [\n 401,\n deindent`\n Access token has expired. Please refresh it and try again.${expiredAt ? ` (The access token expired at ${expiredAt.toISOString()}.)` : \"\"}${projectId ? ` Project ID: ${projectId}.` : \"\"}${userId ? ` User ID: ${userId}.` : \"\"}${refreshTokenId ? ` Refresh token ID: ${refreshTokenId}.` : \"\"}\n\n Debug info: Most likely, you fetched the access token before it expired (for example, in a server component, pre-rendered page, or on page load), but then didn't refresh it before it expired. If this is the case, and you're using the SDK, make sure you call getAccessToken() every time you need to use the access token. If you're not using the SDK, make sure you refresh the access token with the refresh endpoint.\n `,\n {\n expired_at_millis: expiredAt?.getTime() ?? null,\n project_id: projectId ?? null,\n user_id: userId ?? null,\n refresh_token_id: refreshTokenId ?? null,\n },\n ] as const,\n (json: any) => [\n json.expired_at_millis ? new Date(json.expired_at_millis) : undefined,\n json.project_id ?? undefined,\n json.user_id ?? undefined,\n json.refresh_token_id ?? undefined,\n ] as const,\n);\n\nconst InvalidProjectForAccessToken = createKnownErrorConstructor(\n InvalidAccessToken,\n \"INVALID_PROJECT_FOR_ACCESS_TOKEN\",\n (expectedProjectId: string, actualProjectId: string) => [\n 401,\n `Access token not valid for this project. Expected project ID ${JSON.stringify(expectedProjectId)}, but the token is for project ID ${JSON.stringify(actualProjectId)}.`,\n {\n expected_project_id: expectedProjectId,\n actual_project_id: actualProjectId,\n },\n ] as const,\n (json: any) => [json.expected_project_id, json.actual_project_id] as const,\n);\n\n\nconst RefreshTokenError = createKnownErrorConstructor(\n KnownError,\n \"REFRESH_TOKEN_ERROR\",\n \"inherit\",\n \"inherit\",\n);\n\nconst RefreshTokenNotFoundOrExpired = createKnownErrorConstructor(\n RefreshTokenError,\n \"REFRESH_TOKEN_NOT_FOUND_OR_EXPIRED\",\n () => [\n 401,\n \"Refresh token not found for this project, or the session has expired/been revoked.\",\n ] as const,\n () => [] as const,\n);\n\nconst CannotDeleteCurrentSession = createKnownErrorConstructor(\n RefreshTokenError,\n \"CANNOT_DELETE_CURRENT_SESSION\",\n () => [\n 400,\n \"Cannot delete the current session.\",\n ] as const,\n () => [] as const,\n);\n\n\nconst ProviderRejected = createKnownErrorConstructor(\n RefreshTokenError,\n \"PROVIDER_REJECTED\",\n () => [\n 401,\n \"The provider refused to refresh their token. This usually means that the provider used to authenticate the user no longer regards this session as valid, and the user must re-authenticate.\",\n ] as const,\n () => [] as const,\n);\n\nconst UserWithEmailAlreadyExists = createKnownErrorConstructor(\n KnownError,\n \"USER_EMAIL_ALREADY_EXISTS\",\n (email: string, wouldWorkIfEmailWasVerified: boolean = false) => [\n 409,\n `A user with email ${JSON.stringify(email)} already exists${wouldWorkIfEmailWasVerified ? \" but the email is not verified. Please login to your existing account with the method you used to sign up, and then verify your email to sign in with this login method.\" : \".\"}`,\n {\n email,\n would_work_if_email_was_verified: wouldWorkIfEmailWasVerified,\n },\n ] as const,\n (json: any) => [json.email, json.would_work_if_email_was_verified ?? false] as const,\n);\n\nconst EmailNotVerified = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_NOT_VERIFIED\",\n () => [\n 400,\n \"The email is not verified.\",\n ] as const,\n () => [] as const,\n);\n\nconst CannotGetOwnUserWithoutUser = createKnownErrorConstructor(\n KnownError,\n \"CANNOT_GET_OWN_USER_WITHOUT_USER\",\n () => [\n 400,\n \"You have specified 'me' as a userId, but did not provide authentication for a user.\",\n ] as const,\n () => [] as const,\n);\n\nconst UserIdDoesNotExist = createKnownErrorConstructor(\n KnownError,\n \"USER_ID_DOES_NOT_EXIST\",\n (userId: string) => [\n 400,\n `The given user with the ID ${userId} does not exist.`,\n {\n user_id: userId,\n },\n ] as const,\n (json: any) => [json.user_id] as const,\n);\n\nconst UserNotFound = createKnownErrorConstructor(\n KnownError,\n \"USER_NOT_FOUND\",\n () => [\n 404,\n \"User not found.\",\n ] as const,\n () => [] as const,\n);\n\nconst RestrictedUserNotAllowed = createKnownErrorConstructor(\n KnownError,\n \"RESTRICTED_USER_NOT_ALLOWED\",\n (restrictedReason: { type: \"anonymous\" | \"email_not_verified\" | \"restricted_by_administrator\" }) => [\n 403,\n `The user in the access token is in restricted state. Reason: ${restrictedReason.type}. Please pass the X-Stack-Allow-Restricted-User header if this is intended.`,\n {\n restricted_reason: restrictedReason,\n },\n ] as const,\n (json: any) => [json.restricted_reason ?? { type: \"anonymous\" }] as const,\n);\n\nconst ProjectNotFound = createKnownErrorConstructor(\n KnownError,\n \"PROJECT_NOT_FOUND\",\n (projectId: string) => {\n if (typeof projectId !== \"string\") throw new HexclaveAssertionError(\"projectId of KnownErrors.ProjectNotFound must be a string\");\n return [\n 404,\n `Project ${projectId} not found or is not accessible with the current user.`,\n {\n project_id: projectId,\n },\n ] as const;\n },\n (json: any) => [json.project_id] as const,\n);\n\nconst CurrentProjectNotFound = createKnownErrorConstructor(\n KnownError,\n \"CURRENT_PROJECT_NOT_FOUND\",\n (projectId: string) => [\n 400,\n `The current project with ID ${projectId} was not found. Please check the value of the x-hexclave-project-id header. (The legacy x-stack-project-id header is also accepted.)`,\n {\n project_id: projectId,\n },\n ] as const,\n (json: any) => [json.project_id] as const,\n);\n\nconst BranchDoesNotExist = createKnownErrorConstructor(\n KnownError,\n \"BRANCH_DOES_NOT_EXIST\",\n (branchId: string) => [\n 400,\n `The branch with ID ${branchId} does not exist.`,\n {\n branch_id: branchId,\n },\n ] as const,\n (json: any) => [json.branch_id] as const,\n);\n\n\nconst SignUpNotEnabled = createKnownErrorConstructor(\n KnownError,\n \"SIGN_UP_NOT_ENABLED\",\n () => [\n 400,\n \"Creation of new accounts is not enabled for this project. Please ask the project owner to enable it.\",\n ] as const,\n () => [] as const,\n);\n\nconst SignUpRejected = createKnownErrorConstructor(\n KnownError,\n \"SIGN_UP_REJECTED\",\n (message?: string) => [\n 403,\n message ?? \"Your sign up was rejected by an administrator's sign-up rule.\",\n {\n message: message ?? \"Your sign up was rejected by an administrator's sign-up rule.\",\n },\n ] as const,\n (json: any) => [json.message] as const,\n);\n\nconst BotChallengeRequired = createKnownErrorConstructor(\n KnownError,\n \"BOT_CHALLENGE_REQUIRED\",\n () => [\n 409,\n \"An additional bot challenge is required before sign-up can continue.\",\n ] as const,\n () => [] as const,\n);\n\nconst BotChallengeFailed = createKnownErrorConstructor(\n KnownError,\n \"BOT_CHALLENGE_FAILED\",\n (message: string) => [\n 400,\n message,\n {\n message,\n },\n ] as const,\n (json: any) => [json.message] as const,\n);\n\nconst PasswordAuthenticationNotEnabled = createKnownErrorConstructor(\n KnownError,\n \"PASSWORD_AUTHENTICATION_NOT_ENABLED\",\n () => [\n 400,\n \"Password authentication is not enabled for this project.\",\n ] as const,\n () => [] as const,\n);\n\nconst DataVaultStoreDoesNotExist = createKnownErrorConstructor(\n KnownError,\n \"DATA_VAULT_STORE_DOES_NOT_EXIST\",\n (storeId: string) => [\n 400,\n `Data vault store with ID ${storeId} does not exist.`,\n {\n store_id: storeId,\n },\n ] as const,\n (json: any) => [json.store_id] as const,\n);\n\nconst DataVaultStoreHashedKeyDoesNotExist = createKnownErrorConstructor(\n KnownError,\n \"DATA_VAULT_STORE_HASHED_KEY_DOES_NOT_EXIST\",\n (storeId: string, hashedKey: string) => [\n 400,\n `Data vault store with ID ${storeId} does not contain a key with hash ${hashedKey}.`,\n {\n store_id: storeId,\n hashed_key: hashedKey,\n },\n ] as const,\n (json: any) => [json.store_id, json.hashed_key] as const,\n);\n\nconst PasskeyAuthenticationNotEnabled = createKnownErrorConstructor(\n KnownError,\n \"PASSKEY_AUTHENTICATION_NOT_ENABLED\",\n () => [\n 400,\n \"Passkey authentication is not enabled for this project.\",\n ] as const,\n () => [] as const,\n);\n\nconst AnonymousAccountsNotEnabled = createKnownErrorConstructor(\n KnownError,\n \"ANONYMOUS_ACCOUNTS_NOT_ENABLED\",\n () => [\n 400,\n \"Anonymous accounts are not enabled for this project.\",\n ] as const,\n () => [] as const,\n);\n\nconst AnonymousAuthenticationNotAllowed = createKnownErrorConstructor(\n KnownError,\n \"ANONYMOUS_AUTHENTICATION_NOT_ALLOWED\",\n () => [\n 401,\n \"X-Stack-Access-Token is for an anonymous user, but anonymous users are not enabled. Set the X-Stack-Allow-Anonymous-User header of this request to 'true' to allow anonymous users.\",\n ] as const,\n () => [] as const,\n);\n\n\nconst EmailPasswordMismatch = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_PASSWORD_MISMATCH\",\n () => [\n 400,\n \"Wrong e-mail or password.\",\n ] as const,\n () => [] as const,\n);\n\nconst RedirectUrlNotWhitelisted = createKnownErrorConstructor(\n KnownError,\n \"REDIRECT_URL_NOT_WHITELISTED\",\n (redirectUrl?: string) => [\n 400,\n \"Redirect URL not whitelisted. Did you forget to add this domain to the trusted domains list on the Hexclave dashboard?\",\n redirectUrl === undefined ? undefined : {\n redirect_url: redirectUrl,\n },\n ] as const,\n (json) => [(json as any)?.redirect_url] as const,\n);\n\nconst PasswordRequirementsNotMet = createKnownErrorConstructor(\n KnownError,\n \"PASSWORD_REQUIREMENTS_NOT_MET\",\n \"inherit\",\n \"inherit\",\n);\n\nconst PasswordTooShort = createKnownErrorConstructor(\n PasswordRequirementsNotMet,\n \"PASSWORD_TOO_SHORT\",\n (minLength: number) => [\n 400,\n `Password too short. Minimum length is ${minLength}.`,\n {\n min_length: minLength,\n },\n ] as const,\n (json) => [\n (json as any)?.min_length ?? throwErr(\"min_length not found in PasswordTooShort details\"),\n ] as const,\n);\n\nconst PasswordTooLong = createKnownErrorConstructor(\n PasswordRequirementsNotMet,\n \"PASSWORD_TOO_LONG\",\n (maxLength: number) => [\n 400,\n `Password too long. Maximum length is ${maxLength}.`,\n {\n maxLength,\n },\n ] as const,\n (json) => [\n (json as any)?.maxLength ?? throwErr(\"maxLength not found in PasswordTooLong details\"),\n ] as const,\n);\n\nconst UserDoesNotHavePassword = createKnownErrorConstructor(\n KnownError,\n \"USER_DOES_NOT_HAVE_PASSWORD\",\n () => [\n 400,\n \"This user does not have password authentication enabled.\",\n ] as const,\n () => [] as const,\n);\n\nconst VerificationCodeError = createKnownErrorConstructor(\n KnownError,\n \"VERIFICATION_ERROR\",\n \"inherit\",\n \"inherit\",\n);\n\nconst VerificationCodeNotFound = createKnownErrorConstructor(\n VerificationCodeError,\n \"VERIFICATION_CODE_NOT_FOUND\",\n () => [\n 404,\n \"The verification code does not exist for this project.\",\n ] as const,\n () => [] as const,\n);\n\nconst VerificationCodeExpired = createKnownErrorConstructor(\n VerificationCodeError,\n \"VERIFICATION_CODE_EXPIRED\",\n () => [\n 400,\n \"The verification code has expired.\",\n ] as const,\n () => [] as const,\n);\n\nconst VerificationCodeAlreadyUsed = createKnownErrorConstructor(\n VerificationCodeError,\n \"VERIFICATION_CODE_ALREADY_USED\",\n () => [\n 409,\n \"The verification link has already been used.\",\n ] as const,\n () => [] as const,\n);\n\nconst VerificationCodeMaxAttemptsReached = createKnownErrorConstructor(\n VerificationCodeError,\n \"VERIFICATION_CODE_MAX_ATTEMPTS_REACHED\",\n () => [\n 400,\n \"The verification code nonce has reached the maximum number of attempts. This code is not valid anymore.\",\n ] as const,\n () => [] as const,\n);\n\nconst PasswordConfirmationMismatch = createKnownErrorConstructor(\n KnownError,\n \"PASSWORD_CONFIRMATION_MISMATCH\",\n () => [\n 400,\n \"Passwords do not match.\",\n ] as const,\n () => [] as const,\n);\n\nconst EmailAlreadyVerified = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_ALREADY_VERIFIED\",\n () => [\n 409,\n \"The e-mail is already verified.\",\n ] as const,\n () => [] as const,\n);\n\nconst EmailNotAssociatedWithUser = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_NOT_ASSOCIATED_WITH_USER\",\n () => [\n 400,\n \"The e-mail is not associated with a user that could log in with that e-mail.\",\n ] as const,\n () => [] as const,\n);\n\nconst EmailIsNotPrimaryEmail = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_IS_NOT_PRIMARY_EMAIL\",\n (email: string, primaryEmail: string | null) => [\n 400,\n `The given e-mail (${email}) must equal the user's primary e-mail (${primaryEmail}).`,\n {\n email,\n primary_email: primaryEmail,\n },\n ] as const,\n (json: any) => [json.email, json.primary_email] as const,\n);\n\n\nconst PasskeyRegistrationFailed = createKnownErrorConstructor(\n KnownError,\n \"PASSKEY_REGISTRATION_FAILED\",\n (message: string) => [\n 400,\n message,\n ] as const,\n (json: any) => [json.message] as const,\n);\n\n\nconst PasskeyWebAuthnError = createKnownErrorConstructor(\n KnownError,\n \"PASSKEY_WEBAUTHN_ERROR\",\n (message: string, code: string) => [\n 400,\n message,\n {\n message,\n code,\n },\n ] as const,\n (json: any) => [json.message, json.code] as const,\n);\n\nconst PasskeyAuthenticationFailed = createKnownErrorConstructor(\n KnownError,\n \"PASSKEY_AUTHENTICATION_FAILED\",\n (message: string) => [\n 400,\n message,\n ] as const,\n (json: any) => [json.message] as const,\n);\n\n\nconst PermissionNotFound = createKnownErrorConstructor(\n KnownError,\n \"PERMISSION_NOT_FOUND\",\n (permissionId: string) => [\n 404,\n `Permission \"${permissionId}\" not found. Make sure you created it on the dashboard.`,\n {\n permission_id: permissionId,\n },\n ] as const,\n (json: any) => [json.permission_id] as const,\n);\n\nconst PermissionScopeMismatch = createKnownErrorConstructor(\n KnownError,\n \"WRONG_PERMISSION_SCOPE\",\n (permissionId: string, expectedScope: \"team\" | \"project\", actualScope: \"team\" | \"project\" | null) => [\n 404,\n `Permission ${JSON.stringify(permissionId)} not found. (It was found for a different scope ${JSON.stringify(actualScope)}, but scope ${JSON.stringify(expectedScope)} was expected.)`,\n {\n permission_id: permissionId,\n expected_scope: expectedScope,\n actual_scope: actualScope,\n },\n ] as const,\n (json: any) => [json.permission_id, json.expected_scope, json.actual_scope] as const,\n);\n\nconst ContainedPermissionNotFound = createKnownErrorConstructor(\n KnownError,\n \"CONTAINED_PERMISSION_NOT_FOUND\",\n (permissionId: string) => [\n 400,\n `Contained permission with ID \"${permissionId}\" not found. Make sure you created it on the dashboard.`,\n {\n permission_id: permissionId,\n },\n ] as const,\n (json: any) => [json.permission_id] as const,\n);\n\nconst TeamNotFound = createKnownErrorConstructor(\n KnownError,\n \"TEAM_NOT_FOUND\",\n (teamId: string) => [\n 404,\n `Team ${teamId} not found.`,\n {\n team_id: teamId,\n },\n ] as const,\n (json: any) => [json.team_id] as const,\n);\n\nconst TeamAlreadyExists = createKnownErrorConstructor(\n KnownError,\n \"TEAM_ALREADY_EXISTS\",\n (teamId: string) => [\n 409,\n `Team ${teamId} already exists.`,\n {\n team_id: teamId,\n },\n ] as const,\n (json: any) => [json.team_id] as const,\n);\n\nconst TeamMembershipNotFound = createKnownErrorConstructor(\n KnownError,\n \"TEAM_MEMBERSHIP_NOT_FOUND\",\n (teamId: string, userId: string) => [\n 404,\n `User ${userId} is not found in team ${teamId}.`,\n {\n team_id: teamId,\n user_id: userId,\n },\n ] as const,\n (json: any) => [json.team_id, json.user_id] as const,\n);\n\nconst TeamInvitationRestrictedUserNotAllowed = createKnownErrorConstructor(\n KnownError,\n \"TEAM_INVITATION_RESTRICTED_USER_NOT_ALLOWED\",\n (restrictedReason: { type: \"anonymous\" | \"email_not_verified\" | \"restricted_by_administrator\" }) => [\n 403,\n `Restricted users cannot accept team invitations. Reason: ${restrictedReason.type}. Please complete the onboarding process before accepting team invitations.`,\n {\n restricted_reason: restrictedReason,\n },\n ] as const,\n (json: any) => [json.restricted_reason ?? { type: \"anonymous\" }] as const,\n);\n\nconst TeamInvitationEmailMismatch = createKnownErrorConstructor(\n KnownError,\n \"TEAM_INVITATION_EMAIL_MISMATCH\",\n () => [\n 403,\n \"This team invitation was sent to a different email address. Sign in with the invited email, or add and verify that email on your account, then try again.\",\n ] as const,\n () => [] as const,\n);\n\n\nconst EmailTemplateAlreadyExists = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_TEMPLATE_ALREADY_EXISTS\",\n () => [\n 409,\n \"Email template already exists.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthConnectionNotConnectedToUser = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_CONNECTION_NOT_CONNECTED_TO_USER\",\n () => [\n 400,\n \"The OAuth connection is not connected to any user.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthConnectionAlreadyConnectedToAnotherUser = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_CONNECTION_ALREADY_CONNECTED_TO_ANOTHER_USER\",\n () => [\n 409,\n \"The OAuth connection is already connected to another user.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthConnectionDoesNotHaveRequiredScope = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_CONNECTION_DOES_NOT_HAVE_REQUIRED_SCOPE\",\n () => [\n 400,\n \"The OAuth connection does not have the required scope.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthAccessTokenNotAvailable = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_ACCESS_TOKEN_NOT_AVAILABLE\",\n (provider: string, details: string) => [\n 400,\n `Failed to retrieve an OAuth access token for the connected account (provider: ${provider}). ${details}`,\n {\n provider,\n details,\n } as const,\n ] as const,\n (json: any) => [json.provider, json.details] as const,\n);\n\nconst OAuthExtraScopeNotAvailableWithSharedOAuthKeys = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_EXTRA_SCOPE_NOT_AVAILABLE_WITH_SHARED_OAUTH_KEYS\",\n () => [\n 400,\n \"Extra scopes are not available with shared OAuth keys. Please add your own OAuth keys on the Hexclave dashboard to use extra scopes.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthAccessTokenNotAvailableWithSharedOAuthKeys = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_ACCESS_TOKEN_NOT_AVAILABLE_WITH_SHARED_OAUTH_KEYS\",\n () => [\n 400,\n \"Access tokens are not available with shared OAuth keys. Please add your own OAuth keys on the Hexclave dashboard to use access tokens.\",\n ] as const,\n () => [] as const,\n);\n\nconst InvalidOAuthClientIdOrSecret = createKnownErrorConstructor(\n KnownError,\n \"INVALID_OAUTH_CLIENT_ID_OR_SECRET\",\n (clientId?: string) => [\n 400,\n \"The OAuth client ID or secret is invalid. The client ID must be equal to the project ID (potentially with a hash and a branch ID), and the client secret must be a publishable client key.\",\n {\n client_id: clientId ?? null,\n },\n ] as const,\n (json: any) => [json.client_id ?? undefined] as const,\n);\n\nconst InvalidScope = createKnownErrorConstructor(\n KnownError,\n \"INVALID_SCOPE\",\n (scope: string) => [\n 400,\n `The scope \"${scope}\" is not a valid OAuth scope for Stack.`,\n ] as const,\n (json: any) => [json.scope] as const,\n);\n\nconst UserAlreadyConnectedToAnotherOAuthConnection = createKnownErrorConstructor(\n KnownError,\n \"USER_ALREADY_CONNECTED_TO_ANOTHER_OAUTH_CONNECTION\",\n () => [\n 409,\n \"The user is already connected to another OAuth account. Did you maybe selected the wrong account?\",\n ] as const,\n () => [] as const,\n);\n\nconst OuterOAuthTimeout = createKnownErrorConstructor(\n KnownError,\n \"OUTER_OAUTH_TIMEOUT\",\n () => [\n 408,\n \"The OAuth flow has timed out. Please sign in again.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthProviderNotFoundOrNotEnabled = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_PROVIDER_NOT_FOUND_OR_NOT_ENABLED\",\n () => [\n 400,\n \"The OAuth provider is not found or not enabled.\",\n ] as const,\n () => [] as const,\n);\n\nconst AppleBundleIdNotConfigured = createKnownErrorConstructor(\n KnownError,\n \"APPLE_BUNDLE_ID_NOT_CONFIGURED\",\n () => [\n 400,\n \"Apple Sign In is enabled, but no Bundle IDs are configured. Please add your app's Bundle ID in the Hexclave dashboard under OAuth Providers > Apple > Apple Bundle IDs.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthProviderAccountIdAlreadyUsedForSignIn = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_PROVIDER_ACCOUNT_ID_ALREADY_USED_FOR_SIGN_IN\",\n () => [\n 400,\n `A provider with the same account ID is already used for signing in.`,\n ] as const,\n () => [] as const,\n);\n\nconst MultiFactorAuthenticationRequired = createKnownErrorConstructor(\n KnownError,\n \"MULTI_FACTOR_AUTHENTICATION_REQUIRED\",\n (attemptCode: string) => [\n 400,\n `Multi-factor authentication is required for this user.`,\n {\n attempt_code: attemptCode,\n },\n ] as const,\n (json) => [json.attempt_code] as const,\n);\n\nconst InvalidTotpCode = createKnownErrorConstructor(\n KnownError,\n \"INVALID_TOTP_CODE\",\n () => [\n 400,\n \"The TOTP code is invalid. Please try again.\",\n ] as const,\n () => [] as const,\n);\n\nconst UserAuthenticationRequired = createKnownErrorConstructor(\n KnownError,\n \"USER_AUTHENTICATION_REQUIRED\",\n () => [\n 401,\n \"User authentication required for this endpoint.\",\n ] as const,\n () => [] as const,\n);\n\nconst TeamMembershipAlreadyExists = createKnownErrorConstructor(\n KnownError,\n \"TEAM_MEMBERSHIP_ALREADY_EXISTS\",\n () => [\n 409,\n \"Team membership already exists.\",\n ] as const,\n () => [] as const,\n);\n\nconst ProjectPermissionRequired = createKnownErrorConstructor(\n KnownError,\n \"PROJECT_PERMISSION_REQUIRED\",\n (userId, permissionId) => [\n 401,\n `User ${userId} does not have permission ${permissionId}.`,\n {\n user_id: userId,\n permission_id: permissionId,\n },\n ] as const,\n (json) => [json.user_id, json.permission_id] as const,\n);\n\nconst TeamPermissionRequired = createKnownErrorConstructor(\n KnownError,\n \"TEAM_PERMISSION_REQUIRED\",\n (teamId, userId, permissionId) => [\n 401,\n `User ${userId} does not have permission ${permissionId} in team ${teamId}.`,\n {\n team_id: teamId,\n user_id: userId,\n permission_id: permissionId,\n },\n ] as const,\n (json) => [json.team_id, json.user_id, json.permission_id] as const,\n);\n\nconst TeamPermissionNotFound = createKnownErrorConstructor(\n KnownError,\n \"TEAM_PERMISSION_NOT_FOUND\",\n (teamId, userId, permissionId) => [\n 401,\n `User ${userId} does not have permission ${permissionId} in team ${teamId}.`,\n {\n team_id: teamId,\n user_id: userId,\n permission_id: permissionId,\n },\n ] as const,\n (json) => [json.team_id, json.user_id, json.permission_id] as const,\n);\n\nconst InvalidSharedOAuthProviderId = createKnownErrorConstructor(\n KnownError,\n \"INVALID_SHARED_OAUTH_PROVIDER_ID\",\n (providerId) => [\n 400,\n `The shared OAuth provider with ID ${providerId} is not valid.`,\n {\n provider_id: providerId,\n },\n ] as const,\n (json) => [json.provider_id] as const,\n);\n\nconst InvalidStandardOAuthProviderId = createKnownErrorConstructor(\n KnownError,\n \"INVALID_STANDARD_OAUTH_PROVIDER_ID\",\n (providerId) => [\n 400,\n `The standard OAuth provider with ID ${providerId} is not valid.`,\n {\n provider_id: providerId,\n },\n ] as const,\n (json) => [json.provider_id] as const,\n);\n\nconst InvalidAuthorizationCode = createKnownErrorConstructor(\n KnownError,\n \"INVALID_AUTHORIZATION_CODE\",\n () => [\n 400,\n \"The given authorization code is invalid.\",\n ] as const,\n () => [] as const,\n);\n\nconst InvalidAppleCredentials = createKnownErrorConstructor(\n KnownError,\n \"INVALID_APPLE_CREDENTIALS\",\n () => [\n 400,\n \"The Apple Sign In credentials could not be verified. Please try signing in again.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthProviderAccessDenied = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_PROVIDER_ACCESS_DENIED\",\n () => [\n 400,\n \"The OAuth provider denied access to the user.\",\n ] as const,\n () => [] as const,\n);\n\nconst OAuthProviderTemporarilyUnavailable = createKnownErrorConstructor(\n KnownError,\n \"OAUTH_PROVIDER_TEMPORARILY_UNAVAILABLE\",\n () => [\n 503,\n \"The OAuth provider is temporarily unavailable. Please try again later.\",\n ] as const,\n () => [] as const,\n);\n\nconst ContactChannelAlreadyUsedForAuthBySomeoneElse = createKnownErrorConstructor(\n KnownError,\n \"CONTACT_CHANNEL_ALREADY_USED_FOR_AUTH_BY_SOMEONE_ELSE\",\n (type: \"email\", contactChannelValue?: string, wouldWorkIfEmailWasVerified: boolean = false) => [\n 409,\n `This ${type} ${contactChannelValue ? `\"(${contactChannelValue})\"` : \"\"} is already used for authentication by another account${wouldWorkIfEmailWasVerified ? \" but the email is not verified. Please login to your existing account with the method you used to sign up, and then verify your email to sign in with this login method.\" : \".\"}`,\n {\n type,\n contact_channel_value: contactChannelValue ?? null,\n would_work_if_email_was_verified: wouldWorkIfEmailWasVerified,\n },\n ] as const,\n (json) => [json.type, json.contact_channel_value, json.would_work_if_email_was_verified ?? false] as const,\n);\n\nconst InvalidPollingCodeError = createKnownErrorConstructor(\n KnownError,\n \"INVALID_POLLING_CODE\",\n (details?: Json) => [\n 400,\n \"The polling code is invalid or does not exist.\",\n details,\n ] as const,\n (json: any) => [json] as const,\n);\n\nconst CliAuthError = createKnownErrorConstructor(\n KnownError,\n \"CLI_AUTH_ERROR\",\n (message: string) => [\n 400,\n message,\n ] as const,\n (json: any) => [json.message] as const,\n);\n\nconst CliAuthExpiredError = createKnownErrorConstructor(\n KnownError,\n \"CLI_AUTH_EXPIRED_ERROR\",\n (message: string = \"CLI authentication request expired. Please try again.\") => [\n 400,\n message,\n ] as const,\n (json: any) => [json.message] as const,\n);\n\nconst CliAuthUsedError = createKnownErrorConstructor(\n KnownError,\n \"CLI_AUTH_USED_ERROR\",\n (message: string = \"This authentication token has already been used.\") => [\n 400,\n message,\n ] as const,\n (json: any) => [json.message] as const,\n);\n\n\nconst ApiKeyNotValid = createKnownErrorConstructor(\n KnownError,\n \"API_KEY_NOT_VALID\",\n \"inherit\",\n \"inherit\",\n);\n\nconst ApiKeyExpired = createKnownErrorConstructor(\n ApiKeyNotValid,\n \"API_KEY_EXPIRED\",\n () => [\n 401,\n \"API key has expired.\",\n ] as const,\n () => [] as const,\n);\n\nconst ApiKeyRevoked = createKnownErrorConstructor(\n ApiKeyNotValid,\n \"API_KEY_REVOKED\",\n () => [\n 401,\n \"API key has been revoked.\",\n ] as const,\n () => [] as const,\n);\n\nconst WrongApiKeyType = createKnownErrorConstructor(\n ApiKeyNotValid,\n \"WRONG_API_KEY_TYPE\",\n (expectedType: string, actualType: string) => [\n 400,\n `This endpoint is for ${expectedType} API keys, but a ${actualType} API key was provided.`,\n { expected_type: expectedType, actual_type: actualType },\n ] as const,\n (json) => [json.expected_type, json.actual_type] as const,\n);\n\nconst ApiKeyNotFound = createKnownErrorConstructor(\n ApiKeyNotValid,\n \"API_KEY_NOT_FOUND\",\n () => [\n 404,\n \"API key not found.\",\n ] as const,\n () => [] as const,\n);\n\nconst PublicApiKeyCannotBeRevoked = createKnownErrorConstructor(\n ApiKeyNotValid,\n \"PUBLIC_API_KEY_CANNOT_BE_REVOKED\",\n () => [\n 400,\n \"Public API keys cannot be revoked by the secretscanner endpoint.\",\n ] as const,\n () => [] as const,\n);\nconst PermissionIdAlreadyExists = createKnownErrorConstructor(\n KnownError,\n \"PERMISSION_ID_ALREADY_EXISTS\",\n (permissionId: string) => [\n 400,\n `Permission with ID \"${permissionId}\" already exists. Choose a different ID.`,\n {\n permission_id: permissionId,\n },\n ] as const,\n (json: any) => [json.permission_id] as const,\n);\n\nconst EmailRenderingError = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_RENDERING_ERROR\",\n (error: string) => [\n 400,\n `Failed to render email with theme: ${error}`,\n { error },\n ] as const,\n (json: any) => [json.error] as const,\n);\n\nconst TemplateSourceRewriteError = createKnownErrorConstructor(\n KnownError,\n \"TEMPLATE_SOURCE_REWRITE_ERROR\",\n (error: string) => [\n 400,\n `Failed to rewrite template source: ${error}`,\n { error },\n ] as const,\n (json: any) => [json.error] as const,\n);\n\nconst RequiresCustomEmailServer = createKnownErrorConstructor(\n KnownError,\n \"REQUIRES_CUSTOM_EMAIL_SERVER\",\n () => [\n 400,\n `This action requires a custom SMTP server. Please edit your email server configuration and try again.`,\n ] as const,\n () => [] as const,\n);\n\nconst EmailCapacityBoostAlreadyActive = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_CAPACITY_BOOST_ALREADY_ACTIVE\",\n (expiresAt: string) => [\n 409,\n `Email capacity boost is already active until ${expiresAt}.`,\n { expires_at: expiresAt },\n ] as const,\n (json: any) => [json.expires_at] as const,\n);\n\nconst EmailNotEditable = createKnownErrorConstructor(\n KnownError,\n \"EMAIL_NOT_EDITABLE\",\n (emailId: string, status: string) => [\n 400,\n `Email with ID \"${emailId}\" cannot be edited because it is in status \"${status}\". Only emails in PAUSED, PREPARING, RENDERING, RENDER_ERROR, SCHEDULED, QUEUED, or SERVER_ERROR status can be edited.`,\n {\n email_id: emailId,\n status,\n },\n ] as const,\n (json: any) => [json.email_id, json.status] as const,\n);\n\nconst ItemNotFound = createKnownErrorConstructor(\n KnownError,\n \"ITEM_NOT_FOUND\",\n (itemId: string) => [\n 404,\n `Item with ID \"${itemId}\" not found.`,\n {\n item_id: itemId,\n },\n ] as const,\n (json) => [json.item_id] as const,\n);\n\nconst ItemCustomerTypeDoesNotMatch = createKnownErrorConstructor(\n KnownError,\n \"ITEM_CUSTOMER_TYPE_DOES_NOT_MATCH\",\n (itemId: string, customerId: string, itemCustomerType: \"user\" | \"team\" | \"custom\" | undefined, actualCustomerType: \"user\" | \"team\" | \"custom\") => [\n 400,\n `The ${actualCustomerType} with ID ${JSON.stringify(customerId)} is not a valid customer for the item with ID ${JSON.stringify(itemId)}. ${itemCustomerType ? `The item is configured to only be available for ${itemCustomerType} customers, but the customer is a ${actualCustomerType}.` : `The item is missing a customer type field. Please make sure it is set up correctly in your project configuration.`}`,\n {\n item_id: itemId,\n customer_id: customerId,\n item_customer_type: itemCustomerType ?? null,\n actual_customer_type: actualCustomerType,\n },\n ] as const,\n (json) => [json.item_id, json.customer_id, json.item_customer_type ?? undefined, json.actual_customer_type] as const,\n);\n\nconst CustomerDoesNotExist = createKnownErrorConstructor(\n KnownError,\n \"CUSTOMER_DOES_NOT_EXIST\",\n (customerId: string) => [\n 400,\n `Customer with ID ${JSON.stringify(customerId)} does not exist.`,\n {\n customer_id: customerId,\n },\n ] as const,\n (json) => [json.customer_id] as const,\n);\n\nconst SubscriptionInvoiceNotFound = createKnownErrorConstructor(\n KnownError,\n \"SUBSCRIPTION_INVOICE_NOT_FOUND\",\n (subscriptionInvoiceId: string) => [\n 404,\n `Subscription invoice with ID ${JSON.stringify(subscriptionInvoiceId)} does not exist.`,\n {\n subscription_invoice_id: subscriptionInvoiceId,\n },\n ] as const,\n (json) => [json.subscription_invoice_id] as const,\n);\n\nconst OneTimePurchaseNotFound = createKnownErrorConstructor(\n KnownError,\n \"ONE_TIME_PURCHASE_NOT_FOUND\",\n (purchaseId: string) => [\n 404,\n `One-time purchase with ID ${JSON.stringify(purchaseId)} does not exist.`,\n {\n one_time_purchase_id: purchaseId,\n },\n ] as const,\n (json) => [json.one_time_purchase_id] as const,\n);\n\n// Used by the three-knob refund flow's legacy backstop — these are thrown\n// when a purchase has the pre-rework `refundedAt` column set (i.e. it was\n// refunded under the previous flow). The new flow's bulldozer-derived\n// prior-refund summary can't see those rows, so this gate prevents\n// double-refunding through Stripe.\nconst SubscriptionAlreadyRefunded = createKnownErrorConstructor(\n KnownError,\n \"SUBSCRIPTION_ALREADY_REFUNDED\",\n (subscriptionId: string) => [\n 400,\n `Subscription with ID ${JSON.stringify(subscriptionId)} was already refunded.`,\n {\n subscription_id: subscriptionId,\n },\n ] as const,\n (json) => [json.subscription_id] as const,\n);\n\nconst OneTimePurchaseAlreadyRefunded = createKnownErrorConstructor(\n KnownError,\n \"ONE_TIME_PURCHASE_ALREADY_REFUNDED\",\n (purchaseId: string) => [\n 400,\n `One-time purchase with ID ${JSON.stringify(purchaseId)} was already refunded.`,\n {\n one_time_purchase_id: purchaseId,\n },\n ] as const,\n (json) => [json.one_time_purchase_id] as const,\n);\n\nconst TestModePurchaseNonRefundable = createKnownErrorConstructor(\n KnownError,\n \"TEST_MODE_PURCHASE_NON_REFUNDABLE\",\n () => [\n 400,\n \"Test mode purchases are not refundable.\",\n ] as const,\n () => [] as const,\n);\n\n\nconst ProductDoesNotExist = createKnownErrorConstructor(\n KnownError,\n \"PRODUCT_DOES_NOT_EXIST\",\n (productId: string, context: \"item_exists\" | \"server_only\" | null) => [\n 400,\n `Product with ID ${JSON.stringify(productId)} ${context === \"server_only\"\n ? \"is marked as server-only and cannot be accessed client side.\"\n : context === \"item_exists\"\n ? \"does not exist, but an item with this ID exists.\"\n : \"does not exist.\"\n }`,\n {\n product_id: productId,\n context,\n } as const,\n ] as const,\n (json) => [json.product_id, json.context] as const,\n);\n\nconst ProductCustomerTypeDoesNotMatch = createKnownErrorConstructor(\n KnownError,\n \"PRODUCT_CUSTOMER_TYPE_DOES_NOT_MATCH\",\n (productId: string | undefined, customerId: string, productCustomerType: \"user\" | \"team\" | \"custom\" | undefined, actualCustomerType: \"user\" | \"team\" | \"custom\") => [\n 400,\n `The ${actualCustomerType} with ID ${JSON.stringify(customerId)} is not a valid customer for the inline product that has been passed in. ${productCustomerType ? `The product is configured to only be available for ${productCustomerType} customers, but the customer is a ${actualCustomerType}.` : `The product is missing a customer type field. Please make sure it is set up correctly in your project configuration.`}`,\n {\n product_id: productId ?? null,\n customer_id: customerId,\n product_customer_type: productCustomerType ?? null,\n actual_customer_type: actualCustomerType,\n },\n ] as const,\n (json) => [json.product_id ?? undefined, json.customer_id, json.product_customer_type ?? undefined, json.actual_customer_type] as const,\n);\n\nconst ProductAlreadyGranted = createKnownErrorConstructor(\n KnownError,\n \"PRODUCT_ALREADY_GRANTED\",\n (productId: string, customerId: string) => [\n 400,\n `Customer with ID ${JSON.stringify(customerId)} already owns product ${JSON.stringify(productId)}.`,\n {\n product_id: productId,\n customer_id: customerId,\n },\n ] as const,\n (json) => [json.product_id, json.customer_id] as const,\n);\n\nconst ItemQuantityInsufficientAmount = createKnownErrorConstructor(\n KnownError,\n \"ITEM_QUANTITY_INSUFFICIENT_AMOUNT\",\n (itemId: string, customerId: string, quantity: number) => [\n 400,\n `The item with ID ${JSON.stringify(itemId)} has an insufficient quantity for the customer with ID ${JSON.stringify(customerId)}. An attempt was made to charge ${quantity} credits.`,\n {\n item_id: itemId,\n customer_id: customerId,\n quantity,\n },\n ] as const,\n (json) => [json.item_id, json.customer_id, json.quantity] as const,\n);\n\nconst StripeAccountInfoNotFound = createKnownErrorConstructor(\n KnownError,\n \"STRIPE_ACCOUNT_INFO_NOT_FOUND\",\n () => [\n 404,\n \"Stripe account information not found. Please make sure the user has onboarded with Stripe.\",\n ] as const,\n () => [] as const,\n);\n\nconst AnalyticsQueryTimeout = createKnownErrorConstructor(\n KnownError,\n \"ANALYTICS_QUERY_TIMEOUT\",\n (timeoutMs: number) => [\n 400,\n `The query timed out. Please try again with a shorter query or increase the timeout. Timeout was ${timeoutMs}ms.`,\n { timeout_ms: timeoutMs },\n ] as const,\n (json) => [json.timeout_ms] as const,\n);\n\nconst AnalyticsQueryError = createKnownErrorConstructor(\n KnownError,\n \"ANALYTICS_QUERY_ERROR\",\n (error: string) => [\n 400,\n `${error}`,\n { error },\n ] as const,\n (json) => [json.error] as const,\n);\n\nconst AnalyticsNotEnabled = createKnownErrorConstructor(\n KnownError,\n \"ANALYTICS_NOT_ENABLED\",\n () => [\n 400,\n \"Analytics is not enabled for this project.\",\n ] as const,\n () => [] as const,\n);\n\nconst DefaultPaymentMethodRequired = createKnownErrorConstructor(\n KnownError,\n \"DEFAULT_PAYMENT_METHOD_REQUIRED\",\n (customerType: \"user\" | \"team\", customerId: string) => [\n 400,\n \"No default payment method is set for this customer.\",\n {\n customer_type: customerType,\n customer_id: customerId,\n },\n ] as const,\n (json) => [json.customer_type, json.customer_id] as const,\n);\n\nconst NewPurchasesBlocked = createKnownErrorConstructor(\n KnownError,\n \"NEW_PURCHASES_BLOCKED\",\n () => [\n 403,\n \"New purchases are currently blocked for this project. Please contact support for more information.\",\n ] as const,\n () => [] as const,\n);\n\nexport type KnownErrors = {\n [K in keyof typeof KnownErrors]: InstanceType<typeof KnownErrors[K]>;\n};\n\nexport const KnownErrors = {\n CannotDeleteCurrentSession,\n UnsupportedError,\n BodyParsingError,\n SchemaError,\n AllOverloadsFailed,\n ProjectAuthenticationError,\n PermissionIdAlreadyExists,\n CliAuthError,\n CliAuthExpiredError,\n CliAuthUsedError,\n InvalidProjectAuthentication,\n ProjectKeyWithoutAccessType,\n InvalidAccessType,\n AccessTypeWithoutProjectId,\n AccessTypeRequired,\n CannotGetOwnUserWithoutUser,\n InsufficientAccessType,\n InvalidPublishableClientKey,\n InvalidSecretServerKey,\n InvalidSuperSecretAdminKey,\n InvalidAdminAccessToken,\n UnparsableAdminAccessToken,\n AdminAccessTokenExpired,\n InvalidProjectForAdminAccessToken,\n AdminAccessTokenIsNotAdmin,\n ProjectAuthenticationRequired,\n ClientAuthenticationRequired,\n PublishableClientKeyRequiredForProject,\n ServerAuthenticationRequired,\n ClientOrServerAuthenticationRequired,\n ClientOrAdminAuthenticationRequired,\n ClientOrServerOrAdminAuthenticationRequired,\n AdminAuthenticationRequired,\n ExpectedInternalProject,\n SessionAuthenticationError,\n InvalidSessionAuthentication,\n InvalidAccessToken,\n UnparsableAccessToken,\n AccessTokenExpired,\n InvalidProjectForAccessToken,\n RefreshTokenError,\n ProviderRejected,\n RefreshTokenNotFoundOrExpired,\n UserWithEmailAlreadyExists,\n EmailNotVerified,\n UserIdDoesNotExist,\n UserNotFound,\n RestrictedUserNotAllowed,\n ApiKeyNotFound,\n PublicApiKeyCannotBeRevoked,\n ProjectNotFound,\n CurrentProjectNotFound,\n BranchDoesNotExist,\n SignUpNotEnabled,\n SignUpRejected,\n BotChallengeRequired,\n BotChallengeFailed,\n PasswordAuthenticationNotEnabled,\n PasskeyAuthenticationNotEnabled,\n AnonymousAccountsNotEnabled,\n AnonymousAuthenticationNotAllowed,\n EmailPasswordMismatch,\n RedirectUrlNotWhitelisted,\n PasswordRequirementsNotMet,\n PasswordTooShort,\n PasswordTooLong,\n UserDoesNotHavePassword,\n VerificationCodeError,\n VerificationCodeNotFound,\n VerificationCodeExpired,\n VerificationCodeAlreadyUsed,\n VerificationCodeMaxAttemptsReached,\n PasswordConfirmationMismatch,\n EmailAlreadyVerified,\n EmailNotAssociatedWithUser,\n EmailIsNotPrimaryEmail,\n PasskeyRegistrationFailed,\n PasskeyWebAuthnError,\n PasskeyAuthenticationFailed,\n PermissionNotFound,\n PermissionScopeMismatch,\n ContainedPermissionNotFound,\n TeamNotFound,\n TeamMembershipNotFound,\n TeamInvitationRestrictedUserNotAllowed,\n TeamInvitationEmailMismatch,\n EmailTemplateAlreadyExists,\n OAuthConnectionNotConnectedToUser,\n OAuthConnectionAlreadyConnectedToAnotherUser,\n OAuthConnectionDoesNotHaveRequiredScope,\n OAuthAccessTokenNotAvailable,\n OAuthExtraScopeNotAvailableWithSharedOAuthKeys,\n OAuthAccessTokenNotAvailableWithSharedOAuthKeys,\n InvalidOAuthClientIdOrSecret,\n InvalidScope,\n UserAlreadyConnectedToAnotherOAuthConnection,\n OuterOAuthTimeout,\n OAuthProviderNotFoundOrNotEnabled,\n AppleBundleIdNotConfigured,\n OAuthProviderAccountIdAlreadyUsedForSignIn,\n MultiFactorAuthenticationRequired,\n InvalidTotpCode,\n UserAuthenticationRequired,\n TeamMembershipAlreadyExists,\n ProjectPermissionRequired,\n TeamPermissionRequired,\n InvalidSharedOAuthProviderId,\n InvalidStandardOAuthProviderId,\n InvalidAuthorizationCode,\n InvalidAppleCredentials,\n TeamPermissionNotFound,\n OAuthProviderAccessDenied,\n OAuthProviderTemporarilyUnavailable,\n ContactChannelAlreadyUsedForAuthBySomeoneElse,\n InvalidPollingCodeError,\n ApiKeyNotValid,\n ApiKeyExpired,\n ApiKeyRevoked,\n WrongApiKeyType,\n EmailRenderingError,\n TemplateSourceRewriteError,\n RequiresCustomEmailServer,\n EmailCapacityBoostAlreadyActive,\n EmailNotEditable,\n ItemNotFound,\n ItemCustomerTypeDoesNotMatch,\n CustomerDoesNotExist,\n ProductDoesNotExist,\n ProductCustomerTypeDoesNotMatch,\n ProductAlreadyGranted,\n SubscriptionInvoiceNotFound,\n OneTimePurchaseNotFound,\n SubscriptionAlreadyRefunded,\n OneTimePurchaseAlreadyRefunded,\n TestModePurchaseNonRefundable,\n ItemQuantityInsufficientAmount,\n StripeAccountInfoNotFound,\n DefaultPaymentMethodRequired,\n NewPurchasesBlocked,\n DataVaultStoreDoesNotExist,\n DataVaultStoreHashedKeyDoesNotExist,\n AnalyticsQueryTimeout,\n AnalyticsQueryError,\n AnalyticsNotEnabled,\n} satisfies Record<string, KnownErrorConstructor<any, any>>;\n\n\n// ensure that all known error codes are unique\nconst knownErrorCodes = new Set<string>();\nfor (const [_, KnownError] of Object.entries(KnownErrors)) {\n if (knownErrorCodes.has(KnownError.errorCode)) {\n throw new Error(`Duplicate known error code: ${KnownError.errorCode}`);\n }\n knownErrorCodes.add(KnownError.errorCode);\n}\n"],"mappings":";;;;AAwBA,IAAsB,aAAtB,cAAyC,YAAY;CAInD,YACE,YACA,sBACA,SACA;EACA,MACE,YACA,oBACF;EAPgB,KAAA,aAAA;EACA,KAAA,uBAAA;EACA,KAAA,UAAA;gCANwB;cAC5B;CAWd;CAEA,OAAc,aAAa,OAAqC;EAE9D,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,4BAA4B,SAAS,MAAM,2BAA2B;CAC9H;CAEA,UAAsC;EACpC,OAAO,IAAI,YAAY,CAAC,CAAC,OAAO,KAAK,UAAU,KAAK,kBAAkB,GAAG,KAAA,GAAW,CAAC,CAAC;CACxF;CAEA,aAAuD;EACrD,OAAO;GACL,gBAAgB,CAAC,iCAAiC;GAElD,uBAAuB,CAAC,KAAK,SAAS;GACtC,0BAA0B,CAAC,KAAK,SAAS;EAC3C;CACF;CAEA,oBAA0C;EACxC,OAAO;GACL,MAAM,KAAK;GACX,GAAG,KAAK,UAAU,EAAE,SAAS,KAAK,QAAQ,IAAI,CAAC;GAC/C,OAAO,KAAK;EACd;CACF;CAEA,IAAI,YAAoB;EACtB,OAAQ,KAAK,YAAoB,aAAa,SAAS,0FAA0F,MAAM;CACzJ;CAEA,OAAc,wBAAwB,MAAgE;EACpG,OAAO;GACL;GACA,KAAK;GACL;EACF;CACF;CAEA,OAAc,SAAS,MAAkC;EACvD,KAAK,MAAM,CAAC,GAAG,mBAAmB,OAAO,QAAQ,WAAW,GAC1D,IAAI,KAAK,SAAS,eAAe,UAAU,WAEzC,OAAO,IAAI,eAET,GAHsB,eAAe,wBAAwB,IAG5C,CACnB;EAIJ,MAAM,IAAI,MAAM,sEAAsE,KAAK,KAAK,IAAI,KAAK,SAAS;CACpH;AACF;AA6BA,SAAS,4BACP,YACA,WACA,QACA,yBAC0G;CAC1G,MAAM,WAAW,WAAW,YAAY,eAA8B;CACtE,MAAM,4BAA4B,4BAA4B,YAAY,WAAW,0BAAmC;CAGxH,MAAM,uBAAuB,WAAW;;oBACH;;EAInC,YAAY,GAAG,MAAY;GAEzB,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;eALd,cAAc,UAAU;GAMpC,KAAK,kBAAkB;EACzB;EAEA,OAAO,wBAAwB,MAA4B;GACzD,OAAO,0BAA0B,KAAK,OAAO;EAC/C;EAEA,OAAO,WAAW,OAA0E;GAC1F,IAAI,CAAC,WAAW,aAAa,KAAK,GAAG,OAAO;GAC5C,IAAI,UAAmB;GACvB,OAAO,MAAM;IACX,UAAU,OAAO,eAAe,OAAO;IACvC,IAAI,CAAC,SAAS;IACd,IAAI,eAAe,QAAQ,eAAe,QAAQ,YAAY,cAAc,WAAW,OAAO;GAChG;GACA,OAAO;EACT;CACF;CAGA,OAAO;AACT;AAWA,MAAM,mBAAmB,4BACvB,YACA,sBACC,sBAA8B;CAC7B;CACA,oLAAoL;CACpL,EACE,kBACF;AACF,IACC,SAAS,CACP,MAAc,qBAAqB,SAAS,yDAAyD,CACxG,CACF;AAEA,MAAM,mBAAmB,4BACvB,YACA,uBACC,YAAoB,CACnB,KACA,OACF,IACC,SAAS,CAAC,KAAK,OAAO,CACzB;AAEA,MAAM,cAAc,4BAClB,YACA,iBACC,YAAoB;CACnB;CACA,WAAW,SAAS,gCAAgC;CACpD,EACE,QACF;AACF,IACC,SAAc,CAAC,KAAK,OAAO,CAC9B;AAEA,MAAM,qBAAqB,4BACzB,YACA,yBACC,mBAA2B;CAC1B;CACA,QAAQ;;;UAGF,eAAe,KAAK,GAAG,MAAM,QAAQ;qBAC1B,IAAI,EAAE,IAAI,KAAK,UAAU,GAAG,KAAA,GAAW,CAAC,EAAE;SACtD,CAAC,CAAC,KAAK,MAAM,EAAE;;CAEpB,EACE,iBAAiB,eACnB;AACF,IACC,SAAS,CACP,MAAc,mBAAmB,SAAS,yDAAyD,CACtG,CACF;AAEA,MAAM,6BAA6B,4BACjC,YACA,gCACA,WACA,SACF;AAEA,MAAM,+BAA+B,4BACnC,4BACA,kCACA,WACA,SACF;AAEA,MAAM,8BAA8B,4BAClC,8BACA,yCACM,CACJ,KACA,+NACF,SACM,CAAC,CACT;AAEA,MAAM,oBAAoB,4BACxB,8BACA,wBACC,eAAuB,CACtB,KACA,sFAAsF,WAAW,6DACnG,IACC,SAAS,CACP,MAAc,cAAc,SAAS,mDAAmD,CAC3F,CACF;AAEA,MAAM,6BAA6B,4BACjC,8BACA,mCACC,eAA8C;CAC7C;CACA,QAAQ;+CACmC,WAAW;;;;CAItD,EACE,cAAc,WAChB;AACF,IACC,SAAc,CAAC,KAAK,YAAY,CACnC;AAEA,MAAM,qBAAqB,4BACzB,8BACA,8BACM,CACJ,KACA,QAAQ;;;;KAKV,SACM,CAAC,CACT;AAEA,MAAM,yBAAyB,4BAC7B,8BACA,6BACC,kBAAiD,uBAA0D;CAC1G;CACA,6CAA6C,mBAAmB,KAAI,MAAK,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE,aAAa,iBAAiB;CAC9H;EACE,oBAAoB;EACpB,sBAAsB;CACxB;AACF,IACC,SAAc,CACb,KAAK,oBACL,KAAK,oBACP,CACF;AAEA,MAAM,8BAA8B,4BAClC,8BACA,mCACC,cAAsB;CACrB;CACA,oDAAoD,KAAK,UAAU,SAAS,EAAE;CAC9E,EACE,YAAY,UACd;AACF,IACC,SAAc,CAAC,KAAK,UAAU,CACjC;AAEA,MAAM,yBAAyB,4BAC7B,8BACA,8BACC,cAAsB;CACrB;CACA,sDAAsD,KAAK,UAAU,SAAS,EAAE;CAChF,EACE,YAAY,UACd;AACF,IACC,SAAc,CAAC,KAAK,UAAU,CACjC;AAEA,MAAM,6BAA6B,4BACjC,8BACA,mCACC,cAAsB;CACrB;CACA,2DAA2D,KAAK,UAAU,SAAS,EAAE;CACrF,EACE,YAAY,UACd;AACF,IACC,SAAc,CAAC,KAAK,UAAU,CACjC;AAEA,MAAM,0BAA0B,4BAC9B,8BACA,8BACA,WACA,SACF;AAEA,MAAM,6BAA6B,4BACjC,yBACA,uCACM,CACJ,KACA,qCACF,SACM,CAAC,CACT;AAEA,MAAM,0BAA0B,4BAC9B,yBACA,+BACC,cAAgC;CAC/B;CACA,mEAAmE,YAAY,iCAAiC,UAAU,YAAY,EAAE,MAAM;CAC9I,EAAE,mBAAmB,WAAW,QAAQ,KAAK,KAAK;AACpD,IACC,SAAc,CAAC,KAAK,oBAAoB,IAAI,KAAK,KAAK,iBAAiB,IAAI,KAAA,CAAS,CACvF;AAEA,MAAM,oCAAoC,4BACxC,yBACA,gDACM,CACJ,KACA,8DACF,SACM,CAAC,CACT;AAEA,MAAM,6BAA6B,4BACjC,yBACA,yCACM,CACJ,KACA,mFACF,SACM,CAAC,CACT;;;;AAKA,MAAM,gCAAgC,4BACpC,4BACA,mCACA,WACA,SACF;;;;AAMA,MAAM,+BAA+B,4BACnC,+BACA,wCACM,CACJ,KACA,8CACF,SACM,CAAC,CACT;AAEA,MAAM,yCAAyC,4BAC7C,+BACA,gDACC,cAAuB;CACtB;CACA;CACA,EACE,YAAY,aAAa,KAC3B;AACF,IACC,SAAc,CAAC,KAAK,cAAc,KAAA,CAAS,CAC9C;;;;AAKA,MAAM,+BAA+B,4BACnC,+BACA,wCACM,CACJ,KACA,yCACF,SACM,CAAC,CACT;;;;AAKA,MAAM,uCAAuC,4BAC3C,+BACA,kDACM,CACJ,KACA,8EACF,SACM,CAAC,CACT;;;;AAKA,MAAM,sCAAsC,4BAC1C,+BACA,iDACM,CACJ,KACA,mFACF,SACM,CAAC,CACT;;;;AAKA,MAAM,8CAA8C,4BAClD,+BACA,2DACM,CACJ,KACA,2GACF,SACM,CAAC,CACT;;;;AAKA,MAAM,8BAA8B,4BAClC,+BACA,uCACM,CACJ,KACA,8CACF,SACM,CAAC,CACT;AAEA,MAAM,0BAA0B,4BAC9B,4BACA,mCACM,CACJ,KACA,4CACF,SACM,CAAC,CACT;AAEA,MAAM,6BAA6B,4BACjC,YACA,gCACA,WACA,SACF;AAEA,MAAM,+BAA+B,4BACnC,4BACA,kCACA,WACA,SACF;AAEA,MAAM,qBAAqB,4BACzB,8BACA,wBACA,WACA,SACF;AAEA,MAAM,wBAAwB,4BAC5B,oBACA,iCACM,CACJ,KACA,+BACF,SACM,CAAC,CACT;AAEA,MAAM,qBAAqB,4BACzB,oBACA,yBACC,WAA6B,WAA+B,QAA4B,mBAAuC;CAC9H;CACA,QAAQ;kEACsD,YAAY,iCAAiC,UAAU,YAAY,EAAE,MAAM,KAAK,YAAY,gBAAgB,UAAU,KAAK,KAAK,SAAS,aAAa,OAAO,KAAK,KAAK,iBAAiB,sBAAsB,eAAe,KAAK,GAAG;;;;CAInS;EACE,mBAAmB,WAAW,QAAQ,KAAK;EAC3C,YAAY,aAAa;EACzB,SAAS,UAAU;EACnB,kBAAkB,kBAAkB;CACtC;AACF,IACC,SAAc;CACb,KAAK,oBAAoB,IAAI,KAAK,KAAK,iBAAiB,IAAI,KAAA;CAC5D,KAAK,cAAc,KAAA;CACnB,KAAK,WAAW,KAAA;CAChB,KAAK,oBAAoB,KAAA;AAC3B,CACF;AAEA,MAAM,+BAA+B,4BACnC,oBACA,qCACC,mBAA2B,oBAA4B;CACtD;CACA,gEAAgE,KAAK,UAAU,iBAAiB,EAAE,oCAAoC,KAAK,UAAU,eAAe,EAAE;CACtK;EACE,qBAAqB;EACrB,mBAAmB;CACrB;AACF,IACC,SAAc,CAAC,KAAK,qBAAqB,KAAK,iBAAiB,CAClE;AAGA,MAAM,oBAAoB,4BACxB,YACA,uBACA,WACA,SACF;AAEA,MAAM,gCAAgC,4BACpC,mBACA,4CACM,CACJ,KACA,oFACF,SACM,CAAC,CACT;AAEA,MAAM,6BAA6B,4BACjC,mBACA,uCACM,CACJ,KACA,oCACF,SACM,CAAC,CACT;AAGA,MAAM,mBAAmB,4BACvB,mBACA,2BACM,CACJ,KACA,6LACF,SACM,CAAC,CACT;AAEA,MAAM,6BAA6B,4BACjC,YACA,8BACC,OAAe,8BAAuC,UAAU;CAC/D;CACA,qBAAqB,KAAK,UAAU,KAAK,EAAE,iBAAiB,8BAA8B,6KAA6K;CACvQ;EACE;EACA,kCAAkC;CACpC;AACF,IACC,SAAc,CAAC,KAAK,OAAO,KAAK,oCAAoC,KAAK,CAC5E;AAEA,MAAM,mBAAmB,4BACvB,YACA,4BACM,CACJ,KACA,4BACF,SACM,CAAC,CACT;AAEA,MAAM,8BAA8B,4BAClC,YACA,0CACM,CACJ,KACA,qFACF,SACM,CAAC,CACT;AAEA,MAAM,qBAAqB,4BACzB,YACA,2BACC,WAAmB;CAClB;CACA,8BAA8B,OAAO;CACrC,EACE,SAAS,OACX;AACF,IACC,SAAc,CAAC,KAAK,OAAO,CAC9B;AAEA,MAAM,eAAe,4BACnB,YACA,wBACM,CACJ,KACA,iBACF,SACM,CAAC,CACT;AAEA,MAAM,2BAA2B,4BAC/B,YACA,gCACC,qBAAmG;CAClG;CACA,gEAAgE,iBAAiB,KAAK;CACtF,EACE,mBAAmB,iBACrB;AACF,IACC,SAAc,CAAC,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC,CACjE;AAEA,MAAM,kBAAkB,4BACtB,YACA,sBACC,cAAsB;CACrB,IAAI,OAAO,cAAc,UAAU,MAAM,IAAI,uBAAuB,2DAA2D;CAC/H,OAAO;EACL;EACA,WAAW,UAAU;EACrB,EACE,YAAY,UACd;CACF;AACF,IACC,SAAc,CAAC,KAAK,UAAU,CACjC;AAEA,MAAM,yBAAyB,4BAC7B,YACA,8BACC,cAAsB;CACrB;CACA,+BAA+B,UAAU;CACzC,EACE,YAAY,UACd;AACF,IACC,SAAc,CAAC,KAAK,UAAU,CACjC;AAEA,MAAM,qBAAqB,4BACzB,YACA,0BACC,aAAqB;CACpB;CACA,sBAAsB,SAAS;CAC/B,EACE,WAAW,SACb;AACF,IACC,SAAc,CAAC,KAAK,SAAS,CAChC;AAGA,MAAM,mBAAmB,4BACvB,YACA,6BACM,CACJ,KACA,sGACF,SACM,CAAC,CACT;AAEA,MAAM,iBAAiB,4BACrB,YACA,qBACC,YAAqB;CACpB;CACA,WAAW;CACX,EACE,SAAS,WAAW,gEACtB;AACF,IACC,SAAc,CAAC,KAAK,OAAO,CAC9B;AAEA,MAAM,uBAAuB,4BAC3B,YACA,gCACM,CACJ,KACA,sEACF,SACM,CAAC,CACT;AAEA,MAAM,qBAAqB,4BACzB,YACA,yBACC,YAAoB;CACnB;CACA;CACA,EACE,QACF;AACF,IACC,SAAc,CAAC,KAAK,OAAO,CAC9B;AAEA,MAAM,mCAAmC,4BACvC,YACA,6CACM,CACJ,KACA,0DACF,SACM,CAAC,CACT;AAEA,MAAM,6BAA6B,4BACjC,YACA,oCACC,YAAoB;CACnB;CACA,4BAA4B,QAAQ;CACpC,EACE,UAAU,QACZ;AACF,IACC,SAAc,CAAC,KAAK,QAAQ,CAC/B;AAEA,MAAM,sCAAsC,4BAC1C,YACA,+CACC,SAAiB,cAAsB;CACtC;CACA,4BAA4B,QAAQ,oCAAoC,UAAU;CAClF;EACE,UAAU;EACV,YAAY;CACd;AACF,IACC,SAAc,CAAC,KAAK,UAAU,KAAK,UAAU,CAChD;AAEA,MAAM,kCAAkC,4BACtC,YACA,4CACM,CACJ,KACA,yDACF,SACM,CAAC,CACT;AAEA,MAAM,8BAA8B,4BAClC,YACA,wCACM,CACJ,KACA,sDACF,SACM,CAAC,CACT;AAEA,MAAM,oCAAoC,4BACxC,YACA,8CACM,CACJ,KACA,qLACF,SACM,CAAC,CACT;AAGA,MAAM,wBAAwB,4BAC5B,YACA,iCACM,CACJ,KACA,2BACF,SACM,CAAC,CACT;AAEA,MAAM,4BAA4B,4BAChC,YACA,iCACC,gBAAyB;CACxB;CACA;CACA,gBAAgB,KAAA,IAAY,KAAA,IAAY,EACtC,cAAc,YAChB;AACF,IACC,SAAS,CAAE,MAAc,YAAY,CACxC;AAEA,MAAM,6BAA6B,4BACjC,YACA,iCACA,WACA,SACF;AAEA,MAAM,mBAAmB,4BACvB,4BACA,uBACC,cAAsB;CACrB;CACA,yCAAyC,UAAU;CACnD,EACE,YAAY,UACd;AACF,IACC,SAAS,CACP,MAAc,cAAc,SAAS,kDAAkD,CAC1F,CACF;AAEA,MAAM,kBAAkB,4BACtB,4BACA,sBACC,cAAsB;CACrB;CACA,wCAAwC,UAAU;CAClD,EACE,UACF;AACF,IACC,SAAS,CACP,MAAc,aAAa,SAAS,gDAAgD,CACvF,CACF;AAEA,MAAM,0BAA0B,4BAC9B,YACA,qCACM,CACJ,KACA,0DACF,SACM,CAAC,CACT;AAEA,MAAM,wBAAwB,4BAC5B,YACA,sBACA,WACA,SACF;AAEA,MAAM,2BAA2B,4BAC/B,uBACA,qCACM,CACJ,KACA,wDACF,SACM,CAAC,CACT;AAEA,MAAM,0BAA0B,4BAC9B,uBACA,mCACM,CACJ,KACA,oCACF,SACM,CAAC,CACT;AAEA,MAAM,8BAA8B,4BAClC,uBACA,wCACM,CACJ,KACA,8CACF,SACM,CAAC,CACT;AAEA,MAAM,qCAAqC,4BACzC,uBACA,gDACM,CACJ,KACA,yGACF,SACM,CAAC,CACT;AAEA,MAAM,+BAA+B,4BACnC,YACA,wCACM,CACJ,KACA,yBACF,SACM,CAAC,CACT;AAEA,MAAM,uBAAuB,4BAC3B,YACA,gCACM,CACJ,KACA,iCACF,SACM,CAAC,CACT;AAEA,MAAM,6BAA6B,4BACjC,YACA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A;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,8BAtKmC,4BACnC,YACA,oCACC,cAA+B,eAAuB;EACrD;EACA;EACA;GACE,eAAe;GACf,aAAa;EACf;CACF,IACC,SAAS,CAAC,KAAK,eAAe,KAAK,WAAW,CA2J/C;CACA,qBAzJ0B,4BAC1B,YACA,+BACM,CACJ,KACA,oGACF,SACM,CAAC,CAkJP;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,MAAM,kCAAkB,IAAI,IAAY;AACxC,KAAK,MAAM,CAAC,GAAG,eAAe,OAAO,QAAQ,WAAW,GAAG;CACzD,IAAI,gBAAgB,IAAI,WAAW,SAAS,GAC1C,MAAM,IAAI,MAAM,+BAA+B,WAAW,WAAW;CAEvE,gBAAgB,IAAI,WAAW,SAAS;AAC1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"payment-methods.d.ts","names":[],"sources":["../../../src/payments/payment-methods.ts"],"mappings":";;AAOA;;;;;KAAY,qBAAA;AAAA,KASA,mBAAA;EACV,IAAA;EACA,QAAA,EAAU,qBAAA;EACV,YAAA;AAAA;;;;;cAOW,eAAA,EAAiB,MAAA,SAAe,mBAAA;;;;cA2ChC,kBAAA;EAAsB,EAAA,EAAI,qBAAA;EAAuB,IAAA;AAAA;;;;;iBAkB9C,oBAAA,CAAqB,QAAA;;AAArC;;;iBAWgB,wBAAA,CAAyB,QAAA,WAAmB,qBAAA;;AAA5D;;;iBAWgB,4BAAA,CAA6B,QAAA;;AAA7C;;iBAUgB,oBAAA,CAAqB,QAAA;;;AAArC;iBAOgB,sBAAA,CAAA;;;;iBAOA,wBAAA,CAAA;;;;;cAQH,2BAAA,EAA6B,MAAA;;;;iBAS1B,2BAAA,CAAA,GAA+B,MAAA,CAAO,qBAAA"}
1
+ {"version":3,"file":"payment-methods.d.ts","names":[],"sources":["../../../src/payments/payment-methods.ts"],"mappings":";;AAOA;;;;AAAiC;KAArB,qBAAA;AAAA,KASA,mBAAA;EACV,IAAA;EACA,QAAA,EAAU,qBAAqB;EAC/B,YAAA;AAAA;;;;AAAY;cAOD,eAAA,EAAiB,MAAM,SAAS,mBAAA;;;;cA2ChC,kBAAA;EAAsB,EAAA,EAAI,qBAAqB;EAAE,IAAA;AAAA;;;;;iBAkB9C,oBAAA,CAAqB,QAAgB;AAlBa;AAkBlE;;;AAlBkE,iBA6BlD,wBAAA,CAAyB,QAAA,WAAmB,qBAAqB;AAX5B;AAWrD;;;AAXqD,iBAsBrC,4BAAA,CAA6B,QAAgB;AAXoB;AAWjF;;AAXiF,iBAqBjE,oBAAA,CAAqB,QAAgB;;AAVQ;AAU7D;iBAOgB,sBAAA;;;AAPqC;iBAcrC,wBAAA;;;;AAPsB;cAezB,2BAAA,EAA6B,MAAM;;;;iBAShC,2BAAA,IAA+B,MAAM,CAAC,qBAAA"}
@@ -199,7 +199,7 @@ function getPaymentMethodsByCategory() {
199
199
  for (const [id, config] of Object.entries(PAYMENT_METHODS)) result[config.category].push(id);
200
200
  return result;
201
201
  }
202
-
203
202
  //#endregion
204
203
  export { PAYMENT_CATEGORIES, PAYMENT_METHODS, PAYMENT_METHOD_DEPENDENCIES, getAllPaymentMethodIds, getAllPaymentMethodNames, getPaymentMethodCategory, getPaymentMethodDependencies, getPaymentMethodName, getPaymentMethodsByCategory, isKnownPaymentMethod };
204
+
205
205
  //# sourceMappingURL=payment-methods.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"payment-methods.js","names":[],"sources":["../../../src/payments/payment-methods.ts"],"sourcesContent":["/**\n * Payment Methods Configuration\n *\n * Single source of truth for payment method metadata used by both\n * backend (route validation) and frontend (UI rendering).\n */\n\nexport type PaymentMethodCategory =\n | 'cards'\n | 'wallets'\n | 'bnpl'\n | 'realtime'\n | 'bank_debits'\n | 'bank_transfers'\n | 'vouchers';\n\nexport type PaymentMethodConfig = {\n name: string,\n category: PaymentMethodCategory,\n dependencies?: string[],\n};\n\n/**\n * All supported payment methods with their display names, categories, and dependencies.\n * This is the single source of truth - both backend and frontend should import from here.\n */\nexport const PAYMENT_METHODS: Record<string, PaymentMethodConfig> = {\n // Cards\n card: { name: 'Credit/Debit Card', category: 'cards' },\n cartes_bancaires: { name: 'Cartes Bancaires', category: 'cards' },\n\n // Wallets\n apple_pay: { name: 'Apple Pay', category: 'wallets', dependencies: ['card'] },\n google_pay: { name: 'Google Pay', category: 'wallets', dependencies: ['card'] },\n link: { name: 'Link', category: 'wallets' },\n amazon_pay: { name: 'Amazon Pay', category: 'wallets' },\n cashapp: { name: 'Cash App', category: 'wallets' },\n\n // Buy Now, Pay Later\n klarna: { name: 'Klarna', category: 'bnpl' },\n affirm: { name: 'Affirm', category: 'bnpl' },\n afterpay_clearpay: { name: 'Afterpay / Clearpay', category: 'bnpl' },\n zip: { name: 'Zip', category: 'bnpl' },\n\n // Real-Time Payments\n ideal: { name: 'iDEAL', category: 'realtime' },\n bancontact: { name: 'Bancontact', category: 'realtime' },\n eps: { name: 'EPS', category: 'realtime' },\n p24: { name: 'Przelewy24', category: 'realtime' },\n blik: { name: 'BLIK', category: 'realtime' },\n alipay: { name: 'Alipay', category: 'realtime' },\n wechat_pay: { name: 'WeChat Pay', category: 'realtime' },\n\n // Bank Debits\n sepa_debit: { name: 'SEPA Direct Debit', category: 'bank_debits' },\n bacs_debit: { name: 'Bacs Direct Debit', category: 'bank_debits' },\n acss_debit: { name: 'ACSS Debit', category: 'bank_debits' },\n\n // Bank Transfers\n us_bank_account: { name: 'US Bank Account', category: 'bank_transfers' },\n\n // Vouchers\n multibanco: { name: 'Multibanco', category: 'vouchers' },\n customer_balance: { name: 'Customer Balance', category: 'vouchers' },\n};\n\n/**\n * Category definitions with display names, ordered by commonality.\n */\nexport const PAYMENT_CATEGORIES: { id: PaymentMethodCategory, name: string }[] = [\n { id: 'cards', name: 'Cards' },\n { id: 'wallets', name: 'Wallets' },\n { id: 'bnpl', name: 'Buy Now, Pay Later' },\n { id: 'realtime', name: 'Real-Time Payments' },\n { id: 'bank_debits', name: 'Bank Debits' },\n { id: 'bank_transfers', name: 'Bank Transfers' },\n { id: 'vouchers', name: 'Vouchers' },\n];\n\n// ============================================================================\n// Helper functions\n// ============================================================================\n\n/**\n * Get display name for a payment method ID.\n * Returns the ID itself if not found (fallback for unknown methods).\n */\nexport function getPaymentMethodName(methodId: string): string {\n if (!isKnownPaymentMethod(methodId)) {\n return methodId;\n }\n return PAYMENT_METHODS[methodId].name;\n}\n\n/**\n * Get category for a payment method ID.\n * Returns undefined if method is not known.\n */\nexport function getPaymentMethodCategory(methodId: string): PaymentMethodCategory | undefined {\n if (!isKnownPaymentMethod(methodId)) {\n return undefined;\n }\n return PAYMENT_METHODS[methodId].category;\n}\n\n/**\n * Get dependencies for a payment method ID.\n * Returns empty array if method is not known or has no dependencies.\n */\nexport function getPaymentMethodDependencies(methodId: string): string[] {\n if (!isKnownPaymentMethod(methodId)) {\n return [];\n }\n return PAYMENT_METHODS[methodId].dependencies ?? [];\n}\n\n/**\n * Check if a payment method ID is known/supported.\n */\nexport function isKnownPaymentMethod(methodId: string): boolean {\n return methodId in PAYMENT_METHODS;\n}\n\n/**\n * Get all payment method IDs.\n */\nexport function getAllPaymentMethodIds(): string[] {\n return Object.keys(PAYMENT_METHODS);\n}\n\n/**\n * Get all display names (useful for schema validation).\n */\nexport function getAllPaymentMethodNames(): string[] {\n return Object.values(PAYMENT_METHODS).map(m => m.name);\n}\n\n/**\n * Build dependencies map: { methodId: [requiredMethodIds] }\n * Only includes methods that have dependencies.\n */\nexport const PAYMENT_METHOD_DEPENDENCIES: Record<string, string[]> = Object.fromEntries(\n Object.entries(PAYMENT_METHODS)\n .filter(([, config]) => config.dependencies && config.dependencies.length > 0)\n .map(([id, config]) => [id, config.dependencies!])\n);\n\n/**\n * Group payment method IDs by category.\n */\nexport function getPaymentMethodsByCategory(): Record<PaymentMethodCategory, string[]> {\n const result: Record<PaymentMethodCategory, string[]> = {\n cards: [],\n wallets: [],\n bnpl: [],\n realtime: [],\n bank_debits: [],\n bank_transfers: [],\n vouchers: [],\n };\n\n for (const [id, config] of Object.entries(PAYMENT_METHODS)) {\n result[config.category].push(id);\n }\n\n return result;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"payment-methods.js","names":[],"sources":["../../../src/payments/payment-methods.ts"],"sourcesContent":["/**\n * Payment Methods Configuration\n *\n * Single source of truth for payment method metadata used by both\n * backend (route validation) and frontend (UI rendering).\n */\n\nexport type PaymentMethodCategory =\n | 'cards'\n | 'wallets'\n | 'bnpl'\n | 'realtime'\n | 'bank_debits'\n | 'bank_transfers'\n | 'vouchers';\n\nexport type PaymentMethodConfig = {\n name: string,\n category: PaymentMethodCategory,\n dependencies?: string[],\n};\n\n/**\n * All supported payment methods with their display names, categories, and dependencies.\n * This is the single source of truth - both backend and frontend should import from here.\n */\nexport const PAYMENT_METHODS: Record<string, PaymentMethodConfig> = {\n // Cards\n card: { name: 'Credit/Debit Card', category: 'cards' },\n cartes_bancaires: { name: 'Cartes Bancaires', category: 'cards' },\n\n // Wallets\n apple_pay: { name: 'Apple Pay', category: 'wallets', dependencies: ['card'] },\n google_pay: { name: 'Google Pay', category: 'wallets', dependencies: ['card'] },\n link: { name: 'Link', category: 'wallets' },\n amazon_pay: { name: 'Amazon Pay', category: 'wallets' },\n cashapp: { name: 'Cash App', category: 'wallets' },\n\n // Buy Now, Pay Later\n klarna: { name: 'Klarna', category: 'bnpl' },\n affirm: { name: 'Affirm', category: 'bnpl' },\n afterpay_clearpay: { name: 'Afterpay / Clearpay', category: 'bnpl' },\n zip: { name: 'Zip', category: 'bnpl' },\n\n // Real-Time Payments\n ideal: { name: 'iDEAL', category: 'realtime' },\n bancontact: { name: 'Bancontact', category: 'realtime' },\n eps: { name: 'EPS', category: 'realtime' },\n p24: { name: 'Przelewy24', category: 'realtime' },\n blik: { name: 'BLIK', category: 'realtime' },\n alipay: { name: 'Alipay', category: 'realtime' },\n wechat_pay: { name: 'WeChat Pay', category: 'realtime' },\n\n // Bank Debits\n sepa_debit: { name: 'SEPA Direct Debit', category: 'bank_debits' },\n bacs_debit: { name: 'Bacs Direct Debit', category: 'bank_debits' },\n acss_debit: { name: 'ACSS Debit', category: 'bank_debits' },\n\n // Bank Transfers\n us_bank_account: { name: 'US Bank Account', category: 'bank_transfers' },\n\n // Vouchers\n multibanco: { name: 'Multibanco', category: 'vouchers' },\n customer_balance: { name: 'Customer Balance', category: 'vouchers' },\n};\n\n/**\n * Category definitions with display names, ordered by commonality.\n */\nexport const PAYMENT_CATEGORIES: { id: PaymentMethodCategory, name: string }[] = [\n { id: 'cards', name: 'Cards' },\n { id: 'wallets', name: 'Wallets' },\n { id: 'bnpl', name: 'Buy Now, Pay Later' },\n { id: 'realtime', name: 'Real-Time Payments' },\n { id: 'bank_debits', name: 'Bank Debits' },\n { id: 'bank_transfers', name: 'Bank Transfers' },\n { id: 'vouchers', name: 'Vouchers' },\n];\n\n// ============================================================================\n// Helper functions\n// ============================================================================\n\n/**\n * Get display name for a payment method ID.\n * Returns the ID itself if not found (fallback for unknown methods).\n */\nexport function getPaymentMethodName(methodId: string): string {\n if (!isKnownPaymentMethod(methodId)) {\n return methodId;\n }\n return PAYMENT_METHODS[methodId].name;\n}\n\n/**\n * Get category for a payment method ID.\n * Returns undefined if method is not known.\n */\nexport function getPaymentMethodCategory(methodId: string): PaymentMethodCategory | undefined {\n if (!isKnownPaymentMethod(methodId)) {\n return undefined;\n }\n return PAYMENT_METHODS[methodId].category;\n}\n\n/**\n * Get dependencies for a payment method ID.\n * Returns empty array if method is not known or has no dependencies.\n */\nexport function getPaymentMethodDependencies(methodId: string): string[] {\n if (!isKnownPaymentMethod(methodId)) {\n return [];\n }\n return PAYMENT_METHODS[methodId].dependencies ?? [];\n}\n\n/**\n * Check if a payment method ID is known/supported.\n */\nexport function isKnownPaymentMethod(methodId: string): boolean {\n return methodId in PAYMENT_METHODS;\n}\n\n/**\n * Get all payment method IDs.\n */\nexport function getAllPaymentMethodIds(): string[] {\n return Object.keys(PAYMENT_METHODS);\n}\n\n/**\n * Get all display names (useful for schema validation).\n */\nexport function getAllPaymentMethodNames(): string[] {\n return Object.values(PAYMENT_METHODS).map(m => m.name);\n}\n\n/**\n * Build dependencies map: { methodId: [requiredMethodIds] }\n * Only includes methods that have dependencies.\n */\nexport const PAYMENT_METHOD_DEPENDENCIES: Record<string, string[]> = Object.fromEntries(\n Object.entries(PAYMENT_METHODS)\n .filter(([, config]) => config.dependencies && config.dependencies.length > 0)\n .map(([id, config]) => [id, config.dependencies!])\n);\n\n/**\n * Group payment method IDs by category.\n */\nexport function getPaymentMethodsByCategory(): Record<PaymentMethodCategory, string[]> {\n const result: Record<PaymentMethodCategory, string[]> = {\n cards: [],\n wallets: [],\n bnpl: [],\n realtime: [],\n bank_debits: [],\n bank_transfers: [],\n vouchers: [],\n };\n\n for (const [id, config] of Object.entries(PAYMENT_METHODS)) {\n result[config.category].push(id);\n }\n\n return result;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-limits.d.ts","names":[],"sources":["../../../src/payments/stripe-limits.ts"],"mappings":";;AASA;;;;;AAIA;;cAJa,sCAAA;EAAA,SAEH,GAAA;AAAA;AAAA,KAEE,uBAAA,gBAAuC,sCAAA;AAAA,iBAEnC,yBAAA,CAA0B,QAAA,EAAU,uBAAA"}
1
+ {"version":3,"file":"stripe-limits.d.ts","names":[],"sources":["../../../src/payments/stripe-limits.ts"],"mappings":";;AASA;;;;;AAIA;;cAJa,sCAAA;EAAA,SAEH,GAAA;AAAA;AAAA,KAEE,uBAAA,gBAAuC,sCAAsC;AAAA,iBAEzE,yBAAA,CAA0B,QAAiC,EAAvB,uBAAuB"}
@@ -11,7 +11,7 @@ const STRIPE_ONE_TIME_MIN_AMOUNT_BY_CURRENCY = { USD: .5 };
11
11
  function getStripeOneTimeMinAmount(currency) {
12
12
  return STRIPE_ONE_TIME_MIN_AMOUNT_BY_CURRENCY[currency];
13
13
  }
14
-
15
14
  //#endregion
16
15
  export { STRIPE_ONE_TIME_MIN_AMOUNT_BY_CURRENCY, getStripeOneTimeMinAmount };
16
+
17
17
  //# sourceMappingURL=stripe-limits.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-limits.js","names":[],"sources":["../../../src/payments/stripe-limits.ts"],"sourcesContent":["/**\n * Stripe API limits shared by backend and frontend.\n * See https://docs.stripe.com/currencies#minimum-and-maximum-charge-amounts.\n */\n\n/**\n * Per-currency minimum for one-time PaymentIntents, in the major unit.\n * Recurring subs have no minimum ($0 subs are allowed).\n */\nexport const STRIPE_ONE_TIME_MIN_AMOUNT_BY_CURRENCY = {\n USD: 0.50,\n} as const;\n\nexport type StripeSupportedCurrency = keyof typeof STRIPE_ONE_TIME_MIN_AMOUNT_BY_CURRENCY;\n\nexport function getStripeOneTimeMinAmount(currency: StripeSupportedCurrency): number {\n return STRIPE_ONE_TIME_MIN_AMOUNT_BY_CURRENCY[currency];\n}\n"],"mappings":";;;;;;;;;AASA,MAAa,yCAAyC,EACpD,KAAK,IACN;AAID,SAAgB,0BAA0B,UAA2C;AACnF,QAAO,uCAAuC"}
1
+ {"version":3,"file":"stripe-limits.js","names":[],"sources":["../../../src/payments/stripe-limits.ts"],"sourcesContent":["/**\n * Stripe API limits shared by backend and frontend.\n * See https://docs.stripe.com/currencies#minimum-and-maximum-charge-amounts.\n */\n\n/**\n * Per-currency minimum for one-time PaymentIntents, in the major unit.\n * Recurring subs have no minimum ($0 subs are allowed).\n */\nexport const STRIPE_ONE_TIME_MIN_AMOUNT_BY_CURRENCY = {\n USD: 0.50,\n} as const;\n\nexport type StripeSupportedCurrency = keyof typeof STRIPE_ONE_TIME_MIN_AMOUNT_BY_CURRENCY;\n\nexport function getStripeOneTimeMinAmount(currency: StripeSupportedCurrency): number {\n return STRIPE_ONE_TIME_MIN_AMOUNT_BY_CURRENCY[currency];\n}\n"],"mappings":";;;;;;;;;AASA,MAAa,yCAAyC,EACpD,KAAK,GACP;AAIA,SAAgB,0BAA0B,UAA2C;CACnF,OAAO,uCAAuC;AAChD"}
@@ -1 +1 @@
1
- {"version":3,"file":"plans.d.ts","names":[],"sources":["../../src/plans.ts"],"mappings":";;AAOA;;;;;cAAa,SAAA;;;;cAKA,QAAA;EAAA;;;;;;;;KAUD,MAAA,UAAgB,QAAA,cAAsB,QAAA;;;;KAKtC,oBAAA;EACV,KAAA;EACA,SAAA;EACA,cAAA;EACA,uBAAA;EACA,eAAA;EACA,cAAA;AAAA;;;;cAMW,WAAA;EACX,IAAA,EAAM,oBAAA;EACN,IAAA,EAAM,oBAAA;EACN,MAAA,EAAQ,oBAAA;AAAA;AAAA,KA4BE,MAAA,gBAAsB,WAAA;;;;;;cAOrB,qBAAA;;;;;;KAOR,qBAAA;EAA0B,EAAA;EAAmB,IAAA;AAAA;;;AAPlD;;;;iBAegB,aAAA,CAAc,QAAA,EAAU,aAAA,CAAc,qBAAA,IAAyB,MAAA;AAfsB;;;;;AAAA,iBA2BrF,UAAA,CAAW,QAAA,EAAU,aAAA,CAAc,qBAAA"}
1
+ {"version":3,"file":"plans.d.ts","names":[],"sources":["../../src/plans.ts"],"mappings":";;AAOA;;;;AAAsB;cAAT,SAAA;;;;cAKA,QAAA;EAAA;;;;;;;;KAUD,MAAA,UAAgB,QAAA,cAAsB,QAAQ;;;;KAK9C,oBAAA;EACV,KAAA;EACA,SAAA;EACA,cAAA;EACA,uBAAA;EACA,eAAA;EACA,cAAA;AAAA;;;;cAMW,WAAA;EACX,IAAA,EAAM,oBAAA;EACN,IAAA,EAAM,oBAAA;EACN,MAAA,EAAQ,oBAAA;AAAA;AAAA,KA4BE,MAAA,gBAAsB,WAAW;;;;;;cAOhC,qBAAA;;;;;;KAOR,qBAAA;EAA0B,EAAA;EAAmB,IAAI;AAAA;;AAdT;AAO7C;;;;iBAegB,aAAA,CAAc,QAAA,EAAU,aAAA,CAAc,qBAAA,IAAyB,MAAA;AAfsB;;;;AAO/C;AAP+C,iBA2BrF,UAAA,CAAW,QAAA,EAAU,aAAa,CAAC,qBAAA"}
package/dist/esm/plans.js CHANGED
@@ -75,7 +75,7 @@ function resolvePlanId(products) {
75
75
  function isPaidPlan(products) {
76
76
  return resolvePlanId(products) !== "free";
77
77
  }
78
-
79
78
  //#endregion
80
79
  export { BASE_PLAN_IDS_BY_TIER, ITEM_IDS, PLAN_LIMITS, UNLIMITED, isPaidPlan, resolvePlanId };
80
+
81
81
  //# sourceMappingURL=plans.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plans.js","names":[],"sources":["../../src/plans.ts"],"sourcesContent":["/**\n * Plan configuration for Hexclave pricing tiers.\n *\n * This file defines the limits for each plan and the item IDs used to track them.\n * Import these constants in seed.ts and backend code for limit enforcement.\n */\n\nexport const UNLIMITED = 1_000_000_000;\n\n/**\n * Item IDs used across the codebase for tracking plan limits.\n */\nexport const ITEM_IDS = {\n seats: \"dashboard_admins\",\n authUsers: \"auth_users\",\n emailsPerMonth: \"emails_per_month\",\n analyticsTimeoutSeconds: \"analytics_timeout_seconds\",\n analyticsEvents: \"analytics_events\",\n sessionReplays: \"session_replays\",\n onboardingCall: \"onboarding_call\",\n} as const;\n\nexport type ItemId = typeof ITEM_IDS[keyof typeof ITEM_IDS];\n\n/**\n * The offerings/limits included in a plan.\n */\nexport type PlanProductOfferings = {\n seats: number,\n authUsers: number,\n emailsPerMonth: number,\n analyticsTimeoutSeconds: number,\n analyticsEvents: number,\n sessionReplays: number,\n};\n\n/**\n * Plan limits by plan ID.\n */\nexport const PLAN_LIMITS: {\n free: PlanProductOfferings,\n team: PlanProductOfferings,\n growth: PlanProductOfferings,\n} = {\n free: {\n seats: 1,\n authUsers: 10_000,\n emailsPerMonth: 1_000,\n analyticsTimeoutSeconds: 10,\n analyticsEvents: 100_000,\n sessionReplays: 2_500,\n },\n team: {\n seats: 4,\n authUsers: 50_000,\n emailsPerMonth: 25_000,\n analyticsTimeoutSeconds: 60,\n analyticsEvents: 500_000,\n sessionReplays: 2_500,\n },\n growth: {\n seats: 4,\n authUsers: UNLIMITED,\n emailsPerMonth: 25_000,\n analyticsTimeoutSeconds: 300,\n analyticsEvents: 1_000_000,\n sessionReplays: 2_500,\n },\n};\n\nexport type PlanId = keyof typeof PLAN_LIMITS;\n\n/**\n * Base plan IDs ordered from highest to lowest tier. Use this (instead of\n * string literals) whenever code needs to pick a customer's \"current\" plan\n * from their product list, so the choice stays in sync with `PLAN_LIMITS`.\n */\nexport const BASE_PLAN_IDS_BY_TIER = [\"growth\", \"team\", \"free\"] as const satisfies readonly PlanId[];\n\n/**\n * Minimal shape of a product entry as it comes out of `team.useProducts()` /\n * `customer.useProducts()` on both the SDK and dashboard sides. Structural so\n * we don't pull SDK types into `stack-shared`.\n */\ntype PlanResolutionProduct = { id: string | null, type?: string };\n\n/**\n * Picks the customer's highest-tier active base plan (growth → team → free),\n * falling back to `\"free\"` if none of the known plans appear as a\n * subscription. Single source of truth for plan gating in the dashboard —\n * do not reintroduce ad-hoc `p.id === \"team\" || p.id === \"growth\"` checks.\n */\nexport function resolvePlanId(products: ReadonlyArray<PlanResolutionProduct>): PlanId {\n const activeSubscriptionPlanIds = new Set(\n products.filter(p => p.type === \"subscription\" && p.id != null).map(p => p.id),\n );\n return BASE_PLAN_IDS_BY_TIER.find(id => activeSubscriptionPlanIds.has(id)) ?? \"free\";\n}\n\n/**\n * Convenience predicate for \"is this customer on a paid plan?\". Anything\n * above free counts, so new paid tiers added to `PLAN_LIMITS` are picked up\n * automatically.\n */\nexport function isPaidPlan(products: ReadonlyArray<PlanResolutionProduct>): boolean {\n return resolvePlanId(products) !== \"free\";\n}\n"],"mappings":";;;;;;;AAOA,MAAa,YAAY;;;;AAKzB,MAAa,WAAW;CACtB,OAAO;CACP,WAAW;CACX,gBAAgB;CAChB,yBAAyB;CACzB,iBAAiB;CACjB,gBAAgB;CAChB,gBAAgB;CACjB;;;;AAmBD,MAAa,cAIT;CACF,MAAM;EACJ,OAAO;EACP,WAAW;EACX,gBAAgB;EAChB,yBAAyB;EACzB,iBAAiB;EACjB,gBAAgB;EACjB;CACD,MAAM;EACJ,OAAO;EACP,WAAW;EACX,gBAAgB;EAChB,yBAAyB;EACzB,iBAAiB;EACjB,gBAAgB;EACjB;CACD,QAAQ;EACN,OAAO;EACP,WAAW;EACX,gBAAgB;EAChB,yBAAyB;EACzB,iBAAiB;EACjB,gBAAgB;EACjB;CACF;;;;;;AASD,MAAa,wBAAwB;CAAC;CAAU;CAAQ;CAAO;;;;;;;AAe/D,SAAgB,cAAc,UAAwD;CACpF,MAAM,4BAA4B,IAAI,IACpC,SAAS,QAAO,MAAK,EAAE,SAAS,kBAAkB,EAAE,MAAM,KAAK,CAAC,KAAI,MAAK,EAAE,GAAG,CAC/E;AACD,QAAO,sBAAsB,MAAK,OAAM,0BAA0B,IAAI,GAAG,CAAC,IAAI;;;;;;;AAQhF,SAAgB,WAAW,UAAyD;AAClF,QAAO,cAAc,SAAS,KAAK"}
1
+ {"version":3,"file":"plans.js","names":[],"sources":["../../src/plans.ts"],"sourcesContent":["/**\n * Plan configuration for Hexclave pricing tiers.\n *\n * This file defines the limits for each plan and the item IDs used to track them.\n * Import these constants in seed.ts and backend code for limit enforcement.\n */\n\nexport const UNLIMITED = 1_000_000_000;\n\n/**\n * Item IDs used across the codebase for tracking plan limits.\n */\nexport const ITEM_IDS = {\n seats: \"dashboard_admins\",\n authUsers: \"auth_users\",\n emailsPerMonth: \"emails_per_month\",\n analyticsTimeoutSeconds: \"analytics_timeout_seconds\",\n analyticsEvents: \"analytics_events\",\n sessionReplays: \"session_replays\",\n onboardingCall: \"onboarding_call\",\n} as const;\n\nexport type ItemId = typeof ITEM_IDS[keyof typeof ITEM_IDS];\n\n/**\n * The offerings/limits included in a plan.\n */\nexport type PlanProductOfferings = {\n seats: number,\n authUsers: number,\n emailsPerMonth: number,\n analyticsTimeoutSeconds: number,\n analyticsEvents: number,\n sessionReplays: number,\n};\n\n/**\n * Plan limits by plan ID.\n */\nexport const PLAN_LIMITS: {\n free: PlanProductOfferings,\n team: PlanProductOfferings,\n growth: PlanProductOfferings,\n} = {\n free: {\n seats: 1,\n authUsers: 10_000,\n emailsPerMonth: 1_000,\n analyticsTimeoutSeconds: 10,\n analyticsEvents: 100_000,\n sessionReplays: 2_500,\n },\n team: {\n seats: 4,\n authUsers: 50_000,\n emailsPerMonth: 25_000,\n analyticsTimeoutSeconds: 60,\n analyticsEvents: 500_000,\n sessionReplays: 2_500,\n },\n growth: {\n seats: 4,\n authUsers: UNLIMITED,\n emailsPerMonth: 25_000,\n analyticsTimeoutSeconds: 300,\n analyticsEvents: 1_000_000,\n sessionReplays: 2_500,\n },\n};\n\nexport type PlanId = keyof typeof PLAN_LIMITS;\n\n/**\n * Base plan IDs ordered from highest to lowest tier. Use this (instead of\n * string literals) whenever code needs to pick a customer's \"current\" plan\n * from their product list, so the choice stays in sync with `PLAN_LIMITS`.\n */\nexport const BASE_PLAN_IDS_BY_TIER = [\"growth\", \"team\", \"free\"] as const satisfies readonly PlanId[];\n\n/**\n * Minimal shape of a product entry as it comes out of `team.useProducts()` /\n * `customer.useProducts()` on both the SDK and dashboard sides. Structural so\n * we don't pull SDK types into `stack-shared`.\n */\ntype PlanResolutionProduct = { id: string | null, type?: string };\n\n/**\n * Picks the customer's highest-tier active base plan (growth → team → free),\n * falling back to `\"free\"` if none of the known plans appear as a\n * subscription. Single source of truth for plan gating in the dashboard —\n * do not reintroduce ad-hoc `p.id === \"team\" || p.id === \"growth\"` checks.\n */\nexport function resolvePlanId(products: ReadonlyArray<PlanResolutionProduct>): PlanId {\n const activeSubscriptionPlanIds = new Set(\n products.filter(p => p.type === \"subscription\" && p.id != null).map(p => p.id),\n );\n return BASE_PLAN_IDS_BY_TIER.find(id => activeSubscriptionPlanIds.has(id)) ?? \"free\";\n}\n\n/**\n * Convenience predicate for \"is this customer on a paid plan?\". Anything\n * above free counts, so new paid tiers added to `PLAN_LIMITS` are picked up\n * automatically.\n */\nexport function isPaidPlan(products: ReadonlyArray<PlanResolutionProduct>): boolean {\n return resolvePlanId(products) !== \"free\";\n}\n"],"mappings":";;;;;;;AAOA,MAAa,YAAY;;;;AAKzB,MAAa,WAAW;CACtB,OAAO;CACP,WAAW;CACX,gBAAgB;CAChB,yBAAyB;CACzB,iBAAiB;CACjB,gBAAgB;CAChB,gBAAgB;AAClB;;;;AAmBA,MAAa,cAIT;CACF,MAAM;EACJ,OAAO;EACP,WAAW;EACX,gBAAgB;EAChB,yBAAyB;EACzB,iBAAiB;EACjB,gBAAgB;CAClB;CACA,MAAM;EACJ,OAAO;EACP,WAAW;EACX,gBAAgB;EAChB,yBAAyB;EACzB,iBAAiB;EACjB,gBAAgB;CAClB;CACA,QAAQ;EACN,OAAO;EACP,WAAW;EACX,gBAAgB;EAChB,yBAAyB;EACzB,iBAAiB;EACjB,gBAAgB;CAClB;AACF;;;;;;AASA,MAAa,wBAAwB;CAAC;CAAU;CAAQ;AAAM;;;;;;;AAe9D,SAAgB,cAAc,UAAwD;CACpF,MAAM,4BAA4B,IAAI,IACpC,SAAS,QAAO,MAAK,EAAE,SAAS,kBAAkB,EAAE,MAAM,IAAI,CAAC,CAAC,KAAI,MAAK,EAAE,EAAE,CAC/E;CACA,OAAO,sBAAsB,MAAK,OAAM,0BAA0B,IAAI,EAAE,CAAC,KAAK;AAChF;;;;;;AAOA,SAAgB,WAAW,UAAyD;CAClF,OAAO,cAAc,QAAQ,MAAM;AACrC"}
@@ -1,7 +1,7 @@
1
1
  import * as yup$1 from "yup";
2
- import { Currency } from "./utils/currency-constants";
3
- import { DayInterval, Interval } from "./utils/dates";
4
- import { isValidCountryCode, normalizeCountryCode, validateCountryCode } from "./utils/country-codes";
2
+ import { isValidCountryCode, normalizeCountryCode, validateCountryCode } from "./utils/country-codes.js";
3
+ import { Currency } from "./utils/currency-constants.js";
4
+ import { DayInterval, Interval } from "./utils/dates.js";
5
5
 
6
6
  //#region src/schema-fields.d.ts
7
7
  declare module "yup" {