@hexclave/shared 1.0.41 → 1.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1066) hide show
  1. package/dist/admin-interface-Y9EZqwD6.d.ts +379 -0
  2. package/dist/admin-interface-Y9EZqwD6.d.ts.map +1 -0
  3. package/dist/admin-metrics-bsOkw4YQ.d.ts +807 -0
  4. package/dist/admin-metrics-bsOkw4YQ.d.ts.map +1 -0
  5. package/dist/ai/image-limits.d.ts.map +1 -1
  6. package/dist/ai/image-limits.js +6 -7
  7. package/dist/ai/image-limits.js.map +1 -1
  8. package/dist/ai/llms/llms.d.ts.map +1 -1
  9. package/dist/ai/llms/llms.js +2 -4
  10. package/dist/ai/llms/llms.js.map +1 -1
  11. package/dist/ai/unified-prompts/reminders.js +3 -6
  12. package/dist/ai/unified-prompts/reminders.js.map +1 -1
  13. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -1
  14. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +2 -5
  15. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -1
  16. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.js +3 -6
  17. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.js.map +1 -1
  18. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.js +3 -6
  19. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.js.map +1 -1
  20. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.js +3 -6
  21. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.js.map +1 -1
  22. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js +3 -6
  23. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js.map +1 -1
  24. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js +3 -6
  25. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js.map +1 -1
  26. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts.map +1 -1
  27. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.js +5 -6
  28. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.js.map +1 -1
  29. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js +1 -2
  30. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js.map +1 -1
  31. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js +3 -6
  32. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js.map +1 -1
  33. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js +3 -6
  34. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js.map +1 -1
  35. package/dist/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -1
  36. package/dist/ai/unified-prompts/skill-site-prompt.js +2 -4
  37. package/dist/ai/unified-prompts/skill-site-prompt.js.map +1 -1
  38. package/dist/analytics-IjkAsefy.d.ts +14 -0
  39. package/dist/analytics-IjkAsefy.d.ts.map +1 -0
  40. package/dist/apps/apps-config.d.ts.map +1 -1
  41. package/dist/apps/apps-config.js +2 -3
  42. package/dist/apps/apps-config.js.map +1 -1
  43. package/dist/apps/apps-ui.d.ts +1 -2
  44. package/dist/apps/apps-ui.d.ts.map +1 -1
  45. package/dist/apps/apps-ui.js +4 -5
  46. package/dist/apps/apps-ui.js.map +1 -1
  47. package/dist/client-interface-iIw4nU5k.d.ts +447 -0
  48. package/dist/client-interface-iIw4nU5k.d.ts.map +1 -0
  49. package/dist/config/db-sync-mappings.js +2 -3
  50. package/dist/config/db-sync-mappings.js.map +1 -1
  51. package/dist/config/format.d.ts +2 -61
  52. package/dist/config/format.js +2 -192
  53. package/dist/config/format.js.map +1 -1
  54. package/dist/config/migrate-catalogs-to-product-lines.d.ts.map +1 -1
  55. package/dist/config/migrate-catalogs-to-product-lines.js +2 -196
  56. package/dist/config/migrate-catalogs-to-product-lines.js.map +1 -1
  57. package/dist/config/schema-fuzzer.test.js +18 -172
  58. package/dist/config/schema-fuzzer.test.js.map +1 -1
  59. package/dist/config/schema.d.ts +2 -2328
  60. package/dist/config/schema.js +6 -351
  61. package/dist/config/schema.js.map +1 -1
  62. package/dist/config-authoring.d.ts +1 -1
  63. package/dist/config-authoring.d.ts.map +1 -1
  64. package/dist/config-authoring.js +2 -3
  65. package/dist/config-authoring.js.map +1 -1
  66. package/dist/config-authoring.test.js +1 -3
  67. package/dist/config-authoring.test.js.map +1 -1
  68. package/dist/config-eval.d.ts.map +1 -1
  69. package/dist/config-eval.js +4 -46
  70. package/dist/config-eval.js.map +1 -1
  71. package/dist/config-rendering.d.ts.map +1 -1
  72. package/dist/config-rendering.js +2 -48
  73. package/dist/config-rendering.js.map +1 -1
  74. package/dist/connected-accounts-D5CKe50A.d.ts +67 -0
  75. package/dist/connected-accounts-D5CKe50A.d.ts.map +1 -0
  76. package/dist/contact-channels-DW8yQxlc.d.ts +180 -0
  77. package/dist/contact-channels-DW8yQxlc.d.ts.map +1 -0
  78. package/dist/country-codes-CRWDroBE.d.ts +11 -0
  79. package/dist/country-codes-CRWDroBE.d.ts.map +1 -0
  80. package/dist/crud-CqmEW9s6.d.ts +98 -0
  81. package/dist/crud-CqmEW9s6.d.ts.map +1 -0
  82. package/dist/crud.d.ts +2 -98
  83. package/dist/crud.js +3 -71
  84. package/dist/crud.js.map +1 -1
  85. package/dist/currency-constants-Cq_q8twn.d.ts +45 -0
  86. package/dist/currency-constants-Cq_q8twn.d.ts.map +1 -0
  87. package/dist/current-user-BBoN3hsn.d.ts +284 -0
  88. package/dist/current-user-BBoN3hsn.d.ts.map +1 -0
  89. package/dist/dates-B6ne9iOR.d.ts +23 -0
  90. package/dist/dates-B6ne9iOR.d.ts.map +1 -0
  91. package/dist/email-outbox-B1wmVPRG.d.ts +1464 -0
  92. package/dist/{interface/crud/email-outbox.d.ts.map → email-outbox-B1wmVPRG.d.ts.map} +1 -1
  93. package/dist/emails-Ba4yEaCS.d.ts +40 -0
  94. package/dist/emails-Ba4yEaCS.d.ts.map +1 -0
  95. package/dist/errors-Cl-RUyed.d.ts +238 -0
  96. package/dist/errors-Cl-RUyed.d.ts.map +1 -0
  97. package/dist/esm/ai/image-limits.d.ts.map +1 -1
  98. package/dist/esm/ai/image-limits.js +5 -5
  99. package/dist/esm/ai/image-limits.js.map +1 -1
  100. package/dist/esm/ai/llms/llms.d.ts +1 -1
  101. package/dist/esm/ai/llms/llms.d.ts.map +1 -1
  102. package/dist/esm/ai/llms/llms.js +1 -2
  103. package/dist/esm/ai/llms/llms.js.map +1 -1
  104. package/dist/esm/ai/unified-prompts/reminders.js +2 -3
  105. package/dist/esm/ai/unified-prompts/reminders.js.map +1 -1
  106. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -1
  107. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +25 -28
  108. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -1
  109. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.js +1 -2
  110. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.js.map +1 -1
  111. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.js +1 -2
  112. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.js.map +1 -1
  113. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.js +1 -2
  114. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.js.map +1 -1
  115. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js +1 -2
  116. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js.map +1 -1
  117. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js +1 -2
  118. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js.map +1 -1
  119. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts.map +1 -1
  120. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.js +2 -3
  121. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.js.map +1 -1
  122. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js +1 -1
  123. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js.map +1 -1
  124. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js +1 -2
  125. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js.map +1 -1
  126. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js +1 -2
  127. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js.map +1 -1
  128. package/dist/esm/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -1
  129. package/dist/esm/ai/unified-prompts/skill-site-prompt.js +1 -2
  130. package/dist/esm/ai/unified-prompts/skill-site-prompt.js.map +1 -1
  131. package/dist/esm/apps/apps-config.d.ts.map +1 -1
  132. package/dist/esm/apps/apps-config.js +1 -1
  133. package/dist/esm/apps/apps-config.js.map +1 -1
  134. package/dist/esm/apps/apps-ui.d.ts +2 -3
  135. package/dist/esm/apps/apps-ui.d.ts.map +1 -1
  136. package/dist/esm/apps/apps-ui.js +2 -3
  137. package/dist/esm/apps/apps-ui.js.map +1 -1
  138. package/dist/esm/config/db-sync-mappings.js +1 -1
  139. package/dist/esm/config/db-sync-mappings.js.map +1 -1
  140. package/dist/esm/config/format.d.ts +1 -1
  141. package/dist/esm/config/format.d.ts.map +1 -1
  142. package/dist/esm/config/format.js +1 -190
  143. package/dist/esm/config/format.js.map +1 -1
  144. package/dist/esm/config/migrate-catalogs-to-product-lines.d.ts.map +1 -1
  145. package/dist/esm/config/migrate-catalogs-to-product-lines.js +1 -194
  146. package/dist/esm/config/migrate-catalogs-to-product-lines.js.map +1 -1
  147. package/dist/esm/config/schema-fuzzer.test.js +20 -173
  148. package/dist/esm/config/schema-fuzzer.test.js.map +1 -1
  149. package/dist/esm/config/schema.d.ts +227 -228
  150. package/dist/esm/config/schema.d.ts.map +1 -1
  151. package/dist/esm/config/schema.js +2 -347
  152. package/dist/esm/config/schema.js.map +1 -1
  153. package/dist/esm/config-authoring.d.ts +1 -1
  154. package/dist/esm/config-authoring.d.ts.map +1 -1
  155. package/dist/esm/config-authoring.js +1 -1
  156. package/dist/esm/config-authoring.js.map +1 -1
  157. package/dist/esm/config-authoring.test.js +2 -3
  158. package/dist/esm/config-authoring.test.js.map +1 -1
  159. package/dist/esm/config-eval.d.ts +1 -1
  160. package/dist/esm/config-eval.d.ts.map +1 -1
  161. package/dist/esm/config-eval.js +1 -43
  162. package/dist/esm/config-eval.js.map +1 -1
  163. package/dist/esm/config-rendering.d.ts.map +1 -1
  164. package/dist/esm/config-rendering.js +1 -46
  165. package/dist/esm/config-rendering.js.map +1 -1
  166. package/dist/esm/crud.d.ts +1 -1
  167. package/dist/esm/crud.d.ts.map +1 -1
  168. package/dist/esm/crud.js +2 -69
  169. package/dist/esm/crud.js.map +1 -1
  170. package/dist/esm/helpers/emails.js +1 -2
  171. package/dist/esm/helpers/emails.js.map +1 -1
  172. package/dist/esm/helpers/init-prompt.d.ts.map +1 -1
  173. package/dist/esm/helpers/init-prompt.js +1 -2
  174. package/dist/esm/helpers/init-prompt.js.map +1 -1
  175. package/dist/esm/helpers/password.d.ts +1 -1
  176. package/dist/esm/helpers/password.d.ts.map +1 -1
  177. package/dist/esm/helpers/password.js +1 -2
  178. package/dist/esm/helpers/password.js.map +1 -1
  179. package/dist/esm/helpers/production-mode.d.ts +1 -1
  180. package/dist/esm/helpers/production-mode.d.ts.map +1 -1
  181. package/dist/esm/helpers/production-mode.js +1 -2
  182. package/dist/esm/helpers/production-mode.js.map +1 -1
  183. package/dist/esm/helpers/support-sla.d.ts.map +1 -1
  184. package/dist/esm/helpers/support-sla.js +1 -1
  185. package/dist/esm/helpers/support-sla.js.map +1 -1
  186. package/dist/esm/helpers/support-sla.test.js +2 -3
  187. package/dist/esm/helpers/support-sla.test.js.map +1 -1
  188. package/dist/esm/helpers/vault/client-side.d.ts.map +1 -1
  189. package/dist/esm/helpers/vault/client-side.js +1 -20
  190. package/dist/esm/helpers/vault/client-side.js.map +1 -1
  191. package/dist/esm/helpers/vault/server-side.js +1 -2
  192. package/dist/esm/helpers/vault/server-side.js.map +1 -1
  193. package/dist/esm/hooks/use-async-callback.d.ts.map +1 -1
  194. package/dist/esm/hooks/use-async-callback.js +1 -2
  195. package/dist/esm/hooks/use-async-callback.js.map +1 -1
  196. package/dist/esm/hooks/use-async-external-store.d.ts +1 -1
  197. package/dist/esm/hooks/use-async-external-store.d.ts.map +1 -1
  198. package/dist/esm/hooks/use-async-external-store.js +1 -2
  199. package/dist/esm/hooks/use-async-external-store.js.map +1 -1
  200. package/dist/esm/hooks/use-hash.js +1 -2
  201. package/dist/esm/hooks/use-hash.js.map +1 -1
  202. package/dist/esm/hooks/use-hover.d.ts.map +1 -1
  203. package/dist/esm/hooks/use-hover.js +1 -2
  204. package/dist/esm/hooks/use-hover.js.map +1 -1
  205. package/dist/esm/hooks/use-strict-memo.d.ts.map +1 -1
  206. package/dist/esm/hooks/use-strict-memo.js +1 -70
  207. package/dist/esm/hooks/use-strict-memo.js.map +1 -1
  208. package/dist/esm/index.d.ts +4 -4
  209. package/dist/esm/index.js +1 -2
  210. package/dist/esm/interface/admin-interface.d.ts +19 -19
  211. package/dist/esm/interface/admin-interface.d.ts.map +1 -1
  212. package/dist/esm/interface/admin-interface.js +2 -3
  213. package/dist/esm/interface/admin-interface.js.map +1 -1
  214. package/dist/esm/interface/admin-metrics.d.ts +10 -10
  215. package/dist/esm/interface/admin-metrics.d.ts.map +1 -1
  216. package/dist/esm/interface/admin-metrics.js +1 -2
  217. package/dist/esm/interface/admin-metrics.js.map +1 -1
  218. package/dist/esm/interface/client-interface.d.ts +22 -22
  219. package/dist/esm/interface/client-interface.d.ts.map +1 -1
  220. package/dist/esm/interface/client-interface.js +32 -16
  221. package/dist/esm/interface/client-interface.js.map +1 -1
  222. package/dist/esm/interface/client-interface.test.js +84 -13
  223. package/dist/esm/interface/client-interface.test.js.map +1 -1
  224. package/dist/esm/interface/conversations.d.ts +8 -8
  225. package/dist/esm/interface/conversations.d.ts.map +1 -1
  226. package/dist/esm/interface/conversations.js +1 -2
  227. package/dist/esm/interface/conversations.js.map +1 -1
  228. package/dist/esm/interface/crud/analytics.d.ts.map +1 -1
  229. package/dist/esm/interface/crud/analytics.js +1 -1
  230. package/dist/esm/interface/crud/connected-accounts.d.ts +15 -17
  231. package/dist/esm/interface/crud/connected-accounts.d.ts.map +1 -1
  232. package/dist/esm/interface/crud/connected-accounts.js +1 -2
  233. package/dist/esm/interface/crud/connected-accounts.js.map +1 -1
  234. package/dist/esm/interface/crud/contact-channels.d.ts +24 -26
  235. package/dist/esm/interface/crud/contact-channels.d.ts.map +1 -1
  236. package/dist/esm/interface/crud/contact-channels.js +1 -2
  237. package/dist/esm/interface/crud/contact-channels.js.map +1 -1
  238. package/dist/esm/interface/crud/current-user.d.ts +22 -24
  239. package/dist/esm/interface/crud/current-user.d.ts.map +1 -1
  240. package/dist/esm/interface/crud/current-user.js +25 -29
  241. package/dist/esm/interface/crud/current-user.js.map +1 -1
  242. package/dist/esm/interface/crud/email-outbox.d.ts +30 -32
  243. package/dist/esm/interface/crud/email-outbox.d.ts.map +1 -1
  244. package/dist/esm/interface/crud/email-outbox.js +1 -2
  245. package/dist/esm/interface/crud/email-outbox.js.map +1 -1
  246. package/dist/esm/interface/crud/email-templates.d.ts +16 -18
  247. package/dist/esm/interface/crud/email-templates.d.ts.map +1 -1
  248. package/dist/esm/interface/crud/email-templates.js +1 -2
  249. package/dist/esm/interface/crud/email-templates.js.map +1 -1
  250. package/dist/esm/interface/crud/emails.d.ts +6 -8
  251. package/dist/esm/interface/crud/emails.d.ts.map +1 -1
  252. package/dist/esm/interface/crud/emails.js +1 -2
  253. package/dist/esm/interface/crud/emails.js.map +1 -1
  254. package/dist/esm/interface/crud/internal-api-keys.d.ts +16 -18
  255. package/dist/esm/interface/crud/internal-api-keys.d.ts.map +1 -1
  256. package/dist/esm/interface/crud/internal-api-keys.js +1 -2
  257. package/dist/esm/interface/crud/internal-api-keys.js.map +1 -1
  258. package/dist/esm/interface/crud/invoices.d.ts.map +1 -1
  259. package/dist/esm/interface/crud/invoices.js +1 -2
  260. package/dist/esm/interface/crud/invoices.js.map +1 -1
  261. package/dist/esm/interface/crud/items.d.ts +6 -8
  262. package/dist/esm/interface/crud/items.d.ts.map +1 -1
  263. package/dist/esm/interface/crud/items.js +12 -16
  264. package/dist/esm/interface/crud/items.js.map +1 -1
  265. package/dist/esm/interface/crud/notification-preferences.d.ts +6 -8
  266. package/dist/esm/interface/crud/notification-preferences.d.ts.map +1 -1
  267. package/dist/esm/interface/crud/notification-preferences.js +8 -12
  268. package/dist/esm/interface/crud/notification-preferences.js.map +1 -1
  269. package/dist/esm/interface/crud/oauth-providers.d.ts +24 -26
  270. package/dist/esm/interface/crud/oauth-providers.d.ts.map +1 -1
  271. package/dist/esm/interface/crud/oauth-providers.js +1 -2
  272. package/dist/esm/interface/crud/oauth-providers.js.map +1 -1
  273. package/dist/esm/interface/crud/products.d.ts +21 -22
  274. package/dist/esm/interface/crud/products.d.ts.map +1 -1
  275. package/dist/esm/interface/crud/products.js +3 -2
  276. package/dist/esm/interface/crud/products.js.map +1 -1
  277. package/dist/esm/interface/crud/project-api-keys.d.ts +5 -6
  278. package/dist/esm/interface/crud/project-api-keys.d.ts.map +1 -1
  279. package/dist/esm/interface/crud/project-api-keys.js +1 -2
  280. package/dist/esm/interface/crud/project-api-keys.js.map +1 -1
  281. package/dist/esm/interface/crud/project-permissions.d.ts +29 -31
  282. package/dist/esm/interface/crud/project-permissions.d.ts.map +1 -1
  283. package/dist/esm/interface/crud/project-permissions.js +1 -2
  284. package/dist/esm/interface/crud/project-permissions.js.map +1 -1
  285. package/dist/esm/interface/crud/projects.d.ts +63 -65
  286. package/dist/esm/interface/crud/projects.d.ts.map +1 -1
  287. package/dist/esm/interface/crud/projects.js +3 -2
  288. package/dist/esm/interface/crud/projects.js.map +1 -1
  289. package/dist/esm/interface/crud/session-replays.d.ts.map +1 -1
  290. package/dist/esm/interface/crud/session-replays.js +1 -1
  291. package/dist/esm/interface/crud/sessions.d.ts +15 -17
  292. package/dist/esm/interface/crud/sessions.d.ts.map +1 -1
  293. package/dist/esm/interface/crud/sessions.js +1 -2
  294. package/dist/esm/interface/crud/sessions.js.map +1 -1
  295. package/dist/esm/interface/crud/sign-up-rules.d.ts.map +1 -1
  296. package/dist/esm/interface/crud/sign-up-rules.js +1 -1
  297. package/dist/esm/interface/crud/svix-token.d.ts +8 -10
  298. package/dist/esm/interface/crud/svix-token.d.ts.map +1 -1
  299. package/dist/esm/interface/crud/svix-token.js +1 -2
  300. package/dist/esm/interface/crud/svix-token.js.map +1 -1
  301. package/dist/esm/interface/crud/team-invitation-details.d.ts +6 -8
  302. package/dist/esm/interface/crud/team-invitation-details.d.ts.map +1 -1
  303. package/dist/esm/interface/crud/team-invitation-details.js +1 -2
  304. package/dist/esm/interface/crud/team-invitation-details.js.map +1 -1
  305. package/dist/esm/interface/crud/team-invitation.d.ts +7 -9
  306. package/dist/esm/interface/crud/team-invitation.d.ts.map +1 -1
  307. package/dist/esm/interface/crud/team-invitation.js +1 -2
  308. package/dist/esm/interface/crud/team-invitation.js.map +1 -1
  309. package/dist/esm/interface/crud/team-member-profiles.d.ts +36 -38
  310. package/dist/esm/interface/crud/team-member-profiles.d.ts.map +1 -1
  311. package/dist/esm/interface/crud/team-member-profiles.js +1 -2
  312. package/dist/esm/interface/crud/team-member-profiles.js.map +1 -1
  313. package/dist/esm/interface/crud/team-memberships.d.ts +14 -16
  314. package/dist/esm/interface/crud/team-memberships.d.ts.map +1 -1
  315. package/dist/esm/interface/crud/team-memberships.js +1 -2
  316. package/dist/esm/interface/crud/team-memberships.js.map +1 -1
  317. package/dist/esm/interface/crud/team-permissions.d.ts +29 -31
  318. package/dist/esm/interface/crud/team-permissions.d.ts.map +1 -1
  319. package/dist/esm/interface/crud/team-permissions.js +1 -2
  320. package/dist/esm/interface/crud/team-permissions.js.map +1 -1
  321. package/dist/esm/interface/crud/teams.d.ts +36 -38
  322. package/dist/esm/interface/crud/teams.d.ts.map +1 -1
  323. package/dist/esm/interface/crud/teams.js +2 -4
  324. package/dist/esm/interface/crud/teams.js.map +1 -1
  325. package/dist/esm/interface/crud/transactions.d.ts +14 -16
  326. package/dist/esm/interface/crud/transactions.d.ts.map +1 -1
  327. package/dist/esm/interface/crud/transactions.js +7 -13
  328. package/dist/esm/interface/crud/transactions.js.map +1 -1
  329. package/dist/esm/interface/crud/users.d.ts +21 -22
  330. package/dist/esm/interface/crud/users.d.ts.map +1 -1
  331. package/dist/esm/interface/crud/users.js +9 -5
  332. package/dist/esm/interface/crud/users.js.map +1 -1
  333. package/dist/esm/interface/handler-urls.d.ts +1 -1
  334. package/dist/esm/interface/handler-urls.d.ts.map +1 -1
  335. package/dist/esm/interface/handler-urls.js +1 -2
  336. package/dist/esm/interface/page-component-versions.d.ts +1 -1
  337. package/dist/esm/interface/page-component-versions.d.ts.map +1 -1
  338. package/dist/esm/interface/page-component-versions.js +1 -2
  339. package/dist/esm/interface/page-component-versions.js.map +1 -1
  340. package/dist/esm/interface/plan-usage.d.ts +1 -1
  341. package/dist/esm/interface/plan-usage.d.ts.map +1 -1
  342. package/dist/esm/interface/plan-usage.js +1 -2
  343. package/dist/esm/interface/plan-usage.js.map +1 -1
  344. package/dist/esm/interface/server-interface.d.ts +19 -19
  345. package/dist/esm/interface/server-interface.d.ts.map +1 -1
  346. package/dist/esm/interface/server-interface.js +2 -3
  347. package/dist/esm/interface/server-interface.js.map +1 -1
  348. package/dist/esm/interface/webhooks.d.ts +4 -4
  349. package/dist/esm/interface/webhooks.d.ts.map +1 -1
  350. package/dist/esm/interface/webhooks.js +1 -2
  351. package/dist/esm/interface/webhooks.js.map +1 -1
  352. package/dist/esm/known-errors.d.ts +2 -2
  353. package/dist/esm/known-errors.d.ts.map +1 -1
  354. package/dist/esm/known-errors.js +10 -21
  355. package/dist/esm/known-errors.js.map +1 -1
  356. package/dist/esm/payments/payment-methods.d.ts.map +1 -1
  357. package/dist/esm/payments/payment-methods.js +1 -1
  358. package/dist/esm/payments/payment-methods.js.map +1 -1
  359. package/dist/esm/payments/stripe-limits.d.ts.map +1 -1
  360. package/dist/esm/payments/stripe-limits.js +1 -1
  361. package/dist/esm/payments/stripe-limits.js.map +1 -1
  362. package/dist/esm/plans.d.ts.map +1 -1
  363. package/dist/esm/plans.js +1 -1
  364. package/dist/esm/plans.js.map +1 -1
  365. package/dist/esm/schema-fields.d.ts +14 -14
  366. package/dist/esm/schema-fields.d.ts.map +1 -1
  367. package/dist/esm/schema-fields.js +3 -64
  368. package/dist/esm/schema-fields.js.map +1 -1
  369. package/dist/esm/sessions.d.ts +6 -6
  370. package/dist/esm/sessions.d.ts.map +1 -1
  371. package/dist/esm/sessions.js +1 -2
  372. package/dist/esm/sessions.js.map +1 -1
  373. package/dist/esm/sessions.test.js +2 -3
  374. package/dist/esm/sessions.test.js.map +1 -1
  375. package/dist/esm/utils/analytics-clickmap-overlay.d.ts.map +1 -1
  376. package/dist/esm/utils/analytics-clickmap-overlay.js +1 -1
  377. package/dist/esm/utils/api-keys.d.ts.map +1 -1
  378. package/dist/esm/utils/api-keys.js +1 -2
  379. package/dist/esm/utils/api-keys.js.map +1 -1
  380. package/dist/esm/utils/arrays.d.ts.map +1 -1
  381. package/dist/esm/utils/arrays.js +1 -470
  382. package/dist/esm/utils/arrays.js.map +1 -1
  383. package/dist/esm/utils/auth-methods.d.ts.map +1 -1
  384. package/dist/esm/utils/auth-methods.js +1 -1
  385. package/dist/esm/utils/auth-methods.js.map +1 -1
  386. package/dist/esm/utils/base64.d.ts.map +1 -1
  387. package/dist/esm/utils/base64.js +1 -10
  388. package/dist/esm/utils/base64.js.map +1 -1
  389. package/dist/esm/utils/booleans.d.ts.map +1 -1
  390. package/dist/esm/utils/booleans.js +1 -25
  391. package/dist/esm/utils/booleans.js.map +1 -1
  392. package/dist/esm/utils/browser-compat.d.ts.map +1 -1
  393. package/dist/esm/utils/browser-compat.js +1 -1
  394. package/dist/esm/utils/browser-compat.js.map +1 -1
  395. package/dist/esm/utils/bytes.d.ts.map +1 -1
  396. package/dist/esm/utils/bytes.js +3 -198
  397. package/dist/esm/utils/bytes.js.map +1 -1
  398. package/dist/esm/utils/caches.d.ts +1 -1
  399. package/dist/esm/utils/caches.d.ts.map +1 -1
  400. package/dist/esm/utils/caches.js +1 -27
  401. package/dist/esm/utils/caches.js.map +1 -1
  402. package/dist/esm/utils/cel-fields.d.ts.map +1 -1
  403. package/dist/esm/utils/cel-fields.js +1 -2
  404. package/dist/esm/utils/cel-fields.js.map +1 -1
  405. package/dist/esm/utils/cloud-hosts.d.ts.map +1 -1
  406. package/dist/esm/utils/cloud-hosts.js +1 -27
  407. package/dist/esm/utils/cloud-hosts.js.map +1 -1
  408. package/dist/esm/utils/compile-time.d.ts.map +1 -1
  409. package/dist/esm/utils/compile-time.js +1 -1
  410. package/dist/esm/utils/compile-time.js.map +1 -1
  411. package/dist/esm/utils/country-codes.d.ts.map +1 -1
  412. package/dist/esm/utils/country-codes.js +1 -16
  413. package/dist/esm/utils/country-codes.js.map +1 -1
  414. package/dist/esm/utils/crypto.d.ts.map +1 -1
  415. package/dist/esm/utils/crypto.js +3 -113
  416. package/dist/esm/utils/crypto.js.map +1 -1
  417. package/dist/esm/utils/currencies.d.ts +1 -1
  418. package/dist/esm/utils/currencies.d.ts.map +1 -1
  419. package/dist/esm/utils/currencies.js +2 -37
  420. package/dist/esm/utils/currencies.js.map +1 -1
  421. package/dist/esm/utils/currency-constants.d.ts.map +1 -1
  422. package/dist/esm/utils/currency-constants.js +1 -1
  423. package/dist/esm/utils/currency-constants.js.map +1 -1
  424. package/dist/esm/utils/dates.d.ts.map +1 -1
  425. package/dist/esm/utils/dates.js +1 -44
  426. package/dist/esm/utils/dates.js.map +1 -1
  427. package/dist/esm/utils/dev-env-state-path.d.ts.map +1 -1
  428. package/dist/esm/utils/dev-env-state-path.js +1 -2
  429. package/dist/esm/utils/dev-env-state-path.js.map +1 -1
  430. package/dist/esm/utils/dev-tool.d.ts.map +1 -1
  431. package/dist/esm/utils/dev-tool.js +1 -1
  432. package/dist/esm/utils/dom.d.ts.map +1 -1
  433. package/dist/esm/utils/dom.js +1 -1
  434. package/dist/esm/utils/dom.js.map +1 -1
  435. package/dist/esm/utils/elements-chain.d.ts.map +1 -1
  436. package/dist/esm/utils/elements-chain.js +5 -50
  437. package/dist/esm/utils/elements-chain.js.map +1 -1
  438. package/dist/esm/utils/env.d.ts.map +1 -1
  439. package/dist/esm/utils/env.js +1 -2
  440. package/dist/esm/utils/env.js.map +1 -1
  441. package/dist/esm/utils/env.test.js +2 -3
  442. package/dist/esm/utils/env.test.js.map +1 -1
  443. package/dist/esm/utils/errors.d.ts +1 -1
  444. package/dist/esm/utils/errors.d.ts.map +1 -1
  445. package/dist/esm/utils/errors.js +1 -2
  446. package/dist/esm/utils/errors.js.map +1 -1
  447. package/dist/esm/utils/esbuild.d.ts +1 -1
  448. package/dist/esm/utils/esbuild.d.ts.map +1 -1
  449. package/dist/esm/utils/esbuild.js +2 -3
  450. package/dist/esm/utils/esbuild.js.map +1 -1
  451. package/dist/esm/utils/featurebase.d.ts.map +1 -1
  452. package/dist/esm/utils/featurebase.js +1 -2
  453. package/dist/esm/utils/featurebase.js.map +1 -1
  454. package/dist/esm/utils/fs.d.ts.map +1 -1
  455. package/dist/esm/utils/fs.js +1 -2
  456. package/dist/esm/utils/fs.js.map +1 -1
  457. package/dist/esm/utils/functions.d.ts.map +1 -1
  458. package/dist/esm/utils/functions.js +1 -24
  459. package/dist/esm/utils/functions.js.map +1 -1
  460. package/dist/esm/utils/geo.d.ts.map +1 -1
  461. package/dist/esm/utils/geo.js +1 -2
  462. package/dist/esm/utils/geo.js.map +1 -1
  463. package/dist/esm/utils/globals.d.ts.map +1 -1
  464. package/dist/esm/utils/globals.js +1 -1
  465. package/dist/esm/utils/globals.js.map +1 -1
  466. package/dist/esm/utils/hashes.d.ts.map +1 -1
  467. package/dist/esm/utils/hashes.js +1 -2
  468. package/dist/esm/utils/hashes.js.map +1 -1
  469. package/dist/esm/utils/html.d.ts.map +1 -1
  470. package/dist/esm/utils/html.js +1 -19
  471. package/dist/esm/utils/html.js.map +1 -1
  472. package/dist/esm/utils/http.d.ts.map +1 -1
  473. package/dist/esm/utils/http.js +1 -19
  474. package/dist/esm/utils/http.js.map +1 -1
  475. package/dist/esm/utils/ips.d.ts.map +1 -1
  476. package/dist/esm/utils/ips.js +1 -25
  477. package/dist/esm/utils/ips.js.map +1 -1
  478. package/dist/esm/utils/json.d.ts +1 -1
  479. package/dist/esm/utils/json.d.ts.map +1 -1
  480. package/dist/esm/utils/json.js +1 -155
  481. package/dist/esm/utils/json.js.map +1 -1
  482. package/dist/esm/utils/jsx-editable-transpiler.d.ts.map +1 -1
  483. package/dist/esm/utils/jsx-editable-transpiler.js +1 -2
  484. package/dist/esm/utils/jsx-editable-transpiler.js.map +1 -1
  485. package/dist/esm/utils/jsx-editable-transpiler.test.js +2 -3
  486. package/dist/esm/utils/jsx-editable-transpiler.test.js.map +1 -1
  487. package/dist/esm/utils/jwt.d.ts.map +1 -1
  488. package/dist/esm/utils/jwt.js +1 -2
  489. package/dist/esm/utils/jwt.js.map +1 -1
  490. package/dist/esm/utils/locks.d.ts.map +1 -1
  491. package/dist/esm/utils/locks.js +1 -2
  492. package/dist/esm/utils/locks.js.map +1 -1
  493. package/dist/esm/utils/maps.d.ts.map +1 -1
  494. package/dist/esm/utils/maps.js +1 -111
  495. package/dist/esm/utils/maps.js.map +1 -1
  496. package/dist/esm/utils/math.d.ts.map +1 -1
  497. package/dist/esm/utils/math.js +1 -11
  498. package/dist/esm/utils/math.js.map +1 -1
  499. package/dist/esm/utils/monkey-patch.d.ts.map +1 -1
  500. package/dist/esm/utils/monkey-patch.js +2 -3
  501. package/dist/esm/utils/monkey-patch.js.map +1 -1
  502. package/dist/esm/utils/node-http.js +1 -2
  503. package/dist/esm/utils/node-http.js.map +1 -1
  504. package/dist/esm/utils/numbers.d.ts.map +1 -1
  505. package/dist/esm/utils/numbers.js +1 -45
  506. package/dist/esm/utils/numbers.js.map +1 -1
  507. package/dist/esm/utils/oauth.d.ts.map +1 -1
  508. package/dist/esm/utils/oauth.js +1 -1
  509. package/dist/esm/utils/oauth.js.map +1 -1
  510. package/dist/esm/utils/objects.d.ts.map +1 -1
  511. package/dist/esm/utils/objects.js +1 -622
  512. package/dist/esm/utils/objects.js.map +1 -1
  513. package/dist/esm/utils/paginated-lists.d.ts.map +1 -1
  514. package/dist/esm/utils/paginated-lists.js +1 -2
  515. package/dist/esm/utils/paginated-lists.js.map +1 -1
  516. package/dist/esm/utils/paginated-lists.test.js +2 -3
  517. package/dist/esm/utils/paginated-lists.test.js.map +1 -1
  518. package/dist/esm/utils/passkey.d.ts +1 -1
  519. package/dist/esm/utils/passkey.js +1 -1
  520. package/dist/esm/utils/promises.d.ts +1 -1
  521. package/dist/esm/utils/promises.d.ts.map +1 -1
  522. package/dist/esm/utils/promises.js +2 -161
  523. package/dist/esm/utils/promises.js.map +1 -1
  524. package/dist/esm/utils/proxies.d.ts.map +1 -1
  525. package/dist/esm/utils/proxies.js +1 -37
  526. package/dist/esm/utils/proxies.js.map +1 -1
  527. package/dist/esm/utils/react.d.ts.map +1 -1
  528. package/dist/esm/utils/react.js +1 -41
  529. package/dist/esm/utils/react.js.map +1 -1
  530. package/dist/esm/utils/redirect-urls.d.ts.map +1 -1
  531. package/dist/esm/utils/redirect-urls.js +2 -92
  532. package/dist/esm/utils/redirect-urls.js.map +1 -1
  533. package/dist/esm/utils/regex.js +1 -1
  534. package/dist/esm/utils/regex.js.map +1 -1
  535. package/dist/esm/utils/results.d.ts.map +1 -1
  536. package/dist/esm/utils/results.js +1 -213
  537. package/dist/esm/utils/results.js.map +1 -1
  538. package/dist/esm/utils/sentry.js +1 -1
  539. package/dist/esm/utils/sentry.js.map +1 -1
  540. package/dist/esm/utils/stores.d.ts +3 -3
  541. package/dist/esm/utils/stores.d.ts.map +1 -1
  542. package/dist/esm/utils/stores.js +1 -2
  543. package/dist/esm/utils/stores.js.map +1 -1
  544. package/dist/esm/utils/strings.d.ts.map +1 -1
  545. package/dist/esm/utils/strings.js +1 -251
  546. package/dist/esm/utils/strings.js.map +1 -1
  547. package/dist/esm/utils/strings.nicify.test.js +2 -3
  548. package/dist/esm/utils/strings.nicify.test.js.map +1 -1
  549. package/dist/esm/utils/telemetry.d.ts.map +1 -1
  550. package/dist/esm/utils/telemetry.js +1 -2
  551. package/dist/esm/utils/telemetry.js.map +1 -1
  552. package/dist/esm/utils/turnstile-browser.d.ts +1 -1
  553. package/dist/esm/utils/turnstile-browser.d.ts.map +1 -1
  554. package/dist/esm/utils/turnstile-browser.js +1 -2
  555. package/dist/esm/utils/turnstile-browser.js.map +1 -1
  556. package/dist/esm/utils/turnstile-flow.d.ts +1 -1
  557. package/dist/esm/utils/turnstile-flow.d.ts.map +1 -1
  558. package/dist/esm/utils/turnstile-flow.js +1 -2
  559. package/dist/esm/utils/turnstile-flow.js.map +1 -1
  560. package/dist/esm/utils/turnstile-flow.test.js +2 -3
  561. package/dist/esm/utils/turnstile-flow.test.js.map +1 -1
  562. package/dist/esm/utils/turnstile.d.ts.map +1 -1
  563. package/dist/esm/utils/turnstile.js +1 -1
  564. package/dist/esm/utils/turnstile.js.map +1 -1
  565. package/dist/esm/utils/typed-arrays.js +1 -2
  566. package/dist/esm/utils/typed-arrays.js.map +1 -1
  567. package/dist/esm/utils/types.d.ts +1 -1
  568. package/dist/esm/utils/types.d.ts.map +1 -1
  569. package/dist/esm/utils/types.js +1 -1
  570. package/dist/esm/utils/types.js.map +1 -1
  571. package/dist/esm/utils/unicode.d.ts.map +1 -1
  572. package/dist/esm/utils/unicode.js +1 -13
  573. package/dist/esm/utils/unicode.js.map +1 -1
  574. package/dist/esm/utils/urls.d.ts.map +1 -1
  575. package/dist/esm/utils/urls.js +1 -151
  576. package/dist/esm/utils/urls.js.map +1 -1
  577. package/dist/esm/utils/uuids.d.ts.map +1 -1
  578. package/dist/esm/utils/uuids.js +2 -26
  579. package/dist/esm/utils/uuids.js.map +1 -1
  580. package/dist/format-4JG1MGv5.d.ts +61 -0
  581. package/dist/format-4JG1MGv5.d.ts.map +1 -0
  582. package/dist/handler-urls-BHt3v8Ai.d.ts +70 -0
  583. package/dist/handler-urls-BHt3v8Ai.d.ts.map +1 -0
  584. package/dist/helpers/emails.js +2 -4
  585. package/dist/helpers/emails.js.map +1 -1
  586. package/dist/helpers/init-prompt.d.ts.map +1 -1
  587. package/dist/helpers/init-prompt.js +2 -4
  588. package/dist/helpers/init-prompt.js.map +1 -1
  589. package/dist/helpers/password.d.ts +1 -1
  590. package/dist/helpers/password.d.ts.map +1 -1
  591. package/dist/helpers/password.js +2 -4
  592. package/dist/helpers/password.js.map +1 -1
  593. package/dist/helpers/production-mode.d.ts +1 -1
  594. package/dist/helpers/production-mode.d.ts.map +1 -1
  595. package/dist/helpers/production-mode.js +2 -4
  596. package/dist/helpers/production-mode.js.map +1 -1
  597. package/dist/helpers/support-sla.d.ts.map +1 -1
  598. package/dist/helpers/support-sla.js +2 -3
  599. package/dist/helpers/support-sla.js.map +1 -1
  600. package/dist/helpers/support-sla.test.js +1 -3
  601. package/dist/helpers/support-sla.test.js.map +1 -1
  602. package/dist/helpers/vault/client-side.d.ts.map +1 -1
  603. package/dist/helpers/vault/client-side.js +2 -22
  604. package/dist/helpers/vault/client-side.js.map +1 -1
  605. package/dist/helpers/vault/server-side.js +2 -4
  606. package/dist/helpers/vault/server-side.js.map +1 -1
  607. package/dist/hooks/use-async-callback.d.ts.map +1 -1
  608. package/dist/hooks/use-async-callback.js +4 -5
  609. package/dist/hooks/use-async-callback.js.map +1 -1
  610. package/dist/hooks/use-async-external-store.d.ts +1 -1
  611. package/dist/hooks/use-async-external-store.d.ts.map +1 -1
  612. package/dist/hooks/use-async-external-store.js +2 -4
  613. package/dist/hooks/use-async-external-store.js.map +1 -1
  614. package/dist/hooks/use-hash.js +2 -4
  615. package/dist/hooks/use-hash.js.map +1 -1
  616. package/dist/hooks/use-hover.d.ts.map +1 -1
  617. package/dist/hooks/use-hover.js +2 -4
  618. package/dist/hooks/use-hover.js.map +1 -1
  619. package/dist/hooks/use-strict-memo.d.ts.map +1 -1
  620. package/dist/hooks/use-strict-memo.js +2 -72
  621. package/dist/hooks/use-strict-memo.js.map +1 -1
  622. package/dist/index.d.ts +4 -4
  623. package/dist/index.js +27 -29
  624. package/dist/interface/admin-interface.d.ts +3 -379
  625. package/dist/interface/admin-interface.js +3 -5
  626. package/dist/interface/admin-interface.js.map +1 -1
  627. package/dist/interface/admin-metrics.d.ts +2 -807
  628. package/dist/interface/admin-metrics.js +2 -4
  629. package/dist/interface/admin-metrics.js.map +1 -1
  630. package/dist/interface/client-interface.d.ts +2 -447
  631. package/dist/interface/client-interface.js +33 -18
  632. package/dist/interface/client-interface.js.map +1 -1
  633. package/dist/interface/client-interface.test.js +83 -13
  634. package/dist/interface/client-interface.test.js.map +1 -1
  635. package/dist/interface/conversations.d.ts +8 -8
  636. package/dist/interface/conversations.d.ts.map +1 -1
  637. package/dist/interface/conversations.js +2 -4
  638. package/dist/interface/conversations.js.map +1 -1
  639. package/dist/interface/crud/analytics.d.ts +2 -14
  640. package/dist/interface/crud/connected-accounts.d.ts +2 -68
  641. package/dist/interface/crud/connected-accounts.js +2 -4
  642. package/dist/interface/crud/connected-accounts.js.map +1 -1
  643. package/dist/interface/crud/contact-channels.d.ts +2 -181
  644. package/dist/interface/crud/contact-channels.js +2 -4
  645. package/dist/interface/crud/contact-channels.js.map +1 -1
  646. package/dist/interface/crud/current-user.d.ts +2 -285
  647. package/dist/interface/crud/current-user.js +2 -4
  648. package/dist/interface/crud/current-user.js.map +1 -1
  649. package/dist/interface/crud/email-outbox.d.ts +2 -1465
  650. package/dist/interface/crud/email-outbox.js +4 -5
  651. package/dist/interface/crud/email-outbox.js.map +1 -1
  652. package/dist/interface/crud/email-templates.d.ts +15 -16
  653. package/dist/interface/crud/email-templates.d.ts.map +1 -1
  654. package/dist/interface/crud/email-templates.js +2 -4
  655. package/dist/interface/crud/email-templates.js.map +1 -1
  656. package/dist/interface/crud/emails.d.ts +2 -41
  657. package/dist/interface/crud/emails.js +4 -5
  658. package/dist/interface/crud/emails.js.map +1 -1
  659. package/dist/interface/crud/internal-api-keys.d.ts +2 -140
  660. package/dist/interface/crud/internal-api-keys.js +2 -4
  661. package/dist/interface/crud/internal-api-keys.js.map +1 -1
  662. package/dist/interface/crud/invoices.d.ts +2 -43
  663. package/dist/interface/crud/invoices.js +2 -4
  664. package/dist/interface/crud/invoices.js.map +1 -1
  665. package/dist/interface/crud/items.d.ts +2 -30
  666. package/dist/interface/crud/items.js +2 -4
  667. package/dist/interface/crud/items.js.map +1 -1
  668. package/dist/interface/crud/notification-preferences.d.ts +2 -38
  669. package/dist/interface/crud/notification-preferences.js +2 -4
  670. package/dist/interface/crud/notification-preferences.js.map +1 -1
  671. package/dist/interface/crud/oauth-providers.d.ts +2 -186
  672. package/dist/interface/crud/oauth-providers.js +2 -4
  673. package/dist/interface/crud/oauth-providers.js.map +1 -1
  674. package/dist/interface/crud/products.d.ts +2 -182
  675. package/dist/interface/crud/products.js +4 -4
  676. package/dist/interface/crud/products.js.map +1 -1
  677. package/dist/interface/crud/project-api-keys.d.ts +2 -203
  678. package/dist/interface/crud/project-api-keys.js +2 -4
  679. package/dist/interface/crud/project-api-keys.js.map +1 -1
  680. package/dist/interface/crud/project-permissions.d.ts +2 -161
  681. package/dist/interface/crud/project-permissions.js +4 -5
  682. package/dist/interface/crud/project-permissions.js.map +1 -1
  683. package/dist/interface/crud/projects.d.ts +2 -901
  684. package/dist/interface/crud/projects.js +6 -5
  685. package/dist/interface/crud/projects.js.map +1 -1
  686. package/dist/interface/crud/session-replays.d.ts +2 -83
  687. package/dist/interface/crud/sessions.d.ts +2 -150
  688. package/dist/interface/crud/sessions.js +2 -4
  689. package/dist/interface/crud/sessions.js.map +1 -1
  690. package/dist/interface/crud/sign-up-rules.d.ts.map +1 -1
  691. package/dist/interface/crud/svix-token.d.ts +2 -31
  692. package/dist/interface/crud/svix-token.js +2 -4
  693. package/dist/interface/crud/svix-token.js.map +1 -1
  694. package/dist/interface/crud/team-invitation-details.d.ts +5 -6
  695. package/dist/interface/crud/team-invitation-details.d.ts.map +1 -1
  696. package/dist/interface/crud/team-invitation-details.js +4 -5
  697. package/dist/interface/crud/team-invitation-details.js.map +1 -1
  698. package/dist/interface/crud/team-invitation.d.ts +2 -54
  699. package/dist/interface/crud/team-invitation.js +4 -5
  700. package/dist/interface/crud/team-invitation.js.map +1 -1
  701. package/dist/interface/crud/team-member-profiles.d.ts +2 -286
  702. package/dist/interface/crud/team-member-profiles.js +4 -5
  703. package/dist/interface/crud/team-member-profiles.js.map +1 -1
  704. package/dist/interface/crud/team-memberships.d.ts +2 -75
  705. package/dist/interface/crud/team-memberships.js +2 -4
  706. package/dist/interface/crud/team-memberships.js.map +1 -1
  707. package/dist/interface/crud/team-permissions.d.ts +2 -169
  708. package/dist/interface/crud/team-permissions.js +4 -5
  709. package/dist/interface/crud/team-permissions.js.map +1 -1
  710. package/dist/interface/crud/teams.d.ts +2 -299
  711. package/dist/interface/crud/teams.js +5 -7
  712. package/dist/interface/crud/teams.js.map +1 -1
  713. package/dist/interface/crud/transactions.d.ts +2 -183
  714. package/dist/interface/crud/transactions.js +2 -4
  715. package/dist/interface/crud/transactions.js.map +1 -1
  716. package/dist/interface/crud/users.d.ts +2 -653
  717. package/dist/interface/crud/users.js +12 -8
  718. package/dist/interface/crud/users.js.map +1 -1
  719. package/dist/interface/handler-urls.d.ts +2 -51
  720. package/dist/interface/handler-urls.js +12 -14
  721. package/dist/interface/page-component-versions.d.ts +2 -25
  722. package/dist/interface/page-component-versions.js +2 -4
  723. package/dist/interface/page-component-versions.js.map +1 -1
  724. package/dist/interface/plan-usage.d.ts +2 -57
  725. package/dist/interface/plan-usage.js +2 -4
  726. package/dist/interface/plan-usage.js.map +1 -1
  727. package/dist/interface/server-interface.d.ts +2 -257
  728. package/dist/interface/server-interface.js +3 -5
  729. package/dist/interface/server-interface.js.map +1 -1
  730. package/dist/interface/webhooks.d.ts +2 -326
  731. package/dist/interface/webhooks.js +2 -4
  732. package/dist/interface/webhooks.js.map +1 -1
  733. package/dist/internal-api-keys-D8IYDodH.d.ts +139 -0
  734. package/dist/internal-api-keys-D8IYDodH.d.ts.map +1 -0
  735. package/dist/invoices-CHo9YKbI.d.ts +43 -0
  736. package/dist/invoices-CHo9YKbI.d.ts.map +1 -0
  737. package/dist/items-DlLSlVUD.d.ts +29 -0
  738. package/dist/items-DlLSlVUD.d.ts.map +1 -0
  739. package/dist/json-a1QIXu5z.d.ts +15 -0
  740. package/dist/json-a1QIXu5z.d.ts.map +1 -0
  741. package/dist/known-errors-Bm4a61wL.d.ts +575 -0
  742. package/dist/known-errors-Bm4a61wL.d.ts.map +1 -0
  743. package/dist/known-errors.d.ts +2 -575
  744. package/dist/known-errors.js +11 -23
  745. package/dist/known-errors.js.map +1 -1
  746. package/dist/notification-preferences-Bmzr_EOY.d.ts +37 -0
  747. package/dist/notification-preferences-Bmzr_EOY.d.ts.map +1 -0
  748. package/dist/oauth-providers-BMkKSSlA.d.ts +185 -0
  749. package/dist/oauth-providers-BMkKSSlA.d.ts.map +1 -0
  750. package/dist/objects-DkCkeBWE.d.ts +59 -0
  751. package/dist/objects-DkCkeBWE.d.ts.map +1 -0
  752. package/dist/passkey-CKg87UH-.d.ts +2 -0
  753. package/dist/payments/payment-methods.d.ts.map +1 -1
  754. package/dist/payments/payment-methods.js +2 -3
  755. package/dist/payments/payment-methods.js.map +1 -1
  756. package/dist/payments/stripe-limits.d.ts.map +1 -1
  757. package/dist/payments/stripe-limits.js +2 -3
  758. package/dist/payments/stripe-limits.js.map +1 -1
  759. package/dist/plan-usage-DfDoj5K4.d.ts +57 -0
  760. package/dist/plan-usage-DfDoj5K4.d.ts.map +1 -0
  761. package/dist/plans.d.ts.map +1 -1
  762. package/dist/plans.js +2 -3
  763. package/dist/plans.js.map +1 -1
  764. package/dist/products-Bs74ld-v.d.ts +182 -0
  765. package/dist/products-Bs74ld-v.d.ts.map +1 -0
  766. package/dist/project-api-keys--7V5X_UW.d.ts +203 -0
  767. package/dist/project-api-keys--7V5X_UW.d.ts.map +1 -0
  768. package/dist/project-permissions-kdi675F-.d.ts +160 -0
  769. package/dist/project-permissions-kdi675F-.d.ts.map +1 -0
  770. package/dist/projects-CFTNXRfG.d.ts +900 -0
  771. package/dist/projects-CFTNXRfG.d.ts.map +1 -0
  772. package/dist/results-DP3BzoL6.d.ts +70 -0
  773. package/dist/results-DP3BzoL6.d.ts.map +1 -0
  774. package/dist/{chunk-BE-pF4vm.js → rolldown-runtime-D6vf50IK.js} +12 -18
  775. package/dist/schema-CJwkGkdf.d.ts +2328 -0
  776. package/dist/schema-CJwkGkdf.d.ts.map +1 -0
  777. package/dist/schema-fields-DqGQ4kF7.d.ts +517 -0
  778. package/dist/schema-fields-DqGQ4kF7.d.ts.map +1 -0
  779. package/dist/schema-fields.d.ts +3 -518
  780. package/dist/schema-fields.js +21 -82
  781. package/dist/schema-fields.js.map +1 -1
  782. package/dist/server-interface-CgpxsLT_.d.ts +257 -0
  783. package/dist/server-interface-CgpxsLT_.d.ts.map +1 -0
  784. package/dist/session-replays-CXqhDpZq.d.ts +83 -0
  785. package/dist/session-replays-CXqhDpZq.d.ts.map +1 -0
  786. package/dist/sessions-B7Ko2Ldr.d.ts +149 -0
  787. package/dist/sessions-B7Ko2Ldr.d.ts.map +1 -0
  788. package/dist/sessions-d8qtvBUB.d.ts +175 -0
  789. package/dist/sessions-d8qtvBUB.d.ts.map +1 -0
  790. package/dist/sessions.d.ts +2 -175
  791. package/dist/sessions.js +4 -5
  792. package/dist/sessions.js.map +1 -1
  793. package/dist/sessions.test.js +1 -3
  794. package/dist/sessions.test.js.map +1 -1
  795. package/dist/strings-DWgkUybS.d.ts +76 -0
  796. package/dist/strings-DWgkUybS.d.ts.map +1 -0
  797. package/dist/svix-token-BsMrLGvy.d.ts +30 -0
  798. package/dist/svix-token-BsMrLGvy.d.ts.map +1 -0
  799. package/dist/team-invitation-Cyqt9oWw.d.ts +53 -0
  800. package/dist/team-invitation-Cyqt9oWw.d.ts.map +1 -0
  801. package/dist/team-member-profiles-BoDEqx-0.d.ts +285 -0
  802. package/dist/team-member-profiles-BoDEqx-0.d.ts.map +1 -0
  803. package/dist/team-memberships-DZHk2A5b.d.ts +74 -0
  804. package/dist/team-memberships-DZHk2A5b.d.ts.map +1 -0
  805. package/dist/team-permissions-DqOpaOWh.d.ts +168 -0
  806. package/dist/team-permissions-DqOpaOWh.d.ts.map +1 -0
  807. package/dist/teams-CQMcBnjM.d.ts +298 -0
  808. package/dist/teams-CQMcBnjM.d.ts.map +1 -0
  809. package/dist/transactions-DhnbvGH5.d.ts +182 -0
  810. package/dist/transactions-DhnbvGH5.d.ts.map +1 -0
  811. package/dist/types-DfTcxNtM.d.ts +77 -0
  812. package/dist/types-DfTcxNtM.d.ts.map +1 -0
  813. package/dist/users-DHNRwoSz.d.ts +653 -0
  814. package/dist/users-DHNRwoSz.d.ts.map +1 -0
  815. package/dist/utils/analytics-clickmap-overlay.d.ts.map +1 -1
  816. package/dist/utils/analytics-clickmap-overlay.js +2 -3
  817. package/dist/utils/analytics-clickmap-overlay.js.map +1 -1
  818. package/dist/utils/api-keys.d.ts.map +1 -1
  819. package/dist/utils/api-keys.js +4 -5
  820. package/dist/utils/api-keys.js.map +1 -1
  821. package/dist/utils/arrays.d.ts.map +1 -1
  822. package/dist/utils/arrays.js +2 -472
  823. package/dist/utils/arrays.js.map +1 -1
  824. package/dist/utils/auth-methods.d.ts.map +1 -1
  825. package/dist/utils/auth-methods.js +2 -3
  826. package/dist/utils/auth-methods.js.map +1 -1
  827. package/dist/utils/base64.d.ts.map +1 -1
  828. package/dist/utils/base64.js +2 -12
  829. package/dist/utils/base64.js.map +1 -1
  830. package/dist/utils/booleans.d.ts.map +1 -1
  831. package/dist/utils/booleans.js +2 -27
  832. package/dist/utils/booleans.js.map +1 -1
  833. package/dist/utils/browser-compat.d.ts.map +1 -1
  834. package/dist/utils/browser-compat.js +2 -3
  835. package/dist/utils/browser-compat.js.map +1 -1
  836. package/dist/utils/bytes.d.ts.map +1 -1
  837. package/dist/utils/bytes.js +4 -200
  838. package/dist/utils/bytes.js.map +1 -1
  839. package/dist/utils/caches.d.ts.map +1 -1
  840. package/dist/utils/caches.js +2 -29
  841. package/dist/utils/caches.js.map +1 -1
  842. package/dist/utils/cel-fields.d.ts.map +1 -1
  843. package/dist/utils/cel-fields.js +2 -4
  844. package/dist/utils/cel-fields.js.map +1 -1
  845. package/dist/utils/cloud-hosts.d.ts.map +1 -1
  846. package/dist/utils/cloud-hosts.js +2 -29
  847. package/dist/utils/cloud-hosts.js.map +1 -1
  848. package/dist/utils/compile-time.d.ts.map +1 -1
  849. package/dist/utils/compile-time.js +2 -3
  850. package/dist/utils/compile-time.js.map +1 -1
  851. package/dist/utils/country-codes.d.ts +2 -11
  852. package/dist/utils/country-codes.js +2 -18
  853. package/dist/utils/country-codes.js.map +1 -1
  854. package/dist/utils/crypto.d.ts.map +1 -1
  855. package/dist/utils/crypto.js +4 -115
  856. package/dist/utils/crypto.js.map +1 -1
  857. package/dist/utils/currencies.d.ts +1 -1
  858. package/dist/utils/currencies.d.ts.map +1 -1
  859. package/dist/utils/currencies.js +3 -39
  860. package/dist/utils/currencies.js.map +1 -1
  861. package/dist/utils/currency-constants.d.ts +2 -45
  862. package/dist/utils/currency-constants.js +2 -3
  863. package/dist/utils/currency-constants.js.map +1 -1
  864. package/dist/utils/dates.d.ts +2 -23
  865. package/dist/utils/dates.js +2 -46
  866. package/dist/utils/dates.js.map +1 -1
  867. package/dist/utils/dev-env-state-path.d.ts.map +1 -1
  868. package/dist/utils/dev-env-state-path.js +2 -4
  869. package/dist/utils/dev-env-state-path.js.map +1 -1
  870. package/dist/utils/dev-tool.d.ts.map +1 -1
  871. package/dist/utils/dev-tool.js +2 -3
  872. package/dist/utils/dev-tool.js.map +1 -1
  873. package/dist/utils/dom.d.ts.map +1 -1
  874. package/dist/utils/dom.js +2 -3
  875. package/dist/utils/dom.js.map +1 -1
  876. package/dist/utils/elements-chain.d.ts.map +1 -1
  877. package/dist/utils/elements-chain.js +6 -52
  878. package/dist/utils/elements-chain.js.map +1 -1
  879. package/dist/utils/env.d.ts.map +1 -1
  880. package/dist/utils/env.js +2 -4
  881. package/dist/utils/env.js.map +1 -1
  882. package/dist/utils/env.test.js +1 -3
  883. package/dist/utils/env.test.js.map +1 -1
  884. package/dist/utils/errors.d.ts +2 -238
  885. package/dist/utils/errors.js +2 -4
  886. package/dist/utils/errors.js.map +1 -1
  887. package/dist/utils/esbuild.d.ts +1 -1
  888. package/dist/utils/esbuild.d.ts.map +1 -1
  889. package/dist/utils/esbuild.js +5 -6
  890. package/dist/utils/esbuild.js.map +1 -1
  891. package/dist/utils/featurebase.d.ts.map +1 -1
  892. package/dist/utils/featurebase.js +2 -4
  893. package/dist/utils/featurebase.js.map +1 -1
  894. package/dist/utils/fs.d.ts.map +1 -1
  895. package/dist/utils/fs.js +5 -6
  896. package/dist/utils/fs.js.map +1 -1
  897. package/dist/utils/functions.d.ts.map +1 -1
  898. package/dist/utils/functions.js +2 -26
  899. package/dist/utils/functions.js.map +1 -1
  900. package/dist/utils/geo.d.ts.map +1 -1
  901. package/dist/utils/geo.js +2 -4
  902. package/dist/utils/geo.js.map +1 -1
  903. package/dist/utils/globals.d.ts.map +1 -1
  904. package/dist/utils/globals.js +2 -3
  905. package/dist/utils/globals.js.map +1 -1
  906. package/dist/utils/hashes.d.ts.map +1 -1
  907. package/dist/utils/hashes.js +4 -5
  908. package/dist/utils/hashes.js.map +1 -1
  909. package/dist/utils/html.d.ts.map +1 -1
  910. package/dist/utils/html.js +2 -21
  911. package/dist/utils/html.js.map +1 -1
  912. package/dist/utils/http.d.ts.map +1 -1
  913. package/dist/utils/http.js +2 -21
  914. package/dist/utils/http.js.map +1 -1
  915. package/dist/utils/ips.d.ts.map +1 -1
  916. package/dist/utils/ips.js +4 -28
  917. package/dist/utils/ips.js.map +1 -1
  918. package/dist/utils/json.d.ts +2 -15
  919. package/dist/utils/json.js +2 -157
  920. package/dist/utils/json.js.map +1 -1
  921. package/dist/utils/jsx-editable-transpiler.d.ts.map +1 -1
  922. package/dist/utils/jsx-editable-transpiler.js +7 -8
  923. package/dist/utils/jsx-editable-transpiler.js.map +1 -1
  924. package/dist/utils/jsx-editable-transpiler.test.js +1 -3
  925. package/dist/utils/jsx-editable-transpiler.test.js.map +1 -1
  926. package/dist/utils/jwt.d.ts.map +1 -1
  927. package/dist/utils/jwt.js +6 -7
  928. package/dist/utils/jwt.js.map +1 -1
  929. package/dist/utils/locks.d.ts.map +1 -1
  930. package/dist/utils/locks.js +2 -4
  931. package/dist/utils/locks.js.map +1 -1
  932. package/dist/utils/maps.d.ts.map +1 -1
  933. package/dist/utils/maps.js +2 -113
  934. package/dist/utils/maps.js.map +1 -1
  935. package/dist/utils/math.d.ts.map +1 -1
  936. package/dist/utils/math.js +2 -13
  937. package/dist/utils/math.js.map +1 -1
  938. package/dist/utils/monkey-patch.d.ts.map +1 -1
  939. package/dist/utils/monkey-patch.js +3 -5
  940. package/dist/utils/monkey-patch.js.map +1 -1
  941. package/dist/utils/node-http.js +2 -4
  942. package/dist/utils/node-http.js.map +1 -1
  943. package/dist/utils/numbers.d.ts.map +1 -1
  944. package/dist/utils/numbers.js +2 -47
  945. package/dist/utils/numbers.js.map +1 -1
  946. package/dist/utils/oauth.d.ts.map +1 -1
  947. package/dist/utils/oauth.js +2 -3
  948. package/dist/utils/oauth.js.map +1 -1
  949. package/dist/utils/objects.d.ts +2 -59
  950. package/dist/utils/objects.js +2 -624
  951. package/dist/utils/objects.js.map +1 -1
  952. package/dist/utils/paginated-lists.d.ts.map +1 -1
  953. package/dist/utils/paginated-lists.js +2 -4
  954. package/dist/utils/paginated-lists.js.map +1 -1
  955. package/dist/utils/paginated-lists.test.js +1 -3
  956. package/dist/utils/paginated-lists.test.js.map +1 -1
  957. package/dist/utils/passkey.d.ts +2 -2
  958. package/dist/utils/promises.d.ts +1 -1
  959. package/dist/utils/promises.d.ts.map +1 -1
  960. package/dist/utils/promises.js +3 -163
  961. package/dist/utils/promises.js.map +1 -1
  962. package/dist/utils/proxies.d.ts.map +1 -1
  963. package/dist/utils/proxies.js +2 -39
  964. package/dist/utils/proxies.js.map +1 -1
  965. package/dist/utils/react.d.ts.map +1 -1
  966. package/dist/utils/react.js +4 -44
  967. package/dist/utils/react.js.map +1 -1
  968. package/dist/utils/redirect-urls.d.ts.map +1 -1
  969. package/dist/utils/redirect-urls.js +3 -94
  970. package/dist/utils/redirect-urls.js.map +1 -1
  971. package/dist/utils/regex.js +2 -3
  972. package/dist/utils/regex.js.map +1 -1
  973. package/dist/utils/results.d.ts +2 -70
  974. package/dist/utils/results.js +2 -215
  975. package/dist/utils/results.js.map +1 -1
  976. package/dist/utils/sentry.js +2 -3
  977. package/dist/utils/sentry.js.map +1 -1
  978. package/dist/utils/stores.d.ts +1 -1
  979. package/dist/utils/stores.d.ts.map +1 -1
  980. package/dist/utils/stores.js +2 -4
  981. package/dist/utils/stores.js.map +1 -1
  982. package/dist/utils/strings.d.ts +2 -76
  983. package/dist/utils/strings.js +2 -253
  984. package/dist/utils/strings.js.map +1 -1
  985. package/dist/utils/strings.nicify.test.js +1 -3
  986. package/dist/utils/strings.nicify.test.js.map +1 -1
  987. package/dist/utils/telemetry.d.ts.map +1 -1
  988. package/dist/utils/telemetry.js +2 -4
  989. package/dist/utils/telemetry.js.map +1 -1
  990. package/dist/utils/turnstile-browser.d.ts.map +1 -1
  991. package/dist/utils/turnstile-browser.js +2 -4
  992. package/dist/utils/turnstile-browser.js.map +1 -1
  993. package/dist/utils/turnstile-flow.d.ts.map +1 -1
  994. package/dist/utils/turnstile-flow.js +2 -4
  995. package/dist/utils/turnstile-flow.js.map +1 -1
  996. package/dist/utils/turnstile-flow.test.js +1 -3
  997. package/dist/utils/turnstile-flow.test.js.map +1 -1
  998. package/dist/utils/turnstile.d.ts.map +1 -1
  999. package/dist/utils/turnstile.js +2 -3
  1000. package/dist/utils/turnstile.js.map +1 -1
  1001. package/dist/utils/typed-arrays.js +2 -4
  1002. package/dist/utils/typed-arrays.js.map +1 -1
  1003. package/dist/utils/types.d.ts +2 -77
  1004. package/dist/utils/types.js +2 -3
  1005. package/dist/utils/types.js.map +1 -1
  1006. package/dist/utils/unicode.d.ts.map +1 -1
  1007. package/dist/utils/unicode.js +2 -15
  1008. package/dist/utils/unicode.js.map +1 -1
  1009. package/dist/utils/urls.d.ts.map +1 -1
  1010. package/dist/utils/urls.js +2 -153
  1011. package/dist/utils/urls.js.map +1 -1
  1012. package/dist/utils/uuids.d.ts.map +1 -1
  1013. package/dist/utils/uuids.js +3 -28
  1014. package/dist/utils/uuids.js.map +1 -1
  1015. package/dist/webhooks-8Ts1Clcb.d.ts +326 -0
  1016. package/dist/webhooks-8Ts1Clcb.d.ts.map +1 -0
  1017. package/package.json +2 -8
  1018. package/src/interface/client-interface.test.ts +77 -12
  1019. package/src/interface/client-interface.ts +9 -9
  1020. package/dist/config/format.d.ts.map +0 -1
  1021. package/dist/config/schema.d.ts.map +0 -1
  1022. package/dist/crud.d.ts.map +0 -1
  1023. package/dist/interface/admin-interface.d.ts.map +0 -1
  1024. package/dist/interface/admin-metrics.d.ts.map +0 -1
  1025. package/dist/interface/client-interface.d.ts.map +0 -1
  1026. package/dist/interface/crud/analytics.d.ts.map +0 -1
  1027. package/dist/interface/crud/connected-accounts.d.ts.map +0 -1
  1028. package/dist/interface/crud/contact-channels.d.ts.map +0 -1
  1029. package/dist/interface/crud/current-user.d.ts.map +0 -1
  1030. package/dist/interface/crud/emails.d.ts.map +0 -1
  1031. package/dist/interface/crud/internal-api-keys.d.ts.map +0 -1
  1032. package/dist/interface/crud/invoices.d.ts.map +0 -1
  1033. package/dist/interface/crud/items.d.ts.map +0 -1
  1034. package/dist/interface/crud/notification-preferences.d.ts.map +0 -1
  1035. package/dist/interface/crud/oauth-providers.d.ts.map +0 -1
  1036. package/dist/interface/crud/products.d.ts.map +0 -1
  1037. package/dist/interface/crud/project-api-keys.d.ts.map +0 -1
  1038. package/dist/interface/crud/project-permissions.d.ts.map +0 -1
  1039. package/dist/interface/crud/projects.d.ts.map +0 -1
  1040. package/dist/interface/crud/session-replays.d.ts.map +0 -1
  1041. package/dist/interface/crud/sessions.d.ts.map +0 -1
  1042. package/dist/interface/crud/svix-token.d.ts.map +0 -1
  1043. package/dist/interface/crud/team-invitation.d.ts.map +0 -1
  1044. package/dist/interface/crud/team-member-profiles.d.ts.map +0 -1
  1045. package/dist/interface/crud/team-memberships.d.ts.map +0 -1
  1046. package/dist/interface/crud/team-permissions.d.ts.map +0 -1
  1047. package/dist/interface/crud/teams.d.ts.map +0 -1
  1048. package/dist/interface/crud/transactions.d.ts.map +0 -1
  1049. package/dist/interface/crud/users.d.ts.map +0 -1
  1050. package/dist/interface/handler-urls.d.ts.map +0 -1
  1051. package/dist/interface/page-component-versions.d.ts.map +0 -1
  1052. package/dist/interface/plan-usage.d.ts.map +0 -1
  1053. package/dist/interface/server-interface.d.ts.map +0 -1
  1054. package/dist/interface/webhooks.d.ts.map +0 -1
  1055. package/dist/known-errors.d.ts.map +0 -1
  1056. package/dist/schema-fields.d.ts.map +0 -1
  1057. package/dist/sessions.d.ts.map +0 -1
  1058. package/dist/utils/country-codes.d.ts.map +0 -1
  1059. package/dist/utils/currency-constants.d.ts.map +0 -1
  1060. package/dist/utils/dates.d.ts.map +0 -1
  1061. package/dist/utils/errors.d.ts.map +0 -1
  1062. package/dist/utils/json.d.ts.map +0 -1
  1063. package/dist/utils/objects.d.ts.map +0 -1
  1064. package/dist/utils/results.d.ts.map +0 -1
  1065. package/dist/utils/strings.d.ts.map +0 -1
  1066. package/dist/utils/types.d.ts.map +0 -1
@@ -1,61 +1,2 @@
1
- import { OptionalKeys, RequiredKeys } from "../utils/types.js";
2
-
3
- //#region src/config/format.d.ts
4
- type ConfigValue = string | number | boolean | null | ConfigValue[] | Config;
5
- type Config = {
6
- [keyOrDotNotation: string]: ConfigValue | undefined;
7
- };
8
- type NormalizedConfigValue = string | number | boolean | NormalizedConfig | NormalizedConfigValue[];
9
- type NormalizedConfig = {
10
- [key: string]: NormalizedConfigValue | undefined;
11
- };
12
- type _NormalizesTo<N> = N extends readonly any[] ? { [K in keyof N]: _NormalizesTo<N[K]> } : N extends object ? (Config & { [K in OptionalKeys<N>]?: _NormalizesTo<N[K]> | null } & { [K in RequiredKeys<N>]: undefined extends N[K] ? _NormalizesTo<N[K]> | null : _NormalizesTo<N[K]> } & { [K in `${string}.${string}`]: ConfigValue }) : N;
13
- type NormalizesTo<N extends NormalizedConfig> = _NormalizesTo<N>;
14
- /**
15
- * Note that a config can both be valid and not normalizable.
16
- */
17
- declare function isValidConfig(c: unknown): c is Config;
18
- declare function getInvalidConfigReason(c: unknown, options?: {
19
- configName?: string;
20
- }): string | undefined;
21
- declare function assertValidConfig(c: unknown): void;
22
- declare function override(c1: Config, ...configs: Config[]): Config;
23
- /**
24
- * Removes keys from a config override, using the same nested key logic as the `override` function.
25
- * Resetting key "a.b" also resets "a.b.c" (and any other descendants).
26
- * Handles both flat dot-notation keys and nested object keys.
27
- */
28
- declare function removeKeysFromConfig(config: Config, keysToRemove: string[]): Config;
29
- type NormalizeOptions = {
30
- /**
31
- * What to do if a dot notation is used on a value that is not an object.
32
- *
33
- * - "throw" (default): Throw an error.
34
- * - "ignore": Ignore the dot notation field.
35
- */
36
- onDotIntoNonObject?: "throw" | "ignore";
37
- /**
38
- * What to do if a dot notation is used on a value that is null.
39
- *
40
- * - "like-non-object" (default): Treat it like a non-object. See `onDotIntoNonObject`.
41
- * - "throw": Throw an error.
42
- * - "ignore": Ignore the dot notation field.
43
- * - "empty-object": Set the value to an empty object.
44
- */
45
- onDotIntoNull?: "like-non-object" | "throw" | "ignore" | "empty-object";
46
- /**
47
- * If provided, keys that are silently dropped during normalization (when a dot-notation key
48
- * references a parent that doesn't exist or is not an object and the behavior is "ignore")
49
- * will be pushed to this array.
50
- */
51
- droppedKeys?: string[];
52
- };
53
- declare class NormalizationError extends Error {
54
- constructor(...args: ConstructorParameters<typeof Error>);
55
- }
56
- declare function isNormalized(c: Config): c is NormalizedConfig;
57
- declare function assertNormalized(c: Config): asserts c is NormalizedConfig;
58
- declare function normalize(c: Config, options?: NormalizeOptions): NormalizedConfig;
59
- //#endregion
60
- export { Config, ConfigValue, NormalizationError, NormalizedConfig, NormalizedConfigValue, NormalizesTo, _NormalizesTo, assertNormalized, assertValidConfig, getInvalidConfigReason, isNormalized, isValidConfig, normalize, override, removeKeysFromConfig };
61
- //# sourceMappingURL=format.d.ts.map
1
+ import { a as NormalizedConfigValue, c as assertNormalized, d as isNormalized, f as isValidConfig, h as removeKeysFromConfig, i as NormalizedConfig, l as assertValidConfig, m as override, n as ConfigValue, o as NormalizesTo, p as normalize, r as NormalizationError, s as _NormalizesTo, t as Config, u as getInvalidConfigReason } from "../format-4JG1MGv5.js";
2
+ export { Config, ConfigValue, NormalizationError, NormalizedConfig, NormalizedConfigValue, NormalizesTo, _NormalizesTo, assertNormalized, assertValidConfig, getInvalidConfigReason, isNormalized, isValidConfig, normalize, override, removeKeysFromConfig };
@@ -1,8 +1,6 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_chunk = require('../chunk-BE-pF4vm.js');
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
2
  let ___utils_errors_js = require("../utils/errors.js");
4
3
  let ___utils_objects_js = require("../utils/objects.js");
5
-
6
4
  //#region src/config/format.ts
7
5
  /**
8
6
  * Note that a config can both be valid and not normalizable.
@@ -79,137 +77,6 @@ function removeKeysFromConfig(config, keysToRemove) {
79
77
  }
80
78
  return result;
81
79
  }
82
- (void 0)?.test("removeKeysFromConfig(...)", ({ expect }) => {
83
- expect(removeKeysFromConfig({
84
- a: 1,
85
- b: 2
86
- }, ["a"])).toEqual({ b: 2 });
87
- expect(removeKeysFromConfig({
88
- "a.b": 1,
89
- "a.c": 2,
90
- d: 3
91
- }, ["a.b"])).toEqual({
92
- "a.c": 2,
93
- d: 3
94
- });
95
- expect(removeKeysFromConfig({
96
- "a.b": 1,
97
- "a.b.c": 2,
98
- "a.d": 3
99
- }, ["a.b"])).toEqual({ "a.d": 3 });
100
- expect(removeKeysFromConfig({
101
- "a.b": 1,
102
- "a.c": 2,
103
- "a.d": 3
104
- }, ["a"])).toEqual({});
105
- expect(removeKeysFromConfig({
106
- "teams.allowClientTeamCreation": true,
107
- "teams.createPersonalTeamOnSignUp": true
108
- }, ["teams"])).toEqual({});
109
- expect(removeKeysFromConfig({ teams: {
110
- allowClientTeamCreation: true,
111
- createPersonalTeamOnSignUp: true
112
- } }, ["teams.allowClientTeamCreation"])).toEqual({ teams: { createPersonalTeamOnSignUp: true } });
113
- expect(removeKeysFromConfig({ teams: { allowClientTeamCreation: true } }, ["teams.allowClientTeamCreation"])).toEqual({});
114
- expect(removeKeysFromConfig({ teams: {
115
- allowClientTeamCreation: true,
116
- createPersonalTeamOnSignUp: true
117
- } }, ["teams"])).toEqual({});
118
- expect(removeKeysFromConfig({ a: { b: {
119
- c: 1,
120
- d: 2
121
- } } }, ["a.b.c"])).toEqual({ a: { b: { d: 2 } } });
122
- expect(removeKeysFromConfig({
123
- "teams.allowClientTeamCreation": true,
124
- teams: { createPersonalTeamOnSignUp: true }
125
- }, ["teams.allowClientTeamCreation"])).toEqual({ teams: { createPersonalTeamOnSignUp: true } });
126
- expect(removeKeysFromConfig({
127
- "teams.allowClientTeamCreation": true,
128
- teams: { createPersonalTeamOnSignUp: true }
129
- }, ["teams"])).toEqual({});
130
- expect(removeKeysFromConfig({ teams: { "a.b": 1 } }, ["teams.a.b"])).toEqual({});
131
- expect(removeKeysFromConfig({ teams: { "a.b.c": 1 } }, ["teams.a.b"])).toEqual({});
132
- expect(removeKeysFromConfig({
133
- a: 1,
134
- b: 2
135
- }, [])).toEqual({
136
- a: 1,
137
- b: 2
138
- });
139
- expect(removeKeysFromConfig({
140
- a: 1,
141
- b: 2
142
- }, ["c"])).toEqual({
143
- a: 1,
144
- b: 2
145
- });
146
- expect(removeKeysFromConfig({
147
- a: 1,
148
- b: 2
149
- }, ["a.b"])).toEqual({
150
- a: 1,
151
- b: 2
152
- });
153
- expect(removeKeysFromConfig({
154
- "a.b": 1,
155
- "c.d": 2,
156
- "e.f": 3
157
- }, ["a.b", "e.f"])).toEqual({ "c.d": 2 });
158
- expect(removeKeysFromConfig({
159
- a: { b: 1 },
160
- c: { d: 2 }
161
- }, ["a.b", "c.d"])).toEqual({});
162
- expect(removeKeysFromConfig({ a: "string" }, ["a.b"])).toEqual({ a: "string" });
163
- expect(removeKeysFromConfig({ a: 123 }, ["a.b"])).toEqual({ a: 123 });
164
- expect(removeKeysFromConfig({ a: null }, ["a.b"])).toEqual({ a: null });
165
- expect(removeKeysFromConfig({ a: [
166
- 1,
167
- 2,
168
- 3
169
- ] }, ["a.0"])).toEqual({ a: [
170
- 1,
171
- 2,
172
- 3
173
- ] });
174
- });
175
- (void 0)?.test("override(...)", ({ expect }) => {
176
- expect(override({
177
- a: 1,
178
- b: 2,
179
- "c.d": 3,
180
- "c.e.f": 4,
181
- "c.g": 5,
182
- h: [
183
- 6,
184
- { i: 7 },
185
- 8
186
- ],
187
- k: 123,
188
- l: void 0
189
- }, {
190
- a: 9,
191
- "c.d": 10,
192
- "c.e": null,
193
- "h.0": 11,
194
- "h.1": { j: 12 },
195
- k: void 0
196
- })).toEqual({
197
- a: 9,
198
- b: 2,
199
- "c.d": 10,
200
- "c.e": null,
201
- "c.g": 5,
202
- h: [
203
- 6,
204
- { i: 7 },
205
- 8
206
- ],
207
- "h.0": 11,
208
- "h.1": { j: 12 },
209
- k: 123,
210
- l: void 0
211
- });
212
- });
213
80
  var NormalizationError = class extends Error {
214
81
  constructor(...args) {
215
82
  super(...args);
@@ -276,64 +143,6 @@ function setNormalizedValue(result, key, value, options) {
276
143
  if ((0, ___utils_objects_js.hasAndNotUndefined)(result, key)) (0, ___utils_objects_js.deleteKey)(result, key);
277
144
  } else (0, ___utils_objects_js.set)(result, key, normalizeValue(value, options));
278
145
  }
279
- (void 0)?.test("normalize(...)", ({ expect }) => {
280
- expect(normalize({
281
- a: 9,
282
- b: 2,
283
- c: {},
284
- "c.d": 10,
285
- "c.e": null,
286
- "c.g": 5,
287
- h: [
288
- 6,
289
- { i: 7 },
290
- 8
291
- ],
292
- "h.0": 11,
293
- "h.1": { j: 12 },
294
- k: { l: {} },
295
- "k.l.m": 13,
296
- n: void 0
297
- }, { onDotIntoNonObject: "ignore" })).toEqual({
298
- a: 9,
299
- b: 2,
300
- c: {
301
- d: 10,
302
- g: 5
303
- },
304
- h: [
305
- 11,
306
- { j: 12 },
307
- 8
308
- ],
309
- k: { l: { m: 13 } }
310
- });
311
- expect(() => normalize({ "b.c": 2 }, { onDotIntoNonObject: "throw" })).toThrow(`Tried to use dot notation to access "b.c", but "b" doesn't exist on the object (or is null)`);
312
- expect(() => normalize({
313
- b: null,
314
- "b.c": 2
315
- }, { onDotIntoNonObject: "throw" })).toThrow(`Tried to use dot notation to access "b.c", but "b" doesn't exist on the object (or is null)`);
316
- expect(normalize({ "b.c": 2 }, { onDotIntoNonObject: "ignore" })).toEqual({});
317
- expect(normalize({
318
- "auth.allowSignUp": false,
319
- "apps.installed.payments.enabled": false
320
- }, {
321
- onDotIntoNonObject: "ignore",
322
- onDotIntoNull: "empty-object"
323
- })).toEqual({
324
- auth: { allowSignUp: false },
325
- apps: { installed: { payments: { enabled: false } } }
326
- });
327
- expect(() => normalize({
328
- b: 1,
329
- "b.c": 2
330
- }, { onDotIntoNonObject: "throw" })).toThrow(`Tried to use dot notation to access "b.c", but "b" is not an object`);
331
- expect(normalize({
332
- b: 1,
333
- "b.c": 2
334
- }, { onDotIntoNonObject: "ignore" })).toEqual({ b: 1 });
335
- });
336
-
337
146
  //#endregion
338
147
  exports.NormalizationError = NormalizationError;
339
148
  exports.assertNormalized = assertNormalized;
@@ -344,4 +153,5 @@ exports.isValidConfig = isValidConfig;
344
153
  exports.normalize = normalize;
345
154
  exports.override = override;
346
155
  exports.removeKeysFromConfig = removeKeysFromConfig;
156
+
347
157
  //# sourceMappingURL=format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","names":[],"sources":["../../src/config/format.ts"],"sourcesContent":["// Format spec lives in the eng-handbook (random-thoughts/config-json-format.md).\n// (Previously linked to a public repo that doesn't exist — internal handbook only.)\n\nimport { HexclaveAssertionError, throwErr } from \"../utils/errors\";\nimport { deleteKey, filterUndefined, get, hasAndNotUndefined, set } from \"../utils/objects\";\nimport { OptionalKeys, RequiredKeys } from \"../utils/types\";\n\n\nexport type ConfigValue = string | number | boolean | null | ConfigValue[] | Config;\nexport type Config = {\n [keyOrDotNotation: string]: ConfigValue | undefined, // must support undefined for optional values\n};\n\nexport type NormalizedConfigValue = string | number | boolean | NormalizedConfig | NormalizedConfigValue[];\nexport type NormalizedConfig = {\n [key: string]: NormalizedConfigValue | undefined, // must support undefined for optional values\n};\n\nexport type _NormalizesTo<N> = N extends readonly any[]\n ? { [K in keyof N]: _NormalizesTo<N[K]> }\n : N extends object ? (\n & Config\n & { [K in OptionalKeys<N>]?: _NormalizesTo<N[K]> | null }\n & { [K in RequiredKeys<N>]: undefined extends N[K] ? _NormalizesTo<N[K]> | null : _NormalizesTo<N[K]> }\n & { [K in `${string}.${string}`]: ConfigValue }\n ) : N;\nexport type NormalizesTo<N extends NormalizedConfig> = _NormalizesTo<N>;\n\n/**\n * Note that a config can both be valid and not normalizable.\n */\nexport function isValidConfig(c: unknown): c is Config {\n return getInvalidConfigReason(c) === undefined;\n}\n\nexport function getInvalidConfigReason(c: unknown, options: { configName?: string } = {}): string | undefined {\n const configName = options.configName ?? 'config';\n if (c === null || typeof c !== 'object') return `${configName} must be a non-null object`;\n for (const [key, value] of Object.entries(c)) {\n if (value === undefined) continue;\n if (typeof key !== 'string') return `${configName} must have only string keys (found: ${typeof key})`;\n if (!key.match(/^[a-zA-Z0-9_:$][a-zA-Z_:$0-9\\-]*(?:\\.[a-zA-Z0-9_:$][a-zA-Z_:$0-9\\-]*)*$/)) return `All keys of ${configName} must consist of only alphanumeric characters, dots, underscores, colons, dollar signs, or hyphens and start with a character other than a hyphen (found: ${key})`;\n\n const entryName = `${configName}.${key}`;\n const reason = getInvalidConfigValueReason(value, { valueName: entryName });\n if (reason) return reason;\n }\n return undefined;\n}\n\nfunction getInvalidConfigValueReason(value: unknown, options: { valueName?: string } = {}): string | undefined {\n const valueName = options.valueName ?? 'value';\n switch (typeof value) {\n case 'string':\n case 'number':\n case 'boolean': {\n break;\n }\n case 'object': {\n if (value === null) {\n break;\n } else if (Array.isArray(value)) {\n for (const [index, v] of value.entries()) {\n const elementValueName = `${valueName}[${index}]`;\n if (v === null) return `${elementValueName} is null; tuple elements cannot be null`;\n const reason = getInvalidConfigValueReason(v, { valueName: elementValueName });\n if (reason) return reason;\n }\n } else {\n const reason = getInvalidConfigReason(value, { configName: valueName });\n if (reason) return reason;\n }\n break;\n }\n default: {\n return `${valueName} has an invalid value type ${typeof value} (value: ${value})`;\n }\n }\n return undefined;\n}\n\nexport function assertValidConfig(c: unknown) {\n const reason = getInvalidConfigReason(c);\n if (reason) throw new HexclaveAssertionError(`Invalid config: ${reason}`, { c });\n}\n\nexport function override(c1: Config, ...configs: Config[]) {\n if (configs.length === 0) return c1;\n if (configs.length > 1) return override(override(c1, configs[0]), ...configs.slice(1));\n const c2 = configs[0];\n\n assertValidConfig(c1);\n assertValidConfig(c2);\n\n let result = c1;\n for (const key of Object.keys(filterUndefined(c2))) {\n result = Object.fromEntries(\n Object.entries(result).filter(([k]) => k !== key && !k.startsWith(key + '.'))\n );\n }\n\n return {\n ...result,\n ...filterUndefined(c2),\n };\n}\n\n/**\n * Removes keys from a config override, using the same nested key logic as the `override` function.\n * Resetting key \"a.b\" also resets \"a.b.c\" (and any other descendants).\n * Handles both flat dot-notation keys and nested object keys.\n */\nexport function removeKeysFromConfig(config: Config, keysToRemove: string[]): Config {\n if (keysToRemove.length === 0) return config;\n\n const result: Config = {};\n for (const [key, value] of Object.entries(config)) {\n if (value === undefined) continue;\n\n // Check if this flat key matches or is a child of any key to remove (same logic as override)\n const shouldRemove = keysToRemove.some(k => key === k || key.startsWith(k + '.'));\n if (shouldRemove) continue;\n\n // Check if any key to remove is a descendant of this key (meaning it's nested inside this value)\n const childKeysToRemove = keysToRemove\n .filter(k => k.startsWith(key + '.'))\n .map(k => k.slice(key.length + 1));\n\n if (childKeysToRemove.length > 0 && typeof value === 'object' && value !== null && !Array.isArray(value)) {\n const cleaned = removeKeysFromConfig(value as Config, childKeysToRemove);\n if (Object.keys(cleaned).length > 0) {\n result[key] = cleaned;\n }\n } else {\n result[key] = value;\n }\n }\n return result;\n}\n\nimport.meta.vitest?.test(\"removeKeysFromConfig(...)\", ({ expect }) => {\n // Basic flat key removal\n expect(removeKeysFromConfig({ a: 1, b: 2 }, [\"a\"])).toEqual({ b: 2 });\n expect(removeKeysFromConfig({ \"a.b\": 1, \"a.c\": 2, d: 3 }, [\"a.b\"])).toEqual({ \"a.c\": 2, d: 3 });\n\n // Removing a parent removes children (flat keys)\n expect(removeKeysFromConfig({ \"a.b\": 1, \"a.b.c\": 2, \"a.d\": 3 }, [\"a.b\"])).toEqual({ \"a.d\": 3 });\n expect(removeKeysFromConfig({ \"a.b\": 1, \"a.c\": 2, \"a.d\": 3 }, [\"a\"])).toEqual({});\n expect(removeKeysFromConfig({ \"teams.allowClientTeamCreation\": true, \"teams.createPersonalTeamOnSignUp\": true }, [\"teams\"])).toEqual({});\n\n // Nested object key removal\n expect(removeKeysFromConfig({ teams: { allowClientTeamCreation: true, createPersonalTeamOnSignUp: true } }, [\"teams.allowClientTeamCreation\"])).toEqual({ teams: { createPersonalTeamOnSignUp: true } });\n expect(removeKeysFromConfig({ teams: { allowClientTeamCreation: true } }, [\"teams.allowClientTeamCreation\"])).toEqual({});\n expect(removeKeysFromConfig({ teams: { allowClientTeamCreation: true, createPersonalTeamOnSignUp: true } }, [\"teams\"])).toEqual({});\n expect(removeKeysFromConfig({ a: { b: { c: 1, d: 2 } } }, [\"a.b.c\"])).toEqual({ a: { b: { d: 2 } } });\n\n // Mixed flat and nested\n expect(removeKeysFromConfig({ \"teams.allowClientTeamCreation\": true, teams: { createPersonalTeamOnSignUp: true } }, [\"teams.allowClientTeamCreation\"])).toEqual({ teams: { createPersonalTeamOnSignUp: true } });\n expect(removeKeysFromConfig({ \"teams.allowClientTeamCreation\": true, teams: { createPersonalTeamOnSignUp: true } }, [\"teams\"])).toEqual({});\n\n // Nested with dot-notation inner keys\n expect(removeKeysFromConfig({ teams: { \"a.b\": 1 } }, [\"teams.a.b\"])).toEqual({});\n expect(removeKeysFromConfig({ teams: { \"a.b.c\": 1 } }, [\"teams.a.b\"])).toEqual({});\n\n // No keys to remove\n expect(removeKeysFromConfig({ a: 1, b: 2 }, [])).toEqual({ a: 1, b: 2 });\n\n // Key not present (no-op)\n expect(removeKeysFromConfig({ a: 1, b: 2 }, [\"c\"])).toEqual({ a: 1, b: 2 });\n expect(removeKeysFromConfig({ a: 1, b: 2 }, [\"a.b\"])).toEqual({ a: 1, b: 2 });\n\n // Multiple keys to remove\n expect(removeKeysFromConfig({ \"a.b\": 1, \"c.d\": 2, \"e.f\": 3 }, [\"a.b\", \"e.f\"])).toEqual({ \"c.d\": 2 });\n expect(removeKeysFromConfig({ a: { b: 1 }, c: { d: 2 } }, [\"a.b\", \"c.d\"])).toEqual({});\n\n // Removing non-object values with nested key path (no-op for non-objects)\n expect(removeKeysFromConfig({ a: \"string\" }, [\"a.b\"])).toEqual({ a: \"string\" });\n expect(removeKeysFromConfig({ a: 123 }, [\"a.b\"])).toEqual({ a: 123 });\n expect(removeKeysFromConfig({ a: null }, [\"a.b\"])).toEqual({ a: null });\n\n // Array values are preserved (not recursed into)\n expect(removeKeysFromConfig({ a: [1, 2, 3] }, [\"a.0\"])).toEqual({ a: [1, 2, 3] });\n});\n\nimport.meta.vitest?.test(\"override(...)\", ({ expect }) => {\n expect(\n override(\n {\n a: 1,\n b: 2,\n \"c.d\": 3,\n \"c.e.f\": 4,\n \"c.g\": 5,\n h: [6, { i: 7 }, 8],\n k: 123,\n l: undefined,\n },\n {\n a: 9,\n \"c.d\": 10,\n \"c.e\": null,\n \"h.0\": 11,\n \"h.1\": {\n j: 12,\n },\n k: undefined,\n },\n )\n ).toEqual({\n a: 9,\n b: 2,\n \"c.d\": 10,\n \"c.e\": null,\n \"c.g\": 5,\n h: [6, { i: 7 }, 8],\n \"h.0\": 11,\n \"h.1\": {\n j: 12,\n },\n k: 123,\n l: undefined,\n });\n});\n\ntype NormalizeOptions = {\n /**\n * What to do if a dot notation is used on a value that is not an object.\n *\n * - \"throw\" (default): Throw an error.\n * - \"ignore\": Ignore the dot notation field.\n */\n onDotIntoNonObject?: \"throw\" | \"ignore\",\n /**\n * What to do if a dot notation is used on a value that is null.\n *\n * - \"like-non-object\" (default): Treat it like a non-object. See `onDotIntoNonObject`.\n * - \"throw\": Throw an error.\n * - \"ignore\": Ignore the dot notation field.\n * - \"empty-object\": Set the value to an empty object.\n */\n onDotIntoNull?: \"like-non-object\" | \"throw\" | \"ignore\" | \"empty-object\",\n /**\n * If provided, keys that are silently dropped during normalization (when a dot-notation key\n * references a parent that doesn't exist or is not an object and the behavior is \"ignore\")\n * will be pushed to this array.\n */\n droppedKeys?: string[],\n}\n\nexport class NormalizationError extends Error {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n }\n}\nNormalizationError.prototype.name = \"NormalizationError\";\n\nexport function isNormalized(c: Config): c is NormalizedConfig {\n assertValidConfig(c);\n for (const [key, value] of Object.entries(c)) {\n if (value === undefined) continue;\n if (key.includes('.')) return false;\n if (value === null) return false;\n }\n return true;\n}\n\nexport function assertNormalized(c: Config): asserts c is NormalizedConfig {\n assertValidConfig(c);\n if (!isNormalized(c)) throw new HexclaveAssertionError(`Config is not normalized: ${JSON.stringify(c)}`);\n}\n\nexport function normalize(c: Config, options: NormalizeOptions = {}): NormalizedConfig {\n assertValidConfig(c);\n const onDotIntoNonObject = options.onDotIntoNonObject ?? \"throw\";\n const onDotIntoNull = options.onDotIntoNull ?? \"like-non-object\";\n\n const countDots = (s: string) => s.match(/\\./g)?.length ?? 0;\n const result: NormalizedConfig = {};\n const keysByDepth = Object.keys(c).sort((a, b) => countDots(a) - countDots(b));\n\n outer: for (const key of keysByDepth) {\n const keySegmentsWithoutLast = key.split('.');\n const last = keySegmentsWithoutLast.pop() ?? throwErr('split returns empty array?');\n const value = get(c, key);\n if (value === undefined) continue;\n\n let current: NormalizedConfig = result;\n for (const keySegment of keySegmentsWithoutLast) {\n if (!hasAndNotUndefined(current, keySegment)) {\n switch (onDotIntoNull === \"like-non-object\" ? onDotIntoNonObject : onDotIntoNull) {\n case \"throw\": {\n throw new NormalizationError(`Tried to use dot notation to access ${JSON.stringify(key)}, but ${JSON.stringify(keySegment)} doesn't exist on the object (or is null).`);\n }\n case \"ignore\": {\n options.droppedKeys?.push(key);\n continue outer;\n }\n case \"empty-object\": {\n set(current, keySegment, {});\n break;\n }\n }\n }\n const value = get(current, keySegment);\n if (typeof value !== 'object') {\n switch (onDotIntoNonObject) {\n case \"throw\": {\n throw new NormalizationError(`Tried to use dot notation to access ${JSON.stringify(key)}, but ${JSON.stringify(keySegment)} is not an object.`);\n }\n case \"ignore\": {\n options.droppedKeys?.push(key);\n continue outer;\n }\n }\n }\n current = value as NormalizedConfig;\n }\n setNormalizedValue(current, last, value, options);\n }\n return result;\n}\n\nfunction normalizeValue(value: ConfigValue, options: NormalizeOptions): NormalizedConfigValue {\n if (value === null) throw new NormalizationError(\"Tried to normalize a null value\");\n if (Array.isArray(value)) return value.map(v => normalizeValue(v, options));\n if (typeof value === 'object') return normalize(value, options);\n return value;\n}\n\nfunction setNormalizedValue(result: NormalizedConfig, key: string, value: ConfigValue, options: NormalizeOptions) {\n if (value === null) {\n if (hasAndNotUndefined(result, key)) {\n deleteKey(result, key);\n }\n } else {\n set(result, key, normalizeValue(value, options));\n }\n}\n\nimport.meta.vitest?.test(\"normalize(...)\", ({ expect }) => {\n expect(normalize({\n a: 9,\n b: 2,\n c: {},\n \"c.d\": 10,\n \"c.e\": null,\n \"c.g\": 5,\n h: [6, { i: 7 }, 8],\n \"h.0\": 11,\n \"h.1\": {\n j: 12,\n },\n k: { l: {} },\n \"k.l.m\": 13,\n n: undefined,\n }, { onDotIntoNonObject: \"ignore\" })).toEqual({\n a: 9,\n b: 2,\n c: {\n d: 10,\n g: 5,\n },\n h: [11, { j: 12 }, 8],\n k: { l: { m: 13 } },\n });\n\n // dotting into null\n expect(() => normalize({\n \"b.c\": 2,\n }, { onDotIntoNonObject: \"throw\" })).toThrow(`Tried to use dot notation to access \"b.c\", but \"b\" doesn't exist on the object (or is null)`);\n expect(() => normalize({\n b: null,\n \"b.c\": 2,\n }, { onDotIntoNonObject: \"throw\" })).toThrow(`Tried to use dot notation to access \"b.c\", but \"b\" doesn't exist on the object (or is null)`);\n expect(normalize({\n \"b.c\": 2,\n }, { onDotIntoNonObject: \"ignore\" })).toEqual({});\n expect(normalize({\n \"auth.allowSignUp\": false,\n \"apps.installed.payments.enabled\": false,\n }, {\n onDotIntoNonObject: \"ignore\",\n onDotIntoNull: \"empty-object\",\n })).toEqual({\n auth: {\n allowSignUp: false,\n },\n apps: {\n installed: {\n payments: {\n enabled: false,\n },\n },\n },\n });\n\n // dotting into non-object\n expect(() => normalize({\n b: 1,\n \"b.c\": 2,\n }, { onDotIntoNonObject: \"throw\" })).toThrow(`Tried to use dot notation to access \"b.c\", but \"b\" is not an object`);\n expect(normalize({\n b: 1,\n \"b.c\": 2,\n }, { onDotIntoNonObject: \"ignore\" })).toEqual({ b: 1 });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"format.js","names":["HexclaveAssertionError"],"sources":["../../src/config/format.ts"],"sourcesContent":["// Format spec lives in the eng-handbook (random-thoughts/config-json-format.md).\n// (Previously linked to a public repo that doesn't exist — internal handbook only.)\n\nimport { HexclaveAssertionError, throwErr } from \"../utils/errors\";\nimport { deleteKey, filterUndefined, get, hasAndNotUndefined, set } from \"../utils/objects\";\nimport { OptionalKeys, RequiredKeys } from \"../utils/types\";\n\n\nexport type ConfigValue = string | number | boolean | null | ConfigValue[] | Config;\nexport type Config = {\n [keyOrDotNotation: string]: ConfigValue | undefined, // must support undefined for optional values\n};\n\nexport type NormalizedConfigValue = string | number | boolean | NormalizedConfig | NormalizedConfigValue[];\nexport type NormalizedConfig = {\n [key: string]: NormalizedConfigValue | undefined, // must support undefined for optional values\n};\n\nexport type _NormalizesTo<N> = N extends readonly any[]\n ? { [K in keyof N]: _NormalizesTo<N[K]> }\n : N extends object ? (\n & Config\n & { [K in OptionalKeys<N>]?: _NormalizesTo<N[K]> | null }\n & { [K in RequiredKeys<N>]: undefined extends N[K] ? _NormalizesTo<N[K]> | null : _NormalizesTo<N[K]> }\n & { [K in `${string}.${string}`]: ConfigValue }\n ) : N;\nexport type NormalizesTo<N extends NormalizedConfig> = _NormalizesTo<N>;\n\n/**\n * Note that a config can both be valid and not normalizable.\n */\nexport function isValidConfig(c: unknown): c is Config {\n return getInvalidConfigReason(c) === undefined;\n}\n\nexport function getInvalidConfigReason(c: unknown, options: { configName?: string } = {}): string | undefined {\n const configName = options.configName ?? 'config';\n if (c === null || typeof c !== 'object') return `${configName} must be a non-null object`;\n for (const [key, value] of Object.entries(c)) {\n if (value === undefined) continue;\n if (typeof key !== 'string') return `${configName} must have only string keys (found: ${typeof key})`;\n if (!key.match(/^[a-zA-Z0-9_:$][a-zA-Z_:$0-9\\-]*(?:\\.[a-zA-Z0-9_:$][a-zA-Z_:$0-9\\-]*)*$/)) return `All keys of ${configName} must consist of only alphanumeric characters, dots, underscores, colons, dollar signs, or hyphens and start with a character other than a hyphen (found: ${key})`;\n\n const entryName = `${configName}.${key}`;\n const reason = getInvalidConfigValueReason(value, { valueName: entryName });\n if (reason) return reason;\n }\n return undefined;\n}\n\nfunction getInvalidConfigValueReason(value: unknown, options: { valueName?: string } = {}): string | undefined {\n const valueName = options.valueName ?? 'value';\n switch (typeof value) {\n case 'string':\n case 'number':\n case 'boolean': {\n break;\n }\n case 'object': {\n if (value === null) {\n break;\n } else if (Array.isArray(value)) {\n for (const [index, v] of value.entries()) {\n const elementValueName = `${valueName}[${index}]`;\n if (v === null) return `${elementValueName} is null; tuple elements cannot be null`;\n const reason = getInvalidConfigValueReason(v, { valueName: elementValueName });\n if (reason) return reason;\n }\n } else {\n const reason = getInvalidConfigReason(value, { configName: valueName });\n if (reason) return reason;\n }\n break;\n }\n default: {\n return `${valueName} has an invalid value type ${typeof value} (value: ${value})`;\n }\n }\n return undefined;\n}\n\nexport function assertValidConfig(c: unknown) {\n const reason = getInvalidConfigReason(c);\n if (reason) throw new HexclaveAssertionError(`Invalid config: ${reason}`, { c });\n}\n\nexport function override(c1: Config, ...configs: Config[]) {\n if (configs.length === 0) return c1;\n if (configs.length > 1) return override(override(c1, configs[0]), ...configs.slice(1));\n const c2 = configs[0];\n\n assertValidConfig(c1);\n assertValidConfig(c2);\n\n let result = c1;\n for (const key of Object.keys(filterUndefined(c2))) {\n result = Object.fromEntries(\n Object.entries(result).filter(([k]) => k !== key && !k.startsWith(key + '.'))\n );\n }\n\n return {\n ...result,\n ...filterUndefined(c2),\n };\n}\n\n/**\n * Removes keys from a config override, using the same nested key logic as the `override` function.\n * Resetting key \"a.b\" also resets \"a.b.c\" (and any other descendants).\n * Handles both flat dot-notation keys and nested object keys.\n */\nexport function removeKeysFromConfig(config: Config, keysToRemove: string[]): Config {\n if (keysToRemove.length === 0) return config;\n\n const result: Config = {};\n for (const [key, value] of Object.entries(config)) {\n if (value === undefined) continue;\n\n // Check if this flat key matches or is a child of any key to remove (same logic as override)\n const shouldRemove = keysToRemove.some(k => key === k || key.startsWith(k + '.'));\n if (shouldRemove) continue;\n\n // Check if any key to remove is a descendant of this key (meaning it's nested inside this value)\n const childKeysToRemove = keysToRemove\n .filter(k => k.startsWith(key + '.'))\n .map(k => k.slice(key.length + 1));\n\n if (childKeysToRemove.length > 0 && typeof value === 'object' && value !== null && !Array.isArray(value)) {\n const cleaned = removeKeysFromConfig(value as Config, childKeysToRemove);\n if (Object.keys(cleaned).length > 0) {\n result[key] = cleaned;\n }\n } else {\n result[key] = value;\n }\n }\n return result;\n}\n\nimport.meta.vitest?.test(\"removeKeysFromConfig(...)\", ({ expect }) => {\n // Basic flat key removal\n expect(removeKeysFromConfig({ a: 1, b: 2 }, [\"a\"])).toEqual({ b: 2 });\n expect(removeKeysFromConfig({ \"a.b\": 1, \"a.c\": 2, d: 3 }, [\"a.b\"])).toEqual({ \"a.c\": 2, d: 3 });\n\n // Removing a parent removes children (flat keys)\n expect(removeKeysFromConfig({ \"a.b\": 1, \"a.b.c\": 2, \"a.d\": 3 }, [\"a.b\"])).toEqual({ \"a.d\": 3 });\n expect(removeKeysFromConfig({ \"a.b\": 1, \"a.c\": 2, \"a.d\": 3 }, [\"a\"])).toEqual({});\n expect(removeKeysFromConfig({ \"teams.allowClientTeamCreation\": true, \"teams.createPersonalTeamOnSignUp\": true }, [\"teams\"])).toEqual({});\n\n // Nested object key removal\n expect(removeKeysFromConfig({ teams: { allowClientTeamCreation: true, createPersonalTeamOnSignUp: true } }, [\"teams.allowClientTeamCreation\"])).toEqual({ teams: { createPersonalTeamOnSignUp: true } });\n expect(removeKeysFromConfig({ teams: { allowClientTeamCreation: true } }, [\"teams.allowClientTeamCreation\"])).toEqual({});\n expect(removeKeysFromConfig({ teams: { allowClientTeamCreation: true, createPersonalTeamOnSignUp: true } }, [\"teams\"])).toEqual({});\n expect(removeKeysFromConfig({ a: { b: { c: 1, d: 2 } } }, [\"a.b.c\"])).toEqual({ a: { b: { d: 2 } } });\n\n // Mixed flat and nested\n expect(removeKeysFromConfig({ \"teams.allowClientTeamCreation\": true, teams: { createPersonalTeamOnSignUp: true } }, [\"teams.allowClientTeamCreation\"])).toEqual({ teams: { createPersonalTeamOnSignUp: true } });\n expect(removeKeysFromConfig({ \"teams.allowClientTeamCreation\": true, teams: { createPersonalTeamOnSignUp: true } }, [\"teams\"])).toEqual({});\n\n // Nested with dot-notation inner keys\n expect(removeKeysFromConfig({ teams: { \"a.b\": 1 } }, [\"teams.a.b\"])).toEqual({});\n expect(removeKeysFromConfig({ teams: { \"a.b.c\": 1 } }, [\"teams.a.b\"])).toEqual({});\n\n // No keys to remove\n expect(removeKeysFromConfig({ a: 1, b: 2 }, [])).toEqual({ a: 1, b: 2 });\n\n // Key not present (no-op)\n expect(removeKeysFromConfig({ a: 1, b: 2 }, [\"c\"])).toEqual({ a: 1, b: 2 });\n expect(removeKeysFromConfig({ a: 1, b: 2 }, [\"a.b\"])).toEqual({ a: 1, b: 2 });\n\n // Multiple keys to remove\n expect(removeKeysFromConfig({ \"a.b\": 1, \"c.d\": 2, \"e.f\": 3 }, [\"a.b\", \"e.f\"])).toEqual({ \"c.d\": 2 });\n expect(removeKeysFromConfig({ a: { b: 1 }, c: { d: 2 } }, [\"a.b\", \"c.d\"])).toEqual({});\n\n // Removing non-object values with nested key path (no-op for non-objects)\n expect(removeKeysFromConfig({ a: \"string\" }, [\"a.b\"])).toEqual({ a: \"string\" });\n expect(removeKeysFromConfig({ a: 123 }, [\"a.b\"])).toEqual({ a: 123 });\n expect(removeKeysFromConfig({ a: null }, [\"a.b\"])).toEqual({ a: null });\n\n // Array values are preserved (not recursed into)\n expect(removeKeysFromConfig({ a: [1, 2, 3] }, [\"a.0\"])).toEqual({ a: [1, 2, 3] });\n});\n\nimport.meta.vitest?.test(\"override(...)\", ({ expect }) => {\n expect(\n override(\n {\n a: 1,\n b: 2,\n \"c.d\": 3,\n \"c.e.f\": 4,\n \"c.g\": 5,\n h: [6, { i: 7 }, 8],\n k: 123,\n l: undefined,\n },\n {\n a: 9,\n \"c.d\": 10,\n \"c.e\": null,\n \"h.0\": 11,\n \"h.1\": {\n j: 12,\n },\n k: undefined,\n },\n )\n ).toEqual({\n a: 9,\n b: 2,\n \"c.d\": 10,\n \"c.e\": null,\n \"c.g\": 5,\n h: [6, { i: 7 }, 8],\n \"h.0\": 11,\n \"h.1\": {\n j: 12,\n },\n k: 123,\n l: undefined,\n });\n});\n\ntype NormalizeOptions = {\n /**\n * What to do if a dot notation is used on a value that is not an object.\n *\n * - \"throw\" (default): Throw an error.\n * - \"ignore\": Ignore the dot notation field.\n */\n onDotIntoNonObject?: \"throw\" | \"ignore\",\n /**\n * What to do if a dot notation is used on a value that is null.\n *\n * - \"like-non-object\" (default): Treat it like a non-object. See `onDotIntoNonObject`.\n * - \"throw\": Throw an error.\n * - \"ignore\": Ignore the dot notation field.\n * - \"empty-object\": Set the value to an empty object.\n */\n onDotIntoNull?: \"like-non-object\" | \"throw\" | \"ignore\" | \"empty-object\",\n /**\n * If provided, keys that are silently dropped during normalization (when a dot-notation key\n * references a parent that doesn't exist or is not an object and the behavior is \"ignore\")\n * will be pushed to this array.\n */\n droppedKeys?: string[],\n}\n\nexport class NormalizationError extends Error {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n }\n}\nNormalizationError.prototype.name = \"NormalizationError\";\n\nexport function isNormalized(c: Config): c is NormalizedConfig {\n assertValidConfig(c);\n for (const [key, value] of Object.entries(c)) {\n if (value === undefined) continue;\n if (key.includes('.')) return false;\n if (value === null) return false;\n }\n return true;\n}\n\nexport function assertNormalized(c: Config): asserts c is NormalizedConfig {\n assertValidConfig(c);\n if (!isNormalized(c)) throw new HexclaveAssertionError(`Config is not normalized: ${JSON.stringify(c)}`);\n}\n\nexport function normalize(c: Config, options: NormalizeOptions = {}): NormalizedConfig {\n assertValidConfig(c);\n const onDotIntoNonObject = options.onDotIntoNonObject ?? \"throw\";\n const onDotIntoNull = options.onDotIntoNull ?? \"like-non-object\";\n\n const countDots = (s: string) => s.match(/\\./g)?.length ?? 0;\n const result: NormalizedConfig = {};\n const keysByDepth = Object.keys(c).sort((a, b) => countDots(a) - countDots(b));\n\n outer: for (const key of keysByDepth) {\n const keySegmentsWithoutLast = key.split('.');\n const last = keySegmentsWithoutLast.pop() ?? throwErr('split returns empty array?');\n const value = get(c, key);\n if (value === undefined) continue;\n\n let current: NormalizedConfig = result;\n for (const keySegment of keySegmentsWithoutLast) {\n if (!hasAndNotUndefined(current, keySegment)) {\n switch (onDotIntoNull === \"like-non-object\" ? onDotIntoNonObject : onDotIntoNull) {\n case \"throw\": {\n throw new NormalizationError(`Tried to use dot notation to access ${JSON.stringify(key)}, but ${JSON.stringify(keySegment)} doesn't exist on the object (or is null).`);\n }\n case \"ignore\": {\n options.droppedKeys?.push(key);\n continue outer;\n }\n case \"empty-object\": {\n set(current, keySegment, {});\n break;\n }\n }\n }\n const value = get(current, keySegment);\n if (typeof value !== 'object') {\n switch (onDotIntoNonObject) {\n case \"throw\": {\n throw new NormalizationError(`Tried to use dot notation to access ${JSON.stringify(key)}, but ${JSON.stringify(keySegment)} is not an object.`);\n }\n case \"ignore\": {\n options.droppedKeys?.push(key);\n continue outer;\n }\n }\n }\n current = value as NormalizedConfig;\n }\n setNormalizedValue(current, last, value, options);\n }\n return result;\n}\n\nfunction normalizeValue(value: ConfigValue, options: NormalizeOptions): NormalizedConfigValue {\n if (value === null) throw new NormalizationError(\"Tried to normalize a null value\");\n if (Array.isArray(value)) return value.map(v => normalizeValue(v, options));\n if (typeof value === 'object') return normalize(value, options);\n return value;\n}\n\nfunction setNormalizedValue(result: NormalizedConfig, key: string, value: ConfigValue, options: NormalizeOptions) {\n if (value === null) {\n if (hasAndNotUndefined(result, key)) {\n deleteKey(result, key);\n }\n } else {\n set(result, key, normalizeValue(value, options));\n }\n}\n\nimport.meta.vitest?.test(\"normalize(...)\", ({ expect }) => {\n expect(normalize({\n a: 9,\n b: 2,\n c: {},\n \"c.d\": 10,\n \"c.e\": null,\n \"c.g\": 5,\n h: [6, { i: 7 }, 8],\n \"h.0\": 11,\n \"h.1\": {\n j: 12,\n },\n k: { l: {} },\n \"k.l.m\": 13,\n n: undefined,\n }, { onDotIntoNonObject: \"ignore\" })).toEqual({\n a: 9,\n b: 2,\n c: {\n d: 10,\n g: 5,\n },\n h: [11, { j: 12 }, 8],\n k: { l: { m: 13 } },\n });\n\n // dotting into null\n expect(() => normalize({\n \"b.c\": 2,\n }, { onDotIntoNonObject: \"throw\" })).toThrow(`Tried to use dot notation to access \"b.c\", but \"b\" doesn't exist on the object (or is null)`);\n expect(() => normalize({\n b: null,\n \"b.c\": 2,\n }, { onDotIntoNonObject: \"throw\" })).toThrow(`Tried to use dot notation to access \"b.c\", but \"b\" doesn't exist on the object (or is null)`);\n expect(normalize({\n \"b.c\": 2,\n }, { onDotIntoNonObject: \"ignore\" })).toEqual({});\n expect(normalize({\n \"auth.allowSignUp\": false,\n \"apps.installed.payments.enabled\": false,\n }, {\n onDotIntoNonObject: \"ignore\",\n onDotIntoNull: \"empty-object\",\n })).toEqual({\n auth: {\n allowSignUp: false,\n },\n apps: {\n installed: {\n payments: {\n enabled: false,\n },\n },\n },\n });\n\n // dotting into non-object\n expect(() => normalize({\n b: 1,\n \"b.c\": 2,\n }, { onDotIntoNonObject: \"throw\" })).toThrow(`Tried to use dot notation to access \"b.c\", but \"b\" is not an object`);\n expect(normalize({\n b: 1,\n \"b.c\": 2,\n }, { onDotIntoNonObject: \"ignore\" })).toEqual({ b: 1 });\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-catalogs-to-product-lines.d.ts","names":[],"sources":["../../src/config/migrate-catalogs-to-product-lines.ts"],"mappings":";;AAwCA;;;;;;;;iBAAgB,6BAAA,CAA8B,GAAA,EAAK,MAAA,gBAAsB,MAAA"}
1
+ {"version":3,"file":"migrate-catalogs-to-product-lines.d.ts","names":[],"sources":["../../src/config/migrate-catalogs-to-product-lines.ts"],"mappings":";;AAwCA;;;;;;;;iBAAgB,6BAAA,CAA8B,GAAA,EAAK,MAAA,gBAAsB,MAAM"}
@@ -1,8 +1,6 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_chunk = require('../chunk-BE-pF4vm.js');
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
2
  let ___utils_errors_js = require("../utils/errors.js");
4
3
  let ___utils_objects_js = require("../utils/objects.js");
5
-
6
4
  //#region src/config/migrate-catalogs-to-product-lines.ts
7
5
  /**
8
6
  * Renames properties in an object based on a path condition.
@@ -181,199 +179,7 @@ function addCustomerTypeToCatalog(obj, catalogId, customerType) {
181
179
  }
182
180
  return res;
183
181
  }
184
- (void 0)?.test("migrateCatalogsToProductLines - basic migrations", ({ expect }) => {
185
- expect(migrateCatalogsToProductLines({ payments: {
186
- catalogs: { myCatalog: { displayName: "My Catalog" } },
187
- products: { myProduct: {
188
- catalogId: "myCatalog",
189
- customerType: "user",
190
- prices: {}
191
- } }
192
- } })).toEqual({ payments: {
193
- productLines: { myCatalog: {
194
- displayName: "My Catalog",
195
- customerType: "user"
196
- } },
197
- products: { myProduct: {
198
- productLineId: "myCatalog",
199
- customerType: "user",
200
- prices: {}
201
- } }
202
- } });
203
- expect(migrateCatalogsToProductLines({
204
- "payments.catalogs.myCatalog": { displayName: "My Catalog" },
205
- "payments.products.myProduct.catalogId": "myCatalog",
206
- "payments.products.myProduct.customerType": "user"
207
- })).toEqual({
208
- "payments.productLines.myCatalog": {
209
- displayName: "My Catalog",
210
- customerType: "user"
211
- },
212
- "payments.products.myProduct.productLineId": "myCatalog",
213
- "payments.products.myProduct.customerType": "user"
214
- });
215
- expect(migrateCatalogsToProductLines({
216
- payments: { catalogs: { myCatalog: { displayName: "My Catalog" } } },
217
- "payments.products.myProduct": {
218
- catalogId: "myCatalog",
219
- customerType: "user"
220
- }
221
- })).toEqual({
222
- payments: { productLines: { myCatalog: {
223
- displayName: "My Catalog",
224
- customerType: "user"
225
- } } },
226
- "payments.products.myProduct": {
227
- productLineId: "myCatalog",
228
- customerType: "user"
229
- }
230
- });
231
- });
232
- (void 0)?.test("migrateCatalogsToProductLines - does not overwrite existing customerType", ({ expect }) => {
233
- expect(migrateCatalogsToProductLines({ payments: {
234
- catalogs: { myCatalog: {
235
- displayName: "My Catalog",
236
- customerType: "team"
237
- } },
238
- products: { myProduct: {
239
- catalogId: "myCatalog",
240
- customerType: "user",
241
- prices: {}
242
- } }
243
- } })).toEqual({ payments: {
244
- productLines: { myCatalog: {
245
- displayName: "My Catalog",
246
- customerType: "team"
247
- } },
248
- products: { myProduct: {
249
- productLineId: "myCatalog",
250
- customerType: "user",
251
- prices: {}
252
- } }
253
- } });
254
- });
255
- (void 0)?.test("migrateCatalogsToProductLines - multiple catalogs and products", ({ expect }) => {
256
- expect(migrateCatalogsToProductLines({ payments: {
257
- catalogs: {
258
- userPlans: { displayName: "User Plans" },
259
- teamPlans: { displayName: "Team Plans" }
260
- },
261
- products: {
262
- userBasic: {
263
- catalogId: "userPlans",
264
- customerType: "user",
265
- prices: {}
266
- },
267
- userPro: {
268
- catalogId: "userPlans",
269
- customerType: "user",
270
- prices: {}
271
- },
272
- teamBasic: {
273
- catalogId: "teamPlans",
274
- customerType: "team",
275
- prices: {}
276
- }
277
- }
278
- } })).toEqual({ payments: {
279
- productLines: {
280
- userPlans: {
281
- displayName: "User Plans",
282
- customerType: "user"
283
- },
284
- teamPlans: {
285
- displayName: "Team Plans",
286
- customerType: "team"
287
- }
288
- },
289
- products: {
290
- userBasic: {
291
- productLineId: "userPlans",
292
- customerType: "user",
293
- prices: {}
294
- },
295
- userPro: {
296
- productLineId: "userPlans",
297
- customerType: "user",
298
- prices: {}
299
- },
300
- teamBasic: {
301
- productLineId: "teamPlans",
302
- customerType: "team",
303
- prices: {}
304
- }
305
- }
306
- } });
307
- });
308
- (void 0)?.test("migrateCatalogsToProductLines - catalog without products is removed", ({ expect }) => {
309
- expect(migrateCatalogsToProductLines({ payments: {
310
- catalogs: { emptyCatalog: { displayName: "Empty" } },
311
- products: {}
312
- } })).toEqual({ payments: {
313
- productLines: {},
314
- products: {}
315
- } });
316
- });
317
- (void 0)?.test("migrateCatalogsToProductLines - products without catalogId", ({ expect }) => {
318
- expect(migrateCatalogsToProductLines({ payments: {
319
- catalogs: { myCatalog: { displayName: "My Catalog" } },
320
- products: { standalone: {
321
- customerType: "user",
322
- prices: {}
323
- } }
324
- } })).toEqual({ payments: {
325
- productLines: {},
326
- products: { standalone: {
327
- customerType: "user",
328
- prices: {}
329
- } }
330
- } });
331
- });
332
- (void 0)?.test("migrateCatalogsToProductLines - deeply nested flat format", ({ expect }) => {
333
- expect(migrateCatalogsToProductLines({
334
- "payments.catalogs.myCatalog.displayName": "My Catalog",
335
- "payments.products.myProduct.catalogId": "myCatalog",
336
- "payments.products.myProduct.customerType": "user",
337
- "payments.products.myProduct.prices": {}
338
- })).toEqual({
339
- "payments.productLines.myCatalog.displayName": "My Catalog",
340
- "payments.productLines.myCatalog.customerType": "user",
341
- "payments.products.myProduct.productLineId": "myCatalog",
342
- "payments.products.myProduct.customerType": "user",
343
- "payments.products.myProduct.prices": {}
344
- });
345
- });
346
- (void 0)?.test("migrateCatalogsToProductLines - no catalogs", ({ expect }) => {
347
- expect(migrateCatalogsToProductLines({ payments: { products: { myProduct: {
348
- catalogId: "someCatalog",
349
- customerType: "user"
350
- } } } })).toEqual({ payments: { products: { myProduct: {
351
- productLineId: "someCatalog",
352
- customerType: "user"
353
- } } } });
354
- });
355
- (void 0)?.test("migrateCatalogsToProductLines - already migrated (productLines)", ({ expect }) => {
356
- expect(migrateCatalogsToProductLines({ payments: {
357
- productLines: { myLine: {
358
- displayName: "My Line",
359
- customerType: "team"
360
- } },
361
- products: { myProduct: {
362
- productLineId: "myLine",
363
- customerType: "team"
364
- } }
365
- } })).toEqual({ payments: {
366
- productLines: { myLine: {
367
- displayName: "My Line",
368
- customerType: "team"
369
- } },
370
- products: { myProduct: {
371
- productLineId: "myLine",
372
- customerType: "team"
373
- } }
374
- } });
375
- });
376
-
377
182
  //#endregion
378
183
  exports.migrateCatalogsToProductLines = migrateCatalogsToProductLines;
184
+
379
185
  //# sourceMappingURL=migrate-catalogs-to-product-lines.js.map