@hexclave/shared 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1144) hide show
  1. package/LICENSE +7 -0
  2. package/dist/ai/image-limits.d.ts +24 -0
  3. package/dist/ai/image-limits.d.ts.map +1 -0
  4. package/dist/ai/image-limits.js +61 -0
  5. package/dist/ai/image-limits.js.map +1 -0
  6. package/dist/ai/unified-prompts/reminders.d.ts +5 -0
  7. package/dist/ai/unified-prompts/reminders.d.ts.map +1 -0
  8. package/dist/ai/unified-prompts/reminders.js +33 -0
  9. package/dist/ai/unified-prompts/reminders.js.map +1 -0
  10. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts +11 -0
  11. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -0
  12. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +851 -0
  13. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -0
  14. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.d.ts +5 -0
  15. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.d.ts.map +1 -0
  16. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.js +12 -0
  17. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.js.map +1 -0
  18. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.d.ts +5 -0
  19. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.d.ts.map +1 -0
  20. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.js +12 -0
  21. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.js.map +1 -0
  22. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.d.ts +5 -0
  23. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.d.ts.map +1 -0
  24. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.js +12 -0
  25. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.js.map +1 -0
  26. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.d.ts +5 -0
  27. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.d.ts.map +1 -0
  28. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js +12 -0
  29. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js.map +1 -0
  30. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.d.ts +5 -0
  31. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.d.ts.map +1 -0
  32. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js +12 -0
  33. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js.map +1 -0
  34. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts +5 -0
  35. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts.map +1 -0
  36. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.js +64 -0
  37. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.js.map +1 -0
  38. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.d.ts +5 -0
  39. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.d.ts.map +1 -0
  40. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js +12 -0
  41. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js.map +1 -0
  42. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.d.ts +5 -0
  43. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.d.ts.map +1 -0
  44. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js +12 -0
  45. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js.map +1 -0
  46. package/dist/ai/unified-prompts/skill-site-prompt.d.ts +5 -0
  47. package/dist/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -0
  48. package/dist/ai/unified-prompts/skill-site-prompt.js +75 -0
  49. package/dist/ai/unified-prompts/skill-site-prompt.js.map +1 -0
  50. package/dist/apps/apps-config.d.ts +168 -0
  51. package/dist/apps/apps-config.d.ts.map +1 -0
  52. package/dist/apps/apps-config.js +157 -0
  53. package/dist/apps/apps-config.js.map +1 -0
  54. package/dist/apps/apps-ui.d.ts +45 -0
  55. package/dist/apps/apps-ui.d.ts.map +1 -0
  56. package/dist/apps/apps-ui.js +109 -0
  57. package/dist/apps/apps-ui.js.map +1 -0
  58. package/dist/chunk-BE-pF4vm.js +34 -0
  59. package/dist/config/db-sync-mappings.d.ts +193 -0
  60. package/dist/config/db-sync-mappings.d.ts.map +1 -0
  61. package/dist/config/db-sync-mappings.js +2255 -0
  62. package/dist/config/db-sync-mappings.js.map +1 -0
  63. package/dist/config/format.d.ts +61 -0
  64. package/dist/config/format.d.ts.map +1 -0
  65. package/dist/config/format.js +337 -0
  66. package/dist/config/format.js.map +1 -0
  67. package/dist/config/migrate-catalogs-to-product-lines.d.ts +14 -0
  68. package/dist/config/migrate-catalogs-to-product-lines.d.ts.map +1 -0
  69. package/dist/config/migrate-catalogs-to-product-lines.js +379 -0
  70. package/dist/config/migrate-catalogs-to-product-lines.js.map +1 -0
  71. package/dist/config/schema-fuzzer.test.d.ts +1 -0
  72. package/dist/config/schema-fuzzer.test.js +401 -0
  73. package/dist/config/schema-fuzzer.test.js.map +1 -0
  74. package/dist/config/schema.d.ts +2315 -0
  75. package/dist/config/schema.d.ts.map +1 -0
  76. package/dist/config/schema.js +1085 -0
  77. package/dist/config/schema.js.map +1 -0
  78. package/dist/config-authoring.d.ts +12 -0
  79. package/dist/config-authoring.d.ts.map +1 -0
  80. package/dist/config-authoring.js +12 -0
  81. package/dist/config-authoring.js.map +1 -0
  82. package/dist/config-authoring.test.d.ts +1 -0
  83. package/dist/config-authoring.test.js +29 -0
  84. package/dist/config-authoring.test.js.map +1 -0
  85. package/dist/config-rendering.d.ts +17 -0
  86. package/dist/config-rendering.d.ts.map +1 -0
  87. package/dist/config-rendering.js +114 -0
  88. package/dist/config-rendering.js.map +1 -0
  89. package/dist/crud.d.ts +98 -0
  90. package/dist/crud.d.ts.map +1 -0
  91. package/dist/crud.js +129 -0
  92. package/dist/crud.js.map +1 -0
  93. package/dist/esm/ai/image-limits.d.ts +24 -0
  94. package/dist/esm/ai/image-limits.d.ts.map +1 -0
  95. package/dist/esm/ai/image-limits.js +53 -0
  96. package/dist/esm/ai/image-limits.js.map +1 -0
  97. package/dist/esm/ai/unified-prompts/reminders.d.ts +5 -0
  98. package/dist/esm/ai/unified-prompts/reminders.d.ts.map +1 -0
  99. package/dist/esm/ai/unified-prompts/reminders.js +31 -0
  100. package/dist/esm/ai/unified-prompts/reminders.js.map +1 -0
  101. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts +11 -0
  102. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -0
  103. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +843 -0
  104. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -0
  105. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.d.ts +5 -0
  106. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.d.ts.map +1 -0
  107. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.js +10 -0
  108. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.js.map +1 -0
  109. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.d.ts +5 -0
  110. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.d.ts.map +1 -0
  111. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.js +10 -0
  112. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.js.map +1 -0
  113. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.d.ts +5 -0
  114. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.d.ts.map +1 -0
  115. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.js +10 -0
  116. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.js.map +1 -0
  117. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.d.ts +5 -0
  118. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.d.ts.map +1 -0
  119. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js +10 -0
  120. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js.map +1 -0
  121. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.d.ts +5 -0
  122. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.d.ts.map +1 -0
  123. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js +10 -0
  124. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js.map +1 -0
  125. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts +5 -0
  126. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts.map +1 -0
  127. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.js +61 -0
  128. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.js.map +1 -0
  129. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.d.ts +5 -0
  130. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.d.ts.map +1 -0
  131. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js +10 -0
  132. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js.map +1 -0
  133. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.d.ts +5 -0
  134. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.d.ts.map +1 -0
  135. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js +10 -0
  136. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js.map +1 -0
  137. package/dist/esm/ai/unified-prompts/skill-site-prompt.d.ts +5 -0
  138. package/dist/esm/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -0
  139. package/dist/esm/ai/unified-prompts/skill-site-prompt.js +73 -0
  140. package/dist/esm/ai/unified-prompts/skill-site-prompt.js.map +1 -0
  141. package/dist/esm/apps/apps-config.d.ts +168 -0
  142. package/dist/esm/apps/apps-config.d.ts.map +1 -0
  143. package/dist/esm/apps/apps-config.js +154 -0
  144. package/dist/esm/apps/apps-config.js.map +1 -0
  145. package/dist/esm/apps/apps-ui.d.ts +45 -0
  146. package/dist/esm/apps/apps-ui.d.ts.map +1 -0
  147. package/dist/esm/apps/apps-ui.js +104 -0
  148. package/dist/esm/apps/apps-ui.js.map +1 -0
  149. package/dist/esm/config/db-sync-mappings.d.ts +193 -0
  150. package/dist/esm/config/db-sync-mappings.d.ts.map +1 -0
  151. package/dist/esm/config/db-sync-mappings.js +2253 -0
  152. package/dist/esm/config/db-sync-mappings.js.map +1 -0
  153. package/dist/esm/config/format.d.ts +61 -0
  154. package/dist/esm/config/format.d.ts.map +1 -0
  155. package/dist/esm/config/format.js +327 -0
  156. package/dist/esm/config/format.js.map +1 -0
  157. package/dist/esm/config/migrate-catalogs-to-product-lines.d.ts +14 -0
  158. package/dist/esm/config/migrate-catalogs-to-product-lines.d.ts.map +1 -0
  159. package/dist/esm/config/migrate-catalogs-to-product-lines.js +377 -0
  160. package/dist/esm/config/migrate-catalogs-to-product-lines.js.map +1 -0
  161. package/dist/esm/config/schema-fuzzer.test.d.ts +1 -0
  162. package/dist/esm/config/schema-fuzzer.test.js +401 -0
  163. package/dist/esm/config/schema-fuzzer.test.js.map +1 -0
  164. package/dist/esm/config/schema.d.ts +2315 -0
  165. package/dist/esm/config/schema.d.ts.map +1 -0
  166. package/dist/esm/config/schema.js +1065 -0
  167. package/dist/esm/config/schema.js.map +1 -0
  168. package/dist/esm/config-authoring.d.ts +12 -0
  169. package/dist/esm/config-authoring.d.ts.map +1 -0
  170. package/dist/esm/config-authoring.js +9 -0
  171. package/dist/esm/config-authoring.js.map +1 -0
  172. package/dist/esm/config-authoring.test.d.ts +1 -0
  173. package/dist/esm/config-authoring.test.js +29 -0
  174. package/dist/esm/config-authoring.test.js.map +1 -0
  175. package/dist/esm/config-rendering.d.ts +17 -0
  176. package/dist/esm/config-rendering.d.ts.map +1 -0
  177. package/dist/esm/config-rendering.js +108 -0
  178. package/dist/esm/config-rendering.js.map +1 -0
  179. package/dist/esm/crud.d.ts +98 -0
  180. package/dist/esm/crud.d.ts.map +1 -0
  181. package/dist/esm/crud.js +127 -0
  182. package/dist/esm/crud.js.map +1 -0
  183. package/dist/esm/global.d.ts +1 -0
  184. package/dist/esm/helpers/emails.d.ts +69 -0
  185. package/dist/esm/helpers/emails.d.ts.map +1 -0
  186. package/dist/esm/helpers/emails.js +243 -0
  187. package/dist/esm/helpers/emails.js.map +1 -0
  188. package/dist/esm/helpers/init-prompt.d.ts +5 -0
  189. package/dist/esm/helpers/init-prompt.d.ts.map +1 -0
  190. package/dist/esm/helpers/init-prompt.js +40 -0
  191. package/dist/esm/helpers/init-prompt.js.map +1 -0
  192. package/dist/esm/helpers/password.d.ts +7 -0
  193. package/dist/esm/helpers/password.d.ts.map +1 -0
  194. package/dist/esm/helpers/password.js +13 -0
  195. package/dist/esm/helpers/password.js.map +1 -0
  196. package/dist/esm/helpers/production-mode.d.ts +11 -0
  197. package/dist/esm/helpers/production-mode.d.ts.map +1 -0
  198. package/dist/esm/helpers/production-mode.js +46 -0
  199. package/dist/esm/helpers/production-mode.js.map +1 -0
  200. package/dist/esm/helpers/support-sla.d.ts +48 -0
  201. package/dist/esm/helpers/support-sla.d.ts.map +1 -0
  202. package/dist/esm/helpers/support-sla.js +65 -0
  203. package/dist/esm/helpers/support-sla.js.map +1 -0
  204. package/dist/esm/helpers/support-sla.test.d.ts +1 -0
  205. package/dist/esm/helpers/support-sla.test.js +102 -0
  206. package/dist/esm/helpers/support-sla.test.js.map +1 -0
  207. package/dist/esm/helpers/vault/client-side.d.ts +16 -0
  208. package/dist/esm/helpers/vault/client-side.d.ts.map +1 -0
  209. package/dist/esm/helpers/vault/client-side.js +69 -0
  210. package/dist/esm/helpers/vault/client-side.js.map +1 -0
  211. package/dist/esm/helpers/vault/server-side.d.ts +9 -0
  212. package/dist/esm/helpers/vault/server-side.d.ts.map +1 -0
  213. package/dist/esm/helpers/vault/server-side.js +123 -0
  214. package/dist/esm/helpers/vault/server-side.js.map +1 -0
  215. package/dist/esm/hooks/use-async-callback.d.ts +8 -0
  216. package/dist/esm/hooks/use-async-callback.d.ts.map +1 -0
  217. package/dist/esm/hooks/use-async-callback.js +38 -0
  218. package/dist/esm/hooks/use-async-callback.js.map +1 -0
  219. package/dist/esm/hooks/use-async-external-store.d.ts +9 -0
  220. package/dist/esm/hooks/use-async-external-store.d.ts.map +1 -0
  221. package/dist/esm/hooks/use-async-external-store.js +20 -0
  222. package/dist/esm/hooks/use-async-external-store.js.map +1 -0
  223. package/dist/esm/hooks/use-hash.d.ts +5 -0
  224. package/dist/esm/hooks/use-hash.d.ts.map +1 -0
  225. package/dist/esm/hooks/use-hash.js +15 -0
  226. package/dist/esm/hooks/use-hash.js.map +1 -0
  227. package/dist/esm/hooks/use-hover.d.ts +8 -0
  228. package/dist/esm/hooks/use-hover.d.ts.map +1 -0
  229. package/dist/esm/hooks/use-hover.js +59 -0
  230. package/dist/esm/hooks/use-hover.js.map +1 -0
  231. package/dist/esm/hooks/use-strict-memo.d.ts +10 -0
  232. package/dist/esm/hooks/use-strict-memo.d.ts.map +1 -0
  233. package/dist/esm/hooks/use-strict-memo.js +119 -0
  234. package/dist/esm/hooks/use-strict-memo.js.map +1 -0
  235. package/dist/esm/index.d.ts +5 -0
  236. package/dist/esm/index.js +6 -0
  237. package/dist/esm/interface/admin-interface.d.ts +308 -0
  238. package/dist/esm/interface/admin-interface.d.ts.map +1 -0
  239. package/dist/esm/interface/admin-interface.js +463 -0
  240. package/dist/esm/interface/admin-interface.js.map +1 -0
  241. package/dist/esm/interface/admin-metrics.d.ts +597 -0
  242. package/dist/esm/interface/admin-metrics.d.ts.map +1 -0
  243. package/dist/esm/interface/admin-metrics.js +134 -0
  244. package/dist/esm/interface/admin-metrics.js.map +1 -0
  245. package/dist/esm/interface/client-interface.d.ts +447 -0
  246. package/dist/esm/interface/client-interface.d.ts.map +1 -0
  247. package/dist/esm/interface/client-interface.js +1946 -0
  248. package/dist/esm/interface/client-interface.js.map +1 -0
  249. package/dist/esm/interface/client-interface.test.d.ts +1 -0
  250. package/dist/esm/interface/client-interface.test.js +559 -0
  251. package/dist/esm/interface/client-interface.test.js.map +1 -0
  252. package/dist/esm/interface/conversations.d.ts +314 -0
  253. package/dist/esm/interface/conversations.d.ts.map +1 -0
  254. package/dist/esm/interface/conversations.js +108 -0
  255. package/dist/esm/interface/conversations.js.map +1 -0
  256. package/dist/esm/interface/crud/analytics.d.ts +14 -0
  257. package/dist/esm/interface/crud/analytics.d.ts.map +1 -0
  258. package/dist/esm/interface/crud/analytics.js +1 -0
  259. package/dist/esm/interface/crud/connected-accounts.d.ts +69 -0
  260. package/dist/esm/interface/crud/connected-accounts.d.ts.map +1 -0
  261. package/dist/esm/interface/crud/connected-accounts.js +35 -0
  262. package/dist/esm/interface/crud/connected-accounts.js.map +1 -0
  263. package/dist/esm/interface/crud/contact-channels.d.ts +182 -0
  264. package/dist/esm/interface/crud/contact-channels.d.ts.map +1 -0
  265. package/dist/esm/interface/crud/contact-channels.js +68 -0
  266. package/dist/esm/interface/crud/contact-channels.js.map +1 -0
  267. package/dist/esm/interface/crud/current-user.d.ts +286 -0
  268. package/dist/esm/interface/crud/current-user.d.ts.map +1 -0
  269. package/dist/esm/interface/crud/current-user.js +69 -0
  270. package/dist/esm/interface/crud/current-user.js.map +1 -0
  271. package/dist/esm/interface/crud/email-outbox.d.ts +1466 -0
  272. package/dist/esm/interface/crud/email-outbox.d.ts.map +1 -0
  273. package/dist/esm/interface/crud/email-outbox.js +190 -0
  274. package/dist/esm/interface/crud/email-outbox.js.map +1 -0
  275. package/dist/esm/interface/crud/email-templates.d.ts +86 -0
  276. package/dist/esm/interface/crud/email-templates.d.ts.map +1 -0
  277. package/dist/esm/interface/crud/email-templates.js +46 -0
  278. package/dist/esm/interface/crud/email-templates.js.map +1 -0
  279. package/dist/esm/interface/crud/emails.d.ts +42 -0
  280. package/dist/esm/interface/crud/emails.d.ts.map +1 -0
  281. package/dist/esm/interface/crud/emails.js +19 -0
  282. package/dist/esm/interface/crud/emails.js.map +1 -0
  283. package/dist/esm/interface/crud/internal-api-keys.d.ts +141 -0
  284. package/dist/esm/interface/crud/internal-api-keys.d.ts.map +1 -0
  285. package/dist/esm/interface/crud/internal-api-keys.js +49 -0
  286. package/dist/esm/interface/crud/internal-api-keys.js.map +1 -0
  287. package/dist/esm/interface/crud/invoices.d.ts +43 -0
  288. package/dist/esm/interface/crud/invoices.d.ts.map +1 -0
  289. package/dist/esm/interface/crud/invoices.js +25 -0
  290. package/dist/esm/interface/crud/invoices.js.map +1 -0
  291. package/dist/esm/interface/crud/items.d.ts +31 -0
  292. package/dist/esm/interface/crud/items.d.ts.map +1 -0
  293. package/dist/esm/interface/crud/items.js +23 -0
  294. package/dist/esm/interface/crud/items.js.map +1 -0
  295. package/dist/esm/interface/crud/notification-preferences.d.ts +39 -0
  296. package/dist/esm/interface/crud/notification-preferences.d.ts.map +1 -0
  297. package/dist/esm/interface/crud/notification-preferences.js +31 -0
  298. package/dist/esm/interface/crud/notification-preferences.js.map +1 -0
  299. package/dist/esm/interface/crud/oauth-providers.d.ts +187 -0
  300. package/dist/esm/interface/crud/oauth-providers.d.ts.map +1 -0
  301. package/dist/esm/interface/crud/oauth-providers.js +75 -0
  302. package/dist/esm/interface/crud/oauth-providers.js.map +1 -0
  303. package/dist/esm/interface/crud/products.d.ts +182 -0
  304. package/dist/esm/interface/crud/products.d.ts.map +1 -0
  305. package/dist/esm/interface/crud/products.js +29 -0
  306. package/dist/esm/interface/crud/products.js.map +1 -0
  307. package/dist/esm/interface/crud/project-api-keys.d.ts +204 -0
  308. package/dist/esm/interface/crud/project-api-keys.d.ts.map +1 -0
  309. package/dist/esm/interface/crud/project-api-keys.js +72 -0
  310. package/dist/esm/interface/crud/project-api-keys.js.map +1 -0
  311. package/dist/esm/interface/crud/project-permissions.d.ts +162 -0
  312. package/dist/esm/interface/crud/project-permissions.d.ts.map +1 -0
  313. package/dist/esm/interface/crud/project-permissions.js +104 -0
  314. package/dist/esm/interface/crud/project-permissions.js.map +1 -0
  315. package/dist/esm/interface/crud/projects.d.ts +852 -0
  316. package/dist/esm/interface/crud/projects.d.ts.map +1 -0
  317. package/dist/esm/interface/crud/projects.js +193 -0
  318. package/dist/esm/interface/crud/projects.js.map +1 -0
  319. package/dist/esm/interface/crud/session-replays.d.ts +83 -0
  320. package/dist/esm/interface/crud/session-replays.d.ts.map +1 -0
  321. package/dist/esm/interface/crud/session-replays.js +1 -0
  322. package/dist/esm/interface/crud/sessions.d.ts +151 -0
  323. package/dist/esm/interface/crud/sessions.d.ts.map +1 -0
  324. package/dist/esm/interface/crud/sessions.js +56 -0
  325. package/dist/esm/interface/crud/sessions.js.map +1 -0
  326. package/dist/esm/interface/crud/sign-up-rules.d.ts +15 -0
  327. package/dist/esm/interface/crud/sign-up-rules.d.ts.map +1 -0
  328. package/dist/esm/interface/crud/sign-up-rules.js +1 -0
  329. package/dist/esm/interface/crud/svix-token.d.ts +32 -0
  330. package/dist/esm/interface/crud/svix-token.d.ts.map +1 -0
  331. package/dist/esm/interface/crud/svix-token.js +18 -0
  332. package/dist/esm/interface/crud/svix-token.js.map +1 -0
  333. package/dist/esm/interface/crud/team-invitation-details.d.ts +32 -0
  334. package/dist/esm/interface/crud/team-invitation-details.d.ts.map +1 -0
  335. package/dist/esm/interface/crud/team-invitation-details.js +21 -0
  336. package/dist/esm/interface/crud/team-invitation-details.js.map +1 -0
  337. package/dist/esm/interface/crud/team-invitation.d.ts +55 -0
  338. package/dist/esm/interface/crud/team-invitation.d.ts.map +1 -0
  339. package/dist/esm/interface/crud/team-invitation.js +37 -0
  340. package/dist/esm/interface/crud/team-invitation.js.map +1 -0
  341. package/dist/esm/interface/crud/team-member-profiles.d.ts +287 -0
  342. package/dist/esm/interface/crud/team-member-profiles.d.ts.map +1 -0
  343. package/dist/esm/interface/crud/team-member-profiles.js +58 -0
  344. package/dist/esm/interface/crud/team-member-profiles.js.map +1 -0
  345. package/dist/esm/interface/crud/team-memberships.d.ts +76 -0
  346. package/dist/esm/interface/crud/team-memberships.d.ts.map +1 -0
  347. package/dist/esm/interface/crud/team-memberships.js +54 -0
  348. package/dist/esm/interface/crud/team-memberships.js.map +1 -0
  349. package/dist/esm/interface/crud/team-permissions.d.ts +170 -0
  350. package/dist/esm/interface/crud/team-permissions.d.ts.map +1 -0
  351. package/dist/esm/interface/crud/team-permissions.js +105 -0
  352. package/dist/esm/interface/crud/team-permissions.js.map +1 -0
  353. package/dist/esm/interface/crud/teams.d.ts +300 -0
  354. package/dist/esm/interface/crud/teams.d.ts.map +1 -0
  355. package/dist/esm/interface/crud/teams.js +129 -0
  356. package/dist/esm/interface/crud/teams.js.map +1 -0
  357. package/dist/esm/interface/crud/transactions.d.ts +183 -0
  358. package/dist/esm/interface/crud/transactions.d.ts.map +1 -0
  359. package/dist/esm/interface/crud/transactions.js +85 -0
  360. package/dist/esm/interface/crud/transactions.js.map +1 -0
  361. package/dist/esm/interface/crud/users.d.ts +654 -0
  362. package/dist/esm/interface/crud/users.d.ts.map +1 -0
  363. package/dist/esm/interface/crud/users.js +181 -0
  364. package/dist/esm/interface/crud/users.js.map +1 -0
  365. package/dist/esm/interface/handler-urls.d.ts +51 -0
  366. package/dist/esm/interface/handler-urls.d.ts.map +1 -0
  367. package/dist/esm/interface/handler-urls.js +3 -0
  368. package/dist/esm/interface/page-component-versions.d.ts +25 -0
  369. package/dist/esm/interface/page-component-versions.d.ts.map +1 -0
  370. package/dist/esm/interface/page-component-versions.js +1661 -0
  371. package/dist/esm/interface/page-component-versions.js.map +1 -0
  372. package/dist/esm/interface/server-interface.d.ts +255 -0
  373. package/dist/esm/interface/server-interface.d.ts.map +1 -0
  374. package/dist/esm/interface/server-interface.js +459 -0
  375. package/dist/esm/interface/server-interface.js.map +1 -0
  376. package/dist/esm/interface/webhooks.d.ts +326 -0
  377. package/dist/esm/interface/webhooks.d.ts.map +1 -0
  378. package/dist/esm/interface/webhooks.js +22 -0
  379. package/dist/esm/interface/webhooks.js.map +1 -0
  380. package/dist/esm/known-errors.d.ts +575 -0
  381. package/dist/esm/known-errors.d.ts.map +1 -0
  382. package/dist/esm/known-errors.js +791 -0
  383. package/dist/esm/known-errors.js.map +1 -0
  384. package/dist/esm/local-emulator.d.ts +6 -0
  385. package/dist/esm/local-emulator.d.ts.map +1 -0
  386. package/dist/esm/local-emulator.js +7 -0
  387. package/dist/esm/local-emulator.js.map +1 -0
  388. package/dist/esm/payments/payment-methods.d.ts +64 -0
  389. package/dist/esm/payments/payment-methods.d.ts.map +1 -0
  390. package/dist/esm/payments/payment-methods.js +205 -0
  391. package/dist/esm/payments/payment-methods.js.map +1 -0
  392. package/dist/esm/payments/stripe-limits.d.ts +17 -0
  393. package/dist/esm/payments/stripe-limits.d.ts.map +1 -0
  394. package/dist/esm/payments/stripe-limits.js +17 -0
  395. package/dist/esm/payments/stripe-limits.js.map +1 -0
  396. package/dist/esm/plans.d.ts +72 -0
  397. package/dist/esm/plans.d.ts.map +1 -0
  398. package/dist/esm/plans.js +81 -0
  399. package/dist/esm/plans.js.map +1 -0
  400. package/dist/esm/schema-fields.d.ts +472 -0
  401. package/dist/esm/schema-fields.d.ts.map +1 -0
  402. package/dist/esm/schema-fields.js +1009 -0
  403. package/dist/esm/schema-fields.js.map +1 -0
  404. package/dist/esm/sessions.d.ts +165 -0
  405. package/dist/esm/sessions.d.ts.map +1 -0
  406. package/dist/esm/sessions.js +226 -0
  407. package/dist/esm/sessions.js.map +1 -0
  408. package/dist/esm/stack-config-file.d.ts +15 -0
  409. package/dist/esm/stack-config-file.d.ts.map +1 -0
  410. package/dist/esm/stack-config-file.js +76 -0
  411. package/dist/esm/stack-config-file.js.map +1 -0
  412. package/dist/esm/utils/api-keys.d.ts +26 -0
  413. package/dist/esm/utils/api-keys.d.ts.map +1 -0
  414. package/dist/esm/utils/api-keys.js +77 -0
  415. package/dist/esm/utils/api-keys.js.map +1 -0
  416. package/dist/esm/utils/arrays.d.ts +25 -0
  417. package/dist/esm/utils/arrays.d.ts.map +1 -0
  418. package/dist/esm/utils/arrays.js +552 -0
  419. package/dist/esm/utils/arrays.js.map +1 -0
  420. package/dist/esm/utils/auth-methods.d.ts +6 -0
  421. package/dist/esm/utils/auth-methods.d.ts.map +1 -0
  422. package/dist/esm/utils/auth-methods.js +11 -0
  423. package/dist/esm/utils/auth-methods.js.map +1 -0
  424. package/dist/esm/utils/base64.d.ts +6 -0
  425. package/dist/esm/utils/base64.d.ts.map +1 -0
  426. package/dist/esm/utils/base64.js +25 -0
  427. package/dist/esm/utils/base64.js.map +1 -0
  428. package/dist/esm/utils/booleans.d.ts +8 -0
  429. package/dist/esm/utils/booleans.d.ts.map +1 -0
  430. package/dist/esm/utils/booleans.js +35 -0
  431. package/dist/esm/utils/booleans.js.map +1 -0
  432. package/dist/esm/utils/browser-compat.d.ts +10 -0
  433. package/dist/esm/utils/browser-compat.d.ts.map +1 -0
  434. package/dist/esm/utils/browser-compat.js +21 -0
  435. package/dist/esm/utils/browser-compat.js.map +1 -0
  436. package/dist/esm/utils/bytes.d.ts +17 -0
  437. package/dist/esm/utils/bytes.d.ts.map +1 -0
  438. package/dist/esm/utils/bytes.js +290 -0
  439. package/dist/esm/utils/bytes.js.map +1 -0
  440. package/dist/esm/utils/caches.d.ts +102 -0
  441. package/dist/esm/utils/caches.d.ts.map +1 -0
  442. package/dist/esm/utils/caches.js +185 -0
  443. package/dist/esm/utils/caches.js.map +1 -0
  444. package/dist/esm/utils/cel-fields.d.ts +23 -0
  445. package/dist/esm/utils/cel-fields.d.ts.map +1 -0
  446. package/dist/esm/utils/cel-fields.js +99 -0
  447. package/dist/esm/utils/cel-fields.js.map +1 -0
  448. package/dist/esm/utils/compile-time.d.ts +10 -0
  449. package/dist/esm/utils/compile-time.d.ts.map +1 -0
  450. package/dist/esm/utils/compile-time.js +14 -0
  451. package/dist/esm/utils/compile-time.js.map +1 -0
  452. package/dist/esm/utils/country-codes.d.ts +11 -0
  453. package/dist/esm/utils/country-codes.d.ts.map +1 -0
  454. package/dist/esm/utils/country-codes.js +36 -0
  455. package/dist/esm/utils/country-codes.js.map +1 -0
  456. package/dist/esm/utils/crypto.d.ts +48 -0
  457. package/dist/esm/utils/crypto.d.ts.map +1 -0
  458. package/dist/esm/utils/crypto.js +208 -0
  459. package/dist/esm/utils/crypto.js.map +1 -0
  460. package/dist/esm/utils/currencies.d.ts +8 -0
  461. package/dist/esm/utils/currencies.d.ts.map +1 -0
  462. package/dist/esm/utils/currencies.js +50 -0
  463. package/dist/esm/utils/currencies.js.map +1 -0
  464. package/dist/esm/utils/currency-constants.d.ts +39 -0
  465. package/dist/esm/utils/currency-constants.d.ts.map +1 -0
  466. package/dist/esm/utils/currency-constants.js +42 -0
  467. package/dist/esm/utils/currency-constants.js.map +1 -0
  468. package/dist/esm/utils/dates.d.ts +23 -0
  469. package/dist/esm/utils/dates.d.ts.map +1 -0
  470. package/dist/esm/utils/dates.js +167 -0
  471. package/dist/esm/utils/dates.js.map +1 -0
  472. package/dist/esm/utils/dev-env-state-path.d.ts +6 -0
  473. package/dist/esm/utils/dev-env-state-path.d.ts.map +1 -0
  474. package/dist/esm/utils/dev-env-state-path.js +15 -0
  475. package/dist/esm/utils/dev-env-state-path.js.map +1 -0
  476. package/dist/esm/utils/dom.d.ts +5 -0
  477. package/dist/esm/utils/dom.d.ts.map +1 -0
  478. package/dist/esm/utils/dom.js +11 -0
  479. package/dist/esm/utils/dom.js.map +1 -0
  480. package/dist/esm/utils/env.d.ts +25 -0
  481. package/dist/esm/utils/env.d.ts.map +1 -0
  482. package/dist/esm/utils/env.js +78 -0
  483. package/dist/esm/utils/env.js.map +1 -0
  484. package/dist/esm/utils/errors.d.ts +231 -0
  485. package/dist/esm/utils/errors.d.ts.map +1 -0
  486. package/dist/esm/utils/errors.js +385 -0
  487. package/dist/esm/utils/errors.js.map +1 -0
  488. package/dist/esm/utils/esbuild.d.ts +16 -0
  489. package/dist/esm/utils/esbuild.d.ts.map +1 -0
  490. package/dist/esm/utils/esbuild.js +182 -0
  491. package/dist/esm/utils/esbuild.js.map +1 -0
  492. package/dist/esm/utils/featurebase.d.ts +30 -0
  493. package/dist/esm/utils/featurebase.d.ts.map +1 -0
  494. package/dist/esm/utils/featurebase.js +166 -0
  495. package/dist/esm/utils/featurebase.js.map +1 -0
  496. package/dist/esm/utils/fs.d.ts +9 -0
  497. package/dist/esm/utils/fs.d.ts.map +1 -0
  498. package/dist/esm/utils/fs.js +25 -0
  499. package/dist/esm/utils/fs.js.map +1 -0
  500. package/dist/esm/utils/functions.d.ts +6 -0
  501. package/dist/esm/utils/functions.d.ts.map +1 -0
  502. package/dist/esm/utils/functions.js +34 -0
  503. package/dist/esm/utils/functions.js.map +1 -0
  504. package/dist/esm/utils/geo.d.ts +24 -0
  505. package/dist/esm/utils/geo.d.ts.map +1 -0
  506. package/dist/esm/utils/geo.js +16 -0
  507. package/dist/esm/utils/geo.js.map +1 -0
  508. package/dist/esm/utils/globals.d.ts +13 -0
  509. package/dist/esm/utils/globals.d.ts.map +1 -0
  510. package/dist/esm/utils/globals.js +34 -0
  511. package/dist/esm/utils/globals.js.map +1 -0
  512. package/dist/esm/utils/hashes.d.ts +9 -0
  513. package/dist/esm/utils/hashes.d.ts.map +1 -0
  514. package/dist/esm/utils/hashes.js +40 -0
  515. package/dist/esm/utils/hashes.js.map +1 -0
  516. package/dist/esm/utils/html.d.ts +7 -0
  517. package/dist/esm/utils/html.d.ts.map +1 -0
  518. package/dist/esm/utils/html.js +33 -0
  519. package/dist/esm/utils/html.js.map +1 -0
  520. package/dist/esm/utils/http.d.ts +45 -0
  521. package/dist/esm/utils/http.d.ts.map +1 -0
  522. package/dist/esm/utils/http.js +75 -0
  523. package/dist/esm/utils/http.js.map +1 -0
  524. package/dist/esm/utils/ips.d.ts +8 -0
  525. package/dist/esm/utils/ips.d.ts.map +1 -0
  526. package/dist/esm/utils/ips.js +36 -0
  527. package/dist/esm/utils/ips.js.map +1 -0
  528. package/dist/esm/utils/json.d.ts +15 -0
  529. package/dist/esm/utils/json.d.ts.map +1 -0
  530. package/dist/esm/utils/json.js +178 -0
  531. package/dist/esm/utils/json.js.map +1 -0
  532. package/dist/esm/utils/jsx-editable-transpiler.d.ts +68 -0
  533. package/dist/esm/utils/jsx-editable-transpiler.d.ts.map +1 -0
  534. package/dist/esm/utils/jsx-editable-transpiler.js +216 -0
  535. package/dist/esm/utils/jsx-editable-transpiler.js.map +1 -0
  536. package/dist/esm/utils/jsx-editable-transpiler.test.d.ts +1 -0
  537. package/dist/esm/utils/jsx-editable-transpiler.test.js +122 -0
  538. package/dist/esm/utils/jsx-editable-transpiler.test.js.map +1 -0
  539. package/dist/esm/utils/jwt.d.ts +79 -0
  540. package/dist/esm/utils/jwt.d.ts.map +1 -0
  541. package/dist/esm/utils/jwt.js +102 -0
  542. package/dist/esm/utils/jwt.js.map +1 -0
  543. package/dist/esm/utils/locks.d.ts +17 -0
  544. package/dist/esm/utils/locks.d.ts.map +1 -0
  545. package/dist/esm/utils/locks.js +54 -0
  546. package/dist/esm/utils/locks.js.map +1 -0
  547. package/dist/esm/utils/maps.d.ts +61 -0
  548. package/dist/esm/utils/maps.d.ts.map +1 -0
  549. package/dist/esm/utils/maps.js +297 -0
  550. package/dist/esm/utils/maps.js.map +1 -0
  551. package/dist/esm/utils/math.d.ts +8 -0
  552. package/dist/esm/utils/math.d.ts.map +1 -0
  553. package/dist/esm/utils/math.js +21 -0
  554. package/dist/esm/utils/math.js.map +1 -0
  555. package/dist/esm/utils/monkey-patch.d.ts +7 -0
  556. package/dist/esm/utils/monkey-patch.d.ts.map +1 -0
  557. package/dist/esm/utils/monkey-patch.js +21 -0
  558. package/dist/esm/utils/monkey-patch.js.map +1 -0
  559. package/dist/esm/utils/node-http.d.ts +17 -0
  560. package/dist/esm/utils/node-http.d.ts.map +1 -0
  561. package/dist/esm/utils/node-http.js +38 -0
  562. package/dist/esm/utils/node-http.js.map +1 -0
  563. package/dist/esm/utils/numbers.d.ts +7 -0
  564. package/dist/esm/utils/numbers.d.ts.map +1 -0
  565. package/dist/esm/utils/numbers.js +75 -0
  566. package/dist/esm/utils/numbers.js.map +1 -0
  567. package/dist/esm/utils/oauth.d.ts +11 -0
  568. package/dist/esm/utils/oauth.d.ts.map +1 -0
  569. package/dist/esm/utils/oauth.js +27 -0
  570. package/dist/esm/utils/oauth.js.map +1 -0
  571. package/dist/esm/utils/objects.d.ts +59 -0
  572. package/dist/esm/utils/objects.d.ts.map +1 -0
  573. package/dist/esm/utils/objects.js +818 -0
  574. package/dist/esm/utils/objects.js.map +1 -0
  575. package/dist/esm/utils/paginated-lists.d.ts +442 -0
  576. package/dist/esm/utils/paginated-lists.d.ts.map +1 -0
  577. package/dist/esm/utils/paginated-lists.js +411 -0
  578. package/dist/esm/utils/paginated-lists.js.map +1 -0
  579. package/dist/esm/utils/paginated-lists.test.d.ts +1 -0
  580. package/dist/esm/utils/paginated-lists.test.js +1304 -0
  581. package/dist/esm/utils/paginated-lists.test.js.map +1 -0
  582. package/dist/esm/utils/passkey.d.ts +2 -0
  583. package/dist/esm/utils/passkey.js +1 -0
  584. package/dist/esm/utils/promises.d.ts +80 -0
  585. package/dist/esm/utils/promises.d.ts.map +1 -0
  586. package/dist/esm/utils/promises.js +333 -0
  587. package/dist/esm/utils/promises.js.map +1 -0
  588. package/dist/esm/utils/proxies.d.ts +13 -0
  589. package/dist/esm/utils/proxies.d.ts.map +1 -0
  590. package/dist/esm/utils/proxies.js +197 -0
  591. package/dist/esm/utils/proxies.js.map +1 -0
  592. package/dist/esm/utils/react.d.ts +61 -0
  593. package/dist/esm/utils/react.d.ts.map +1 -0
  594. package/dist/esm/utils/react.js +229 -0
  595. package/dist/esm/utils/react.js.map +1 -0
  596. package/dist/esm/utils/redirect-urls.d.ts +30 -0
  597. package/dist/esm/utils/redirect-urls.d.ts.map +1 -0
  598. package/dist/esm/utils/redirect-urls.js +215 -0
  599. package/dist/esm/utils/redirect-urls.js.map +1 -0
  600. package/dist/esm/utils/regex.d.ts +5 -0
  601. package/dist/esm/utils/regex.d.ts.map +1 -0
  602. package/dist/esm/utils/regex.js +13 -0
  603. package/dist/esm/utils/regex.js.map +1 -0
  604. package/dist/esm/utils/results.d.ts +70 -0
  605. package/dist/esm/utils/results.d.ts.map +1 -0
  606. package/dist/esm/utils/results.js +339 -0
  607. package/dist/esm/utils/results.js.map +1 -0
  608. package/dist/esm/utils/sentry.d.ts +13 -0
  609. package/dist/esm/utils/sentry.d.ts.map +1 -0
  610. package/dist/esm/utils/sentry.js +14 -0
  611. package/dist/esm/utils/sentry.js.map +1 -0
  612. package/dist/esm/utils/stores.d.ts +104 -0
  613. package/dist/esm/utils/stores.d.ts.map +1 -0
  614. package/dist/esm/utils/stores.js +175 -0
  615. package/dist/esm/utils/stores.js.map +1 -0
  616. package/dist/esm/utils/strings.d.ts +76 -0
  617. package/dist/esm/utils/strings.d.ts.map +1 -0
  618. package/dist/esm/utils/strings.js +530 -0
  619. package/dist/esm/utils/strings.js.map +1 -0
  620. package/dist/esm/utils/strings.nicify.test.d.ts +1 -0
  621. package/dist/esm/utils/strings.nicify.test.js +243 -0
  622. package/dist/esm/utils/strings.nicify.test.js.map +1 -0
  623. package/dist/esm/utils/telemetry.d.ts +15 -0
  624. package/dist/esm/utils/telemetry.d.ts.map +1 -0
  625. package/dist/esm/utils/telemetry.js +31 -0
  626. package/dist/esm/utils/telemetry.js.map +1 -0
  627. package/dist/esm/utils/turnstile-browser.d.ts +32 -0
  628. package/dist/esm/utils/turnstile-browser.d.ts.map +1 -0
  629. package/dist/esm/utils/turnstile-browser.js +61 -0
  630. package/dist/esm/utils/turnstile-browser.js.map +1 -0
  631. package/dist/esm/utils/turnstile-flow.d.ts +29 -0
  632. package/dist/esm/utils/turnstile-flow.d.ts.map +1 -0
  633. package/dist/esm/utils/turnstile-flow.js +219 -0
  634. package/dist/esm/utils/turnstile-flow.js.map +1 -0
  635. package/dist/esm/utils/turnstile-flow.test.d.ts +1 -0
  636. package/dist/esm/utils/turnstile-flow.test.js +75 -0
  637. package/dist/esm/utils/turnstile-flow.test.js.map +1 -0
  638. package/dist/esm/utils/turnstile.d.ts +17 -0
  639. package/dist/esm/utils/turnstile.d.ts.map +1 -0
  640. package/dist/esm/utils/turnstile.js +25 -0
  641. package/dist/esm/utils/turnstile.js.map +1 -0
  642. package/dist/esm/utils/typed-arrays.d.ts +14 -0
  643. package/dist/esm/utils/typed-arrays.d.ts.map +1 -0
  644. package/dist/esm/utils/typed-arrays.js +20 -0
  645. package/dist/esm/utils/typed-arrays.js.map +1 -0
  646. package/dist/esm/utils/types.d.ts +77 -0
  647. package/dist/esm/utils/types.d.ts.map +1 -0
  648. package/dist/esm/utils/types.js +55 -0
  649. package/dist/esm/utils/types.js.map +1 -0
  650. package/dist/esm/utils/unicode.d.ts +5 -0
  651. package/dist/esm/utils/unicode.d.ts.map +1 -0
  652. package/dist/esm/utils/unicode.js +24 -0
  653. package/dist/esm/utils/unicode.js.map +1 -0
  654. package/dist/esm/utils/urls.d.ts +28 -0
  655. package/dist/esm/utils/urls.d.ts.map +1 -0
  656. package/dist/esm/utils/urls.js +259 -0
  657. package/dist/esm/utils/urls.js.map +1 -0
  658. package/dist/esm/utils/uuids.d.ts +6 -0
  659. package/dist/esm/utils/uuids.d.ts.map +1 -0
  660. package/dist/esm/utils/uuids.js +36 -0
  661. package/dist/esm/utils/uuids.js.map +1 -0
  662. package/dist/global.d.d.ts +0 -0
  663. package/dist/global.d.ts +1 -0
  664. package/dist/helpers/emails.d.ts +69 -0
  665. package/dist/helpers/emails.d.ts.map +1 -0
  666. package/dist/helpers/emails.js +252 -0
  667. package/dist/helpers/emails.js.map +1 -0
  668. package/dist/helpers/init-prompt.d.ts +5 -0
  669. package/dist/helpers/init-prompt.d.ts.map +1 -0
  670. package/dist/helpers/init-prompt.js +42 -0
  671. package/dist/helpers/init-prompt.js.map +1 -0
  672. package/dist/helpers/password.d.ts +6 -0
  673. package/dist/helpers/password.d.ts.map +1 -0
  674. package/dist/helpers/password.js +15 -0
  675. package/dist/helpers/password.js.map +1 -0
  676. package/dist/helpers/production-mode.d.ts +11 -0
  677. package/dist/helpers/production-mode.d.ts.map +1 -0
  678. package/dist/helpers/production-mode.js +48 -0
  679. package/dist/helpers/production-mode.js.map +1 -0
  680. package/dist/helpers/support-sla.d.ts +48 -0
  681. package/dist/helpers/support-sla.d.ts.map +1 -0
  682. package/dist/helpers/support-sla.js +72 -0
  683. package/dist/helpers/support-sla.js.map +1 -0
  684. package/dist/helpers/support-sla.test.d.ts +1 -0
  685. package/dist/helpers/support-sla.test.js +102 -0
  686. package/dist/helpers/support-sla.test.js.map +1 -0
  687. package/dist/helpers/vault/client-side.d.ts +16 -0
  688. package/dist/helpers/vault/client-side.d.ts.map +1 -0
  689. package/dist/helpers/vault/client-side.js +73 -0
  690. package/dist/helpers/vault/client-side.js.map +1 -0
  691. package/dist/helpers/vault/server-side.d.ts +9 -0
  692. package/dist/helpers/vault/server-side.d.ts.map +1 -0
  693. package/dist/helpers/vault/server-side.js +126 -0
  694. package/dist/helpers/vault/server-side.js.map +1 -0
  695. package/dist/hooks/use-async-callback.d.ts +8 -0
  696. package/dist/hooks/use-async-callback.d.ts.map +1 -0
  697. package/dist/hooks/use-async-callback.js +42 -0
  698. package/dist/hooks/use-async-callback.js.map +1 -0
  699. package/dist/hooks/use-async-external-store.d.ts +9 -0
  700. package/dist/hooks/use-async-external-store.d.ts.map +1 -0
  701. package/dist/hooks/use-async-external-store.js +22 -0
  702. package/dist/hooks/use-async-external-store.js.map +1 -0
  703. package/dist/hooks/use-hash.d.ts +5 -0
  704. package/dist/hooks/use-hash.d.ts.map +1 -0
  705. package/dist/hooks/use-hash.js +17 -0
  706. package/dist/hooks/use-hash.js.map +1 -0
  707. package/dist/hooks/use-hover.d.ts +8 -0
  708. package/dist/hooks/use-hover.d.ts.map +1 -0
  709. package/dist/hooks/use-hover.js +61 -0
  710. package/dist/hooks/use-hover.js.map +1 -0
  711. package/dist/hooks/use-strict-memo.d.ts +10 -0
  712. package/dist/hooks/use-strict-memo.d.ts.map +1 -0
  713. package/dist/hooks/use-strict-memo.js +121 -0
  714. package/dist/hooks/use-strict-memo.js.map +1 -0
  715. package/dist/index-D9ysacya.d.ts +153 -0
  716. package/dist/index-D9ysacya.d.ts.map +1 -0
  717. package/dist/index.d.ts +5 -0
  718. package/dist/index.js +37 -0
  719. package/dist/interface/admin-interface.d.ts +308 -0
  720. package/dist/interface/admin-interface.d.ts.map +1 -0
  721. package/dist/interface/admin-interface.js +465 -0
  722. package/dist/interface/admin-interface.js.map +1 -0
  723. package/dist/interface/admin-metrics.d.ts +597 -0
  724. package/dist/interface/admin-metrics.d.ts.map +1 -0
  725. package/dist/interface/admin-metrics.js +153 -0
  726. package/dist/interface/admin-metrics.js.map +1 -0
  727. package/dist/interface/client-interface.d.ts +447 -0
  728. package/dist/interface/client-interface.d.ts.map +1 -0
  729. package/dist/interface/client-interface.js +1948 -0
  730. package/dist/interface/client-interface.js.map +1 -0
  731. package/dist/interface/client-interface.test.d.ts +1 -0
  732. package/dist/interface/client-interface.test.js +559 -0
  733. package/dist/interface/client-interface.test.js.map +1 -0
  734. package/dist/interface/conversations.d.ts +314 -0
  735. package/dist/interface/conversations.d.ts.map +1 -0
  736. package/dist/interface/conversations.js +121 -0
  737. package/dist/interface/conversations.js.map +1 -0
  738. package/dist/interface/crud/analytics.d.ts +14 -0
  739. package/dist/interface/crud/analytics.d.ts.map +1 -0
  740. package/dist/interface/crud/analytics.js +0 -0
  741. package/dist/interface/crud/connected-accounts.d.ts +68 -0
  742. package/dist/interface/crud/connected-accounts.d.ts.map +1 -0
  743. package/dist/interface/crud/connected-accounts.js +41 -0
  744. package/dist/interface/crud/connected-accounts.js.map +1 -0
  745. package/dist/interface/crud/contact-channels.d.ts +181 -0
  746. package/dist/interface/crud/contact-channels.d.ts.map +1 -0
  747. package/dist/interface/crud/contact-channels.js +76 -0
  748. package/dist/interface/crud/contact-channels.js.map +1 -0
  749. package/dist/interface/crud/current-user.d.ts +285 -0
  750. package/dist/interface/crud/current-user.d.ts.map +1 -0
  751. package/dist/interface/crud/current-user.js +71 -0
  752. package/dist/interface/crud/current-user.js.map +1 -0
  753. package/dist/interface/crud/email-outbox.d.ts +1465 -0
  754. package/dist/interface/crud/email-outbox.d.ts.map +1 -0
  755. package/dist/interface/crud/email-outbox.js +195 -0
  756. package/dist/interface/crud/email-outbox.js.map +1 -0
  757. package/dist/interface/crud/email-templates.d.ts +85 -0
  758. package/dist/interface/crud/email-templates.d.ts.map +1 -0
  759. package/dist/interface/crud/email-templates.js +53 -0
  760. package/dist/interface/crud/email-templates.js.map +1 -0
  761. package/dist/interface/crud/emails.d.ts +41 -0
  762. package/dist/interface/crud/emails.d.ts.map +1 -0
  763. package/dist/interface/crud/emails.js +23 -0
  764. package/dist/interface/crud/emails.js.map +1 -0
  765. package/dist/interface/crud/internal-api-keys.d.ts +140 -0
  766. package/dist/interface/crud/internal-api-keys.d.ts.map +1 -0
  767. package/dist/interface/crud/internal-api-keys.js +56 -0
  768. package/dist/interface/crud/internal-api-keys.js.map +1 -0
  769. package/dist/interface/crud/invoices.d.ts +43 -0
  770. package/dist/interface/crud/invoices.d.ts.map +1 -0
  771. package/dist/interface/crud/invoices.js +28 -0
  772. package/dist/interface/crud/invoices.js.map +1 -0
  773. package/dist/interface/crud/items.d.ts +30 -0
  774. package/dist/interface/crud/items.d.ts.map +1 -0
  775. package/dist/interface/crud/items.js +25 -0
  776. package/dist/interface/crud/items.js.map +1 -0
  777. package/dist/interface/crud/notification-preferences.d.ts +38 -0
  778. package/dist/interface/crud/notification-preferences.d.ts.map +1 -0
  779. package/dist/interface/crud/notification-preferences.js +33 -0
  780. package/dist/interface/crud/notification-preferences.js.map +1 -0
  781. package/dist/interface/crud/oauth-providers.d.ts +186 -0
  782. package/dist/interface/crud/oauth-providers.d.ts.map +1 -0
  783. package/dist/interface/crud/oauth-providers.js +83 -0
  784. package/dist/interface/crud/oauth-providers.js.map +1 -0
  785. package/dist/interface/crud/products.d.ts +182 -0
  786. package/dist/interface/crud/products.d.ts.map +1 -0
  787. package/dist/interface/crud/products.js +32 -0
  788. package/dist/interface/crud/products.js.map +1 -0
  789. package/dist/interface/crud/project-api-keys.d.ts +203 -0
  790. package/dist/interface/crud/project-api-keys.d.ts.map +1 -0
  791. package/dist/interface/crud/project-api-keys.js +79 -0
  792. package/dist/interface/crud/project-api-keys.js.map +1 -0
  793. package/dist/interface/crud/project-permissions.d.ts +161 -0
  794. package/dist/interface/crud/project-permissions.d.ts.map +1 -0
  795. package/dist/interface/crud/project-permissions.js +116 -0
  796. package/dist/interface/crud/project-permissions.js.map +1 -0
  797. package/dist/interface/crud/projects.d.ts +851 -0
  798. package/dist/interface/crud/projects.d.ts.map +1 -0
  799. package/dist/interface/crud/projects.js +204 -0
  800. package/dist/interface/crud/projects.js.map +1 -0
  801. package/dist/interface/crud/session-replays.d.ts +83 -0
  802. package/dist/interface/crud/session-replays.d.ts.map +1 -0
  803. package/dist/interface/crud/session-replays.js +0 -0
  804. package/dist/interface/crud/sessions.d.ts +150 -0
  805. package/dist/interface/crud/sessions.d.ts.map +1 -0
  806. package/dist/interface/crud/sessions.js +62 -0
  807. package/dist/interface/crud/sessions.js.map +1 -0
  808. package/dist/interface/crud/sign-up-rules.d.ts +15 -0
  809. package/dist/interface/crud/sign-up-rules.d.ts.map +1 -0
  810. package/dist/interface/crud/sign-up-rules.js +0 -0
  811. package/dist/interface/crud/svix-token.d.ts +31 -0
  812. package/dist/interface/crud/svix-token.d.ts.map +1 -0
  813. package/dist/interface/crud/svix-token.js +22 -0
  814. package/dist/interface/crud/svix-token.js.map +1 -0
  815. package/dist/interface/crud/team-invitation-details.d.ts +31 -0
  816. package/dist/interface/crud/team-invitation-details.d.ts.map +1 -0
  817. package/dist/interface/crud/team-invitation-details.js +24 -0
  818. package/dist/interface/crud/team-invitation-details.js.map +1 -0
  819. package/dist/interface/crud/team-invitation.d.ts +54 -0
  820. package/dist/interface/crud/team-invitation.d.ts.map +1 -0
  821. package/dist/interface/crud/team-invitation.js +40 -0
  822. package/dist/interface/crud/team-invitation.js.map +1 -0
  823. package/dist/interface/crud/team-member-profiles.d.ts +286 -0
  824. package/dist/interface/crud/team-member-profiles.d.ts.map +1 -0
  825. package/dist/interface/crud/team-member-profiles.js +63 -0
  826. package/dist/interface/crud/team-member-profiles.js.map +1 -0
  827. package/dist/interface/crud/team-memberships.d.ts +75 -0
  828. package/dist/interface/crud/team-memberships.d.ts.map +1 -0
  829. package/dist/interface/crud/team-memberships.js +61 -0
  830. package/dist/interface/crud/team-memberships.js.map +1 -0
  831. package/dist/interface/crud/team-permissions.d.ts +169 -0
  832. package/dist/interface/crud/team-permissions.d.ts.map +1 -0
  833. package/dist/interface/crud/team-permissions.js +117 -0
  834. package/dist/interface/crud/team-permissions.js.map +1 -0
  835. package/dist/interface/crud/teams.d.ts +299 -0
  836. package/dist/interface/crud/teams.d.ts.map +1 -0
  837. package/dist/interface/crud/teams.js +142 -0
  838. package/dist/interface/crud/teams.js.map +1 -0
  839. package/dist/interface/crud/transactions.d.ts +183 -0
  840. package/dist/interface/crud/transactions.d.ts.map +1 -0
  841. package/dist/interface/crud/transactions.js +89 -0
  842. package/dist/interface/crud/transactions.js.map +1 -0
  843. package/dist/interface/crud/users.d.ts +653 -0
  844. package/dist/interface/crud/users.d.ts.map +1 -0
  845. package/dist/interface/crud/users.js +193 -0
  846. package/dist/interface/crud/users.js.map +1 -0
  847. package/dist/interface/handler-urls.d.ts +51 -0
  848. package/dist/interface/handler-urls.d.ts.map +1 -0
  849. package/dist/interface/handler-urls.js +16 -0
  850. package/dist/interface/page-component-versions.d.ts +25 -0
  851. package/dist/interface/page-component-versions.d.ts.map +1 -0
  852. package/dist/interface/page-component-versions.js +1664 -0
  853. package/dist/interface/page-component-versions.js.map +1 -0
  854. package/dist/interface/server-interface.d.ts +255 -0
  855. package/dist/interface/server-interface.d.ts.map +1 -0
  856. package/dist/interface/server-interface.js +461 -0
  857. package/dist/interface/server-interface.js.map +1 -0
  858. package/dist/interface/webhooks.d.ts +326 -0
  859. package/dist/interface/webhooks.d.ts.map +1 -0
  860. package/dist/interface/webhooks.js +24 -0
  861. package/dist/interface/webhooks.js.map +1 -0
  862. package/dist/known-errors.d.ts +575 -0
  863. package/dist/known-errors.d.ts.map +1 -0
  864. package/dist/known-errors.js +794 -0
  865. package/dist/known-errors.js.map +1 -0
  866. package/dist/local-emulator.d.ts +6 -0
  867. package/dist/local-emulator.d.ts.map +1 -0
  868. package/dist/local-emulator.js +10 -0
  869. package/dist/local-emulator.js.map +1 -0
  870. package/dist/payments/payment-methods.d.ts +64 -0
  871. package/dist/payments/payment-methods.d.ts.map +1 -0
  872. package/dist/payments/payment-methods.js +216 -0
  873. package/dist/payments/payment-methods.js.map +1 -0
  874. package/dist/payments/stripe-limits.d.ts +17 -0
  875. package/dist/payments/stripe-limits.d.ts.map +1 -0
  876. package/dist/payments/stripe-limits.js +20 -0
  877. package/dist/payments/stripe-limits.js.map +1 -0
  878. package/dist/plans.d.ts +72 -0
  879. package/dist/plans.d.ts.map +1 -0
  880. package/dist/plans.js +88 -0
  881. package/dist/plans.js.map +1 -0
  882. package/dist/schema-fields.d.ts +472 -0
  883. package/dist/schema-fields.d.ts.map +1 -0
  884. package/dist/schema-fields.js +1188 -0
  885. package/dist/schema-fields.js.map +1 -0
  886. package/dist/sessions.d.ts +165 -0
  887. package/dist/sessions.d.ts.map +1 -0
  888. package/dist/sessions.js +231 -0
  889. package/dist/sessions.js.map +1 -0
  890. package/dist/stack-config-file.d.ts +15 -0
  891. package/dist/stack-config-file.d.ts.map +1 -0
  892. package/dist/stack-config-file.js +82 -0
  893. package/dist/stack-config-file.js.map +1 -0
  894. package/dist/utils/api-keys.d.ts +26 -0
  895. package/dist/utils/api-keys.d.ts.map +1 -0
  896. package/dist/utils/api-keys.js +82 -0
  897. package/dist/utils/api-keys.js.map +1 -0
  898. package/dist/utils/arrays.d.ts +25 -0
  899. package/dist/utils/arrays.d.ts.map +1 -0
  900. package/dist/utils/arrays.js +569 -0
  901. package/dist/utils/arrays.js.map +1 -0
  902. package/dist/utils/auth-methods.d.ts +6 -0
  903. package/dist/utils/auth-methods.d.ts.map +1 -0
  904. package/dist/utils/auth-methods.js +13 -0
  905. package/dist/utils/auth-methods.js.map +1 -0
  906. package/dist/utils/base64.d.ts +6 -0
  907. package/dist/utils/base64.d.ts.map +1 -0
  908. package/dist/utils/base64.js +28 -0
  909. package/dist/utils/base64.js.map +1 -0
  910. package/dist/utils/booleans.d.ts +8 -0
  911. package/dist/utils/booleans.d.ts.map +1 -0
  912. package/dist/utils/booleans.js +38 -0
  913. package/dist/utils/booleans.js.map +1 -0
  914. package/dist/utils/browser-compat.d.ts +10 -0
  915. package/dist/utils/browser-compat.d.ts.map +1 -0
  916. package/dist/utils/browser-compat.js +23 -0
  917. package/dist/utils/browser-compat.js.map +1 -0
  918. package/dist/utils/bytes.d.ts +17 -0
  919. package/dist/utils/bytes.d.ts.map +1 -0
  920. package/dist/utils/bytes.js +304 -0
  921. package/dist/utils/bytes.js.map +1 -0
  922. package/dist/utils/caches.d.ts +102 -0
  923. package/dist/utils/caches.d.ts.map +1 -0
  924. package/dist/utils/caches.js +188 -0
  925. package/dist/utils/caches.js.map +1 -0
  926. package/dist/utils/cel-fields.d.ts +23 -0
  927. package/dist/utils/cel-fields.d.ts.map +1 -0
  928. package/dist/utils/cel-fields.js +108 -0
  929. package/dist/utils/cel-fields.js.map +1 -0
  930. package/dist/utils/compile-time.d.ts +10 -0
  931. package/dist/utils/compile-time.d.ts.map +1 -0
  932. package/dist/utils/compile-time.js +16 -0
  933. package/dist/utils/compile-time.js.map +1 -0
  934. package/dist/utils/country-codes.d.ts +11 -0
  935. package/dist/utils/country-codes.d.ts.map +1 -0
  936. package/dist/utils/country-codes.js +40 -0
  937. package/dist/utils/country-codes.js.map +1 -0
  938. package/dist/utils/crypto.d.ts +48 -0
  939. package/dist/utils/crypto.d.ts.map +1 -0
  940. package/dist/utils/crypto.js +215 -0
  941. package/dist/utils/crypto.js.map +1 -0
  942. package/dist/utils/currencies.d.ts +8 -0
  943. package/dist/utils/currencies.d.ts.map +1 -0
  944. package/dist/utils/currencies.js +52 -0
  945. package/dist/utils/currencies.js.map +1 -0
  946. package/dist/utils/currency-constants.d.ts +39 -0
  947. package/dist/utils/currency-constants.d.ts.map +1 -0
  948. package/dist/utils/currency-constants.js +44 -0
  949. package/dist/utils/currency-constants.js.map +1 -0
  950. package/dist/utils/dates.d.ts +23 -0
  951. package/dist/utils/dates.d.ts.map +1 -0
  952. package/dist/utils/dates.js +176 -0
  953. package/dist/utils/dates.js.map +1 -0
  954. package/dist/utils/dev-env-state-path.d.ts +6 -0
  955. package/dist/utils/dev-env-state-path.d.ts.map +1 -0
  956. package/dist/utils/dev-env-state-path.js +18 -0
  957. package/dist/utils/dev-env-state-path.js.map +1 -0
  958. package/dist/utils/dom.d.ts +5 -0
  959. package/dist/utils/dom.d.ts.map +1 -0
  960. package/dist/utils/dom.js +13 -0
  961. package/dist/utils/dom.js.map +1 -0
  962. package/dist/utils/env.d.ts +25 -0
  963. package/dist/utils/env.d.ts.map +1 -0
  964. package/dist/utils/env.js +85 -0
  965. package/dist/utils/env.js.map +1 -0
  966. package/dist/utils/errors.d.ts +231 -0
  967. package/dist/utils/errors.d.ts.map +1 -0
  968. package/dist/utils/errors.js +393 -0
  969. package/dist/utils/errors.js.map +1 -0
  970. package/dist/utils/esbuild.d.ts +16 -0
  971. package/dist/utils/esbuild.d.ts.map +1 -0
  972. package/dist/utils/esbuild.js +186 -0
  973. package/dist/utils/esbuild.js.map +1 -0
  974. package/dist/utils/featurebase.d.ts +30 -0
  975. package/dist/utils/featurebase.d.ts.map +1 -0
  976. package/dist/utils/featurebase.js +168 -0
  977. package/dist/utils/featurebase.js.map +1 -0
  978. package/dist/utils/fs.d.ts +9 -0
  979. package/dist/utils/fs.d.ts.map +1 -0
  980. package/dist/utils/fs.js +31 -0
  981. package/dist/utils/fs.js.map +1 -0
  982. package/dist/utils/functions.d.ts +6 -0
  983. package/dist/utils/functions.d.ts.map +1 -0
  984. package/dist/utils/functions.js +37 -0
  985. package/dist/utils/functions.js.map +1 -0
  986. package/dist/utils/geo.d.ts +24 -0
  987. package/dist/utils/geo.d.ts.map +1 -0
  988. package/dist/utils/geo.js +18 -0
  989. package/dist/utils/geo.js.map +1 -0
  990. package/dist/utils/globals.d.ts +13 -0
  991. package/dist/utils/globals.d.ts.map +1 -0
  992. package/dist/utils/globals.js +40 -0
  993. package/dist/utils/globals.js.map +1 -0
  994. package/dist/utils/hashes.d.ts +9 -0
  995. package/dist/utils/hashes.d.ts.map +1 -0
  996. package/dist/utils/hashes.js +47 -0
  997. package/dist/utils/hashes.js.map +1 -0
  998. package/dist/utils/html.d.ts +7 -0
  999. package/dist/utils/html.d.ts.map +1 -0
  1000. package/dist/utils/html.js +37 -0
  1001. package/dist/utils/html.js.map +1 -0
  1002. package/dist/utils/http.d.ts +45 -0
  1003. package/dist/utils/http.d.ts.map +1 -0
  1004. package/dist/utils/http.js +79 -0
  1005. package/dist/utils/http.js.map +1 -0
  1006. package/dist/utils/ips.d.ts +8 -0
  1007. package/dist/utils/ips.d.ts.map +1 -0
  1008. package/dist/utils/ips.js +40 -0
  1009. package/dist/utils/ips.js.map +1 -0
  1010. package/dist/utils/json.d.ts +15 -0
  1011. package/dist/utils/json.d.ts.map +1 -0
  1012. package/dist/utils/json.js +182 -0
  1013. package/dist/utils/json.js.map +1 -0
  1014. package/dist/utils/jsx-editable-transpiler.d.ts +68 -0
  1015. package/dist/utils/jsx-editable-transpiler.d.ts.map +1 -0
  1016. package/dist/utils/jsx-editable-transpiler.js +223 -0
  1017. package/dist/utils/jsx-editable-transpiler.js.map +1 -0
  1018. package/dist/utils/jsx-editable-transpiler.test.d.ts +1 -0
  1019. package/dist/utils/jsx-editable-transpiler.test.js +122 -0
  1020. package/dist/utils/jsx-editable-transpiler.test.js.map +1 -0
  1021. package/dist/utils/jwt.d.ts +79 -0
  1022. package/dist/utils/jwt.d.ts.map +1 -0
  1023. package/dist/utils/jwt.js +112 -0
  1024. package/dist/utils/jwt.js.map +1 -0
  1025. package/dist/utils/locks.d.ts +17 -0
  1026. package/dist/utils/locks.d.ts.map +1 -0
  1027. package/dist/utils/locks.js +56 -0
  1028. package/dist/utils/locks.js.map +1 -0
  1029. package/dist/utils/maps.d.ts +61 -0
  1030. package/dist/utils/maps.d.ts.map +1 -0
  1031. package/dist/utils/maps.js +302 -0
  1032. package/dist/utils/maps.js.map +1 -0
  1033. package/dist/utils/math.d.ts +8 -0
  1034. package/dist/utils/math.d.ts.map +1 -0
  1035. package/dist/utils/math.js +23 -0
  1036. package/dist/utils/math.js.map +1 -0
  1037. package/dist/utils/monkey-patch.d.ts +7 -0
  1038. package/dist/utils/monkey-patch.d.ts.map +1 -0
  1039. package/dist/utils/monkey-patch.js +25 -0
  1040. package/dist/utils/monkey-patch.js.map +1 -0
  1041. package/dist/utils/node-http.d.ts +17 -0
  1042. package/dist/utils/node-http.d.ts.map +1 -0
  1043. package/dist/utils/node-http.js +40 -0
  1044. package/dist/utils/node-http.js.map +1 -0
  1045. package/dist/utils/numbers.d.ts +7 -0
  1046. package/dist/utils/numbers.d.ts.map +1 -0
  1047. package/dist/utils/numbers.js +79 -0
  1048. package/dist/utils/numbers.js.map +1 -0
  1049. package/dist/utils/oauth.d.ts +11 -0
  1050. package/dist/utils/oauth.d.ts.map +1 -0
  1051. package/dist/utils/oauth.js +32 -0
  1052. package/dist/utils/oauth.js.map +1 -0
  1053. package/dist/utils/objects.d.ts +59 -0
  1054. package/dist/utils/objects.d.ts.map +1 -0
  1055. package/dist/utils/objects.js +846 -0
  1056. package/dist/utils/objects.js.map +1 -0
  1057. package/dist/utils/paginated-lists.d.ts +442 -0
  1058. package/dist/utils/paginated-lists.d.ts.map +1 -0
  1059. package/dist/utils/paginated-lists.js +414 -0
  1060. package/dist/utils/paginated-lists.js.map +1 -0
  1061. package/dist/utils/paginated-lists.test.d.ts +1 -0
  1062. package/dist/utils/paginated-lists.test.js +1304 -0
  1063. package/dist/utils/paginated-lists.test.js.map +1 -0
  1064. package/dist/utils/passkey.d.ts +2 -0
  1065. package/dist/utils/passkey.js +0 -0
  1066. package/dist/utils/promises.d.ts +80 -0
  1067. package/dist/utils/promises.d.ts.map +1 -0
  1068. package/dist/utils/promises.js +349 -0
  1069. package/dist/utils/promises.js.map +1 -0
  1070. package/dist/utils/proxies.d.ts +13 -0
  1071. package/dist/utils/proxies.d.ts.map +1 -0
  1072. package/dist/utils/proxies.js +201 -0
  1073. package/dist/utils/proxies.js.map +1 -0
  1074. package/dist/utils/react.d.ts +61 -0
  1075. package/dist/utils/react.d.ts.map +1 -0
  1076. package/dist/utils/react.js +243 -0
  1077. package/dist/utils/react.js.map +1 -0
  1078. package/dist/utils/redirect-urls.d.ts +30 -0
  1079. package/dist/utils/redirect-urls.d.ts.map +1 -0
  1080. package/dist/utils/redirect-urls.js +222 -0
  1081. package/dist/utils/redirect-urls.js.map +1 -0
  1082. package/dist/utils/regex.d.ts +5 -0
  1083. package/dist/utils/regex.d.ts.map +1 -0
  1084. package/dist/utils/regex.js +15 -0
  1085. package/dist/utils/regex.js.map +1 -0
  1086. package/dist/utils/results.d.ts +70 -0
  1087. package/dist/utils/results.d.ts.map +1 -0
  1088. package/dist/utils/results.js +342 -0
  1089. package/dist/utils/results.js.map +1 -0
  1090. package/dist/utils/sentry.d.ts +13 -0
  1091. package/dist/utils/sentry.d.ts.map +1 -0
  1092. package/dist/utils/sentry.js +16 -0
  1093. package/dist/utils/sentry.js.map +1 -0
  1094. package/dist/utils/stores.d.ts +104 -0
  1095. package/dist/utils/stores.d.ts.map +1 -0
  1096. package/dist/utils/stores.js +179 -0
  1097. package/dist/utils/stores.js.map +1 -0
  1098. package/dist/utils/strings.d.ts +76 -0
  1099. package/dist/utils/strings.d.ts.map +1 -0
  1100. package/dist/utils/strings.js +549 -0
  1101. package/dist/utils/strings.js.map +1 -0
  1102. package/dist/utils/strings.nicify.test.d.ts +1 -0
  1103. package/dist/utils/strings.nicify.test.js +243 -0
  1104. package/dist/utils/strings.nicify.test.js.map +1 -0
  1105. package/dist/utils/telemetry.d.ts +15 -0
  1106. package/dist/utils/telemetry.d.ts.map +1 -0
  1107. package/dist/utils/telemetry.js +35 -0
  1108. package/dist/utils/telemetry.js.map +1 -0
  1109. package/dist/utils/turnstile-browser.d.ts +32 -0
  1110. package/dist/utils/turnstile-browser.d.ts.map +1 -0
  1111. package/dist/utils/turnstile-browser.js +65 -0
  1112. package/dist/utils/turnstile-browser.js.map +1 -0
  1113. package/dist/utils/turnstile-flow.d.ts +29 -0
  1114. package/dist/utils/turnstile-flow.d.ts.map +1 -0
  1115. package/dist/utils/turnstile-flow.js +225 -0
  1116. package/dist/utils/turnstile-flow.js.map +1 -0
  1117. package/dist/utils/turnstile-flow.test.d.ts +1 -0
  1118. package/dist/utils/turnstile-flow.test.js +75 -0
  1119. package/dist/utils/turnstile-flow.test.js.map +1 -0
  1120. package/dist/utils/turnstile.d.ts +17 -0
  1121. package/dist/utils/turnstile.d.ts.map +1 -0
  1122. package/dist/utils/turnstile.js +31 -0
  1123. package/dist/utils/turnstile.js.map +1 -0
  1124. package/dist/utils/typed-arrays.d.ts +14 -0
  1125. package/dist/utils/typed-arrays.d.ts.map +1 -0
  1126. package/dist/utils/typed-arrays.js +22 -0
  1127. package/dist/utils/typed-arrays.js.map +1 -0
  1128. package/dist/utils/types.d.ts +77 -0
  1129. package/dist/utils/types.d.ts.map +1 -0
  1130. package/dist/utils/types.js +59 -0
  1131. package/dist/utils/types.js.map +1 -0
  1132. package/dist/utils/unicode.d.ts +5 -0
  1133. package/dist/utils/unicode.d.ts.map +1 -0
  1134. package/dist/utils/unicode.js +26 -0
  1135. package/dist/utils/unicode.js.map +1 -0
  1136. package/dist/utils/urls.d.ts +28 -0
  1137. package/dist/utils/urls.d.ts.map +1 -0
  1138. package/dist/utils/urls.js +274 -0
  1139. package/dist/utils/urls.js.map +1 -0
  1140. package/dist/utils/uuids.d.ts +6 -0
  1141. package/dist/utils/uuids.d.ts.map +1 -0
  1142. package/dist/utils/uuids.js +39 -0
  1143. package/dist/utils/uuids.js.map +1 -0
  1144. package/package.json +99 -0
@@ -0,0 +1,72 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/helpers/support-sla.ts
4
+ const DEFAULT_SUPPORT_SLA = {
5
+ enabled: false,
6
+ firstResponseMinutes: null,
7
+ nextResponseMinutes: null
8
+ };
9
+ function addMinutesOrNull(now, minutes) {
10
+ if (minutes == null || !Number.isFinite(minutes) || minutes <= 0) return null;
11
+ return new Date(now.getTime() + minutes * 6e4);
12
+ }
13
+ /**
14
+ * Returns the target first-response due timestamp for a new conversation,
15
+ * or `null` if SLA tracking is off or no target is set.
16
+ */
17
+ function computeFirstResponseDueAt(now, sla) {
18
+ if (!sla.enabled) return null;
19
+ return addMinutesOrNull(now, sla.firstResponseMinutes);
20
+ }
21
+ /**
22
+ * Returns the target next-response due timestamp when a conversation has been
23
+ * re-opened by a user reply, or `null` if SLA tracking is off or no target
24
+ * is set.
25
+ */
26
+ function computeNextResponseDueAt(now, sla) {
27
+ if (!sla.enabled) return null;
28
+ return addMinutesOrNull(now, sla.nextResponseMinutes);
29
+ }
30
+ /**
31
+ * How soon (in milliseconds) before a due timestamp we switch into the
32
+ * "urgent" state. Within this window the due timestamp should be rendered
33
+ * with a strong alert treatment.
34
+ */
35
+ const SLA_URGENT_THRESHOLD_MS = 900 * 1e3;
36
+ /**
37
+ * How soon (in milliseconds) before a due timestamp we switch into the
38
+ * "warning" state. Within this window the due timestamp should be rendered
39
+ * with a subtle alert treatment so agents can notice it without being
40
+ * distracted.
41
+ */
42
+ const SLA_WARNING_THRESHOLD_MS = 3600 * 1e3;
43
+ /**
44
+ * Classifies how close a due timestamp is to `now` so we can subtly alert
45
+ * agents as it approaches (and after it passes).
46
+ *
47
+ * If `windowStartedAt` is provided, thresholds scale with the total SLA
48
+ * window length - so a 5-minute SLA doesn't read as "urgent" from t=0 - and
49
+ * are capped by the fixed wall-clock thresholds so a 24-hour SLA doesn't
50
+ * sit in "warning" for 12 hours. If `windowStartedAt` isn't known, we fall
51
+ * back to the fixed wall-clock thresholds.
52
+ */
53
+ function computeSlaUrgency(dueAt, now, options) {
54
+ const remainingMs = dueAt.getTime() - now.getTime();
55
+ if (remainingMs <= 0) return "overdue";
56
+ const windowStartedAt = options?.windowStartedAt ?? null;
57
+ const totalWindowMs = windowStartedAt != null ? Math.max(1, dueAt.getTime() - windowStartedAt.getTime()) : null;
58
+ const urgentThresholdMs = totalWindowMs != null ? Math.min(totalWindowMs * .25, SLA_URGENT_THRESHOLD_MS) : SLA_URGENT_THRESHOLD_MS;
59
+ const warningThresholdMs = totalWindowMs != null ? Math.min(totalWindowMs * .5, SLA_WARNING_THRESHOLD_MS) : SLA_WARNING_THRESHOLD_MS;
60
+ if (remainingMs <= urgentThresholdMs) return "urgent";
61
+ if (remainingMs <= warningThresholdMs) return "warning";
62
+ return "ok";
63
+ }
64
+
65
+ //#endregion
66
+ exports.DEFAULT_SUPPORT_SLA = DEFAULT_SUPPORT_SLA;
67
+ exports.SLA_URGENT_THRESHOLD_MS = SLA_URGENT_THRESHOLD_MS;
68
+ exports.SLA_WARNING_THRESHOLD_MS = SLA_WARNING_THRESHOLD_MS;
69
+ exports.computeFirstResponseDueAt = computeFirstResponseDueAt;
70
+ exports.computeNextResponseDueAt = computeNextResponseDueAt;
71
+ exports.computeSlaUrgency = computeSlaUrgency;
72
+ //# sourceMappingURL=support-sla.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support-sla.js","names":[],"sources":["../../src/helpers/support-sla.ts"],"sourcesContent":["export type SupportSlaConfig = {\n enabled: boolean,\n firstResponseMinutes: number | null,\n nextResponseMinutes: number | null,\n};\n\nexport const DEFAULT_SUPPORT_SLA: SupportSlaConfig = {\n enabled: false,\n firstResponseMinutes: null,\n nextResponseMinutes: null,\n};\n\nfunction addMinutesOrNull(now: Date, minutes: number | null): Date | null {\n if (minutes == null || !Number.isFinite(minutes) || minutes <= 0) return null;\n return new Date(now.getTime() + minutes * 60_000);\n}\n\n/**\n * Returns the target first-response due timestamp for a new conversation,\n * or `null` if SLA tracking is off or no target is set.\n */\nexport function computeFirstResponseDueAt(\n now: Date,\n sla: SupportSlaConfig,\n): Date | null {\n if (!sla.enabled) return null;\n return addMinutesOrNull(now, sla.firstResponseMinutes);\n}\n\n/**\n * Returns the target next-response due timestamp when a conversation has been\n * re-opened by a user reply, or `null` if SLA tracking is off or no target\n * is set.\n */\nexport function computeNextResponseDueAt(\n now: Date,\n sla: SupportSlaConfig,\n): Date | null {\n if (!sla.enabled) return null;\n return addMinutesOrNull(now, sla.nextResponseMinutes);\n}\n\nexport type SlaUrgency = \"ok\" | \"warning\" | \"urgent\" | \"overdue\";\n\n/**\n * How soon (in milliseconds) before a due timestamp we switch into the\n * \"urgent\" state. Within this window the due timestamp should be rendered\n * with a strong alert treatment.\n */\nexport const SLA_URGENT_THRESHOLD_MS = 15 * 60 * 1000;\n\n/**\n * How soon (in milliseconds) before a due timestamp we switch into the\n * \"warning\" state. Within this window the due timestamp should be rendered\n * with a subtle alert treatment so agents can notice it without being\n * distracted.\n */\nexport const SLA_WARNING_THRESHOLD_MS = 60 * 60 * 1000;\n\n/**\n * Classifies how close a due timestamp is to `now` so we can subtly alert\n * agents as it approaches (and after it passes).\n *\n * If `windowStartedAt` is provided, thresholds scale with the total SLA\n * window length - so a 5-minute SLA doesn't read as \"urgent\" from t=0 - and\n * are capped by the fixed wall-clock thresholds so a 24-hour SLA doesn't\n * sit in \"warning\" for 12 hours. If `windowStartedAt` isn't known, we fall\n * back to the fixed wall-clock thresholds.\n */\nexport function computeSlaUrgency(\n dueAt: Date,\n now: Date,\n options?: { windowStartedAt?: Date | null },\n): SlaUrgency {\n const remainingMs = dueAt.getTime() - now.getTime();\n if (remainingMs <= 0) return \"overdue\";\n\n const windowStartedAt = options?.windowStartedAt ?? null;\n const totalWindowMs = windowStartedAt != null\n ? Math.max(1, dueAt.getTime() - windowStartedAt.getTime())\n : null;\n\n const urgentThresholdMs = totalWindowMs != null\n ? Math.min(totalWindowMs * 0.25, SLA_URGENT_THRESHOLD_MS)\n : SLA_URGENT_THRESHOLD_MS;\n const warningThresholdMs = totalWindowMs != null\n ? Math.min(totalWindowMs * 0.5, SLA_WARNING_THRESHOLD_MS)\n : SLA_WARNING_THRESHOLD_MS;\n\n if (remainingMs <= urgentThresholdMs) return \"urgent\";\n if (remainingMs <= warningThresholdMs) return \"warning\";\n return \"ok\";\n}\n"],"mappings":";;;AAMA,MAAa,sBAAwC;CACnD,SAAS;CACT,sBAAsB;CACtB,qBAAqB;CACtB;AAED,SAAS,iBAAiB,KAAW,SAAqC;AACxE,KAAI,WAAW,QAAQ,CAAC,OAAO,SAAS,QAAQ,IAAI,WAAW,EAAG,QAAO;AACzE,QAAO,IAAI,KAAK,IAAI,SAAS,GAAG,UAAU,IAAO;;;;;;AAOnD,SAAgB,0BACd,KACA,KACa;AACb,KAAI,CAAC,IAAI,QAAS,QAAO;AACzB,QAAO,iBAAiB,KAAK,IAAI,qBAAqB;;;;;;;AAQxD,SAAgB,yBACd,KACA,KACa;AACb,KAAI,CAAC,IAAI,QAAS,QAAO;AACzB,QAAO,iBAAiB,KAAK,IAAI,oBAAoB;;;;;;;AAUvD,MAAa,0BAA0B,MAAU;;;;;;;AAQjD,MAAa,2BAA2B,OAAU;;;;;;;;;;;AAYlD,SAAgB,kBACd,OACA,KACA,SACY;CACZ,MAAM,cAAc,MAAM,SAAS,GAAG,IAAI,SAAS;AACnD,KAAI,eAAe,EAAG,QAAO;CAE7B,MAAM,kBAAkB,SAAS,mBAAmB;CACpD,MAAM,gBAAgB,mBAAmB,OACrC,KAAK,IAAI,GAAG,MAAM,SAAS,GAAG,gBAAgB,SAAS,CAAC,GACxD;CAEJ,MAAM,oBAAoB,iBAAiB,OACvC,KAAK,IAAI,gBAAgB,KAAM,wBAAwB,GACvD;CACJ,MAAM,qBAAqB,iBAAiB,OACxC,KAAK,IAAI,gBAAgB,IAAK,yBAAyB,GACvD;AAEJ,KAAI,eAAe,kBAAmB,QAAO;AAC7C,KAAI,eAAe,mBAAoB,QAAO;AAC9C,QAAO"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,102 @@
1
+ const require_chunk = require('../chunk-BE-pF4vm.js');
2
+ let vitest = require("vitest");
3
+ let __support_sla_js = require("./support-sla.js");
4
+
5
+ //#region src/helpers/support-sla.test.ts
6
+ const enabledSla = {
7
+ enabled: true,
8
+ firstResponseMinutes: 60,
9
+ nextResponseMinutes: 120
10
+ };
11
+ (0, vitest.describe)("computeFirstResponseDueAt", () => {
12
+ const now = /* @__PURE__ */ new Date("2026-04-22T12:00:00.000Z");
13
+ (0, vitest.it)("returns null when SLA is disabled", () => {
14
+ (0, vitest.expect)((0, __support_sla_js.computeFirstResponseDueAt)(now, {
15
+ ...enabledSla,
16
+ enabled: false
17
+ })).toBeNull();
18
+ });
19
+ (0, vitest.it)("returns null when no target is set", () => {
20
+ (0, vitest.expect)((0, __support_sla_js.computeFirstResponseDueAt)(now, {
21
+ ...enabledSla,
22
+ firstResponseMinutes: null
23
+ })).toBeNull();
24
+ });
25
+ (0, vitest.it)("adds the configured minutes to now", () => {
26
+ const due = (0, __support_sla_js.computeFirstResponseDueAt)(now, enabledSla);
27
+ (0, vitest.expect)(due).not.toBeNull();
28
+ (0, vitest.expect)(due.toISOString()).toBe("2026-04-22T13:00:00.000Z");
29
+ });
30
+ (0, vitest.it)("returns null when the configured value is non-positive", () => {
31
+ (0, vitest.expect)((0, __support_sla_js.computeFirstResponseDueAt)(now, {
32
+ ...enabledSla,
33
+ firstResponseMinutes: 0
34
+ })).toBeNull();
35
+ });
36
+ });
37
+ (0, vitest.describe)("computeNextResponseDueAt", () => {
38
+ const now = /* @__PURE__ */ new Date("2026-04-22T12:00:00.000Z");
39
+ (0, vitest.it)("returns null when SLA is disabled", () => {
40
+ (0, vitest.expect)((0, __support_sla_js.computeNextResponseDueAt)(now, {
41
+ ...enabledSla,
42
+ enabled: false
43
+ })).toBeNull();
44
+ });
45
+ (0, vitest.it)("returns null when no target is set", () => {
46
+ (0, vitest.expect)((0, __support_sla_js.computeNextResponseDueAt)(now, {
47
+ ...enabledSla,
48
+ nextResponseMinutes: null
49
+ })).toBeNull();
50
+ });
51
+ (0, vitest.it)("adds the configured next-response minutes to now", () => {
52
+ (0, vitest.expect)((0, __support_sla_js.computeNextResponseDueAt)(now, enabledSla).toISOString()).toBe("2026-04-22T14:00:00.000Z");
53
+ });
54
+ });
55
+ (0, vitest.describe)("computeSlaUrgency", () => {
56
+ const now = /* @__PURE__ */ new Date("2026-04-22T12:00:00.000Z");
57
+ (0, vitest.it)("returns 'overdue' when the due timestamp is in the past", () => {
58
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(/* @__PURE__ */ new Date(now.getTime() - 1), now)).toBe("overdue");
59
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(/* @__PURE__ */ new Date(now.getTime() - 6e4), now)).toBe("overdue");
60
+ });
61
+ (0, vitest.it)("returns 'overdue' when the due timestamp is exactly now", () => {
62
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(now, now)).toBe("overdue");
63
+ });
64
+ (0, vitest.it)("returns 'urgent' within the urgent threshold", () => {
65
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(new Date(now.getTime() + 6e4), now)).toBe("urgent");
66
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(new Date(now.getTime() + __support_sla_js.SLA_URGENT_THRESHOLD_MS), now)).toBe("urgent");
67
+ });
68
+ (0, vitest.it)("returns 'warning' within the warning threshold", () => {
69
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(new Date(now.getTime() + __support_sla_js.SLA_URGENT_THRESHOLD_MS + 6e4), now)).toBe("warning");
70
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(new Date(now.getTime() + __support_sla_js.SLA_WARNING_THRESHOLD_MS), now)).toBe("warning");
71
+ });
72
+ (0, vitest.it)("returns 'ok' when comfortably before the warning threshold", () => {
73
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(new Date(now.getTime() + __support_sla_js.SLA_WARNING_THRESHOLD_MS + 6e4), now)).toBe("ok");
74
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(new Date(now.getTime() + 1440 * 60 * 1e3), now)).toBe("ok");
75
+ });
76
+ (0, vitest.describe)("with a windowStartedAt", () => {
77
+ (0, vitest.it)("scales thresholds down for short SLA windows so t=0 is not immediately urgent", () => {
78
+ const windowStartedAt = now;
79
+ const dueAt = new Date(now.getTime() + 5 * 6e4);
80
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(dueAt, now, { windowStartedAt })).toBe("ok");
81
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(dueAt, new Date(now.getTime() + 2 * 6e4), { windowStartedAt })).toBe("ok");
82
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(dueAt, new Date(now.getTime() + 3 * 6e4), { windowStartedAt })).toBe("warning");
83
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(dueAt, new Date(now.getTime() + 4 * 6e4), { windowStartedAt })).toBe("urgent");
84
+ });
85
+ (0, vitest.it)("caps thresholds at the fixed wall-clock windows for long SLAs", () => {
86
+ const windowStartedAt = now;
87
+ const dueAt = new Date(now.getTime() + 1440 * 60 * 1e3);
88
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(dueAt, /* @__PURE__ */ new Date(dueAt.getTime() - 7200 * 1e3), { windowStartedAt })).toBe("ok");
89
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(dueAt, /* @__PURE__ */ new Date(dueAt.getTime() - 45 * 6e4), { windowStartedAt })).toBe("warning");
90
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(dueAt, /* @__PURE__ */ new Date(dueAt.getTime() - 10 * 6e4), { windowStartedAt })).toBe("urgent");
91
+ });
92
+ (0, vitest.it)("falls back to fixed thresholds when windowStartedAt is nullish", () => {
93
+ const dueAt = new Date(now.getTime() + 30 * 6e4);
94
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(dueAt, now)).toBe("warning");
95
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(dueAt, now, { windowStartedAt: null })).toBe("warning");
96
+ (0, vitest.expect)((0, __support_sla_js.computeSlaUrgency)(dueAt, now, { windowStartedAt: void 0 })).toBe("warning");
97
+ });
98
+ });
99
+ });
100
+
101
+ //#endregion
102
+ //# sourceMappingURL=support-sla.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support-sla.test.js","names":["SLA_URGENT_THRESHOLD_MS","SLA_WARNING_THRESHOLD_MS"],"sources":["../../src/helpers/support-sla.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport {\n computeFirstResponseDueAt,\n computeNextResponseDueAt,\n computeSlaUrgency,\n SLA_URGENT_THRESHOLD_MS,\n SLA_WARNING_THRESHOLD_MS,\n type SupportSlaConfig,\n} from \"./support-sla\";\n\nconst enabledSla: SupportSlaConfig = {\n enabled: true,\n firstResponseMinutes: 60,\n nextResponseMinutes: 120,\n};\n\ndescribe(\"computeFirstResponseDueAt\", () => {\n const now = new Date(\"2026-04-22T12:00:00.000Z\");\n\n it(\"returns null when SLA is disabled\", () => {\n expect(computeFirstResponseDueAt(now, { ...enabledSla, enabled: false })).toBeNull();\n });\n\n it(\"returns null when no target is set\", () => {\n expect(computeFirstResponseDueAt(now, { ...enabledSla, firstResponseMinutes: null })).toBeNull();\n });\n\n it(\"adds the configured minutes to now\", () => {\n const due = computeFirstResponseDueAt(now, enabledSla);\n expect(due).not.toBeNull();\n expect(due!.toISOString()).toBe(\"2026-04-22T13:00:00.000Z\");\n });\n\n it(\"returns null when the configured value is non-positive\", () => {\n expect(computeFirstResponseDueAt(now, { ...enabledSla, firstResponseMinutes: 0 })).toBeNull();\n });\n});\n\ndescribe(\"computeNextResponseDueAt\", () => {\n const now = new Date(\"2026-04-22T12:00:00.000Z\");\n\n it(\"returns null when SLA is disabled\", () => {\n expect(computeNextResponseDueAt(now, { ...enabledSla, enabled: false })).toBeNull();\n });\n\n it(\"returns null when no target is set\", () => {\n expect(computeNextResponseDueAt(now, { ...enabledSla, nextResponseMinutes: null })).toBeNull();\n });\n\n it(\"adds the configured next-response minutes to now\", () => {\n const due = computeNextResponseDueAt(now, enabledSla);\n expect(due!.toISOString()).toBe(\"2026-04-22T14:00:00.000Z\");\n });\n});\n\ndescribe(\"computeSlaUrgency\", () => {\n const now = new Date(\"2026-04-22T12:00:00.000Z\");\n\n it(\"returns 'overdue' when the due timestamp is in the past\", () => {\n expect(computeSlaUrgency(new Date(now.getTime() - 1), now)).toBe(\"overdue\");\n expect(computeSlaUrgency(new Date(now.getTime() - 60_000), now)).toBe(\"overdue\");\n });\n\n it(\"returns 'overdue' when the due timestamp is exactly now\", () => {\n expect(computeSlaUrgency(now, now)).toBe(\"overdue\");\n });\n\n it(\"returns 'urgent' within the urgent threshold\", () => {\n expect(computeSlaUrgency(new Date(now.getTime() + 60_000), now)).toBe(\"urgent\");\n expect(computeSlaUrgency(new Date(now.getTime() + SLA_URGENT_THRESHOLD_MS), now)).toBe(\"urgent\");\n });\n\n it(\"returns 'warning' within the warning threshold\", () => {\n expect(computeSlaUrgency(new Date(now.getTime() + SLA_URGENT_THRESHOLD_MS + 60_000), now)).toBe(\"warning\");\n expect(computeSlaUrgency(new Date(now.getTime() + SLA_WARNING_THRESHOLD_MS), now)).toBe(\"warning\");\n });\n\n it(\"returns 'ok' when comfortably before the warning threshold\", () => {\n expect(computeSlaUrgency(new Date(now.getTime() + SLA_WARNING_THRESHOLD_MS + 60_000), now)).toBe(\"ok\");\n expect(computeSlaUrgency(new Date(now.getTime() + 24 * 60 * 60 * 1000), now)).toBe(\"ok\");\n });\n\n describe(\"with a windowStartedAt\", () => {\n it(\"scales thresholds down for short SLA windows so t=0 is not immediately urgent\", () => {\n // 5-minute SLA window: due 5 min after it started.\n const windowStartedAt = now;\n const dueAt = new Date(now.getTime() + 5 * 60_000);\n // Right at the start, 5 min remaining — should be 'ok' (>50% of window remaining).\n expect(computeSlaUrgency(dueAt, now, { windowStartedAt })).toBe(\"ok\");\n // At t+2min (3 min remaining, 60% of window remaining) — still 'ok'.\n const twoMinLater = new Date(now.getTime() + 2 * 60_000);\n expect(computeSlaUrgency(dueAt, twoMinLater, { windowStartedAt })).toBe(\"ok\");\n // At t+3min (2 min remaining, 40% of window) — 'warning'.\n const threeMinLater = new Date(now.getTime() + 3 * 60_000);\n expect(computeSlaUrgency(dueAt, threeMinLater, { windowStartedAt })).toBe(\"warning\");\n // At t+4min (1 min remaining, 20% of window) — 'urgent'.\n const fourMinLater = new Date(now.getTime() + 4 * 60_000);\n expect(computeSlaUrgency(dueAt, fourMinLater, { windowStartedAt })).toBe(\"urgent\");\n });\n\n it(\"caps thresholds at the fixed wall-clock windows for long SLAs\", () => {\n // 24-hour SLA window.\n const windowStartedAt = now;\n const dueAt = new Date(now.getTime() + 24 * 60 * 60 * 1000);\n // 2 hours remaining (long past the 50% mark of the 24h window) — should\n // still be 'ok' because the warning cap is 60 min.\n const tMinusTwoHours = new Date(dueAt.getTime() - 2 * 60 * 60 * 1000);\n expect(computeSlaUrgency(dueAt, tMinusTwoHours, { windowStartedAt })).toBe(\"ok\");\n // 45 minutes remaining — 'warning' (inside the 60-min cap).\n const tMinus45Min = new Date(dueAt.getTime() - 45 * 60_000);\n expect(computeSlaUrgency(dueAt, tMinus45Min, { windowStartedAt })).toBe(\"warning\");\n // 10 minutes remaining — 'urgent' (inside the 15-min cap).\n const tMinus10Min = new Date(dueAt.getTime() - 10 * 60_000);\n expect(computeSlaUrgency(dueAt, tMinus10Min, { windowStartedAt })).toBe(\"urgent\");\n });\n\n it(\"falls back to fixed thresholds when windowStartedAt is nullish\", () => {\n const dueAt = new Date(now.getTime() + 30 * 60_000);\n expect(computeSlaUrgency(dueAt, now)).toBe(\"warning\");\n expect(computeSlaUrgency(dueAt, now, { windowStartedAt: null })).toBe(\"warning\");\n expect(computeSlaUrgency(dueAt, now, { windowStartedAt: undefined })).toBe(\"warning\");\n });\n });\n});\n"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ //#region src/helpers/vault/client-side.d.ts
2
+ /**
3
+ * Use to hash the key so the server cannot infer it.
4
+ */
5
+ declare function hashKey(secret: string, key: string): Promise<string>;
6
+ /**
7
+ * Use to encrypt the value so that the server cannot read the value without knowing the key.
8
+ */
9
+ declare function encryptValue(secret: string, key: string, value: string): Promise<string>;
10
+ /**
11
+ * Use to decrypt the value. See encryptValue.
12
+ */
13
+ declare function decryptValue(secret: string, key: string, encryptedValue: string): Promise<string>;
14
+ //#endregion
15
+ export { decryptValue, encryptValue, hashKey };
16
+ //# sourceMappingURL=client-side.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-side.d.ts","names":[],"sources":["../../../src/helpers/vault/client-side.ts"],"mappings":";;AAoBA;;iBAAsB,OAAA,CAAQ,MAAA,UAAgB,GAAA,WAAW,OAAA;;;;iBAWnC,YAAA,CAAa,MAAA,UAAgB,GAAA,UAAa,KAAA,WAAa,OAAA;;;AAA7E;iBAcsB,YAAA,CAAa,MAAA,UAAgB,GAAA,UAAa,cAAA,WAAsB,OAAA"}
@@ -0,0 +1,73 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_chunk = require('../../chunk-BE-pF4vm.js');
3
+ let ______utils_bytes_js = require("../../utils/bytes.js");
4
+ let ______utils_crypto_js = require("../../utils/crypto.js");
5
+
6
+ //#region src/helpers/vault/client-side.ts
7
+ const hashPurpose = "stack-data-vault-client-side-encryption-key-hash";
8
+ const encryptionSecretPurpose = "stack-data-vault-client-side-encryption-value-encryption-key-hash";
9
+ const encryptionValuePurpose = "stack-data-vault-client-side-encryption-value-encryption-value-encryption";
10
+ async function getDerivedKey(secret, key) {
11
+ return await (0, ______utils_crypto_js.iteratedHash)({
12
+ purpose: encryptionSecretPurpose,
13
+ extra: secret,
14
+ value: key,
15
+ iterations: 1e5
16
+ });
17
+ }
18
+ /**
19
+ * Use to hash the key so the server cannot infer it.
20
+ */
21
+ async function hashKey(secret, key) {
22
+ return (0, ______utils_bytes_js.encodeBase64)(await (0, ______utils_crypto_js.hash)({
23
+ purpose: hashPurpose,
24
+ extra: secret,
25
+ value: await getDerivedKey(secret, key)
26
+ }));
27
+ }
28
+ /**
29
+ * Use to encrypt the value so that the server cannot read the value without knowing the key.
30
+ */
31
+ async function encryptValue(secret, key, value) {
32
+ return (0, ______utils_bytes_js.encodeBase64)(await (0, ______utils_crypto_js.encrypt)({
33
+ purpose: encryptionValuePurpose,
34
+ secret: await getDerivedKey(secret, key),
35
+ value: new TextEncoder().encode(value)
36
+ }));
37
+ }
38
+ /**
39
+ * Use to decrypt the value. See encryptValue.
40
+ */
41
+ async function decryptValue(secret, key, encryptedValue) {
42
+ const bytesResult = await (0, ______utils_crypto_js.decrypt)({
43
+ purpose: encryptionValuePurpose,
44
+ secret: await getDerivedKey(secret, key),
45
+ cipher: (0, ______utils_bytes_js.decodeBase64)(encryptedValue)
46
+ });
47
+ if (bytesResult.status === "error") throw new Error("Data vault client-side decryption failed. Are you sure you're using the correct secret?", { cause: bytesResult.error });
48
+ return new TextDecoder().decode(bytesResult.data);
49
+ }
50
+ (void 0)?.describe("encryptValue & decryptValue", () => {
51
+ (void 0)?.it("should encrypt and decrypt a value", async ({ expect }) => {
52
+ const secret = "test-secret";
53
+ const value = "test-value";
54
+ expect(await decryptValue(secret, "key", await encryptValue(secret, "key", value))).toEqual(value);
55
+ });
56
+ (void 0)?.it("should not decrypt a value with a different secret", async ({ expect }) => {
57
+ await expect(decryptValue("different-secret", "key", await encryptValue("test-secret", "key", "test-value"))).rejects.toThrow();
58
+ });
59
+ (void 0)?.it("should not decrypt a value with a different key", async ({ expect }) => {
60
+ const secret = "test-secret";
61
+ await expect(decryptValue(secret, "different-key", await encryptValue(secret, "key", "test-value"))).rejects.toThrow();
62
+ });
63
+ (void 0)?.it("should not decrypt a value if the cipher was tampered with", async ({ expect }) => {
64
+ const secret = "test-secret";
65
+ await expect(decryptValue(secret, "key", await encryptValue(secret, "key", "test-value") + "7")).rejects.toThrow();
66
+ });
67
+ });
68
+
69
+ //#endregion
70
+ exports.decryptValue = decryptValue;
71
+ exports.encryptValue = encryptValue;
72
+ exports.hashKey = hashKey;
73
+ //# sourceMappingURL=client-side.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-side.js","names":[],"sources":["../../../src/helpers/vault/client-side.ts"],"sourcesContent":["import { decodeBase64, encodeBase64 } from \"../../utils/bytes\";\nimport { decrypt, encrypt, hash, iteratedHash } from \"../../utils/crypto\";\n\nconst hashPurpose = \"stack-data-vault-client-side-encryption-key-hash\";\nconst encryptionSecretPurpose = \"stack-data-vault-client-side-encryption-value-encryption-key-hash\";\nconst encryptionValuePurpose = \"stack-data-vault-client-side-encryption-value-encryption-value-encryption\";\n\n\nasync function getDerivedKey(secret: string, key: string) {\n return await iteratedHash({\n purpose: encryptionSecretPurpose,\n extra: secret,\n value: key,\n iterations: 100_000,\n });\n}\n\n/**\n * Use to hash the key so the server cannot infer it.\n */\nexport async function hashKey(secret: string, key: string) {\n return encodeBase64(await hash({\n purpose: hashPurpose,\n extra: secret,\n value: await getDerivedKey(secret, key),\n }));\n}\n\n/**\n * Use to encrypt the value so that the server cannot read the value without knowing the key.\n */\nexport async function encryptValue(secret: string, key: string, value: string) {\n const valueEncryptionDerivedKey = await getDerivedKey(secret, key);\n\n const bytes = await encrypt({\n purpose: encryptionValuePurpose,\n secret: valueEncryptionDerivedKey,\n value: new TextEncoder().encode(value)\n });\n return encodeBase64(bytes);\n}\n\n/**\n * Use to decrypt the value. See encryptValue.\n */\nexport async function decryptValue(secret: string, key: string, encryptedValue: string) {\n const valueEncryptionDerivedKey = await getDerivedKey(secret, key);\n\n const bytesResult = await decrypt({\n purpose: encryptionValuePurpose,\n secret: valueEncryptionDerivedKey,\n cipher: decodeBase64(encryptedValue),\n });\n if (bytesResult.status === \"error\") throw new Error(\"Data vault client-side decryption failed. Are you sure you're using the correct secret?\", { cause: bytesResult.error });\n return new TextDecoder().decode(bytesResult.data);\n}\n\n\nimport.meta.vitest?.describe(\"encryptValue & decryptValue\", () => {\n import.meta.vitest?.it(\"should encrypt and decrypt a value\", async ({ expect }) => {\n const secret = \"test-secret\";\n const value = \"test-value\";\n const encrypted = await encryptValue(secret, \"key\", value);\n const decrypted = await decryptValue(secret, \"key\", encrypted);\n expect(decrypted).toEqual(value);\n });\n\n import.meta.vitest?.it(\"should not decrypt a value with a different secret\", async ({ expect }) => {\n const secret = \"test-secret\";\n const value = \"test-value\";\n const encrypted = await encryptValue(secret, \"key\", value);\n await expect(decryptValue(\"different-secret\", \"key\", encrypted)).rejects.toThrow();\n });\n\n import.meta.vitest?.it(\"should not decrypt a value with a different key\", async ({ expect }) => {\n const secret = \"test-secret\";\n const value = \"test-value\";\n const encrypted = await encryptValue(secret, \"key\", value);\n await expect(decryptValue(secret, \"different-key\", encrypted)).rejects.toThrow();\n });\n\n import.meta.vitest?.it(\"should not decrypt a value if the cipher was tampered with\", async ({ expect }) => {\n const secret = \"test-secret\";\n const value = \"test-value\";\n const encrypted = await encryptValue(secret, \"key\", value);\n const tampered = encrypted + \"7\";\n await expect(decryptValue(secret, \"key\", tampered)).rejects.toThrow();\n });\n});\n"],"mappings":";;;;;;AAGA,MAAM,cAAc;AACpB,MAAM,0BAA0B;AAChC,MAAM,yBAAyB;AAG/B,eAAe,cAAc,QAAgB,KAAa;AACxD,QAAO,8CAAmB;EACxB,SAAS;EACT,OAAO;EACP,OAAO;EACP,YAAY;EACb,CAAC;;;;;AAMJ,eAAsB,QAAQ,QAAgB,KAAa;AACzD,+CAAoB,sCAAW;EAC7B,SAAS;EACT,OAAO;EACP,OAAO,MAAM,cAAc,QAAQ,IAAI;EACxC,CAAC,CAAC;;;;;AAML,eAAsB,aAAa,QAAgB,KAAa,OAAe;AAQ7E,+CALc,yCAAc;EAC1B,SAAS;EACT,QAJgC,MAAM,cAAc,QAAQ,IAAI;EAKhE,OAAO,IAAI,aAAa,CAAC,OAAO,MAAK;EACtC,CAAC,CACwB;;;;;AAM5B,eAAsB,aAAa,QAAgB,KAAa,gBAAwB;CAGtF,MAAM,cAAc,yCAAc;EAChC,SAAS;EACT,QAJgC,MAAM,cAAc,QAAQ,IAAI;EAKhE,+CAAqB,eAAe;EACrC,CAAC;AACF,KAAI,YAAY,WAAW,QAAS,OAAM,IAAI,MAAM,2FAA2F,EAAE,OAAO,YAAY,OAAO,CAAC;AAC5K,QAAO,IAAI,aAAa,CAAC,OAAO,YAAY,KAAK;;CAInD,SAAW,SAAS,qCAAqC;AACvD,WAAW,GAAC,sCAAwC,OAAO,EAAE,aAAS;EACpE,MAAM,SAAS;EACf,MAAM,QAAQ;AAGd,SADkB,MAAM,aAAa,QAAQ,OAD3B,MAAM,aAAa,QAAQ,OAAO,MAAM,CACI,CAC7C,CAAC,QAAQ,MAAM;GAChC;AAEF,WAAW,GAAC,sDAAwD,OAAO,EAAE,aAAS;AAIpF,QAAM,OAAO,aAAa,oBAAoB,OAD5B,MAAM,aAFT,eAE8B,OAD/B,aAC4C,CACK,CAAC,CAAC,QAAQ,SAAS;GAClF;AAEF,WAAW,GAAC,mDAA8C,OAAc,EAAE,aAAS;EACjF,MAAM,SAAS;AAGf,QAAM,OAAO,aAAa,QAAQ,iBADhB,MAAM,aAAa,QAAQ,OAD/B,aAC4C,CACG,CAAC,CAAC,QAAQ,SAAS;GAChF;AAEF,WAAW,GAAC,8DAAyD,OAAc,EAAE,aAAS;EAC5F,MAAM,SAAS;AAIf,QAAM,OAAO,aAAa,QAAQ,OAFhB,MAAM,aAAa,QAAQ,OAD/B,aAC4C,GAC7B,IACqB,CAAC,CAAC,QAAQ,SAAS;GACrE;EACF"}
@@ -0,0 +1,9 @@
1
+ //#region src/helpers/vault/server-side.d.ts
2
+ declare function encryptWithKms(value: string): Promise<{
3
+ edkBase64: string;
4
+ ciphertextBase64: string;
5
+ }>;
6
+ declare function decryptWithKms(encrypted: Awaited<ReturnType<typeof encryptWithKms>>): Promise<string>;
7
+ //#endregion
8
+ export { decryptWithKms, encryptWithKms };
9
+ //# sourceMappingURL=server-side.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-side.d.ts","names":[],"sources":["../../../src/helpers/vault/server-side.ts"],"mappings":";iBAyHsB,cAAA,CAAe,KAAA,WAAa,OAAA;;;;iBAc5B,cAAA,CAAe,SAAA,EAAW,OAAA,CAAQ,UAAA,QAAkB,cAAA,KAAgB,OAAA"}
@@ -0,0 +1,126 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_chunk = require('../../chunk-BE-pF4vm.js');
3
+ let ______utils_bytes_js = require("../../utils/bytes.js");
4
+ let ______utils_crypto_js = require("../../utils/crypto.js");
5
+ let _aws_sdk_client_kms = require("@aws-sdk/client-kms");
6
+ let ______utils_env_js = require("../../utils/env.js");
7
+ let ______utils_results_js = require("../../utils/results.js");
8
+
9
+ //#region src/helpers/vault/server-side.ts
10
+ async function getAwsCredentials() {
11
+ const vercelRoleArn = (0, ______utils_env_js.getEnvVariable)("STACK_AWS_VERCEL_OIDC_ROLE_ARN", "");
12
+ if (vercelRoleArn) {
13
+ const { awsCredentialsProvider } = await import("@vercel/functions/oidc");
14
+ return awsCredentialsProvider({ roleArn: vercelRoleArn });
15
+ }
16
+ const gcpWifRoleArn = (0, ______utils_env_js.getEnvVariable)("STACK_AWS_GCP_WIF_ROLE_ARN", "");
17
+ if (gcpWifRoleArn) {
18
+ const { fromWebToken } = await import("@aws-sdk/credential-provider-web-identity");
19
+ const audience = (0, ______utils_env_js.getEnvVariable)("STACK_AWS_GCP_WIF_AUDIENCE", "sts.amazonaws.com");
20
+ return async () => {
21
+ return await fromWebToken({
22
+ roleArn: gcpWifRoleArn,
23
+ roleSessionName: "stack-backend-cloudrun",
24
+ webIdentityToken: await fetchGcpIdToken(audience)
25
+ })();
26
+ };
27
+ }
28
+ return {
29
+ accessKeyId: (0, ______utils_env_js.getEnvVariable)("STACK_AWS_ACCESS_KEY_ID"),
30
+ secretAccessKey: (0, ______utils_env_js.getEnvVariable)("STACK_AWS_SECRET_ACCESS_KEY")
31
+ };
32
+ }
33
+ /**
34
+ * Fetches a GCP ID token from the metadata server (available on Cloud Run, GCE, GKE).
35
+ * The token is a Google-signed JWT with the specified audience, suitable for
36
+ * AWS STS AssumeRoleWithWebIdentity.
37
+ */
38
+ async function fetchGcpIdToken(audience) {
39
+ const metadataUrl = `http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=${encodeURIComponent(audience)}`;
40
+ const response = await fetch(metadataUrl, { headers: { "Metadata-Flavor": "Google" } });
41
+ if (!response.ok) throw new Error(`Failed to fetch GCP ID token: ${response.status} ${await response.text()}`);
42
+ return await response.text();
43
+ }
44
+ let kmsClientCache;
45
+ async function getKmsClient() {
46
+ if (!kmsClientCache) kmsClientCache = new _aws_sdk_client_kms.KMSClient({
47
+ region: (0, ______utils_env_js.getEnvVariable)("STACK_AWS_REGION"),
48
+ endpoint: (0, ______utils_env_js.getEnvVariable)("STACK_AWS_KMS_ENDPOINT"),
49
+ credentials: await getAwsCredentials()
50
+ });
51
+ return kmsClientCache;
52
+ }
53
+ async function getOrCreateKekId() {
54
+ const id = "alias/stack-data-vault-server-side-kek";
55
+ const kms = await getKmsClient();
56
+ try {
57
+ const describeResult = await kms.send(new _aws_sdk_client_kms.DescribeKeyCommand({ KeyId: id }));
58
+ if (describeResult.KeyMetadata?.KeyId) return describeResult.KeyMetadata.KeyId;
59
+ } catch (e) {
60
+ if (e instanceof Error && e.name !== "NotFoundException") throw e;
61
+ }
62
+ const { KeyMetadata } = await kms.send(new _aws_sdk_client_kms.CreateKeyCommand({
63
+ KeyUsage: "ENCRYPT_DECRYPT",
64
+ Description: "DataVault KEK"
65
+ }));
66
+ await kms.send(new _aws_sdk_client_kms.CreateAliasCommand({
67
+ AliasName: id,
68
+ TargetKeyId: KeyMetadata.KeyId
69
+ }));
70
+ return id;
71
+ }
72
+ async function genDEK() {
73
+ const kekId = await getOrCreateKekId();
74
+ const out = await (await getKmsClient()).send(new _aws_sdk_client_kms.GenerateDataKeyCommand({
75
+ KeyId: kekId,
76
+ KeySpec: "AES_256"
77
+ }));
78
+ if (!out.Plaintext || !out.CiphertextBlob) throw new Error("GenerateDataKey failed");
79
+ return {
80
+ dekBytes: out.Plaintext,
81
+ edkBytes: out.CiphertextBlob
82
+ };
83
+ }
84
+ async function unwrapDEK(edk_b64) {
85
+ const edkBytes = (0, ______utils_bytes_js.decodeBase64)(edk_b64);
86
+ const out = await (await getKmsClient()).send(new _aws_sdk_client_kms.DecryptCommand({ CiphertextBlob: edkBytes }));
87
+ if (!out.Plaintext) throw new Error("KMS Decrypt failed");
88
+ return {
89
+ dekBytes: out.Plaintext,
90
+ edkBytes
91
+ };
92
+ }
93
+ async function encryptWithKms(value) {
94
+ const { dekBytes, edkBytes } = await genDEK();
95
+ try {
96
+ const ciphertext = await (0, ______utils_crypto_js.encrypt)({
97
+ purpose: "stack-data-vault-server-side-encryption",
98
+ secret: dekBytes,
99
+ value: new TextEncoder().encode(value)
100
+ });
101
+ return {
102
+ edkBase64: (0, ______utils_bytes_js.encodeBase64)(edkBytes),
103
+ ciphertextBase64: (0, ______utils_bytes_js.encodeBase64)(ciphertext)
104
+ };
105
+ } finally {
106
+ dekBytes.fill(0);
107
+ }
108
+ }
109
+ async function decryptWithKms(encrypted) {
110
+ const { dekBytes } = await unwrapDEK(encrypted.edkBase64);
111
+ try {
112
+ const value = ______utils_results_js.Result.orThrow(await (0, ______utils_crypto_js.decrypt)({
113
+ purpose: "stack-data-vault-server-side-encryption",
114
+ secret: dekBytes,
115
+ cipher: (0, ______utils_bytes_js.decodeBase64)(encrypted.ciphertextBase64)
116
+ }));
117
+ return new TextDecoder().decode(value);
118
+ } finally {
119
+ dekBytes.fill(0);
120
+ }
121
+ }
122
+
123
+ //#endregion
124
+ exports.decryptWithKms = decryptWithKms;
125
+ exports.encryptWithKms = encryptWithKms;
126
+ //# sourceMappingURL=server-side.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-side.js","names":["KMSClient","DescribeKeyCommand","CreateKeyCommand","CreateAliasCommand","GenerateDataKeyCommand","DecryptCommand","Result"],"sources":["../../../src/helpers/vault/server-side.ts"],"sourcesContent":["import {\n CreateAliasCommand,\n CreateKeyCommand,\n DecryptCommand,\n DescribeKeyCommand,\n GenerateDataKeyCommand,\n KMSClient\n} from \"@aws-sdk/client-kms\";\nimport { decodeBase64, encodeBase64 } from \"../../utils/bytes\";\nimport { decrypt, encrypt } from \"../../utils/crypto\";\nimport { getEnvVariable } from \"../../utils/env\";\nimport { Result } from \"../../utils/results\";\n\n\nasync function getAwsCredentials() {\n // 1. Vercel OIDC: Vercel injects an OIDC token that can be exchanged for AWS credentials\n const vercelRoleArn = getEnvVariable(\"STACK_AWS_VERCEL_OIDC_ROLE_ARN\", \"\");\n if (vercelRoleArn) {\n const { awsCredentialsProvider } = await import(\"@vercel/functions/oidc\");\n return awsCredentialsProvider({ roleArn: vercelRoleArn });\n }\n\n // 2. GCP Workload Identity Federation: Cloud Run gets a GCP ID token from the metadata server,\n // then exchanges it for temporary AWS credentials via STS AssumeRoleWithWebIdentity.\n // Requires:\n // - An OIDC identity provider in AWS IAM (issuer: https://accounts.google.com)\n // - An IAM role with a trust policy allowing the GCP service account\n // - STACK_AWS_GCP_WIF_ROLE_ARN set to that role's ARN\n // - STACK_AWS_GCP_WIF_AUDIENCE set to the audience configured in the AWS OIDC provider\n const gcpWifRoleArn = getEnvVariable(\"STACK_AWS_GCP_WIF_ROLE_ARN\", \"\");\n if (gcpWifRoleArn) {\n const { fromWebToken } = await import(\"@aws-sdk/credential-provider-web-identity\");\n const audience = getEnvVariable(\"STACK_AWS_GCP_WIF_AUDIENCE\", \"sts.amazonaws.com\");\n // Return a provider that fetches a fresh GCP ID token on each invocation.\n // GCP metadata tokens expire after ~1h, so we can't bake a single token into the closure.\n return async () => {\n return await fromWebToken({\n roleArn: gcpWifRoleArn,\n roleSessionName: \"stack-backend-cloudrun\",\n webIdentityToken: await fetchGcpIdToken(audience),\n })();\n };\n }\n\n // 3. Static credentials: fallback for self-hosted / local development\n return {\n accessKeyId: getEnvVariable(\"STACK_AWS_ACCESS_KEY_ID\"),\n secretAccessKey: getEnvVariable(\"STACK_AWS_SECRET_ACCESS_KEY\"),\n };\n}\n\n/**\n * Fetches a GCP ID token from the metadata server (available on Cloud Run, GCE, GKE).\n * The token is a Google-signed JWT with the specified audience, suitable for\n * AWS STS AssumeRoleWithWebIdentity.\n */\nasync function fetchGcpIdToken(audience: string): Promise<string> {\n const metadataUrl = `http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=${encodeURIComponent(audience)}`;\n const response = await fetch(metadataUrl, {\n headers: { \"Metadata-Flavor\": \"Google\" },\n });\n if (!response.ok) {\n throw new Error(`Failed to fetch GCP ID token: ${response.status} ${await response.text()}`);\n }\n return await response.text();\n}\n\nlet kmsClientCache: KMSClient | undefined;\n\nasync function getKmsClient() {\n if (!kmsClientCache) {\n kmsClientCache = new KMSClient({\n region: getEnvVariable(\"STACK_AWS_REGION\"),\n endpoint: getEnvVariable(\"STACK_AWS_KMS_ENDPOINT\"),\n credentials: await getAwsCredentials(),\n });\n }\n return kmsClientCache;\n}\n\nasync function getOrCreateKekId(): Promise<string> {\n const id = \"alias/stack-data-vault-server-side-kek\";\n const kms = await getKmsClient();\n try {\n const describeResult = await kms.send(new DescribeKeyCommand({ KeyId: id }));\n if (describeResult.KeyMetadata?.KeyId) return describeResult.KeyMetadata.KeyId;\n } catch (e) {\n if (e instanceof Error && e.name !== \"NotFoundException\") {\n throw e;\n }\n }\n const { KeyMetadata } = await kms.send(new CreateKeyCommand({\n KeyUsage: \"ENCRYPT_DECRYPT\",\n Description: \"DataVault KEK\"\n }));\n await kms.send(new CreateAliasCommand({ AliasName: id, TargetKeyId: KeyMetadata!.KeyId! }));\n return id;\n}\n\nasync function genDEK() {\n const kekId = await getOrCreateKekId();\n const kms = await getKmsClient();\n const out = await kms.send(new GenerateDataKeyCommand({ KeyId: kekId, KeySpec: \"AES_256\" }));\n if (!out.Plaintext || !out.CiphertextBlob) throw new Error(\"GenerateDataKey failed\");\n return {\n dekBytes: out.Plaintext,\n edkBytes: out.CiphertextBlob,\n };\n}\n\nasync function unwrapDEK(edk_b64: string) {\n const edkBytes = decodeBase64(edk_b64);\n const kms = await getKmsClient();\n const out = await kms.send(new DecryptCommand({ CiphertextBlob: edkBytes }));\n if (!out.Plaintext) throw new Error(\"KMS Decrypt failed\");\n return {\n dekBytes: out.Plaintext,\n edkBytes,\n };\n}\n\nexport async function encryptWithKms(value: string) {\n const { dekBytes, edkBytes } = await genDEK();\n try {\n const ciphertext = await encrypt({\n purpose: \"stack-data-vault-server-side-encryption\",\n secret: dekBytes,\n value: new TextEncoder().encode(value),\n });\n return { edkBase64: encodeBase64(edkBytes), ciphertextBase64: encodeBase64(ciphertext) };\n } finally {\n dekBytes.fill(0);\n }\n}\n\nexport async function decryptWithKms(encrypted: Awaited<ReturnType<typeof encryptWithKms>>) {\n const { dekBytes } = await unwrapDEK(encrypted.edkBase64);\n try {\n const value = Result.orThrow(await decrypt({\n purpose: \"stack-data-vault-server-side-encryption\",\n secret: dekBytes,\n cipher: decodeBase64(encrypted.ciphertextBase64),\n }));\n return new TextDecoder().decode(value);\n } finally {\n dekBytes.fill(0);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+
3
+ //#region src/hooks/use-async-callback.d.ts
4
+ declare function useAsyncCallback<A extends any[], R>(callback: (...args: A) => Promise<R>, deps: React.DependencyList): [cb: (...args: A) => Promise<R>, loading: boolean, error: unknown | undefined];
5
+ declare function useAsyncCallbackWithLoggedError<A extends any[], R>(callback: (...args: A) => Promise<R>, deps: React.DependencyList): [cb: (...args: A) => Promise<R>, loading: boolean];
6
+ //#endregion
7
+ export { useAsyncCallback, useAsyncCallbackWithLoggedError };
8
+ //# sourceMappingURL=use-async-callback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-async-callback.d.ts","names":[],"sources":["../../src/hooks/use-async-callback.tsx"],"mappings":";;;iBAGgB,gBAAA,oBAAA,CACd,QAAA,MAAc,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA,GAClC,IAAA,EAAM,KAAA,CAAM,cAAA,IACV,EAAA,MAAQ,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA,GAAI,OAAA,WAAkB,KAAA;AAAA,iBAsBtC,+BAAA,oBAAA,CACd,QAAA,MAAc,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA,GAClC,IAAA,EAAM,KAAA,CAAM,cAAA,IACV,EAAA,MAAQ,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA,GAAI,OAAA"}
@@ -0,0 +1,42 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_chunk = require('../chunk-BE-pF4vm.js');
3
+ let react = require("react");
4
+ react = require_chunk.__toESM(react);
5
+ let ___utils_errors_js = require("../utils/errors.js");
6
+
7
+ //#region src/hooks/use-async-callback.tsx
8
+ function useAsyncCallback(callback, deps) {
9
+ const [error, setError] = react.default.useState(void 0);
10
+ const [loadingCount, setLoadingCount] = react.default.useState(0);
11
+ return [
12
+ react.default.useCallback(async (...args) => {
13
+ setLoadingCount((c) => c + 1);
14
+ try {
15
+ return await callback(...args);
16
+ } catch (e) {
17
+ setError(e);
18
+ throw e;
19
+ } finally {
20
+ setLoadingCount((c) => c - 1);
21
+ }
22
+ }, deps),
23
+ loadingCount > 0,
24
+ error
25
+ ];
26
+ }
27
+ function useAsyncCallbackWithLoggedError(callback, deps) {
28
+ const [newCallback, loading] = useAsyncCallback(async (...args) => {
29
+ try {
30
+ return await callback(...args);
31
+ } catch (e) {
32
+ (0, ___utils_errors_js.captureError)("async-callback", e);
33
+ throw e;
34
+ }
35
+ }, deps);
36
+ return [newCallback, loading];
37
+ }
38
+
39
+ //#endregion
40
+ exports.useAsyncCallback = useAsyncCallback;
41
+ exports.useAsyncCallbackWithLoggedError = useAsyncCallbackWithLoggedError;
42
+ //# sourceMappingURL=use-async-callback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-async-callback.js","names":["React"],"sources":["../../src/hooks/use-async-callback.tsx"],"sourcesContent":["import React from \"react\";\nimport { captureError } from \"../utils/errors\";\n\nexport function useAsyncCallback<A extends any[], R>(\n callback: (...args: A) => Promise<R>,\n deps: React.DependencyList\n): [cb: (...args: A) => Promise<R>, loading: boolean, error: unknown | undefined] {\n const [error, setError] = React.useState<unknown | undefined>(undefined);\n const [loadingCount, setLoadingCount] = React.useState(0);\n\n const cb = React.useCallback(\n async (...args: A) => {\n setLoadingCount((c) => c + 1);\n try {\n return await callback(...args);\n } catch (e) {\n setError(e);\n throw e;\n } finally {\n setLoadingCount((c) => c - 1);\n }\n },\n deps,\n );\n\n return [cb, loadingCount > 0, error];\n}\n\nexport function useAsyncCallbackWithLoggedError<A extends any[], R>(\n callback: (...args: A) => Promise<R>,\n deps: React.DependencyList\n): [cb: (...args: A) => Promise<R>, loading: boolean] {\n const [newCallback, loading] = useAsyncCallback<A, R>(async (...args) => {\n try {\n return await callback(...args);\n } catch (e) {\n captureError(\"async-callback\", e);\n throw e;\n }\n }, deps);\n\n return [newCallback, loading];\n}\n"],"mappings":";;;;;;;AAGA,SAAgB,iBACd,UACA,MACgF;CAChF,MAAM,CAAC,OAAO,YAAYA,cAAM,SAA8B,OAAU;CACxE,MAAM,CAAC,cAAc,mBAAmBA,cAAM,SAAS,EAAE;AAiBzD,QAAO;EAfIA,cAAM,YACf,OAAO,GAAG,SAAY;AACpB,oBAAiB,MAAM,IAAI,EAAE;AAC7B,OAAI;AACF,WAAO,MAAM,SAAS,GAAG,KAAK;YACvB,GAAG;AACV,aAAS,EAAE;AACX,UAAM;aACE;AACR,qBAAiB,MAAM,IAAI,EAAE;;KAGjC,KACD;EAEW,eAAe;EAAG;EAAM;;AAGtC,SAAgB,gCACd,UACA,MACoD;CACpD,MAAM,CAAC,aAAa,WAAW,iBAAuB,OAAO,GAAG,SAAS;AACvE,MAAI;AACF,UAAO,MAAM,SAAS,GAAG,KAAK;WACvB,GAAG;AACV,wCAAa,kBAAkB,EAAE;AACjC,SAAM;;IAEP,KAAK;AAER,QAAO,CAAC,aAAa,QAAQ"}
@@ -0,0 +1,9 @@
1
+ import { AsyncResult } from "../utils/results.js";
2
+
3
+ //#region src/hooks/use-async-external-store.d.ts
4
+ declare function useAsyncExternalStore<T>(subscribe: (callback: (t: T) => void) => (() => void)): AsyncResult<T, never> & {
5
+ status: "ok" | "pending";
6
+ };
7
+ //#endregion
8
+ export { useAsyncExternalStore };
9
+ //# sourceMappingURL=use-async-external-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-async-external-store.d.ts","names":[],"sources":["../../src/hooks/use-async-external-store.tsx"],"mappings":";;;iBAGgB,qBAAA,GAAA,CACd,SAAA,GAAY,QAAA,GAAW,CAAA,EAAG,CAAA,6BACzB,WAAA,CAAY,CAAA;EAAc,MAAA;AAAA"}
@@ -0,0 +1,22 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_chunk = require('../chunk-BE-pF4vm.js');
3
+ let react = require("react");
4
+ let ___utils_results_js = require("../utils/results.js");
5
+
6
+ //#region src/hooks/use-async-external-store.tsx
7
+ function useAsyncExternalStore(subscribe) {
8
+ const [isAvailable, setIsAvailable] = (0, react.useState)(false);
9
+ const [value, setValue] = (0, react.useState)();
10
+ (0, react.useEffect)(() => {
11
+ return subscribe((value) => {
12
+ setValue(() => value);
13
+ setIsAvailable(() => true);
14
+ });
15
+ }, [subscribe]);
16
+ if (isAvailable) return ___utils_results_js.AsyncResult.ok(value);
17
+ else return ___utils_results_js.AsyncResult.pending();
18
+ }
19
+
20
+ //#endregion
21
+ exports.useAsyncExternalStore = useAsyncExternalStore;
22
+ //# sourceMappingURL=use-async-external-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-async-external-store.js","names":["AsyncResult"],"sources":["../../src/hooks/use-async-external-store.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { AsyncResult } from \"../utils/results\";\n\nexport function useAsyncExternalStore<T>(\n subscribe: (callback: (t: T) => void) => (() => void),\n): AsyncResult<T, never> & { status: \"ok\" | \"pending\" } {\n // sure, the \"sync\" in useSyncExternalStore refers to \"synchronize a store\" and not \"sync/async\", but it's too good of a name to pass up on\n\n const [isAvailable, setIsAvailable] = useState(false);\n const [value, setValue] = useState<T>();\n useEffect(() => {\n const unsubscribe = subscribe((value: T) => {\n setValue(() => value);\n setIsAvailable(() => true);\n });\n return unsubscribe;\n }, [subscribe]);\n\n if (isAvailable) {\n return AsyncResult.ok(value as T);\n } else {\n return AsyncResult.pending();\n }\n}\n"],"mappings":";;;;;;AAGA,SAAgB,sBACd,WACsD;CAGtD,MAAM,CAAC,aAAa,sCAA2B,MAAM;CACrD,MAAM,CAAC,OAAO,iCAAyB;AACvC,4BAAgB;AAKd,SAJoB,WAAW,UAAa;AAC1C,kBAAe,MAAM;AACrB,wBAAqB,KAAK;IAC1B;IAED,CAAC,UAAU,CAAC;AAEf,KAAI,YACF,QAAOA,gCAAY,GAAG,MAAW;KAEjC,QAAOA,gCAAY,SAAS"}
@@ -0,0 +1,5 @@
1
+ //#region src/hooks/use-hash.d.ts
2
+ declare const useHash: () => string;
3
+ //#endregion
4
+ export { useHash };
5
+ //# sourceMappingURL=use-hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-hash.d.ts","names":[],"sources":["../../src/hooks/use-hash.tsx"],"mappings":";cAGa,OAAA"}
@@ -0,0 +1,17 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_chunk = require('../chunk-BE-pF4vm.js');
3
+ let react = require("react");
4
+ let ___utils_react_js = require("../utils/react.js");
5
+
6
+ //#region src/hooks/use-hash.tsx
7
+ const useHash = () => {
8
+ (0, ___utils_react_js.suspendIfSsr)("useHash");
9
+ return (0, react.useSyncExternalStore)((onChange) => {
10
+ const interval = setInterval(() => onChange(), 10);
11
+ return () => clearInterval(interval);
12
+ }, () => window.location.hash.substring(1));
13
+ };
14
+
15
+ //#endregion
16
+ exports.useHash = useHash;
17
+ //# sourceMappingURL=use-hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-hash.js","names":[],"sources":["../../src/hooks/use-hash.tsx"],"sourcesContent":["import { useSyncExternalStore } from \"react\";\nimport { suspendIfSsr } from \"../utils/react\";\n\nexport const useHash = () => {\n suspendIfSsr(\"useHash\");\n return useSyncExternalStore(\n (onChange) => {\n const interval = setInterval(() => onChange(), 10);\n return () => clearInterval(interval);\n },\n () => window.location.hash.substring(1)\n );\n};\n\n"],"mappings":";;;;;;AAGA,MAAa,gBAAgB;AAC3B,qCAAa,UAAU;AACvB,yCACG,aAAa;EACZ,MAAM,WAAW,kBAAkB,UAAU,EAAE,GAAG;AAClD,eAAa,cAAc,SAAS;UAEhC,OAAO,SAAS,KAAK,UAAU,EAAE,CACxC"}
@@ -0,0 +1,8 @@
1
+ //#region src/hooks/use-hover.d.ts
2
+ declare function useHover<T extends HTMLElement>(ref: React.RefObject<T>, options?: {
3
+ onMouseEnter?: () => void;
4
+ onMouseLeave?: () => void;
5
+ }): boolean;
6
+ //#endregion
7
+ export { useHover };
8
+ //# sourceMappingURL=use-hover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-hover.d.ts","names":[],"sources":["../../src/hooks/use-hover.tsx"],"mappings":";iBAGgB,QAAA,WAAmB,WAAA,CAAA,CACjC,GAAA,EAAK,KAAA,CAAM,SAAA,CAAU,CAAA,GACrB,OAAA;EACE,YAAA;EACA,YAAA;AAAA"}