@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,1065 @@
1
+ import * as yup$1 from "yup";
2
+ import { HexclaveAssertionError } from "../utils/errors.js";
3
+ import { filterUndefined, get, getOrUndefined, has, isObjectLike, mapValues, set, typedAssign, typedEntries, typedFromEntries } from "../utils/objects.js";
4
+ import { ALL_APPS } from "../apps/apps-config.js";
5
+ import { SUPPORTED_CURRENCIES } from "../utils/currency-constants.js";
6
+ import { stringCompare } from "../utils/strings.js";
7
+ import { NormalizationError, assertNormalized, getInvalidConfigReason, normalize } from "./format.js";
8
+ import { DEFAULT_EMAIL_TEMPLATES, DEFAULT_EMAIL_THEMES, DEFAULT_EMAIL_THEME_ID } from "../helpers/emails.js";
9
+ import * as schemaFields from "../schema-fields.js";
10
+ import { productSchema, userSpecifiedIdSchema, yupBoolean, yupDate, yupMixed, yupNever, yupNumber, yupObject, yupRecord, yupString, yupTuple, yupUnion } from "../schema-fields.js";
11
+ import { allProviders } from "../utils/oauth.js";
12
+ import { Result } from "../utils/results.js";
13
+ import { typeAssert, typeAssertExtends, typeAssertIs } from "../utils/types.js";
14
+ import { migrateCatalogsToProductLines } from "./migrate-catalogs-to-product-lines.js";
15
+
16
+ //#region src/config/schema.ts
17
+ const configLevels = [
18
+ "project",
19
+ "branch",
20
+ "environment",
21
+ "organization"
22
+ ];
23
+ const permissionRegex = /^\$?[a-z0-9_:]+$/;
24
+ const customPermissionRegex = /^[a-z0-9_:]+$/;
25
+ function canNoLongerBeOverridden(schema, keys) {
26
+ return schema.concat(yupObject(Object.fromEntries(keys.map((key) => [key, schema.getNested(key).meta({ stackConfigCanNoLongerBeOverridden: true })]))));
27
+ }
28
+ /**
29
+ * All fields that can be overridden at this level.
30
+ */
31
+ const projectConfigSchema = yupObject({
32
+ sourceOfTruth: yupUnion(yupObject({ type: yupString().oneOf(["hosted"]).defined() })),
33
+ project: yupObject({ requirePublishableClientKey: yupBoolean() })
34
+ });
35
+ const branchRbacDefaultPermissions = yupRecord(yupString().matches(permissionRegex), yupBoolean().isTrue().optional());
36
+ const branchRbacSchema = yupObject({
37
+ permissions: yupRecord(yupString().matches(customPermissionRegex), yupObject({
38
+ description: yupString().optional(),
39
+ scope: yupString().oneOf(["team", "project"]).optional(),
40
+ containedPermissionIds: yupRecord(yupString().matches(permissionRegex), yupBoolean().isTrue().optional()).optional()
41
+ }).optional()),
42
+ defaultPermissions: yupObject({
43
+ teamCreator: branchRbacDefaultPermissions,
44
+ teamMember: branchRbacDefaultPermissions,
45
+ signUp: branchRbacDefaultPermissions
46
+ })
47
+ });
48
+ const branchApiKeysSchema = yupObject({ enabled: yupObject({
49
+ team: yupBoolean(),
50
+ user: yupBoolean()
51
+ }) });
52
+ const appIds = Object.keys(ALL_APPS);
53
+ const branchAppsSchema = yupObject({ installed: yupRecord(yupString().oneOf(appIds), yupObject({ enabled: yupBoolean() })) });
54
+ const branchAuthSchema = yupObject({
55
+ allowSignUp: yupBoolean(),
56
+ password: yupObject({ allowSignIn: yupBoolean() }),
57
+ otp: yupObject({ allowSignIn: yupBoolean() }),
58
+ passkey: yupObject({ allowSignIn: yupBoolean() }),
59
+ oauth: yupObject({
60
+ accountMergeStrategy: yupString().oneOf([
61
+ "link_method",
62
+ "raise_error",
63
+ "allow_duplicates"
64
+ ]).optional(),
65
+ providers: yupRecord(yupString().matches(permissionRegex), yupObject({
66
+ type: yupString().oneOf(allProviders).optional(),
67
+ allowSignIn: yupBoolean(),
68
+ allowConnectedAccounts: yupBoolean()
69
+ }))
70
+ }),
71
+ signUpRules: yupRecord(userSpecifiedIdSchema("signUpRuleId"), yupObject({
72
+ enabled: yupBoolean(),
73
+ displayName: yupString(),
74
+ priority: yupNumber().integer().min(0),
75
+ condition: yupString(),
76
+ action: yupObject({
77
+ type: yupString().oneOf([
78
+ "allow",
79
+ "reject",
80
+ "restrict",
81
+ "log"
82
+ ]).defined(),
83
+ message: yupString().optional()
84
+ })
85
+ })),
86
+ signUpRulesDefaultAction: yupString().oneOf(["allow", "reject"])
87
+ });
88
+ const branchPaymentsSchema = yupObject({
89
+ blockNewPurchases: yupBoolean(),
90
+ autoPay: yupObject({ interval: schemaFields.dayIntervalSchema }).optional(),
91
+ productLines: yupRecord(userSpecifiedIdSchema("productLineId"), yupObject({
92
+ displayName: yupString().optional(),
93
+ customerType: schemaFields.customerTypeSchema
94
+ })).meta({ openapiField: {
95
+ description: "The product lines that products can be in. All products in a product line (besides add-ons) are mutually exclusive.",
96
+ exampleValue: { "product-line-id": {
97
+ displayName: "My Product Line",
98
+ customerType: "user"
99
+ } }
100
+ } }),
101
+ products: yupRecord(userSpecifiedIdSchema("productId"), productSchema),
102
+ items: yupRecord(userSpecifiedIdSchema("itemId"), yupObject({
103
+ displayName: yupString().optional(),
104
+ customerType: schemaFields.customerTypeSchema
105
+ }))
106
+ }).optional().test("product-customer-type-matches-product-line", "Product customer type must match its product line customer type", function(value) {
107
+ if (!value) return true;
108
+ const products = value.products;
109
+ if (!isObjectLike(products)) return true;
110
+ const productLines = value.productLines;
111
+ for (const [productId, product] of Object.entries(products)) {
112
+ if (!isObjectLike(product)) continue;
113
+ const productLineId = product.productLineId;
114
+ if (typeof productLineId !== "string" || productLineId.length === 0) continue;
115
+ const productLine = isObjectLike(productLines) ? getOrUndefined(productLines, productLineId) : void 0;
116
+ if (productLine === void 0) return this.createError({
117
+ message: `Product "${productId}" specifies product line ID "${productLineId}", but that product line does not exist`,
118
+ path: `${this.path}.products.${productId}.productLineId`
119
+ });
120
+ if (!isObjectLike(productLine)) continue;
121
+ if (product.customerType !== productLine.customerType) return this.createError({
122
+ message: `Product "${productId}" has customer type "${product.customerType}" but its product line "${productLineId}" has customer type "${productLine.customerType}"`,
123
+ path: `${this.path}.products.${productId}.customerType`
124
+ });
125
+ }
126
+ return true;
127
+ });
128
+ (void 0)?.test("branchPaymentsSchema accepts partial payments config without products", async ({ expect }) => {
129
+ await expect(branchPaymentsSchema.validate({ blockNewPurchases: true }, { abortEarly: false })).resolves.toMatchObject({ blockNewPurchases: true });
130
+ });
131
+ (void 0)?.test("branchPaymentsSchema accepts product lines without products", async ({ expect }) => {
132
+ await expect(branchPaymentsSchema.validate({ productLines: { pro: {
133
+ displayName: "Pro",
134
+ customerType: "user"
135
+ } } }, { abortEarly: false })).resolves.toMatchObject({ productLines: { pro: {
136
+ displayName: "Pro",
137
+ customerType: "user"
138
+ } } });
139
+ });
140
+ (void 0)?.test("branchPaymentsSchema rejects a product that references a missing product line", async ({ expect }) => {
141
+ await expect(branchPaymentsSchema.validate({ products: { pro: {
142
+ customerType: "user",
143
+ productLineId: "missing-line",
144
+ prices: {}
145
+ } } }, { abortEarly: false })).rejects.toThrowErrorMatchingInlineSnapshot(`[ValidationError: Product "pro" specifies product line ID "missing-line", but that product line does not exist]`);
146
+ });
147
+ (void 0)?.test("branchPaymentsSchema rejects null product entries without throwing a raw TypeError", async ({ expect }) => {
148
+ await expect(branchPaymentsSchema.validate({ products: { pro: null } }, { abortEarly: false })).rejects.toThrowErrorMatchingInlineSnapshot(`[ValidationError: products cannot be null]`);
149
+ });
150
+ (void 0)?.test("branchPaymentsSchema rejects null product line entries without throwing a raw TypeError", async ({ expect }) => {
151
+ await expect(branchPaymentsSchema.validate({
152
+ productLines: { teamLine: null },
153
+ products: { pro: {
154
+ customerType: "user",
155
+ productLineId: "teamLine",
156
+ prices: {}
157
+ } }
158
+ }, { abortEarly: false })).rejects.toThrowErrorMatchingInlineSnapshot(`[ValidationError: productLines cannot be null]`);
159
+ });
160
+ (void 0)?.test("branchPaymentsSchema rejects a product whose customer type differs from its product line", async ({ expect }) => {
161
+ await expect(branchPaymentsSchema.validate({
162
+ productLines: { teamLine: { customerType: "team" } },
163
+ products: { pro: {
164
+ customerType: "user",
165
+ productLineId: "teamLine",
166
+ prices: {}
167
+ } }
168
+ }, { abortEarly: false })).rejects.toThrowErrorMatchingInlineSnapshot(`[ValidationError: Product "pro" has customer type "user" but its product line "teamLine" has customer type "team"]`);
169
+ });
170
+ (void 0)?.test("branchPaymentsSchema lets productLineId schema reject empty IDs", async ({ expect }) => {
171
+ await expect(branchPaymentsSchema.validate({ products: { pro: {
172
+ customerType: "user",
173
+ productLineId: "",
174
+ prices: {}
175
+ } } }, { abortEarly: false })).rejects.toThrowErrorMatchingInlineSnapshot(`[ValidationError: productLineId must contain only letters, numbers, underscores, and hyphens, and not start with a hyphen]`);
176
+ });
177
+ const branchDomain = yupObject({});
178
+ const branchOnboardingSchema = yupObject({ requireEmailVerification: yupBoolean() });
179
+ const branchConfigSchema = canNoLongerBeOverridden(projectConfigSchema, ["sourceOfTruth", "project"]).concat(yupObject({
180
+ rbac: branchRbacSchema,
181
+ teams: yupObject({
182
+ createPersonalTeamOnSignUp: yupBoolean(),
183
+ allowClientTeamCreation: yupBoolean()
184
+ }),
185
+ users: yupObject({ allowClientUserDeletion: yupBoolean() }),
186
+ onboarding: branchOnboardingSchema,
187
+ apiKeys: branchApiKeysSchema,
188
+ apps: branchAppsSchema,
189
+ domains: branchDomain,
190
+ auth: branchAuthSchema,
191
+ emails: yupObject({
192
+ selectedThemeId: schemaFields.emailThemeSchema,
193
+ themes: schemaFields.emailThemeListSchema,
194
+ templates: schemaFields.emailTemplateListSchema
195
+ }),
196
+ payments: branchPaymentsSchema,
197
+ dbSync: yupObject({ externalDatabases: yupRecord(userSpecifiedIdSchema("externalDatabaseId"), yupObject({
198
+ type: yupString().oneOf(["postgres"]).defined(),
199
+ connectionString: yupString().when("type", {
200
+ is: "postgres",
201
+ then: (schema) => schema.defined(),
202
+ otherwise: (schema) => schema.optional()
203
+ })
204
+ })) }),
205
+ dataVault: yupObject({ stores: yupRecord(userSpecifiedIdSchema("storeId"), yupObject({ displayName: yupString() })) })
206
+ }));
207
+ const environmentAnalyticsSchema = yupObject({ queryFolders: yupRecord(userSpecifiedIdSchema("folderId"), yupObject({
208
+ displayName: yupString(),
209
+ sortOrder: yupNumber().optional(),
210
+ queries: yupRecord(userSpecifiedIdSchema("queryId"), yupObject({
211
+ displayName: yupString(),
212
+ sqlQuery: yupString(),
213
+ description: yupString().optional()
214
+ }))
215
+ })) });
216
+ const environmentConfigSchema = branchConfigSchema.concat(yupObject({
217
+ auth: branchConfigSchema.getNested("auth").concat(yupObject({ oauth: branchConfigSchema.getNested("auth").getNested("oauth").concat(yupObject({ providers: yupRecord(yupString().matches(permissionRegex), yupObject({
218
+ type: yupString().oneOf(allProviders).optional(),
219
+ isShared: yupBoolean(),
220
+ clientId: schemaFields.oauthClientIdSchema.optional(),
221
+ clientSecret: schemaFields.oauthClientSecretSchema.optional(),
222
+ facebookConfigId: schemaFields.oauthFacebookConfigIdSchema.optional(),
223
+ microsoftTenantId: schemaFields.oauthMicrosoftTenantIdSchema.optional(),
224
+ appleBundles: yupRecord(userSpecifiedIdSchema("appleBundleId"), yupObject({ bundleId: schemaFields.oauthAppleBundleIdSchema })).optional(),
225
+ allowSignIn: yupBoolean().optional(),
226
+ allowConnectedAccounts: yupBoolean().optional()
227
+ })) })) })),
228
+ emails: branchConfigSchema.getNested("emails").concat(yupObject({ server: yupObject({
229
+ isShared: yupBoolean(),
230
+ provider: yupString().oneOf([
231
+ "resend",
232
+ "smtp",
233
+ "managed"
234
+ ]).optional(),
235
+ host: schemaFields.emailHostSchema.optional().nonEmpty(),
236
+ port: schemaFields.emailPortSchema.optional(),
237
+ username: schemaFields.emailUsernameSchema.optional().nonEmpty(),
238
+ password: schemaFields.emailPasswordSchema.optional().nonEmpty().when(["provider", "isShared"], {
239
+ is: (provider, isShared) => provider === "managed" && isShared === false,
240
+ then: (schema) => schema.defined("Password is required when using managed email provider"),
241
+ otherwise: (schema) => schema.optional()
242
+ }),
243
+ senderName: schemaFields.emailSenderNameSchema.optional().nonEmpty(),
244
+ senderEmail: schemaFields.emailSenderEmailSchema.optional().nonEmpty(),
245
+ managedSubdomain: yupString().optional().nonEmpty().when(["provider", "isShared"], {
246
+ is: (provider, isShared) => provider === "managed" && isShared === false,
247
+ then: (schema) => schema.defined("Managed subdomain is required when using managed email provider"),
248
+ otherwise: (schema) => schema.optional()
249
+ }),
250
+ managedSenderLocalPart: yupString().optional().nonEmpty().when(["provider", "isShared"], {
251
+ is: (provider, isShared) => provider === "managed" && isShared === false,
252
+ then: (schema) => schema.defined("Managed sender local part is required when using managed email provider"),
253
+ otherwise: (schema) => schema.optional()
254
+ })
255
+ }) })),
256
+ domains: branchConfigSchema.getNested("domains").concat(yupObject({
257
+ allowLocalhost: yupBoolean(),
258
+ trustedDomains: yupRecord(userSpecifiedIdSchema("trustedDomainId"), yupObject({
259
+ baseUrl: schemaFields.wildcardUrlSchema.max(300),
260
+ handlerPath: schemaFields.handlerPathSchema.max(300)
261
+ }))
262
+ })),
263
+ payments: branchConfigSchema.getNested("payments").concat(yupObject({ testMode: yupBoolean() })),
264
+ analytics: environmentAnalyticsSchema,
265
+ customDashboards: schemaFields.customDashboardsSchema
266
+ }));
267
+ const organizationConfigSchema = environmentConfigSchema.concat(yupObject({}));
268
+ function migrateConfigOverride(type, oldUnmigratedConfigOverride) {
269
+ const isBranchOrHigher = [
270
+ "branch",
271
+ "environment",
272
+ "organization"
273
+ ].includes(type);
274
+ const isEnvironmentOrHigher = ["environment", "organization"].includes(type);
275
+ let res = oldUnmigratedConfigOverride;
276
+ if (isBranchOrHigher) res = renameProperty(res, "emails.theme", "selectedThemeId");
277
+ if (isEnvironmentOrHigher) res = mapProperty(res, (p) => p.join(".") === "domains.trustedDomains", (value) => {
278
+ if (Array.isArray(value)) return typedFromEntries(value.map((v, i) => [`${i}`, v]));
279
+ return value;
280
+ });
281
+ if (isBranchOrHigher) {
282
+ res = removeProperty(res, (p) => p.join(".") === "emails.themeList");
283
+ res = removeProperty(res, (p) => p.join(".") === "emails.templateList");
284
+ }
285
+ if (isBranchOrHigher) res = removeProperty(res, (p) => p.join(".") === "sourceOfTruth");
286
+ if (isBranchOrHigher) {
287
+ res = removeProperty(res, (p) => p.join(".") === "payments.stripeAccountId");
288
+ res = removeProperty(res, (p) => p.join(".") === "payments.stripeAccountSetupComplete");
289
+ }
290
+ if (isBranchOrHigher) res = removeProperty(res, (p) => p.length === 4 && p[0] === "payments" && p[1] === "items" && p[3] === "default");
291
+ if (isBranchOrHigher) res = renameProperty(res, "payments.offers", "products");
292
+ if (isBranchOrHigher) res = renameProperty(res, "payments.groups", "catalogs");
293
+ if (isBranchOrHigher) res = renameProperty(res, (p) => p.length === 4 && p[0] === "payments" && p[1] === "products" && p[3] === "groupId", (p) => "catalogId");
294
+ if (isBranchOrHigher) {
295
+ res = removeProperty(res, (p) => p[0] === "workflows");
296
+ res = removeProperty(res, (p) => p[0] === "apps" && p[1] === "installed" && p[2] === "workflows");
297
+ }
298
+ if (isBranchOrHigher) res = migrateCatalogsToProductLines(res);
299
+ if (isBranchOrHigher) res = mapProperty(res, (p) => p.length >= 4 && p[0] === "payments" && p[1] === "products" && p[p.length - 1] === "prices", (value) => {
300
+ if (value === "include-by-default") return {};
301
+ return value;
302
+ });
303
+ if (type === "project") res = removeProperty(res, (p) => p[0] === "sourceOfTruth");
304
+ return res;
305
+ }
306
+ (void 0)?.test("migrateConfigOverride removes legacy sourceOfTruth overrides", ({ expect }) => {
307
+ expect(migrateConfigOverride("project", { sourceOfTruth: {
308
+ type: "neon",
309
+ connectionStrings: { main: "postgres://user:password@neon.example.com/database" }
310
+ } })).toEqual({});
311
+ expect(migrateConfigOverride("project", {
312
+ "sourceOfTruth.type": "postgres",
313
+ "sourceOfTruth.connectionString": "postgres://user:password@host:5432/database"
314
+ })).toEqual({});
315
+ });
316
+ function removeProperty(obj, pathCond) {
317
+ return mapProperty(obj, pathCond, () => void 0);
318
+ }
319
+ function mapProperty(obj, pathCond, mapper) {
320
+ const res = Array.isArray(obj) ? [] : {};
321
+ for (const [key, value] of typedEntries(obj)) {
322
+ const path = key.split(".");
323
+ if (pathCond(path)) {
324
+ const newValue = mapper(value);
325
+ if (newValue !== void 0) set(res, key, newValue);
326
+ } else if (isObjectLike(value)) set(res, key, mapProperty(value, (p) => pathCond([...path, ...p]), mapper));
327
+ else set(res, key, value);
328
+ }
329
+ return res;
330
+ }
331
+ (void 0)?.test("mapProperty - basic property mapping", ({ expect }) => {
332
+ expect(mapProperty({ a: { b: { c: 1 } } }, (p) => p.join(".") === "a.b.c", (value) => value + 1)).toEqual({ a: { b: { c: 2 } } });
333
+ expect(mapProperty({ a: { b: { c: 1 } } }, (p) => p.join(".") === "a.b.d", (value) => value + 1)).toEqual({ a: { b: { c: 1 } } });
334
+ expect(mapProperty({ x: 5 }, (p) => p.join(".") === "x", (value) => value * 2)).toEqual({ x: 10 });
335
+ expect(mapProperty({ a: { b: { c: 1 } } }, (p) => p.join(".") === "b.c", (value) => value * 10)).toEqual({ a: { b: { c: 1 } } });
336
+ expect(mapProperty({ a: 1 }, (p) => p.join(".") === "b.c", (value) => value)).toEqual({ a: 1 });
337
+ expect(mapProperty({ "a.b": { c: 1 } }, (p) => p.join(".") === "a.b.c", (value) => value + 1)).toEqual({ "a.b": { c: 2 } });
338
+ expect(mapProperty({ a: { b: { c: 1 } } }, (p) => p.length === 3 && p[0] === "a" && p[1] === "b", (value) => value + 1)).toEqual({ a: { b: { c: 2 } } });
339
+ const sentinelToEmpty = (v) => v === "include-by-default" ? {} : v;
340
+ const sentinelPred = (p) => p.length >= 4 && p[0] === "payments" && p[1] === "products" && p[p.length - 1] === "prices";
341
+ expect(mapProperty({ "payments.products.x.prices": "include-by-default" }, sentinelPred, sentinelToEmpty)).toEqual({ "payments.products.x.prices": {} });
342
+ expect(mapProperty({ payments: { products: { x: { prices: "include-by-default" } } } }, sentinelPred, sentinelToEmpty)).toEqual({ payments: { products: { x: { prices: {} } } } });
343
+ expect(mapProperty({ "payments.products": { x: { prices: "include-by-default" } } }, sentinelPred, sentinelToEmpty)).toEqual({ "payments.products": { x: { prices: {} } } });
344
+ expect(mapProperty({ "payments.products.my.product.prices": "include-by-default" }, sentinelPred, sentinelToEmpty)).toEqual({ "payments.products.my.product.prices": {} });
345
+ });
346
+ function renameProperty(obj, oldPath, newName) {
347
+ const pathCond = typeof oldPath === "function" ? oldPath : (p) => p.join(".") === oldPath;
348
+ const pathMapper = typeof newName === "function" ? newName : (p) => newName;
349
+ const res = Array.isArray(obj) ? [] : {};
350
+ for (const [key, originalValue] of typedEntries(obj)) {
351
+ const path = key.split(".");
352
+ for (let i = 0; i < path.length; i++) {
353
+ const pathPrefix = path.slice(0, i + 1);
354
+ if (pathCond(pathPrefix)) {
355
+ const name = pathMapper(pathPrefix);
356
+ if (name.includes(".")) throw new HexclaveAssertionError(`newName must not contain a dot. Provided: ${name}`);
357
+ path[i] = name;
358
+ }
359
+ }
360
+ const value = isObjectLike(originalValue) ? renameProperty(originalValue, (p) => pathCond([...path, ...p]), (p) => pathMapper([...path, ...p])) : originalValue;
361
+ set(res, path.join("."), value);
362
+ }
363
+ return res;
364
+ }
365
+ (void 0)?.test("renameProperty", ({ expect }) => {
366
+ expect(renameProperty({ a: 1 }, "a", "b")).toEqual({ b: 1 });
367
+ expect(renameProperty({ b: { c: 1 } }, "b.c", "d")).toEqual({ b: { d: 1 } });
368
+ expect(renameProperty({ a: { b: { c: 1 } } }, "a.b.c", "d")).toEqual({ a: { b: { d: 1 } } });
369
+ expect(renameProperty({ a: { b: { c: 1 } } }, "a.b.c.d", "e")).toEqual({ a: { b: { c: 1 } } });
370
+ expect(renameProperty({ a: {
371
+ b: { c: 1 },
372
+ "b.c": 2
373
+ } }, "b.c", "d")).toEqual({ a: {
374
+ b: { c: 1 },
375
+ "b.c": 2
376
+ } });
377
+ expect(renameProperty({ a: { "b.c.d": 2 } }, "a.b.c", "e")).toEqual({ a: { "b.e.d": 2 } });
378
+ expect(renameProperty({ a: {
379
+ b: { c: 1 },
380
+ "b.c": 2
381
+ } }, "a.b.c", "d")).toEqual({ a: {
382
+ b: { d: 1 },
383
+ "b.d": 2
384
+ } });
385
+ expect(renameProperty({ a: { b: {
386
+ c: 1,
387
+ d: 2
388
+ } } }, "a.b.c", "d")).toEqual({ a: { b: { d: 2 } } });
389
+ expect(renameProperty({ a: { b: {
390
+ d: 2,
391
+ c: 1
392
+ } } }, "a.b.c", "d")).toEqual({ a: { b: { d: 1 } } });
393
+ expect(renameProperty({ a: 1 }, (p) => p.length === 1 && p[0] === "a", (p) => "b")).toEqual({ b: 1 });
394
+ expect(renameProperty({ a: { b: { c: 1 } } }, (p) => p.length === 3 && p[0] === "a" && p[1] === "b" && p[2] === "c", (p) => "d")).toEqual({ a: { b: { d: 1 } } });
395
+ expect(renameProperty({ a: { b: { c: 1 } } }, (p) => false, (p) => "e")).toEqual({ a: { b: { c: 1 } } });
396
+ expect(renameProperty({ a: { b: { a: 1 } } }, (p) => p[p.length - 1] === "a", (p) => "c")).toEqual({ c: { b: { c: 1 } } });
397
+ expect(() => renameProperty({ a: 1 }, "a", "b.c")).toThrow();
398
+ });
399
+ const projectConfigDefaults = {
400
+ sourceOfTruth: { type: "hosted" },
401
+ project: { requirePublishableClientKey: false }
402
+ };
403
+ const branchConfigDefaults = {};
404
+ const environmentConfigDefaults = {};
405
+ const organizationConfigDefaults = {
406
+ rbac: {
407
+ permissions: (key) => ({
408
+ containedPermissionIds: (key) => void 0,
409
+ description: void 0,
410
+ scope: void 0
411
+ }),
412
+ defaultPermissions: {
413
+ teamCreator: (key) => void 0,
414
+ teamMember: (key) => void 0,
415
+ signUp: (key) => void 0
416
+ }
417
+ },
418
+ apiKeys: { enabled: {
419
+ team: false,
420
+ user: false
421
+ } },
422
+ apps: { installed: typedFromEntries(appIds.map((appId) => [appId, { enabled: false }])) },
423
+ teams: {
424
+ createPersonalTeamOnSignUp: false,
425
+ allowClientTeamCreation: false
426
+ },
427
+ users: { allowClientUserDeletion: false },
428
+ onboarding: { requireEmailVerification: false },
429
+ domains: {
430
+ allowLocalhost: false,
431
+ trustedDomains: (key) => ({
432
+ baseUrl: void 0,
433
+ handlerPath: "/handler"
434
+ })
435
+ },
436
+ auth: {
437
+ allowSignUp: true,
438
+ password: { allowSignIn: false },
439
+ otp: { allowSignIn: false },
440
+ passkey: { allowSignIn: false },
441
+ oauth: {
442
+ accountMergeStrategy: "link_method",
443
+ providers: (key) => ({
444
+ type: void 0,
445
+ isShared: true,
446
+ allowSignIn: false,
447
+ allowConnectedAccounts: false,
448
+ clientId: void 0,
449
+ clientSecret: void 0,
450
+ facebookConfigId: void 0,
451
+ microsoftTenantId: void 0,
452
+ appleBundles: void 0
453
+ })
454
+ },
455
+ signUpRules: (key) => ({
456
+ enabled: false,
457
+ displayName: void 0,
458
+ priority: 0,
459
+ condition: void 0,
460
+ action: {
461
+ type: "allow",
462
+ message: void 0
463
+ }
464
+ }),
465
+ signUpRulesDefaultAction: "allow"
466
+ },
467
+ emails: {
468
+ server: {
469
+ isShared: true,
470
+ provider: "smtp",
471
+ host: void 0,
472
+ port: void 0,
473
+ username: void 0,
474
+ password: void 0,
475
+ senderName: void 0,
476
+ senderEmail: void 0,
477
+ managedSubdomain: void 0,
478
+ managedSenderLocalPart: void 0
479
+ },
480
+ selectedThemeId: DEFAULT_EMAIL_THEME_ID,
481
+ themes: typedAssign((key) => ({
482
+ displayName: "Unnamed Theme",
483
+ tsxSource: "Error: Theme config is missing TypeScript source code."
484
+ }), DEFAULT_EMAIL_THEMES),
485
+ templates: typedAssign((key) => ({
486
+ displayName: "Unnamed Template",
487
+ tsxSource: "Error: Template config is missing TypeScript source code.",
488
+ themeId: void 0
489
+ }), DEFAULT_EMAIL_TEMPLATES)
490
+ },
491
+ payments: {
492
+ blockNewPurchases: false,
493
+ testMode: true,
494
+ autoPay: void 0,
495
+ productLines: (key) => ({
496
+ displayName: void 0,
497
+ customerType: void 0
498
+ }),
499
+ products: (key) => ({
500
+ displayName: key,
501
+ productLineId: void 0,
502
+ customerType: "user",
503
+ freeTrial: void 0,
504
+ serverOnly: false,
505
+ stackable: void 0,
506
+ isAddOnTo: false,
507
+ prices: (key) => ({
508
+ ...typedFromEntries(SUPPORTED_CURRENCIES.map((currency) => [currency.code, void 0])),
509
+ interval: void 0,
510
+ serverOnly: false,
511
+ freeTrial: void 0
512
+ }),
513
+ includedItems: (key) => ({
514
+ quantity: 0,
515
+ repeat: "never",
516
+ expires: "when-repeated"
517
+ })
518
+ }),
519
+ items: (key) => ({
520
+ displayName: key,
521
+ customerType: "user"
522
+ })
523
+ },
524
+ dbSync: { externalDatabases: (key) => ({
525
+ type: void 0,
526
+ connectionString: void 0
527
+ }) },
528
+ dataVault: { stores: (key) => ({ displayName: "Unnamed Vault" }) },
529
+ analytics: { queryFolders: (key) => ({
530
+ displayName: "Unnamed Folder",
531
+ sortOrder: 0,
532
+ queries: (queryKey) => ({
533
+ displayName: "Unnamed Query",
534
+ sqlQuery: "",
535
+ description: void 0
536
+ })
537
+ }) },
538
+ customDashboards: (key) => ({
539
+ displayName: "Unnamed Dashboard",
540
+ tsxSource: "Error: Dashboard config is missing source code."
541
+ })
542
+ };
543
+ typeAssertIs()();
544
+ typeAssertIs()();
545
+ function deepReplaceFunctionsWithObjects(obj, paths = []) {
546
+ const subPaths = (key) => {
547
+ return paths.filter((p) => p.split(".").length > 1 && p.split(".")[0] === key).map((p) => p.split(".").slice(1).join("."));
548
+ };
549
+ const currentPaths = [...new Set(paths.map((p) => p.split(".")[0]))];
550
+ return mapValues({
551
+ ...typeof obj === "function" ? filterUndefined(Object.fromEntries(currentPaths.map((k) => [k, obj(k)]))) : {},
552
+ ...obj
553
+ }, (v, k) => isObjectLike(v) ? deepReplaceFunctionsWithObjects(v, subPaths(k)) : v);
554
+ }
555
+ (void 0)?.test("deepReplaceFunctionsWithObjects", ({ expect }) => {
556
+ expect(deepReplaceFunctionsWithObjects(() => {})).toEqual({});
557
+ expect(deepReplaceFunctionsWithObjects({ a: 3 })).toEqual({ a: 3 });
558
+ expect(deepReplaceFunctionsWithObjects({ a: () => ({ b: 1 }) })).toEqual({ a: {} });
559
+ expect(deepReplaceFunctionsWithObjects({ a: () => ({ b: 1 }) }, ["a.c.d"])).toEqual({ a: { c: { b: 1 } } });
560
+ expect(deepReplaceFunctionsWithObjects(() => ({ b: 1 }), ["a"])).toEqual({ a: { b: 1 } });
561
+ expect(deepReplaceFunctionsWithObjects({ a: typedAssign(() => ({}), { b: { c: 1 } }) })).toEqual({ a: { b: { c: 1 } } });
562
+ });
563
+ function applyDefaults(defaults, config) {
564
+ const res = deepReplaceFunctionsWithObjects(defaults);
565
+ outer: for (const [key, mergeValue] of Object.entries(config)) if (!isObjectLike(mergeValue) && mergeValue !== null) set(res, key, mergeValue);
566
+ else {
567
+ const keyParts = key.split(".");
568
+ let baseValue = defaults;
569
+ let lastWasFunction = false;
570
+ for (const [index, part] of keyParts.entries()) {
571
+ if (!isObjectLike(baseValue)) {
572
+ set(res, key, mergeValue ?? null);
573
+ continue outer;
574
+ }
575
+ lastWasFunction = false;
576
+ baseValue = has(baseValue, part) ? get(baseValue, part) : typeof baseValue === "function" ? (lastWasFunction = true, baseValue)(part) : void 0;
577
+ }
578
+ if (lastWasFunction && mergeValue == null) set(res, key, null);
579
+ else if (!isObjectLike(baseValue)) set(res, key, mergeValue ?? baseValue ?? null);
580
+ else set(res, key, applyDefaults(baseValue, mergeValue ?? {}));
581
+ }
582
+ return res;
583
+ }
584
+ (void 0)?.test("applyDefaults", ({ expect }) => {
585
+ expect(applyDefaults({ a: 1 }, { a: 2 })).toEqual({ a: 2 });
586
+ expect(applyDefaults({ a: 1 }, { a: null })).toEqual({ a: 1 });
587
+ expect(applyDefaults({}, { a: 1 })).toEqual({ a: 1 });
588
+ expect(applyDefaults({ a: { b: 1 } }, { a: { b: 2 } })).toEqual({ a: { b: 2 } });
589
+ expect(applyDefaults({ a: { b: 1 } }, { a: { c: 2 } })).toEqual({ a: {
590
+ b: 1,
591
+ c: 2
592
+ } });
593
+ expect(applyDefaults({ a: { b: {
594
+ c: 1,
595
+ d: 2
596
+ } } }, { a: { b: {
597
+ d: 3,
598
+ e: 4
599
+ } } })).toEqual({ a: { b: {
600
+ c: 1,
601
+ d: 3,
602
+ e: 4
603
+ } } });
604
+ expect(applyDefaults((key) => ({ b: key }), { a: {} })).toEqual({ a: { b: "a" } });
605
+ expect(applyDefaults((key) => ({ b: key }), { a: null })).toEqual({ a: null });
606
+ expect(applyDefaults((key1) => (key2) => ({
607
+ a: key1,
608
+ b: key2
609
+ }), { c: { d: {} } })).toEqual({ c: { d: {
610
+ a: "c",
611
+ b: "d"
612
+ } } });
613
+ expect(applyDefaults({ a: (key) => ({ b: key }) }, { a: { c: { d: 1 } } })).toEqual({ a: { c: {
614
+ b: "c",
615
+ d: 1
616
+ } } });
617
+ expect(applyDefaults({ a: (key) => ({ b: key }) }, {})).toEqual({ a: {} });
618
+ expect(applyDefaults({ a: (key) => ({ b: key }) }, { a: null })).toEqual({ a: {} });
619
+ expect(applyDefaults({ a: (key) => ({ c: key }) }, { a: { b: null } })).toEqual({ a: { b: null } });
620
+ expect(applyDefaults({ a: { b: (key) => ({ b: key }) } }, {})).toEqual({ a: { b: {} } });
621
+ expect(applyDefaults(typedAssign(() => ({ b: 1 }), { a: {
622
+ b: 1,
623
+ c: 2
624
+ } }), { a: {} })).toEqual({ a: {
625
+ b: 1,
626
+ c: 2
627
+ } });
628
+ expect(applyDefaults(typedAssign(() => ({ b: 1 }), { a: {
629
+ b: 1,
630
+ c: 2
631
+ } }), { d: {} })).toEqual({
632
+ a: {
633
+ b: 1,
634
+ c: 2
635
+ },
636
+ d: { b: 1 }
637
+ });
638
+ expect(applyDefaults({ a: { b: 1 } }, { "a.c": 2 })).toEqual({
639
+ a: { b: 1 },
640
+ "a.c": 2
641
+ });
642
+ expect(applyDefaults({ a: { b: 1 } }, { "a.c": null })).toEqual({
643
+ a: { b: 1 },
644
+ "a.c": null
645
+ });
646
+ expect(applyDefaults({ a: { b: 1 } }, {
647
+ a: { b: 2 },
648
+ "a.b": null
649
+ })).toEqual({
650
+ a: { b: 2 },
651
+ "a.b": 1
652
+ });
653
+ expect(applyDefaults({ a: { b: { c: 1 } } }, {
654
+ a: { b: { c: 2 } },
655
+ "a.b.c": null
656
+ })).toEqual({
657
+ a: { b: { c: 2 } },
658
+ "a.b.c": 1
659
+ });
660
+ expect(applyDefaults({}, {
661
+ a: { b: 2 },
662
+ "a.b": null
663
+ })).toEqual({
664
+ a: { b: 2 },
665
+ "a.b": null
666
+ });
667
+ expect(applyDefaults({ a: {
668
+ b: 1,
669
+ c: 2
670
+ } }, { "a.c": null })).toEqual({
671
+ a: {
672
+ b: 1,
673
+ c: 2
674
+ },
675
+ "a.c": 2
676
+ });
677
+ expect(applyDefaults({ a: {
678
+ b: 1,
679
+ c: () => {}
680
+ } }, { "a.c": null })).toEqual({
681
+ a: {
682
+ b: 1,
683
+ c: {}
684
+ },
685
+ "a.c": {}
686
+ });
687
+ expect(applyDefaults({ a: {
688
+ b: 1,
689
+ c: () => {}
690
+ } }, { "a.c.d": null })).toEqual({
691
+ a: {
692
+ b: 1,
693
+ c: {}
694
+ },
695
+ "a.c.d": null
696
+ });
697
+ expect(applyDefaults({ a: { b: 1 } }, { "a.b": null })).toEqual({
698
+ a: { b: 1 },
699
+ "a.b": 1
700
+ });
701
+ expect(applyDefaults({ a: { b: { c: 1 } } }, { "a.b": null })).toEqual({
702
+ a: { b: { c: 1 } },
703
+ "a.b": { c: 1 }
704
+ });
705
+ expect(applyDefaults({ a: {} }, { "a.b": null })).toEqual({
706
+ a: {},
707
+ "a.b": null
708
+ });
709
+ expect(applyDefaults({ a: {} }, {
710
+ "a": { b: 1 },
711
+ "a.b": null
712
+ })).toEqual({
713
+ a: { b: 1 },
714
+ "a.b": null
715
+ });
716
+ expect(applyDefaults({ a: 1 }, { "a.b": null })).toEqual({
717
+ a: 1,
718
+ "a.b": null
719
+ });
720
+ expect(applyDefaults({ a: 1 }, { "a.b": 2 })).toEqual({
721
+ a: 1,
722
+ "a.b": 2
723
+ });
724
+ expect(applyDefaults({ a: null }, { "a.b": 2 })).toEqual({
725
+ a: null,
726
+ "a.b": 2
727
+ });
728
+ expect(applyDefaults({ a: { b: { c: 1 } } }, { "a.b": { d: 2 } })).toEqual({
729
+ a: { b: { c: 1 } },
730
+ "a.b": {
731
+ c: 1,
732
+ d: 2
733
+ }
734
+ });
735
+ expect(applyDefaults({ a: { b: { c: 1 } } }, { "a.b": null })).toEqual({
736
+ a: { b: { c: 1 } },
737
+ "a.b": { c: 1 }
738
+ });
739
+ expect(applyDefaults({ a: { b: { c: { d: 1 } } } }, { "a.b.c": {} })).toEqual({
740
+ a: { b: { c: { d: 1 } } },
741
+ "a.b.c": { d: 1 }
742
+ });
743
+ expect(applyDefaults({ a: () => ({ c: 1 }) }, { "a.b": { d: 2 } })).toEqual({
744
+ a: {},
745
+ "a.b": {
746
+ c: 1,
747
+ d: 2
748
+ }
749
+ });
750
+ expect(applyDefaults({ a: () => () => ({ d: 1 }) }, { "a.b": null })).toEqual({
751
+ a: {},
752
+ "a.b": null
753
+ });
754
+ expect(applyDefaults({ a: () => () => ({ d: 1 }) }, { "a.b.c": {} })).toEqual({
755
+ a: {},
756
+ "a.b.c": { d: 1 }
757
+ });
758
+ expect(applyDefaults({ a: { b: () => ({
759
+ c: 1,
760
+ d: 2
761
+ }) } }, { "a.b.x-y.c": 3 })).toEqual({
762
+ a: { b: {} },
763
+ "a.b.x-y.c": 3
764
+ });
765
+ expect(applyDefaults({ a: () => ({ c: 1 }) }, { "a.b.d": 2 })).toEqual({
766
+ a: {},
767
+ "a.b.d": 2
768
+ });
769
+ expect(applyDefaults({ a: () => ({ c: 1 }) }, {
770
+ "a.b.d": 2,
771
+ "a.e.d": 3
772
+ })).toEqual({
773
+ a: {},
774
+ "a.b.d": 2,
775
+ "a.e.d": 3
776
+ });
777
+ expect(applyDefaults({ a: () => ({ c: 1 }) }, {
778
+ "a.b.d": 2,
779
+ a: { b: { d: 3 } }
780
+ })).toEqual({
781
+ a: { b: {
782
+ c: 1,
783
+ d: 3
784
+ } },
785
+ "a.b.d": 2
786
+ });
787
+ expect(applyDefaults({ a: () => ({ c: 1 }) }, {
788
+ "a.b.d": 2,
789
+ a: { e: { d: 3 } }
790
+ })).toEqual({
791
+ a: { e: {
792
+ c: 1,
793
+ d: 3
794
+ } },
795
+ "a.b.d": 2
796
+ });
797
+ expect(applyDefaults({ a: () => ({ c: 1 }) }, {
798
+ "a.b": { d: { e: 2 } },
799
+ "a.b.d": null
800
+ })).toEqual({
801
+ a: {},
802
+ "a.b": {
803
+ c: 1,
804
+ d: { e: 2 }
805
+ },
806
+ "a.b.d": null
807
+ });
808
+ });
809
+ function applyProjectDefaults(config) {
810
+ return applyDefaults(projectConfigDefaults, config);
811
+ }
812
+ function applyBranchDefaults(config) {
813
+ return applyDefaults(branchConfigDefaults, applyDefaults(projectConfigDefaults, config));
814
+ }
815
+ function applyEnvironmentDefaults(config) {
816
+ return applyDefaults(environmentConfigDefaults, applyDefaults(branchConfigDefaults, applyDefaults(projectConfigDefaults, config)));
817
+ }
818
+ function applyOrganizationDefaults(config) {
819
+ return applyDefaults(organizationConfigDefaults, applyDefaults(environmentConfigDefaults, applyDefaults(branchConfigDefaults, applyDefaults(projectConfigDefaults, config))));
820
+ }
821
+ async function sanitizeProjectConfig(config) {
822
+ assertNormalized(config);
823
+ return {
824
+ ...config,
825
+ sourceOfTruth: { type: "hosted" }
826
+ };
827
+ }
828
+ async function sanitizeBranchConfig(config) {
829
+ assertNormalized(config);
830
+ return { ...await sanitizeProjectConfig(config) };
831
+ }
832
+ async function sanitizeEnvironmentConfig(config) {
833
+ assertNormalized(config);
834
+ return { ...await sanitizeBranchConfig(config) };
835
+ }
836
+ async function sanitizeOrganizationConfig(config) {
837
+ assertNormalized(config);
838
+ const prepared = await sanitizeEnvironmentConfig(config);
839
+ const themes = prepared.emails.themes;
840
+ const templates = config.emails.server.isShared ? DEFAULT_EMAIL_TEMPLATES : prepared.emails.templates;
841
+ const products = typedFromEntries(typedEntries(prepared.payments.products).map(([key, product]) => {
842
+ const isAddOnTo = product.isAddOnTo === false ? false : typedFromEntries(Object.keys(product.isAddOnTo).map((key) => [key, true]));
843
+ const prices = typedFromEntries(typedEntries(product.prices).map(([key, value]) => {
844
+ return [key, { ...value }];
845
+ }));
846
+ return [key, {
847
+ ...product,
848
+ isAddOnTo,
849
+ prices
850
+ }];
851
+ }));
852
+ const appSortIndices = new Map(Object.keys(ALL_APPS).map((appId, index) => [appId, index]));
853
+ const sortedRuleEntries = typedEntries(prepared.auth.signUpRules).sort((a, b) => {
854
+ const priorityA = a[1].priority;
855
+ const priorityB = b[1].priority;
856
+ if (priorityA !== priorityB) return priorityB - priorityA;
857
+ return stringCompare(a[0], b[0]);
858
+ });
859
+ return {
860
+ ...prepared,
861
+ auth: {
862
+ ...prepared.auth,
863
+ oauth: {
864
+ ...prepared.auth.oauth,
865
+ providers: typedFromEntries(typedEntries(prepared.auth.oauth.providers).filter(([key, value]) => value.type !== void 0))
866
+ },
867
+ signUpRules: typedFromEntries(sortedRuleEntries)
868
+ },
869
+ emails: {
870
+ ...prepared.emails,
871
+ selectedThemeId: has(themes, prepared.emails.selectedThemeId) ? prepared.emails.selectedThemeId : DEFAULT_EMAIL_THEME_ID,
872
+ themes,
873
+ templates
874
+ },
875
+ payments: {
876
+ ...prepared.payments,
877
+ products
878
+ },
879
+ apps: { installed: typedFromEntries(typedEntries(prepared.apps.installed).sort(([a], [b]) => appSortIndices.get(a) - appSortIndices.get(b))) }
880
+ };
881
+ }
882
+ /**
883
+ * Does not require a base config, and hence solely relies on the override itself to validate the config. If it returns
884
+ * no error, you know that the
885
+ *
886
+ * It's crucial that our DB never contains any configs that are not valid according to this function, as this would mean
887
+ * that the config object does not satisfy the ValidatedToHaveNoConfigOverrideErrors type (which is used as an assumption
888
+ * in a whole bunch of places in the code).
889
+ */
890
+ async function getConfigOverrideErrors(schema, configOverride, options = {}) {
891
+ if (typeof configOverride !== "object" || configOverride === null) return Result.error("Config override must be a non-null object.");
892
+ if (Object.getPrototypeOf(configOverride) !== Object.getPrototypeOf({})) return Result.error("Config override must be plain old JavaScript object.");
893
+ const ensureNoDotsInKeys = (obj) => {
894
+ if (typeof obj !== "object" || obj === null) return;
895
+ for (const entry of Object.entries(obj)) {
896
+ if (entry[0].includes(".")) return Result.error(`Key ${entry[0]} contains a dot, which is not allowed in config override.`);
897
+ const result = ensureNoDotsInKeys(entry[1]);
898
+ if (result) return result;
899
+ }
900
+ };
901
+ for (const key of Object.keys(configOverride)) {
902
+ const result = ensureNoDotsInKeys(configOverride[key]);
903
+ if (result) return result;
904
+ }
905
+ const reason = getInvalidConfigReason(configOverride, { configName: "override" });
906
+ if (reason) return Result.error("Invalid config format: " + reason);
907
+ const getSubSchema = (schema, key) => {
908
+ const keyParts = key.split(".");
909
+ if (!schema.hasNested(keyParts[0])) return;
910
+ const nestedSchema = schema.getNested(keyParts[0]);
911
+ if (nestedSchema.meta()?.stackConfigCanNoLongerBeOverridden && !options.allowPropertiesThatCanNoLongerBeOverridden) return;
912
+ if (keyParts.length === 1) return nestedSchema;
913
+ else return getSubSchema(nestedSchema, keyParts.slice(1).join("."));
914
+ };
915
+ const getRestrictedSchemaBase = (path, schema) => {
916
+ const schemaInfo = schema.meta()?.stackSchemaInfo;
917
+ switch (schemaInfo?.type) {
918
+ case "string": {
919
+ const description = schema.describe();
920
+ let res = yupString();
921
+ if (description.tests.some((t) => t.name === "uuid")) res = res.uuid();
922
+ return res;
923
+ }
924
+ case "number": return yupNumber();
925
+ case "boolean": return yupBoolean();
926
+ case "date": return yupDate();
927
+ case "mixed": return yupMixed();
928
+ case "array": throw new HexclaveAssertionError(`Arrays are not supported in config JSON files (besides tuples). Use a record instead.`, {
929
+ schemaInfo,
930
+ schema
931
+ });
932
+ case "tuple": return yupTuple(schemaInfo.items.map((s, index) => getRestrictedSchema(path + `[${index}]`, s)));
933
+ case "union": {
934
+ const schemas = schemaInfo.items;
935
+ const nonObjectSchemas = [...schemas.entries()].filter(([index, s]) => s.meta()?.stackSchemaInfo?.type !== "object");
936
+ const objectSchemas = schemas.filter((s) => s.meta()?.stackSchemaInfo?.type === "object");
937
+ const allObjectSchemaKeys = [...new Set(objectSchemas.flatMap((s) => Object.keys(s.fields)))];
938
+ const mergedObjectSchema = yupObject(Object.fromEntries(allObjectSchemaKeys.map((key) => [key, yupUnion(...objectSchemas.flatMap((s, index) => s.hasNested(key) ? [s.getNested(key)] : []))])));
939
+ return yupUnion(...nonObjectSchemas.map(([index, s]) => getRestrictedSchema(path + `|variant-${index}|`, s)), ...objectSchemas.length > 0 ? [getRestrictedSchema(path + (nonObjectSchemas.length > 0 ? `|variant|` : ""), mergedObjectSchema)] : []);
940
+ }
941
+ case "record": return yupRecord(getRestrictedSchema(path + ".key", schemaInfo.keySchema), getRestrictedSchema(path + ".value", schemaInfo.valueSchema));
942
+ case "object": {
943
+ const objectSchema = schema;
944
+ return yupObject(Object.fromEntries(Object.entries(objectSchema.fields).map(([key, value]) => [key, getRestrictedSchema(path + "." + key, value)])));
945
+ }
946
+ case "never": return yupNever();
947
+ default: throw new HexclaveAssertionError(`Unknown schema info at path ${path}: ${JSON.stringify(schemaInfo)}`, {
948
+ schemaInfo,
949
+ schema
950
+ });
951
+ }
952
+ };
953
+ const getRestrictedSchema = (path, schema) => {
954
+ let restricted = getRestrictedSchemaBase(path, schema);
955
+ restricted = restricted.nullable();
956
+ const description = schema.describe();
957
+ if (description.oneOf.length > 0) restricted = restricted.oneOf(description.oneOf);
958
+ if (description.notOneOf.length > 0) restricted = restricted.notOneOf(description.notOneOf);
959
+ return restricted;
960
+ };
961
+ for (const [key, value] of Object.entries(configOverride)) {
962
+ if (value === void 0) continue;
963
+ if (/^payments\.products\.[^.]+\.prices$/.test(key) && value === "include-by-default") return Result.error(`${key} must not be one of the following values: include-by-default`);
964
+ const subSchema = getSubSchema(schema, key);
965
+ if (!subSchema) {
966
+ const keySplit = key.split(".");
967
+ for (let i = 0; i < keySplit.length; i++) {
968
+ const prefix = keySplit.slice(0, i + 1).join(".");
969
+ if (!getSubSchema(schema, prefix)) return Result.error(`The key ${JSON.stringify(key)} is not valid (nested object not found in schema: ${JSON.stringify(prefix)}).`);
970
+ }
971
+ throw new HexclaveAssertionError("Something weird happened? Sub-schema for key is invalid but no prefix is invalid??", {
972
+ key,
973
+ subSchema
974
+ });
975
+ }
976
+ let restrictedSchema = getRestrictedSchema(key, subSchema);
977
+ try {
978
+ await restrictedSchema.validate(value, {
979
+ strict: true,
980
+ path: key,
981
+ context: { noUnknownPathPrefixes: [""] }
982
+ });
983
+ } catch (error) {
984
+ if (error instanceof yup$1.ValidationError) return Result.error(error.message);
985
+ throw error;
986
+ }
987
+ }
988
+ return Result.ok(null);
989
+ }
990
+ async function assertNoConfigOverrideErrors(schema, config, options = {}) {
991
+ const res = await getConfigOverrideErrors(schema, config, options);
992
+ if (res.status === "error") throw new HexclaveAssertionError(`Config override is invalid — at a place where it should have already been validated! ${res.error}`, {
993
+ options,
994
+ config
995
+ });
996
+ }
997
+ typeAssertIs()();
998
+ typeAssertExtends()();
999
+ typeAssertExtends()();
1000
+ /**
1001
+ * Checks whether there are any warnings in the incomplete config. A warning doesn't stop the config from being valid,
1002
+ * but may require action regardless.
1003
+ *
1004
+ * The DB can contain configs that are not valid according to this function, as long as they are valid according to
1005
+ * the getConfigOverrideErrors function. (This is necessary, because a changing base config may make an override invalid
1006
+ * that was previously valid.)
1007
+ */
1008
+ async function getIncompleteConfigWarnings(schema, incompleteConfig) {
1009
+ const overrideErrors = await getConfigOverrideErrors(schema, incompleteConfig, { allowPropertiesThatCanNoLongerBeOverridden: true });
1010
+ if (overrideErrors.status === "error") return overrideErrors;
1011
+ const withDefaults = applyDefaults(organizationConfigDefaults, applyDefaults(projectConfigDefaults, incompleteConfig));
1012
+ const droppedKeys = [];
1013
+ const normalizedWithDefaults = normalize(withDefaults, {
1014
+ onDotIntoNonObject: "ignore",
1015
+ droppedKeys
1016
+ });
1017
+ const incompleteConfigDotKeys = new Set(Object.keys(incompleteConfig).filter((k) => k.includes(".") && incompleteConfig[k] !== void 0));
1018
+ const relevantDroppedKeys = droppedKeys.filter((k) => incompleteConfigDotKeys.has(k));
1019
+ if (relevantDroppedKeys.length > 0) {
1020
+ const messages = relevantDroppedKeys.map((key) => {
1021
+ const segments = key.split(".");
1022
+ let current = normalizedWithDefaults;
1023
+ let lastExistingIdx = -1;
1024
+ for (let i = 0; i < segments.length - 1; i++) if (current != null && typeof current === "object" && !Array.isArray(current) && segments[i] in current) {
1025
+ current = current[segments[i]];
1026
+ lastExistingIdx = i;
1027
+ } else break;
1028
+ const nonExistentParent = segments.slice(0, lastExistingIdx + 2).join(".");
1029
+ const remainingSegments = segments.slice(lastExistingIdx + 2);
1030
+ let suggestion = "...";
1031
+ for (let i = remainingSegments.length - 1; i >= 0; i--) suggestion = `{ ${JSON.stringify(remainingSegments[i])}: ${suggestion} }`;
1032
+ suggestion = `{ ${JSON.stringify(nonExistentParent)}: ${suggestion} }`;
1033
+ return `Dot-notation key ${JSON.stringify(key)} will be silently ignored because it references non-existent parent ${JSON.stringify(nonExistentParent)}. Instead of dot notation, use nested object notation like this: ${suggestion}`;
1034
+ });
1035
+ return Result.error(messages.join("\n"));
1036
+ }
1037
+ let normalized;
1038
+ try {
1039
+ normalized = normalize(incompleteConfig, { onDotIntoNull: "empty-object" });
1040
+ } catch (error) {
1041
+ if (error instanceof NormalizationError) return Result.error(`Config is not normalizable. ` + error.message);
1042
+ throw error;
1043
+ }
1044
+ try {
1045
+ await schema.validate(normalized, {
1046
+ strict: true,
1047
+ context: { noUnknownPathPrefixes: [""] }
1048
+ });
1049
+ return Result.ok(null);
1050
+ } catch (error) {
1051
+ if (error instanceof yup$1.ValidationError) return Result.error(error.message);
1052
+ throw error;
1053
+ }
1054
+ }
1055
+ typeAssertExtends()();
1056
+ typeAssertExtends()();
1057
+ typeAssertExtends()();
1058
+ typeAssertExtends()();
1059
+ typeAssert()();
1060
+ typeAssert()();
1061
+ typeAssertExtends()();
1062
+
1063
+ //#endregion
1064
+ export { applyBranchDefaults, applyEnvironmentDefaults, applyOrganizationDefaults, applyProjectDefaults, assertNoConfigOverrideErrors, branchConfigSchema, branchPaymentsSchema, configLevels, environmentConfigSchema, getConfigOverrideErrors, getIncompleteConfigWarnings, migrateConfigOverride, organizationConfigSchema, projectConfigSchema, sanitizeBranchConfig, sanitizeEnvironmentConfig, sanitizeOrganizationConfig, sanitizeProjectConfig };
1065
+ //# sourceMappingURL=schema.js.map