@hexclave/shared 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1144) hide show
  1. package/LICENSE +7 -0
  2. package/dist/ai/image-limits.d.ts +24 -0
  3. package/dist/ai/image-limits.d.ts.map +1 -0
  4. package/dist/ai/image-limits.js +61 -0
  5. package/dist/ai/image-limits.js.map +1 -0
  6. package/dist/ai/unified-prompts/reminders.d.ts +5 -0
  7. package/dist/ai/unified-prompts/reminders.d.ts.map +1 -0
  8. package/dist/ai/unified-prompts/reminders.js +33 -0
  9. package/dist/ai/unified-prompts/reminders.js.map +1 -0
  10. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts +11 -0
  11. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -0
  12. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +851 -0
  13. package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -0
  14. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.d.ts +5 -0
  15. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.d.ts.map +1 -0
  16. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.js +12 -0
  17. package/dist/ai/unified-prompts/skill-site-prompt-parts/brain.js.map +1 -0
  18. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.d.ts +5 -0
  19. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.d.ts.map +1 -0
  20. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.js +12 -0
  21. package/dist/ai/unified-prompts/skill-site-prompt-parts/cli-help.js.map +1 -0
  22. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.d.ts +5 -0
  23. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.d.ts.map +1 -0
  24. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.js +12 -0
  25. package/dist/ai/unified-prompts/skill-site-prompt-parts/config-docs.js.map +1 -0
  26. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.d.ts +5 -0
  27. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.d.ts.map +1 -0
  28. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js +12 -0
  29. package/dist/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js.map +1 -0
  30. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.d.ts +5 -0
  31. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.d.ts.map +1 -0
  32. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js +12 -0
  33. package/dist/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js.map +1 -0
  34. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts +5 -0
  35. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts.map +1 -0
  36. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.js +64 -0
  37. package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-index.js.map +1 -0
  38. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.d.ts +5 -0
  39. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.d.ts.map +1 -0
  40. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js +12 -0
  41. package/dist/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js.map +1 -0
  42. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.d.ts +5 -0
  43. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.d.ts.map +1 -0
  44. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js +12 -0
  45. package/dist/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js.map +1 -0
  46. package/dist/ai/unified-prompts/skill-site-prompt.d.ts +5 -0
  47. package/dist/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -0
  48. package/dist/ai/unified-prompts/skill-site-prompt.js +75 -0
  49. package/dist/ai/unified-prompts/skill-site-prompt.js.map +1 -0
  50. package/dist/apps/apps-config.d.ts +168 -0
  51. package/dist/apps/apps-config.d.ts.map +1 -0
  52. package/dist/apps/apps-config.js +157 -0
  53. package/dist/apps/apps-config.js.map +1 -0
  54. package/dist/apps/apps-ui.d.ts +45 -0
  55. package/dist/apps/apps-ui.d.ts.map +1 -0
  56. package/dist/apps/apps-ui.js +109 -0
  57. package/dist/apps/apps-ui.js.map +1 -0
  58. package/dist/chunk-BE-pF4vm.js +34 -0
  59. package/dist/config/db-sync-mappings.d.ts +193 -0
  60. package/dist/config/db-sync-mappings.d.ts.map +1 -0
  61. package/dist/config/db-sync-mappings.js +2255 -0
  62. package/dist/config/db-sync-mappings.js.map +1 -0
  63. package/dist/config/format.d.ts +61 -0
  64. package/dist/config/format.d.ts.map +1 -0
  65. package/dist/config/format.js +337 -0
  66. package/dist/config/format.js.map +1 -0
  67. package/dist/config/migrate-catalogs-to-product-lines.d.ts +14 -0
  68. package/dist/config/migrate-catalogs-to-product-lines.d.ts.map +1 -0
  69. package/dist/config/migrate-catalogs-to-product-lines.js +379 -0
  70. package/dist/config/migrate-catalogs-to-product-lines.js.map +1 -0
  71. package/dist/config/schema-fuzzer.test.d.ts +1 -0
  72. package/dist/config/schema-fuzzer.test.js +401 -0
  73. package/dist/config/schema-fuzzer.test.js.map +1 -0
  74. package/dist/config/schema.d.ts +2315 -0
  75. package/dist/config/schema.d.ts.map +1 -0
  76. package/dist/config/schema.js +1085 -0
  77. package/dist/config/schema.js.map +1 -0
  78. package/dist/config-authoring.d.ts +12 -0
  79. package/dist/config-authoring.d.ts.map +1 -0
  80. package/dist/config-authoring.js +12 -0
  81. package/dist/config-authoring.js.map +1 -0
  82. package/dist/config-authoring.test.d.ts +1 -0
  83. package/dist/config-authoring.test.js +29 -0
  84. package/dist/config-authoring.test.js.map +1 -0
  85. package/dist/config-rendering.d.ts +17 -0
  86. package/dist/config-rendering.d.ts.map +1 -0
  87. package/dist/config-rendering.js +114 -0
  88. package/dist/config-rendering.js.map +1 -0
  89. package/dist/crud.d.ts +98 -0
  90. package/dist/crud.d.ts.map +1 -0
  91. package/dist/crud.js +129 -0
  92. package/dist/crud.js.map +1 -0
  93. package/dist/esm/ai/image-limits.d.ts +24 -0
  94. package/dist/esm/ai/image-limits.d.ts.map +1 -0
  95. package/dist/esm/ai/image-limits.js +53 -0
  96. package/dist/esm/ai/image-limits.js.map +1 -0
  97. package/dist/esm/ai/unified-prompts/reminders.d.ts +5 -0
  98. package/dist/esm/ai/unified-prompts/reminders.d.ts.map +1 -0
  99. package/dist/esm/ai/unified-prompts/reminders.js +31 -0
  100. package/dist/esm/ai/unified-prompts/reminders.js.map +1 -0
  101. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts +11 -0
  102. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -0
  103. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +843 -0
  104. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -0
  105. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.d.ts +5 -0
  106. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.d.ts.map +1 -0
  107. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.js +10 -0
  108. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/brain.js.map +1 -0
  109. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.d.ts +5 -0
  110. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.d.ts.map +1 -0
  111. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.js +10 -0
  112. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/cli-help.js.map +1 -0
  113. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.d.ts +5 -0
  114. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.d.ts.map +1 -0
  115. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.js +10 -0
  116. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/config-docs.js.map +1 -0
  117. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.d.ts +5 -0
  118. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.d.ts.map +1 -0
  119. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js +10 -0
  120. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/custom-components-instructions.js.map +1 -0
  121. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.d.ts +5 -0
  122. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.d.ts.map +1 -0
  123. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js +10 -0
  124. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/dashboard-instructions.js.map +1 -0
  125. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts +5 -0
  126. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.d.ts.map +1 -0
  127. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.js +61 -0
  128. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-index.js.map +1 -0
  129. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.d.ts +5 -0
  130. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.d.ts.map +1 -0
  131. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js +10 -0
  132. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/openapi-specs.js.map +1 -0
  133. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.d.ts +5 -0
  134. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.d.ts.map +1 -0
  135. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js +10 -0
  136. package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/sdk-interface-source.js.map +1 -0
  137. package/dist/esm/ai/unified-prompts/skill-site-prompt.d.ts +5 -0
  138. package/dist/esm/ai/unified-prompts/skill-site-prompt.d.ts.map +1 -0
  139. package/dist/esm/ai/unified-prompts/skill-site-prompt.js +73 -0
  140. package/dist/esm/ai/unified-prompts/skill-site-prompt.js.map +1 -0
  141. package/dist/esm/apps/apps-config.d.ts +168 -0
  142. package/dist/esm/apps/apps-config.d.ts.map +1 -0
  143. package/dist/esm/apps/apps-config.js +154 -0
  144. package/dist/esm/apps/apps-config.js.map +1 -0
  145. package/dist/esm/apps/apps-ui.d.ts +45 -0
  146. package/dist/esm/apps/apps-ui.d.ts.map +1 -0
  147. package/dist/esm/apps/apps-ui.js +104 -0
  148. package/dist/esm/apps/apps-ui.js.map +1 -0
  149. package/dist/esm/config/db-sync-mappings.d.ts +193 -0
  150. package/dist/esm/config/db-sync-mappings.d.ts.map +1 -0
  151. package/dist/esm/config/db-sync-mappings.js +2253 -0
  152. package/dist/esm/config/db-sync-mappings.js.map +1 -0
  153. package/dist/esm/config/format.d.ts +61 -0
  154. package/dist/esm/config/format.d.ts.map +1 -0
  155. package/dist/esm/config/format.js +327 -0
  156. package/dist/esm/config/format.js.map +1 -0
  157. package/dist/esm/config/migrate-catalogs-to-product-lines.d.ts +14 -0
  158. package/dist/esm/config/migrate-catalogs-to-product-lines.d.ts.map +1 -0
  159. package/dist/esm/config/migrate-catalogs-to-product-lines.js +377 -0
  160. package/dist/esm/config/migrate-catalogs-to-product-lines.js.map +1 -0
  161. package/dist/esm/config/schema-fuzzer.test.d.ts +1 -0
  162. package/dist/esm/config/schema-fuzzer.test.js +401 -0
  163. package/dist/esm/config/schema-fuzzer.test.js.map +1 -0
  164. package/dist/esm/config/schema.d.ts +2315 -0
  165. package/dist/esm/config/schema.d.ts.map +1 -0
  166. package/dist/esm/config/schema.js +1065 -0
  167. package/dist/esm/config/schema.js.map +1 -0
  168. package/dist/esm/config-authoring.d.ts +12 -0
  169. package/dist/esm/config-authoring.d.ts.map +1 -0
  170. package/dist/esm/config-authoring.js +9 -0
  171. package/dist/esm/config-authoring.js.map +1 -0
  172. package/dist/esm/config-authoring.test.d.ts +1 -0
  173. package/dist/esm/config-authoring.test.js +29 -0
  174. package/dist/esm/config-authoring.test.js.map +1 -0
  175. package/dist/esm/config-rendering.d.ts +17 -0
  176. package/dist/esm/config-rendering.d.ts.map +1 -0
  177. package/dist/esm/config-rendering.js +108 -0
  178. package/dist/esm/config-rendering.js.map +1 -0
  179. package/dist/esm/crud.d.ts +98 -0
  180. package/dist/esm/crud.d.ts.map +1 -0
  181. package/dist/esm/crud.js +127 -0
  182. package/dist/esm/crud.js.map +1 -0
  183. package/dist/esm/global.d.ts +1 -0
  184. package/dist/esm/helpers/emails.d.ts +69 -0
  185. package/dist/esm/helpers/emails.d.ts.map +1 -0
  186. package/dist/esm/helpers/emails.js +243 -0
  187. package/dist/esm/helpers/emails.js.map +1 -0
  188. package/dist/esm/helpers/init-prompt.d.ts +5 -0
  189. package/dist/esm/helpers/init-prompt.d.ts.map +1 -0
  190. package/dist/esm/helpers/init-prompt.js +40 -0
  191. package/dist/esm/helpers/init-prompt.js.map +1 -0
  192. package/dist/esm/helpers/password.d.ts +7 -0
  193. package/dist/esm/helpers/password.d.ts.map +1 -0
  194. package/dist/esm/helpers/password.js +13 -0
  195. package/dist/esm/helpers/password.js.map +1 -0
  196. package/dist/esm/helpers/production-mode.d.ts +11 -0
  197. package/dist/esm/helpers/production-mode.d.ts.map +1 -0
  198. package/dist/esm/helpers/production-mode.js +46 -0
  199. package/dist/esm/helpers/production-mode.js.map +1 -0
  200. package/dist/esm/helpers/support-sla.d.ts +48 -0
  201. package/dist/esm/helpers/support-sla.d.ts.map +1 -0
  202. package/dist/esm/helpers/support-sla.js +65 -0
  203. package/dist/esm/helpers/support-sla.js.map +1 -0
  204. package/dist/esm/helpers/support-sla.test.d.ts +1 -0
  205. package/dist/esm/helpers/support-sla.test.js +102 -0
  206. package/dist/esm/helpers/support-sla.test.js.map +1 -0
  207. package/dist/esm/helpers/vault/client-side.d.ts +16 -0
  208. package/dist/esm/helpers/vault/client-side.d.ts.map +1 -0
  209. package/dist/esm/helpers/vault/client-side.js +69 -0
  210. package/dist/esm/helpers/vault/client-side.js.map +1 -0
  211. package/dist/esm/helpers/vault/server-side.d.ts +9 -0
  212. package/dist/esm/helpers/vault/server-side.d.ts.map +1 -0
  213. package/dist/esm/helpers/vault/server-side.js +123 -0
  214. package/dist/esm/helpers/vault/server-side.js.map +1 -0
  215. package/dist/esm/hooks/use-async-callback.d.ts +8 -0
  216. package/dist/esm/hooks/use-async-callback.d.ts.map +1 -0
  217. package/dist/esm/hooks/use-async-callback.js +38 -0
  218. package/dist/esm/hooks/use-async-callback.js.map +1 -0
  219. package/dist/esm/hooks/use-async-external-store.d.ts +9 -0
  220. package/dist/esm/hooks/use-async-external-store.d.ts.map +1 -0
  221. package/dist/esm/hooks/use-async-external-store.js +20 -0
  222. package/dist/esm/hooks/use-async-external-store.js.map +1 -0
  223. package/dist/esm/hooks/use-hash.d.ts +5 -0
  224. package/dist/esm/hooks/use-hash.d.ts.map +1 -0
  225. package/dist/esm/hooks/use-hash.js +15 -0
  226. package/dist/esm/hooks/use-hash.js.map +1 -0
  227. package/dist/esm/hooks/use-hover.d.ts +8 -0
  228. package/dist/esm/hooks/use-hover.d.ts.map +1 -0
  229. package/dist/esm/hooks/use-hover.js +59 -0
  230. package/dist/esm/hooks/use-hover.js.map +1 -0
  231. package/dist/esm/hooks/use-strict-memo.d.ts +10 -0
  232. package/dist/esm/hooks/use-strict-memo.d.ts.map +1 -0
  233. package/dist/esm/hooks/use-strict-memo.js +119 -0
  234. package/dist/esm/hooks/use-strict-memo.js.map +1 -0
  235. package/dist/esm/index.d.ts +5 -0
  236. package/dist/esm/index.js +6 -0
  237. package/dist/esm/interface/admin-interface.d.ts +308 -0
  238. package/dist/esm/interface/admin-interface.d.ts.map +1 -0
  239. package/dist/esm/interface/admin-interface.js +463 -0
  240. package/dist/esm/interface/admin-interface.js.map +1 -0
  241. package/dist/esm/interface/admin-metrics.d.ts +597 -0
  242. package/dist/esm/interface/admin-metrics.d.ts.map +1 -0
  243. package/dist/esm/interface/admin-metrics.js +134 -0
  244. package/dist/esm/interface/admin-metrics.js.map +1 -0
  245. package/dist/esm/interface/client-interface.d.ts +447 -0
  246. package/dist/esm/interface/client-interface.d.ts.map +1 -0
  247. package/dist/esm/interface/client-interface.js +1946 -0
  248. package/dist/esm/interface/client-interface.js.map +1 -0
  249. package/dist/esm/interface/client-interface.test.d.ts +1 -0
  250. package/dist/esm/interface/client-interface.test.js +559 -0
  251. package/dist/esm/interface/client-interface.test.js.map +1 -0
  252. package/dist/esm/interface/conversations.d.ts +314 -0
  253. package/dist/esm/interface/conversations.d.ts.map +1 -0
  254. package/dist/esm/interface/conversations.js +108 -0
  255. package/dist/esm/interface/conversations.js.map +1 -0
  256. package/dist/esm/interface/crud/analytics.d.ts +14 -0
  257. package/dist/esm/interface/crud/analytics.d.ts.map +1 -0
  258. package/dist/esm/interface/crud/analytics.js +1 -0
  259. package/dist/esm/interface/crud/connected-accounts.d.ts +69 -0
  260. package/dist/esm/interface/crud/connected-accounts.d.ts.map +1 -0
  261. package/dist/esm/interface/crud/connected-accounts.js +35 -0
  262. package/dist/esm/interface/crud/connected-accounts.js.map +1 -0
  263. package/dist/esm/interface/crud/contact-channels.d.ts +182 -0
  264. package/dist/esm/interface/crud/contact-channels.d.ts.map +1 -0
  265. package/dist/esm/interface/crud/contact-channels.js +68 -0
  266. package/dist/esm/interface/crud/contact-channels.js.map +1 -0
  267. package/dist/esm/interface/crud/current-user.d.ts +286 -0
  268. package/dist/esm/interface/crud/current-user.d.ts.map +1 -0
  269. package/dist/esm/interface/crud/current-user.js +69 -0
  270. package/dist/esm/interface/crud/current-user.js.map +1 -0
  271. package/dist/esm/interface/crud/email-outbox.d.ts +1466 -0
  272. package/dist/esm/interface/crud/email-outbox.d.ts.map +1 -0
  273. package/dist/esm/interface/crud/email-outbox.js +190 -0
  274. package/dist/esm/interface/crud/email-outbox.js.map +1 -0
  275. package/dist/esm/interface/crud/email-templates.d.ts +86 -0
  276. package/dist/esm/interface/crud/email-templates.d.ts.map +1 -0
  277. package/dist/esm/interface/crud/email-templates.js +46 -0
  278. package/dist/esm/interface/crud/email-templates.js.map +1 -0
  279. package/dist/esm/interface/crud/emails.d.ts +42 -0
  280. package/dist/esm/interface/crud/emails.d.ts.map +1 -0
  281. package/dist/esm/interface/crud/emails.js +19 -0
  282. package/dist/esm/interface/crud/emails.js.map +1 -0
  283. package/dist/esm/interface/crud/internal-api-keys.d.ts +141 -0
  284. package/dist/esm/interface/crud/internal-api-keys.d.ts.map +1 -0
  285. package/dist/esm/interface/crud/internal-api-keys.js +49 -0
  286. package/dist/esm/interface/crud/internal-api-keys.js.map +1 -0
  287. package/dist/esm/interface/crud/invoices.d.ts +43 -0
  288. package/dist/esm/interface/crud/invoices.d.ts.map +1 -0
  289. package/dist/esm/interface/crud/invoices.js +25 -0
  290. package/dist/esm/interface/crud/invoices.js.map +1 -0
  291. package/dist/esm/interface/crud/items.d.ts +31 -0
  292. package/dist/esm/interface/crud/items.d.ts.map +1 -0
  293. package/dist/esm/interface/crud/items.js +23 -0
  294. package/dist/esm/interface/crud/items.js.map +1 -0
  295. package/dist/esm/interface/crud/notification-preferences.d.ts +39 -0
  296. package/dist/esm/interface/crud/notification-preferences.d.ts.map +1 -0
  297. package/dist/esm/interface/crud/notification-preferences.js +31 -0
  298. package/dist/esm/interface/crud/notification-preferences.js.map +1 -0
  299. package/dist/esm/interface/crud/oauth-providers.d.ts +187 -0
  300. package/dist/esm/interface/crud/oauth-providers.d.ts.map +1 -0
  301. package/dist/esm/interface/crud/oauth-providers.js +75 -0
  302. package/dist/esm/interface/crud/oauth-providers.js.map +1 -0
  303. package/dist/esm/interface/crud/products.d.ts +182 -0
  304. package/dist/esm/interface/crud/products.d.ts.map +1 -0
  305. package/dist/esm/interface/crud/products.js +29 -0
  306. package/dist/esm/interface/crud/products.js.map +1 -0
  307. package/dist/esm/interface/crud/project-api-keys.d.ts +204 -0
  308. package/dist/esm/interface/crud/project-api-keys.d.ts.map +1 -0
  309. package/dist/esm/interface/crud/project-api-keys.js +72 -0
  310. package/dist/esm/interface/crud/project-api-keys.js.map +1 -0
  311. package/dist/esm/interface/crud/project-permissions.d.ts +162 -0
  312. package/dist/esm/interface/crud/project-permissions.d.ts.map +1 -0
  313. package/dist/esm/interface/crud/project-permissions.js +104 -0
  314. package/dist/esm/interface/crud/project-permissions.js.map +1 -0
  315. package/dist/esm/interface/crud/projects.d.ts +852 -0
  316. package/dist/esm/interface/crud/projects.d.ts.map +1 -0
  317. package/dist/esm/interface/crud/projects.js +193 -0
  318. package/dist/esm/interface/crud/projects.js.map +1 -0
  319. package/dist/esm/interface/crud/session-replays.d.ts +83 -0
  320. package/dist/esm/interface/crud/session-replays.d.ts.map +1 -0
  321. package/dist/esm/interface/crud/session-replays.js +1 -0
  322. package/dist/esm/interface/crud/sessions.d.ts +151 -0
  323. package/dist/esm/interface/crud/sessions.d.ts.map +1 -0
  324. package/dist/esm/interface/crud/sessions.js +56 -0
  325. package/dist/esm/interface/crud/sessions.js.map +1 -0
  326. package/dist/esm/interface/crud/sign-up-rules.d.ts +15 -0
  327. package/dist/esm/interface/crud/sign-up-rules.d.ts.map +1 -0
  328. package/dist/esm/interface/crud/sign-up-rules.js +1 -0
  329. package/dist/esm/interface/crud/svix-token.d.ts +32 -0
  330. package/dist/esm/interface/crud/svix-token.d.ts.map +1 -0
  331. package/dist/esm/interface/crud/svix-token.js +18 -0
  332. package/dist/esm/interface/crud/svix-token.js.map +1 -0
  333. package/dist/esm/interface/crud/team-invitation-details.d.ts +32 -0
  334. package/dist/esm/interface/crud/team-invitation-details.d.ts.map +1 -0
  335. package/dist/esm/interface/crud/team-invitation-details.js +21 -0
  336. package/dist/esm/interface/crud/team-invitation-details.js.map +1 -0
  337. package/dist/esm/interface/crud/team-invitation.d.ts +55 -0
  338. package/dist/esm/interface/crud/team-invitation.d.ts.map +1 -0
  339. package/dist/esm/interface/crud/team-invitation.js +37 -0
  340. package/dist/esm/interface/crud/team-invitation.js.map +1 -0
  341. package/dist/esm/interface/crud/team-member-profiles.d.ts +287 -0
  342. package/dist/esm/interface/crud/team-member-profiles.d.ts.map +1 -0
  343. package/dist/esm/interface/crud/team-member-profiles.js +58 -0
  344. package/dist/esm/interface/crud/team-member-profiles.js.map +1 -0
  345. package/dist/esm/interface/crud/team-memberships.d.ts +76 -0
  346. package/dist/esm/interface/crud/team-memberships.d.ts.map +1 -0
  347. package/dist/esm/interface/crud/team-memberships.js +54 -0
  348. package/dist/esm/interface/crud/team-memberships.js.map +1 -0
  349. package/dist/esm/interface/crud/team-permissions.d.ts +170 -0
  350. package/dist/esm/interface/crud/team-permissions.d.ts.map +1 -0
  351. package/dist/esm/interface/crud/team-permissions.js +105 -0
  352. package/dist/esm/interface/crud/team-permissions.js.map +1 -0
  353. package/dist/esm/interface/crud/teams.d.ts +300 -0
  354. package/dist/esm/interface/crud/teams.d.ts.map +1 -0
  355. package/dist/esm/interface/crud/teams.js +129 -0
  356. package/dist/esm/interface/crud/teams.js.map +1 -0
  357. package/dist/esm/interface/crud/transactions.d.ts +183 -0
  358. package/dist/esm/interface/crud/transactions.d.ts.map +1 -0
  359. package/dist/esm/interface/crud/transactions.js +85 -0
  360. package/dist/esm/interface/crud/transactions.js.map +1 -0
  361. package/dist/esm/interface/crud/users.d.ts +654 -0
  362. package/dist/esm/interface/crud/users.d.ts.map +1 -0
  363. package/dist/esm/interface/crud/users.js +181 -0
  364. package/dist/esm/interface/crud/users.js.map +1 -0
  365. package/dist/esm/interface/handler-urls.d.ts +51 -0
  366. package/dist/esm/interface/handler-urls.d.ts.map +1 -0
  367. package/dist/esm/interface/handler-urls.js +3 -0
  368. package/dist/esm/interface/page-component-versions.d.ts +25 -0
  369. package/dist/esm/interface/page-component-versions.d.ts.map +1 -0
  370. package/dist/esm/interface/page-component-versions.js +1661 -0
  371. package/dist/esm/interface/page-component-versions.js.map +1 -0
  372. package/dist/esm/interface/server-interface.d.ts +255 -0
  373. package/dist/esm/interface/server-interface.d.ts.map +1 -0
  374. package/dist/esm/interface/server-interface.js +459 -0
  375. package/dist/esm/interface/server-interface.js.map +1 -0
  376. package/dist/esm/interface/webhooks.d.ts +326 -0
  377. package/dist/esm/interface/webhooks.d.ts.map +1 -0
  378. package/dist/esm/interface/webhooks.js +22 -0
  379. package/dist/esm/interface/webhooks.js.map +1 -0
  380. package/dist/esm/known-errors.d.ts +575 -0
  381. package/dist/esm/known-errors.d.ts.map +1 -0
  382. package/dist/esm/known-errors.js +791 -0
  383. package/dist/esm/known-errors.js.map +1 -0
  384. package/dist/esm/local-emulator.d.ts +6 -0
  385. package/dist/esm/local-emulator.d.ts.map +1 -0
  386. package/dist/esm/local-emulator.js +7 -0
  387. package/dist/esm/local-emulator.js.map +1 -0
  388. package/dist/esm/payments/payment-methods.d.ts +64 -0
  389. package/dist/esm/payments/payment-methods.d.ts.map +1 -0
  390. package/dist/esm/payments/payment-methods.js +205 -0
  391. package/dist/esm/payments/payment-methods.js.map +1 -0
  392. package/dist/esm/payments/stripe-limits.d.ts +17 -0
  393. package/dist/esm/payments/stripe-limits.d.ts.map +1 -0
  394. package/dist/esm/payments/stripe-limits.js +17 -0
  395. package/dist/esm/payments/stripe-limits.js.map +1 -0
  396. package/dist/esm/plans.d.ts +72 -0
  397. package/dist/esm/plans.d.ts.map +1 -0
  398. package/dist/esm/plans.js +81 -0
  399. package/dist/esm/plans.js.map +1 -0
  400. package/dist/esm/schema-fields.d.ts +472 -0
  401. package/dist/esm/schema-fields.d.ts.map +1 -0
  402. package/dist/esm/schema-fields.js +1009 -0
  403. package/dist/esm/schema-fields.js.map +1 -0
  404. package/dist/esm/sessions.d.ts +165 -0
  405. package/dist/esm/sessions.d.ts.map +1 -0
  406. package/dist/esm/sessions.js +226 -0
  407. package/dist/esm/sessions.js.map +1 -0
  408. package/dist/esm/stack-config-file.d.ts +15 -0
  409. package/dist/esm/stack-config-file.d.ts.map +1 -0
  410. package/dist/esm/stack-config-file.js +76 -0
  411. package/dist/esm/stack-config-file.js.map +1 -0
  412. package/dist/esm/utils/api-keys.d.ts +26 -0
  413. package/dist/esm/utils/api-keys.d.ts.map +1 -0
  414. package/dist/esm/utils/api-keys.js +77 -0
  415. package/dist/esm/utils/api-keys.js.map +1 -0
  416. package/dist/esm/utils/arrays.d.ts +25 -0
  417. package/dist/esm/utils/arrays.d.ts.map +1 -0
  418. package/dist/esm/utils/arrays.js +552 -0
  419. package/dist/esm/utils/arrays.js.map +1 -0
  420. package/dist/esm/utils/auth-methods.d.ts +6 -0
  421. package/dist/esm/utils/auth-methods.d.ts.map +1 -0
  422. package/dist/esm/utils/auth-methods.js +11 -0
  423. package/dist/esm/utils/auth-methods.js.map +1 -0
  424. package/dist/esm/utils/base64.d.ts +6 -0
  425. package/dist/esm/utils/base64.d.ts.map +1 -0
  426. package/dist/esm/utils/base64.js +25 -0
  427. package/dist/esm/utils/base64.js.map +1 -0
  428. package/dist/esm/utils/booleans.d.ts +8 -0
  429. package/dist/esm/utils/booleans.d.ts.map +1 -0
  430. package/dist/esm/utils/booleans.js +35 -0
  431. package/dist/esm/utils/booleans.js.map +1 -0
  432. package/dist/esm/utils/browser-compat.d.ts +10 -0
  433. package/dist/esm/utils/browser-compat.d.ts.map +1 -0
  434. package/dist/esm/utils/browser-compat.js +21 -0
  435. package/dist/esm/utils/browser-compat.js.map +1 -0
  436. package/dist/esm/utils/bytes.d.ts +17 -0
  437. package/dist/esm/utils/bytes.d.ts.map +1 -0
  438. package/dist/esm/utils/bytes.js +290 -0
  439. package/dist/esm/utils/bytes.js.map +1 -0
  440. package/dist/esm/utils/caches.d.ts +102 -0
  441. package/dist/esm/utils/caches.d.ts.map +1 -0
  442. package/dist/esm/utils/caches.js +185 -0
  443. package/dist/esm/utils/caches.js.map +1 -0
  444. package/dist/esm/utils/cel-fields.d.ts +23 -0
  445. package/dist/esm/utils/cel-fields.d.ts.map +1 -0
  446. package/dist/esm/utils/cel-fields.js +99 -0
  447. package/dist/esm/utils/cel-fields.js.map +1 -0
  448. package/dist/esm/utils/compile-time.d.ts +10 -0
  449. package/dist/esm/utils/compile-time.d.ts.map +1 -0
  450. package/dist/esm/utils/compile-time.js +14 -0
  451. package/dist/esm/utils/compile-time.js.map +1 -0
  452. package/dist/esm/utils/country-codes.d.ts +11 -0
  453. package/dist/esm/utils/country-codes.d.ts.map +1 -0
  454. package/dist/esm/utils/country-codes.js +36 -0
  455. package/dist/esm/utils/country-codes.js.map +1 -0
  456. package/dist/esm/utils/crypto.d.ts +48 -0
  457. package/dist/esm/utils/crypto.d.ts.map +1 -0
  458. package/dist/esm/utils/crypto.js +208 -0
  459. package/dist/esm/utils/crypto.js.map +1 -0
  460. package/dist/esm/utils/currencies.d.ts +8 -0
  461. package/dist/esm/utils/currencies.d.ts.map +1 -0
  462. package/dist/esm/utils/currencies.js +50 -0
  463. package/dist/esm/utils/currencies.js.map +1 -0
  464. package/dist/esm/utils/currency-constants.d.ts +39 -0
  465. package/dist/esm/utils/currency-constants.d.ts.map +1 -0
  466. package/dist/esm/utils/currency-constants.js +42 -0
  467. package/dist/esm/utils/currency-constants.js.map +1 -0
  468. package/dist/esm/utils/dates.d.ts +23 -0
  469. package/dist/esm/utils/dates.d.ts.map +1 -0
  470. package/dist/esm/utils/dates.js +167 -0
  471. package/dist/esm/utils/dates.js.map +1 -0
  472. package/dist/esm/utils/dev-env-state-path.d.ts +6 -0
  473. package/dist/esm/utils/dev-env-state-path.d.ts.map +1 -0
  474. package/dist/esm/utils/dev-env-state-path.js +15 -0
  475. package/dist/esm/utils/dev-env-state-path.js.map +1 -0
  476. package/dist/esm/utils/dom.d.ts +5 -0
  477. package/dist/esm/utils/dom.d.ts.map +1 -0
  478. package/dist/esm/utils/dom.js +11 -0
  479. package/dist/esm/utils/dom.js.map +1 -0
  480. package/dist/esm/utils/env.d.ts +25 -0
  481. package/dist/esm/utils/env.d.ts.map +1 -0
  482. package/dist/esm/utils/env.js +78 -0
  483. package/dist/esm/utils/env.js.map +1 -0
  484. package/dist/esm/utils/errors.d.ts +231 -0
  485. package/dist/esm/utils/errors.d.ts.map +1 -0
  486. package/dist/esm/utils/errors.js +385 -0
  487. package/dist/esm/utils/errors.js.map +1 -0
  488. package/dist/esm/utils/esbuild.d.ts +16 -0
  489. package/dist/esm/utils/esbuild.d.ts.map +1 -0
  490. package/dist/esm/utils/esbuild.js +182 -0
  491. package/dist/esm/utils/esbuild.js.map +1 -0
  492. package/dist/esm/utils/featurebase.d.ts +30 -0
  493. package/dist/esm/utils/featurebase.d.ts.map +1 -0
  494. package/dist/esm/utils/featurebase.js +166 -0
  495. package/dist/esm/utils/featurebase.js.map +1 -0
  496. package/dist/esm/utils/fs.d.ts +9 -0
  497. package/dist/esm/utils/fs.d.ts.map +1 -0
  498. package/dist/esm/utils/fs.js +25 -0
  499. package/dist/esm/utils/fs.js.map +1 -0
  500. package/dist/esm/utils/functions.d.ts +6 -0
  501. package/dist/esm/utils/functions.d.ts.map +1 -0
  502. package/dist/esm/utils/functions.js +34 -0
  503. package/dist/esm/utils/functions.js.map +1 -0
  504. package/dist/esm/utils/geo.d.ts +24 -0
  505. package/dist/esm/utils/geo.d.ts.map +1 -0
  506. package/dist/esm/utils/geo.js +16 -0
  507. package/dist/esm/utils/geo.js.map +1 -0
  508. package/dist/esm/utils/globals.d.ts +13 -0
  509. package/dist/esm/utils/globals.d.ts.map +1 -0
  510. package/dist/esm/utils/globals.js +34 -0
  511. package/dist/esm/utils/globals.js.map +1 -0
  512. package/dist/esm/utils/hashes.d.ts +9 -0
  513. package/dist/esm/utils/hashes.d.ts.map +1 -0
  514. package/dist/esm/utils/hashes.js +40 -0
  515. package/dist/esm/utils/hashes.js.map +1 -0
  516. package/dist/esm/utils/html.d.ts +7 -0
  517. package/dist/esm/utils/html.d.ts.map +1 -0
  518. package/dist/esm/utils/html.js +33 -0
  519. package/dist/esm/utils/html.js.map +1 -0
  520. package/dist/esm/utils/http.d.ts +45 -0
  521. package/dist/esm/utils/http.d.ts.map +1 -0
  522. package/dist/esm/utils/http.js +75 -0
  523. package/dist/esm/utils/http.js.map +1 -0
  524. package/dist/esm/utils/ips.d.ts +8 -0
  525. package/dist/esm/utils/ips.d.ts.map +1 -0
  526. package/dist/esm/utils/ips.js +36 -0
  527. package/dist/esm/utils/ips.js.map +1 -0
  528. package/dist/esm/utils/json.d.ts +15 -0
  529. package/dist/esm/utils/json.d.ts.map +1 -0
  530. package/dist/esm/utils/json.js +178 -0
  531. package/dist/esm/utils/json.js.map +1 -0
  532. package/dist/esm/utils/jsx-editable-transpiler.d.ts +68 -0
  533. package/dist/esm/utils/jsx-editable-transpiler.d.ts.map +1 -0
  534. package/dist/esm/utils/jsx-editable-transpiler.js +216 -0
  535. package/dist/esm/utils/jsx-editable-transpiler.js.map +1 -0
  536. package/dist/esm/utils/jsx-editable-transpiler.test.d.ts +1 -0
  537. package/dist/esm/utils/jsx-editable-transpiler.test.js +122 -0
  538. package/dist/esm/utils/jsx-editable-transpiler.test.js.map +1 -0
  539. package/dist/esm/utils/jwt.d.ts +79 -0
  540. package/dist/esm/utils/jwt.d.ts.map +1 -0
  541. package/dist/esm/utils/jwt.js +102 -0
  542. package/dist/esm/utils/jwt.js.map +1 -0
  543. package/dist/esm/utils/locks.d.ts +17 -0
  544. package/dist/esm/utils/locks.d.ts.map +1 -0
  545. package/dist/esm/utils/locks.js +54 -0
  546. package/dist/esm/utils/locks.js.map +1 -0
  547. package/dist/esm/utils/maps.d.ts +61 -0
  548. package/dist/esm/utils/maps.d.ts.map +1 -0
  549. package/dist/esm/utils/maps.js +297 -0
  550. package/dist/esm/utils/maps.js.map +1 -0
  551. package/dist/esm/utils/math.d.ts +8 -0
  552. package/dist/esm/utils/math.d.ts.map +1 -0
  553. package/dist/esm/utils/math.js +21 -0
  554. package/dist/esm/utils/math.js.map +1 -0
  555. package/dist/esm/utils/monkey-patch.d.ts +7 -0
  556. package/dist/esm/utils/monkey-patch.d.ts.map +1 -0
  557. package/dist/esm/utils/monkey-patch.js +21 -0
  558. package/dist/esm/utils/monkey-patch.js.map +1 -0
  559. package/dist/esm/utils/node-http.d.ts +17 -0
  560. package/dist/esm/utils/node-http.d.ts.map +1 -0
  561. package/dist/esm/utils/node-http.js +38 -0
  562. package/dist/esm/utils/node-http.js.map +1 -0
  563. package/dist/esm/utils/numbers.d.ts +7 -0
  564. package/dist/esm/utils/numbers.d.ts.map +1 -0
  565. package/dist/esm/utils/numbers.js +75 -0
  566. package/dist/esm/utils/numbers.js.map +1 -0
  567. package/dist/esm/utils/oauth.d.ts +11 -0
  568. package/dist/esm/utils/oauth.d.ts.map +1 -0
  569. package/dist/esm/utils/oauth.js +27 -0
  570. package/dist/esm/utils/oauth.js.map +1 -0
  571. package/dist/esm/utils/objects.d.ts +59 -0
  572. package/dist/esm/utils/objects.d.ts.map +1 -0
  573. package/dist/esm/utils/objects.js +818 -0
  574. package/dist/esm/utils/objects.js.map +1 -0
  575. package/dist/esm/utils/paginated-lists.d.ts +442 -0
  576. package/dist/esm/utils/paginated-lists.d.ts.map +1 -0
  577. package/dist/esm/utils/paginated-lists.js +411 -0
  578. package/dist/esm/utils/paginated-lists.js.map +1 -0
  579. package/dist/esm/utils/paginated-lists.test.d.ts +1 -0
  580. package/dist/esm/utils/paginated-lists.test.js +1304 -0
  581. package/dist/esm/utils/paginated-lists.test.js.map +1 -0
  582. package/dist/esm/utils/passkey.d.ts +2 -0
  583. package/dist/esm/utils/passkey.js +1 -0
  584. package/dist/esm/utils/promises.d.ts +80 -0
  585. package/dist/esm/utils/promises.d.ts.map +1 -0
  586. package/dist/esm/utils/promises.js +333 -0
  587. package/dist/esm/utils/promises.js.map +1 -0
  588. package/dist/esm/utils/proxies.d.ts +13 -0
  589. package/dist/esm/utils/proxies.d.ts.map +1 -0
  590. package/dist/esm/utils/proxies.js +197 -0
  591. package/dist/esm/utils/proxies.js.map +1 -0
  592. package/dist/esm/utils/react.d.ts +61 -0
  593. package/dist/esm/utils/react.d.ts.map +1 -0
  594. package/dist/esm/utils/react.js +229 -0
  595. package/dist/esm/utils/react.js.map +1 -0
  596. package/dist/esm/utils/redirect-urls.d.ts +30 -0
  597. package/dist/esm/utils/redirect-urls.d.ts.map +1 -0
  598. package/dist/esm/utils/redirect-urls.js +215 -0
  599. package/dist/esm/utils/redirect-urls.js.map +1 -0
  600. package/dist/esm/utils/regex.d.ts +5 -0
  601. package/dist/esm/utils/regex.d.ts.map +1 -0
  602. package/dist/esm/utils/regex.js +13 -0
  603. package/dist/esm/utils/regex.js.map +1 -0
  604. package/dist/esm/utils/results.d.ts +70 -0
  605. package/dist/esm/utils/results.d.ts.map +1 -0
  606. package/dist/esm/utils/results.js +339 -0
  607. package/dist/esm/utils/results.js.map +1 -0
  608. package/dist/esm/utils/sentry.d.ts +13 -0
  609. package/dist/esm/utils/sentry.d.ts.map +1 -0
  610. package/dist/esm/utils/sentry.js +14 -0
  611. package/dist/esm/utils/sentry.js.map +1 -0
  612. package/dist/esm/utils/stores.d.ts +104 -0
  613. package/dist/esm/utils/stores.d.ts.map +1 -0
  614. package/dist/esm/utils/stores.js +175 -0
  615. package/dist/esm/utils/stores.js.map +1 -0
  616. package/dist/esm/utils/strings.d.ts +76 -0
  617. package/dist/esm/utils/strings.d.ts.map +1 -0
  618. package/dist/esm/utils/strings.js +530 -0
  619. package/dist/esm/utils/strings.js.map +1 -0
  620. package/dist/esm/utils/strings.nicify.test.d.ts +1 -0
  621. package/dist/esm/utils/strings.nicify.test.js +243 -0
  622. package/dist/esm/utils/strings.nicify.test.js.map +1 -0
  623. package/dist/esm/utils/telemetry.d.ts +15 -0
  624. package/dist/esm/utils/telemetry.d.ts.map +1 -0
  625. package/dist/esm/utils/telemetry.js +31 -0
  626. package/dist/esm/utils/telemetry.js.map +1 -0
  627. package/dist/esm/utils/turnstile-browser.d.ts +32 -0
  628. package/dist/esm/utils/turnstile-browser.d.ts.map +1 -0
  629. package/dist/esm/utils/turnstile-browser.js +61 -0
  630. package/dist/esm/utils/turnstile-browser.js.map +1 -0
  631. package/dist/esm/utils/turnstile-flow.d.ts +29 -0
  632. package/dist/esm/utils/turnstile-flow.d.ts.map +1 -0
  633. package/dist/esm/utils/turnstile-flow.js +219 -0
  634. package/dist/esm/utils/turnstile-flow.js.map +1 -0
  635. package/dist/esm/utils/turnstile-flow.test.d.ts +1 -0
  636. package/dist/esm/utils/turnstile-flow.test.js +75 -0
  637. package/dist/esm/utils/turnstile-flow.test.js.map +1 -0
  638. package/dist/esm/utils/turnstile.d.ts +17 -0
  639. package/dist/esm/utils/turnstile.d.ts.map +1 -0
  640. package/dist/esm/utils/turnstile.js +25 -0
  641. package/dist/esm/utils/turnstile.js.map +1 -0
  642. package/dist/esm/utils/typed-arrays.d.ts +14 -0
  643. package/dist/esm/utils/typed-arrays.d.ts.map +1 -0
  644. package/dist/esm/utils/typed-arrays.js +20 -0
  645. package/dist/esm/utils/typed-arrays.js.map +1 -0
  646. package/dist/esm/utils/types.d.ts +77 -0
  647. package/dist/esm/utils/types.d.ts.map +1 -0
  648. package/dist/esm/utils/types.js +55 -0
  649. package/dist/esm/utils/types.js.map +1 -0
  650. package/dist/esm/utils/unicode.d.ts +5 -0
  651. package/dist/esm/utils/unicode.d.ts.map +1 -0
  652. package/dist/esm/utils/unicode.js +24 -0
  653. package/dist/esm/utils/unicode.js.map +1 -0
  654. package/dist/esm/utils/urls.d.ts +28 -0
  655. package/dist/esm/utils/urls.d.ts.map +1 -0
  656. package/dist/esm/utils/urls.js +259 -0
  657. package/dist/esm/utils/urls.js.map +1 -0
  658. package/dist/esm/utils/uuids.d.ts +6 -0
  659. package/dist/esm/utils/uuids.d.ts.map +1 -0
  660. package/dist/esm/utils/uuids.js +36 -0
  661. package/dist/esm/utils/uuids.js.map +1 -0
  662. package/dist/global.d.d.ts +0 -0
  663. package/dist/global.d.ts +1 -0
  664. package/dist/helpers/emails.d.ts +69 -0
  665. package/dist/helpers/emails.d.ts.map +1 -0
  666. package/dist/helpers/emails.js +252 -0
  667. package/dist/helpers/emails.js.map +1 -0
  668. package/dist/helpers/init-prompt.d.ts +5 -0
  669. package/dist/helpers/init-prompt.d.ts.map +1 -0
  670. package/dist/helpers/init-prompt.js +42 -0
  671. package/dist/helpers/init-prompt.js.map +1 -0
  672. package/dist/helpers/password.d.ts +6 -0
  673. package/dist/helpers/password.d.ts.map +1 -0
  674. package/dist/helpers/password.js +15 -0
  675. package/dist/helpers/password.js.map +1 -0
  676. package/dist/helpers/production-mode.d.ts +11 -0
  677. package/dist/helpers/production-mode.d.ts.map +1 -0
  678. package/dist/helpers/production-mode.js +48 -0
  679. package/dist/helpers/production-mode.js.map +1 -0
  680. package/dist/helpers/support-sla.d.ts +48 -0
  681. package/dist/helpers/support-sla.d.ts.map +1 -0
  682. package/dist/helpers/support-sla.js +72 -0
  683. package/dist/helpers/support-sla.js.map +1 -0
  684. package/dist/helpers/support-sla.test.d.ts +1 -0
  685. package/dist/helpers/support-sla.test.js +102 -0
  686. package/dist/helpers/support-sla.test.js.map +1 -0
  687. package/dist/helpers/vault/client-side.d.ts +16 -0
  688. package/dist/helpers/vault/client-side.d.ts.map +1 -0
  689. package/dist/helpers/vault/client-side.js +73 -0
  690. package/dist/helpers/vault/client-side.js.map +1 -0
  691. package/dist/helpers/vault/server-side.d.ts +9 -0
  692. package/dist/helpers/vault/server-side.d.ts.map +1 -0
  693. package/dist/helpers/vault/server-side.js +126 -0
  694. package/dist/helpers/vault/server-side.js.map +1 -0
  695. package/dist/hooks/use-async-callback.d.ts +8 -0
  696. package/dist/hooks/use-async-callback.d.ts.map +1 -0
  697. package/dist/hooks/use-async-callback.js +42 -0
  698. package/dist/hooks/use-async-callback.js.map +1 -0
  699. package/dist/hooks/use-async-external-store.d.ts +9 -0
  700. package/dist/hooks/use-async-external-store.d.ts.map +1 -0
  701. package/dist/hooks/use-async-external-store.js +22 -0
  702. package/dist/hooks/use-async-external-store.js.map +1 -0
  703. package/dist/hooks/use-hash.d.ts +5 -0
  704. package/dist/hooks/use-hash.d.ts.map +1 -0
  705. package/dist/hooks/use-hash.js +17 -0
  706. package/dist/hooks/use-hash.js.map +1 -0
  707. package/dist/hooks/use-hover.d.ts +8 -0
  708. package/dist/hooks/use-hover.d.ts.map +1 -0
  709. package/dist/hooks/use-hover.js +61 -0
  710. package/dist/hooks/use-hover.js.map +1 -0
  711. package/dist/hooks/use-strict-memo.d.ts +10 -0
  712. package/dist/hooks/use-strict-memo.d.ts.map +1 -0
  713. package/dist/hooks/use-strict-memo.js +121 -0
  714. package/dist/hooks/use-strict-memo.js.map +1 -0
  715. package/dist/index-D9ysacya.d.ts +153 -0
  716. package/dist/index-D9ysacya.d.ts.map +1 -0
  717. package/dist/index.d.ts +5 -0
  718. package/dist/index.js +37 -0
  719. package/dist/interface/admin-interface.d.ts +308 -0
  720. package/dist/interface/admin-interface.d.ts.map +1 -0
  721. package/dist/interface/admin-interface.js +465 -0
  722. package/dist/interface/admin-interface.js.map +1 -0
  723. package/dist/interface/admin-metrics.d.ts +597 -0
  724. package/dist/interface/admin-metrics.d.ts.map +1 -0
  725. package/dist/interface/admin-metrics.js +153 -0
  726. package/dist/interface/admin-metrics.js.map +1 -0
  727. package/dist/interface/client-interface.d.ts +447 -0
  728. package/dist/interface/client-interface.d.ts.map +1 -0
  729. package/dist/interface/client-interface.js +1948 -0
  730. package/dist/interface/client-interface.js.map +1 -0
  731. package/dist/interface/client-interface.test.d.ts +1 -0
  732. package/dist/interface/client-interface.test.js +559 -0
  733. package/dist/interface/client-interface.test.js.map +1 -0
  734. package/dist/interface/conversations.d.ts +314 -0
  735. package/dist/interface/conversations.d.ts.map +1 -0
  736. package/dist/interface/conversations.js +121 -0
  737. package/dist/interface/conversations.js.map +1 -0
  738. package/dist/interface/crud/analytics.d.ts +14 -0
  739. package/dist/interface/crud/analytics.d.ts.map +1 -0
  740. package/dist/interface/crud/analytics.js +0 -0
  741. package/dist/interface/crud/connected-accounts.d.ts +68 -0
  742. package/dist/interface/crud/connected-accounts.d.ts.map +1 -0
  743. package/dist/interface/crud/connected-accounts.js +41 -0
  744. package/dist/interface/crud/connected-accounts.js.map +1 -0
  745. package/dist/interface/crud/contact-channels.d.ts +181 -0
  746. package/dist/interface/crud/contact-channels.d.ts.map +1 -0
  747. package/dist/interface/crud/contact-channels.js +76 -0
  748. package/dist/interface/crud/contact-channels.js.map +1 -0
  749. package/dist/interface/crud/current-user.d.ts +285 -0
  750. package/dist/interface/crud/current-user.d.ts.map +1 -0
  751. package/dist/interface/crud/current-user.js +71 -0
  752. package/dist/interface/crud/current-user.js.map +1 -0
  753. package/dist/interface/crud/email-outbox.d.ts +1465 -0
  754. package/dist/interface/crud/email-outbox.d.ts.map +1 -0
  755. package/dist/interface/crud/email-outbox.js +195 -0
  756. package/dist/interface/crud/email-outbox.js.map +1 -0
  757. package/dist/interface/crud/email-templates.d.ts +85 -0
  758. package/dist/interface/crud/email-templates.d.ts.map +1 -0
  759. package/dist/interface/crud/email-templates.js +53 -0
  760. package/dist/interface/crud/email-templates.js.map +1 -0
  761. package/dist/interface/crud/emails.d.ts +41 -0
  762. package/dist/interface/crud/emails.d.ts.map +1 -0
  763. package/dist/interface/crud/emails.js +23 -0
  764. package/dist/interface/crud/emails.js.map +1 -0
  765. package/dist/interface/crud/internal-api-keys.d.ts +140 -0
  766. package/dist/interface/crud/internal-api-keys.d.ts.map +1 -0
  767. package/dist/interface/crud/internal-api-keys.js +56 -0
  768. package/dist/interface/crud/internal-api-keys.js.map +1 -0
  769. package/dist/interface/crud/invoices.d.ts +43 -0
  770. package/dist/interface/crud/invoices.d.ts.map +1 -0
  771. package/dist/interface/crud/invoices.js +28 -0
  772. package/dist/interface/crud/invoices.js.map +1 -0
  773. package/dist/interface/crud/items.d.ts +30 -0
  774. package/dist/interface/crud/items.d.ts.map +1 -0
  775. package/dist/interface/crud/items.js +25 -0
  776. package/dist/interface/crud/items.js.map +1 -0
  777. package/dist/interface/crud/notification-preferences.d.ts +38 -0
  778. package/dist/interface/crud/notification-preferences.d.ts.map +1 -0
  779. package/dist/interface/crud/notification-preferences.js +33 -0
  780. package/dist/interface/crud/notification-preferences.js.map +1 -0
  781. package/dist/interface/crud/oauth-providers.d.ts +186 -0
  782. package/dist/interface/crud/oauth-providers.d.ts.map +1 -0
  783. package/dist/interface/crud/oauth-providers.js +83 -0
  784. package/dist/interface/crud/oauth-providers.js.map +1 -0
  785. package/dist/interface/crud/products.d.ts +182 -0
  786. package/dist/interface/crud/products.d.ts.map +1 -0
  787. package/dist/interface/crud/products.js +32 -0
  788. package/dist/interface/crud/products.js.map +1 -0
  789. package/dist/interface/crud/project-api-keys.d.ts +203 -0
  790. package/dist/interface/crud/project-api-keys.d.ts.map +1 -0
  791. package/dist/interface/crud/project-api-keys.js +79 -0
  792. package/dist/interface/crud/project-api-keys.js.map +1 -0
  793. package/dist/interface/crud/project-permissions.d.ts +161 -0
  794. package/dist/interface/crud/project-permissions.d.ts.map +1 -0
  795. package/dist/interface/crud/project-permissions.js +116 -0
  796. package/dist/interface/crud/project-permissions.js.map +1 -0
  797. package/dist/interface/crud/projects.d.ts +851 -0
  798. package/dist/interface/crud/projects.d.ts.map +1 -0
  799. package/dist/interface/crud/projects.js +204 -0
  800. package/dist/interface/crud/projects.js.map +1 -0
  801. package/dist/interface/crud/session-replays.d.ts +83 -0
  802. package/dist/interface/crud/session-replays.d.ts.map +1 -0
  803. package/dist/interface/crud/session-replays.js +0 -0
  804. package/dist/interface/crud/sessions.d.ts +150 -0
  805. package/dist/interface/crud/sessions.d.ts.map +1 -0
  806. package/dist/interface/crud/sessions.js +62 -0
  807. package/dist/interface/crud/sessions.js.map +1 -0
  808. package/dist/interface/crud/sign-up-rules.d.ts +15 -0
  809. package/dist/interface/crud/sign-up-rules.d.ts.map +1 -0
  810. package/dist/interface/crud/sign-up-rules.js +0 -0
  811. package/dist/interface/crud/svix-token.d.ts +31 -0
  812. package/dist/interface/crud/svix-token.d.ts.map +1 -0
  813. package/dist/interface/crud/svix-token.js +22 -0
  814. package/dist/interface/crud/svix-token.js.map +1 -0
  815. package/dist/interface/crud/team-invitation-details.d.ts +31 -0
  816. package/dist/interface/crud/team-invitation-details.d.ts.map +1 -0
  817. package/dist/interface/crud/team-invitation-details.js +24 -0
  818. package/dist/interface/crud/team-invitation-details.js.map +1 -0
  819. package/dist/interface/crud/team-invitation.d.ts +54 -0
  820. package/dist/interface/crud/team-invitation.d.ts.map +1 -0
  821. package/dist/interface/crud/team-invitation.js +40 -0
  822. package/dist/interface/crud/team-invitation.js.map +1 -0
  823. package/dist/interface/crud/team-member-profiles.d.ts +286 -0
  824. package/dist/interface/crud/team-member-profiles.d.ts.map +1 -0
  825. package/dist/interface/crud/team-member-profiles.js +63 -0
  826. package/dist/interface/crud/team-member-profiles.js.map +1 -0
  827. package/dist/interface/crud/team-memberships.d.ts +75 -0
  828. package/dist/interface/crud/team-memberships.d.ts.map +1 -0
  829. package/dist/interface/crud/team-memberships.js +61 -0
  830. package/dist/interface/crud/team-memberships.js.map +1 -0
  831. package/dist/interface/crud/team-permissions.d.ts +169 -0
  832. package/dist/interface/crud/team-permissions.d.ts.map +1 -0
  833. package/dist/interface/crud/team-permissions.js +117 -0
  834. package/dist/interface/crud/team-permissions.js.map +1 -0
  835. package/dist/interface/crud/teams.d.ts +299 -0
  836. package/dist/interface/crud/teams.d.ts.map +1 -0
  837. package/dist/interface/crud/teams.js +142 -0
  838. package/dist/interface/crud/teams.js.map +1 -0
  839. package/dist/interface/crud/transactions.d.ts +183 -0
  840. package/dist/interface/crud/transactions.d.ts.map +1 -0
  841. package/dist/interface/crud/transactions.js +89 -0
  842. package/dist/interface/crud/transactions.js.map +1 -0
  843. package/dist/interface/crud/users.d.ts +653 -0
  844. package/dist/interface/crud/users.d.ts.map +1 -0
  845. package/dist/interface/crud/users.js +193 -0
  846. package/dist/interface/crud/users.js.map +1 -0
  847. package/dist/interface/handler-urls.d.ts +51 -0
  848. package/dist/interface/handler-urls.d.ts.map +1 -0
  849. package/dist/interface/handler-urls.js +16 -0
  850. package/dist/interface/page-component-versions.d.ts +25 -0
  851. package/dist/interface/page-component-versions.d.ts.map +1 -0
  852. package/dist/interface/page-component-versions.js +1664 -0
  853. package/dist/interface/page-component-versions.js.map +1 -0
  854. package/dist/interface/server-interface.d.ts +255 -0
  855. package/dist/interface/server-interface.d.ts.map +1 -0
  856. package/dist/interface/server-interface.js +461 -0
  857. package/dist/interface/server-interface.js.map +1 -0
  858. package/dist/interface/webhooks.d.ts +326 -0
  859. package/dist/interface/webhooks.d.ts.map +1 -0
  860. package/dist/interface/webhooks.js +24 -0
  861. package/dist/interface/webhooks.js.map +1 -0
  862. package/dist/known-errors.d.ts +575 -0
  863. package/dist/known-errors.d.ts.map +1 -0
  864. package/dist/known-errors.js +794 -0
  865. package/dist/known-errors.js.map +1 -0
  866. package/dist/local-emulator.d.ts +6 -0
  867. package/dist/local-emulator.d.ts.map +1 -0
  868. package/dist/local-emulator.js +10 -0
  869. package/dist/local-emulator.js.map +1 -0
  870. package/dist/payments/payment-methods.d.ts +64 -0
  871. package/dist/payments/payment-methods.d.ts.map +1 -0
  872. package/dist/payments/payment-methods.js +216 -0
  873. package/dist/payments/payment-methods.js.map +1 -0
  874. package/dist/payments/stripe-limits.d.ts +17 -0
  875. package/dist/payments/stripe-limits.d.ts.map +1 -0
  876. package/dist/payments/stripe-limits.js +20 -0
  877. package/dist/payments/stripe-limits.js.map +1 -0
  878. package/dist/plans.d.ts +72 -0
  879. package/dist/plans.d.ts.map +1 -0
  880. package/dist/plans.js +88 -0
  881. package/dist/plans.js.map +1 -0
  882. package/dist/schema-fields.d.ts +472 -0
  883. package/dist/schema-fields.d.ts.map +1 -0
  884. package/dist/schema-fields.js +1188 -0
  885. package/dist/schema-fields.js.map +1 -0
  886. package/dist/sessions.d.ts +165 -0
  887. package/dist/sessions.d.ts.map +1 -0
  888. package/dist/sessions.js +231 -0
  889. package/dist/sessions.js.map +1 -0
  890. package/dist/stack-config-file.d.ts +15 -0
  891. package/dist/stack-config-file.d.ts.map +1 -0
  892. package/dist/stack-config-file.js +82 -0
  893. package/dist/stack-config-file.js.map +1 -0
  894. package/dist/utils/api-keys.d.ts +26 -0
  895. package/dist/utils/api-keys.d.ts.map +1 -0
  896. package/dist/utils/api-keys.js +82 -0
  897. package/dist/utils/api-keys.js.map +1 -0
  898. package/dist/utils/arrays.d.ts +25 -0
  899. package/dist/utils/arrays.d.ts.map +1 -0
  900. package/dist/utils/arrays.js +569 -0
  901. package/dist/utils/arrays.js.map +1 -0
  902. package/dist/utils/auth-methods.d.ts +6 -0
  903. package/dist/utils/auth-methods.d.ts.map +1 -0
  904. package/dist/utils/auth-methods.js +13 -0
  905. package/dist/utils/auth-methods.js.map +1 -0
  906. package/dist/utils/base64.d.ts +6 -0
  907. package/dist/utils/base64.d.ts.map +1 -0
  908. package/dist/utils/base64.js +28 -0
  909. package/dist/utils/base64.js.map +1 -0
  910. package/dist/utils/booleans.d.ts +8 -0
  911. package/dist/utils/booleans.d.ts.map +1 -0
  912. package/dist/utils/booleans.js +38 -0
  913. package/dist/utils/booleans.js.map +1 -0
  914. package/dist/utils/browser-compat.d.ts +10 -0
  915. package/dist/utils/browser-compat.d.ts.map +1 -0
  916. package/dist/utils/browser-compat.js +23 -0
  917. package/dist/utils/browser-compat.js.map +1 -0
  918. package/dist/utils/bytes.d.ts +17 -0
  919. package/dist/utils/bytes.d.ts.map +1 -0
  920. package/dist/utils/bytes.js +304 -0
  921. package/dist/utils/bytes.js.map +1 -0
  922. package/dist/utils/caches.d.ts +102 -0
  923. package/dist/utils/caches.d.ts.map +1 -0
  924. package/dist/utils/caches.js +188 -0
  925. package/dist/utils/caches.js.map +1 -0
  926. package/dist/utils/cel-fields.d.ts +23 -0
  927. package/dist/utils/cel-fields.d.ts.map +1 -0
  928. package/dist/utils/cel-fields.js +108 -0
  929. package/dist/utils/cel-fields.js.map +1 -0
  930. package/dist/utils/compile-time.d.ts +10 -0
  931. package/dist/utils/compile-time.d.ts.map +1 -0
  932. package/dist/utils/compile-time.js +16 -0
  933. package/dist/utils/compile-time.js.map +1 -0
  934. package/dist/utils/country-codes.d.ts +11 -0
  935. package/dist/utils/country-codes.d.ts.map +1 -0
  936. package/dist/utils/country-codes.js +40 -0
  937. package/dist/utils/country-codes.js.map +1 -0
  938. package/dist/utils/crypto.d.ts +48 -0
  939. package/dist/utils/crypto.d.ts.map +1 -0
  940. package/dist/utils/crypto.js +215 -0
  941. package/dist/utils/crypto.js.map +1 -0
  942. package/dist/utils/currencies.d.ts +8 -0
  943. package/dist/utils/currencies.d.ts.map +1 -0
  944. package/dist/utils/currencies.js +52 -0
  945. package/dist/utils/currencies.js.map +1 -0
  946. package/dist/utils/currency-constants.d.ts +39 -0
  947. package/dist/utils/currency-constants.d.ts.map +1 -0
  948. package/dist/utils/currency-constants.js +44 -0
  949. package/dist/utils/currency-constants.js.map +1 -0
  950. package/dist/utils/dates.d.ts +23 -0
  951. package/dist/utils/dates.d.ts.map +1 -0
  952. package/dist/utils/dates.js +176 -0
  953. package/dist/utils/dates.js.map +1 -0
  954. package/dist/utils/dev-env-state-path.d.ts +6 -0
  955. package/dist/utils/dev-env-state-path.d.ts.map +1 -0
  956. package/dist/utils/dev-env-state-path.js +18 -0
  957. package/dist/utils/dev-env-state-path.js.map +1 -0
  958. package/dist/utils/dom.d.ts +5 -0
  959. package/dist/utils/dom.d.ts.map +1 -0
  960. package/dist/utils/dom.js +13 -0
  961. package/dist/utils/dom.js.map +1 -0
  962. package/dist/utils/env.d.ts +25 -0
  963. package/dist/utils/env.d.ts.map +1 -0
  964. package/dist/utils/env.js +85 -0
  965. package/dist/utils/env.js.map +1 -0
  966. package/dist/utils/errors.d.ts +231 -0
  967. package/dist/utils/errors.d.ts.map +1 -0
  968. package/dist/utils/errors.js +393 -0
  969. package/dist/utils/errors.js.map +1 -0
  970. package/dist/utils/esbuild.d.ts +16 -0
  971. package/dist/utils/esbuild.d.ts.map +1 -0
  972. package/dist/utils/esbuild.js +186 -0
  973. package/dist/utils/esbuild.js.map +1 -0
  974. package/dist/utils/featurebase.d.ts +30 -0
  975. package/dist/utils/featurebase.d.ts.map +1 -0
  976. package/dist/utils/featurebase.js +168 -0
  977. package/dist/utils/featurebase.js.map +1 -0
  978. package/dist/utils/fs.d.ts +9 -0
  979. package/dist/utils/fs.d.ts.map +1 -0
  980. package/dist/utils/fs.js +31 -0
  981. package/dist/utils/fs.js.map +1 -0
  982. package/dist/utils/functions.d.ts +6 -0
  983. package/dist/utils/functions.d.ts.map +1 -0
  984. package/dist/utils/functions.js +37 -0
  985. package/dist/utils/functions.js.map +1 -0
  986. package/dist/utils/geo.d.ts +24 -0
  987. package/dist/utils/geo.d.ts.map +1 -0
  988. package/dist/utils/geo.js +18 -0
  989. package/dist/utils/geo.js.map +1 -0
  990. package/dist/utils/globals.d.ts +13 -0
  991. package/dist/utils/globals.d.ts.map +1 -0
  992. package/dist/utils/globals.js +40 -0
  993. package/dist/utils/globals.js.map +1 -0
  994. package/dist/utils/hashes.d.ts +9 -0
  995. package/dist/utils/hashes.d.ts.map +1 -0
  996. package/dist/utils/hashes.js +47 -0
  997. package/dist/utils/hashes.js.map +1 -0
  998. package/dist/utils/html.d.ts +7 -0
  999. package/dist/utils/html.d.ts.map +1 -0
  1000. package/dist/utils/html.js +37 -0
  1001. package/dist/utils/html.js.map +1 -0
  1002. package/dist/utils/http.d.ts +45 -0
  1003. package/dist/utils/http.d.ts.map +1 -0
  1004. package/dist/utils/http.js +79 -0
  1005. package/dist/utils/http.js.map +1 -0
  1006. package/dist/utils/ips.d.ts +8 -0
  1007. package/dist/utils/ips.d.ts.map +1 -0
  1008. package/dist/utils/ips.js +40 -0
  1009. package/dist/utils/ips.js.map +1 -0
  1010. package/dist/utils/json.d.ts +15 -0
  1011. package/dist/utils/json.d.ts.map +1 -0
  1012. package/dist/utils/json.js +182 -0
  1013. package/dist/utils/json.js.map +1 -0
  1014. package/dist/utils/jsx-editable-transpiler.d.ts +68 -0
  1015. package/dist/utils/jsx-editable-transpiler.d.ts.map +1 -0
  1016. package/dist/utils/jsx-editable-transpiler.js +223 -0
  1017. package/dist/utils/jsx-editable-transpiler.js.map +1 -0
  1018. package/dist/utils/jsx-editable-transpiler.test.d.ts +1 -0
  1019. package/dist/utils/jsx-editable-transpiler.test.js +122 -0
  1020. package/dist/utils/jsx-editable-transpiler.test.js.map +1 -0
  1021. package/dist/utils/jwt.d.ts +79 -0
  1022. package/dist/utils/jwt.d.ts.map +1 -0
  1023. package/dist/utils/jwt.js +112 -0
  1024. package/dist/utils/jwt.js.map +1 -0
  1025. package/dist/utils/locks.d.ts +17 -0
  1026. package/dist/utils/locks.d.ts.map +1 -0
  1027. package/dist/utils/locks.js +56 -0
  1028. package/dist/utils/locks.js.map +1 -0
  1029. package/dist/utils/maps.d.ts +61 -0
  1030. package/dist/utils/maps.d.ts.map +1 -0
  1031. package/dist/utils/maps.js +302 -0
  1032. package/dist/utils/maps.js.map +1 -0
  1033. package/dist/utils/math.d.ts +8 -0
  1034. package/dist/utils/math.d.ts.map +1 -0
  1035. package/dist/utils/math.js +23 -0
  1036. package/dist/utils/math.js.map +1 -0
  1037. package/dist/utils/monkey-patch.d.ts +7 -0
  1038. package/dist/utils/monkey-patch.d.ts.map +1 -0
  1039. package/dist/utils/monkey-patch.js +25 -0
  1040. package/dist/utils/monkey-patch.js.map +1 -0
  1041. package/dist/utils/node-http.d.ts +17 -0
  1042. package/dist/utils/node-http.d.ts.map +1 -0
  1043. package/dist/utils/node-http.js +40 -0
  1044. package/dist/utils/node-http.js.map +1 -0
  1045. package/dist/utils/numbers.d.ts +7 -0
  1046. package/dist/utils/numbers.d.ts.map +1 -0
  1047. package/dist/utils/numbers.js +79 -0
  1048. package/dist/utils/numbers.js.map +1 -0
  1049. package/dist/utils/oauth.d.ts +11 -0
  1050. package/dist/utils/oauth.d.ts.map +1 -0
  1051. package/dist/utils/oauth.js +32 -0
  1052. package/dist/utils/oauth.js.map +1 -0
  1053. package/dist/utils/objects.d.ts +59 -0
  1054. package/dist/utils/objects.d.ts.map +1 -0
  1055. package/dist/utils/objects.js +846 -0
  1056. package/dist/utils/objects.js.map +1 -0
  1057. package/dist/utils/paginated-lists.d.ts +442 -0
  1058. package/dist/utils/paginated-lists.d.ts.map +1 -0
  1059. package/dist/utils/paginated-lists.js +414 -0
  1060. package/dist/utils/paginated-lists.js.map +1 -0
  1061. package/dist/utils/paginated-lists.test.d.ts +1 -0
  1062. package/dist/utils/paginated-lists.test.js +1304 -0
  1063. package/dist/utils/paginated-lists.test.js.map +1 -0
  1064. package/dist/utils/passkey.d.ts +2 -0
  1065. package/dist/utils/passkey.js +0 -0
  1066. package/dist/utils/promises.d.ts +80 -0
  1067. package/dist/utils/promises.d.ts.map +1 -0
  1068. package/dist/utils/promises.js +349 -0
  1069. package/dist/utils/promises.js.map +1 -0
  1070. package/dist/utils/proxies.d.ts +13 -0
  1071. package/dist/utils/proxies.d.ts.map +1 -0
  1072. package/dist/utils/proxies.js +201 -0
  1073. package/dist/utils/proxies.js.map +1 -0
  1074. package/dist/utils/react.d.ts +61 -0
  1075. package/dist/utils/react.d.ts.map +1 -0
  1076. package/dist/utils/react.js +243 -0
  1077. package/dist/utils/react.js.map +1 -0
  1078. package/dist/utils/redirect-urls.d.ts +30 -0
  1079. package/dist/utils/redirect-urls.d.ts.map +1 -0
  1080. package/dist/utils/redirect-urls.js +222 -0
  1081. package/dist/utils/redirect-urls.js.map +1 -0
  1082. package/dist/utils/regex.d.ts +5 -0
  1083. package/dist/utils/regex.d.ts.map +1 -0
  1084. package/dist/utils/regex.js +15 -0
  1085. package/dist/utils/regex.js.map +1 -0
  1086. package/dist/utils/results.d.ts +70 -0
  1087. package/dist/utils/results.d.ts.map +1 -0
  1088. package/dist/utils/results.js +342 -0
  1089. package/dist/utils/results.js.map +1 -0
  1090. package/dist/utils/sentry.d.ts +13 -0
  1091. package/dist/utils/sentry.d.ts.map +1 -0
  1092. package/dist/utils/sentry.js +16 -0
  1093. package/dist/utils/sentry.js.map +1 -0
  1094. package/dist/utils/stores.d.ts +104 -0
  1095. package/dist/utils/stores.d.ts.map +1 -0
  1096. package/dist/utils/stores.js +179 -0
  1097. package/dist/utils/stores.js.map +1 -0
  1098. package/dist/utils/strings.d.ts +76 -0
  1099. package/dist/utils/strings.d.ts.map +1 -0
  1100. package/dist/utils/strings.js +549 -0
  1101. package/dist/utils/strings.js.map +1 -0
  1102. package/dist/utils/strings.nicify.test.d.ts +1 -0
  1103. package/dist/utils/strings.nicify.test.js +243 -0
  1104. package/dist/utils/strings.nicify.test.js.map +1 -0
  1105. package/dist/utils/telemetry.d.ts +15 -0
  1106. package/dist/utils/telemetry.d.ts.map +1 -0
  1107. package/dist/utils/telemetry.js +35 -0
  1108. package/dist/utils/telemetry.js.map +1 -0
  1109. package/dist/utils/turnstile-browser.d.ts +32 -0
  1110. package/dist/utils/turnstile-browser.d.ts.map +1 -0
  1111. package/dist/utils/turnstile-browser.js +65 -0
  1112. package/dist/utils/turnstile-browser.js.map +1 -0
  1113. package/dist/utils/turnstile-flow.d.ts +29 -0
  1114. package/dist/utils/turnstile-flow.d.ts.map +1 -0
  1115. package/dist/utils/turnstile-flow.js +225 -0
  1116. package/dist/utils/turnstile-flow.js.map +1 -0
  1117. package/dist/utils/turnstile-flow.test.d.ts +1 -0
  1118. package/dist/utils/turnstile-flow.test.js +75 -0
  1119. package/dist/utils/turnstile-flow.test.js.map +1 -0
  1120. package/dist/utils/turnstile.d.ts +17 -0
  1121. package/dist/utils/turnstile.d.ts.map +1 -0
  1122. package/dist/utils/turnstile.js +31 -0
  1123. package/dist/utils/turnstile.js.map +1 -0
  1124. package/dist/utils/typed-arrays.d.ts +14 -0
  1125. package/dist/utils/typed-arrays.d.ts.map +1 -0
  1126. package/dist/utils/typed-arrays.js +22 -0
  1127. package/dist/utils/typed-arrays.js.map +1 -0
  1128. package/dist/utils/types.d.ts +77 -0
  1129. package/dist/utils/types.d.ts.map +1 -0
  1130. package/dist/utils/types.js +59 -0
  1131. package/dist/utils/types.js.map +1 -0
  1132. package/dist/utils/unicode.d.ts +5 -0
  1133. package/dist/utils/unicode.d.ts.map +1 -0
  1134. package/dist/utils/unicode.js +26 -0
  1135. package/dist/utils/unicode.js.map +1 -0
  1136. package/dist/utils/urls.d.ts +28 -0
  1137. package/dist/utils/urls.d.ts.map +1 -0
  1138. package/dist/utils/urls.js +274 -0
  1139. package/dist/utils/urls.js.map +1 -0
  1140. package/dist/utils/uuids.d.ts +6 -0
  1141. package/dist/utils/uuids.d.ts.map +1 -0
  1142. package/dist/utils/uuids.js +39 -0
  1143. package/dist/utils/uuids.js.map +1 -0
  1144. package/package.json +99 -0
@@ -0,0 +1,127 @@
1
+ import { yupObject, yupString } from "./schema-fields.js";
2
+ import { filterUndefined } from "./utils/objects.js";
3
+
4
+ //#region src/crud.tsx
5
+ function createCrud(options) {
6
+ const docs = options.docs ?? {};
7
+ const client = {
8
+ createSchema: options.clientCreateSchema,
9
+ createDocs: docs.clientCreate,
10
+ readSchema: options.clientReadSchema,
11
+ readDocs: docs.clientRead,
12
+ listDocs: docs.clientList,
13
+ updateSchema: options.clientUpdateSchema,
14
+ updateDocs: docs.clientUpdate,
15
+ deleteSchema: options.clientDeleteSchema,
16
+ deleteDocs: docs.clientDelete
17
+ };
18
+ const serverOverrides = filterUndefined({
19
+ createSchema: options.serverCreateSchema,
20
+ createDocs: docs.serverCreate,
21
+ readSchema: options.serverReadSchema,
22
+ readDocs: docs.serverRead,
23
+ listDocs: docs.serverList,
24
+ updateSchema: options.serverUpdateSchema,
25
+ updateDocs: docs.serverUpdate,
26
+ deleteSchema: options.serverDeleteSchema,
27
+ deleteDocs: docs.serverDelete
28
+ });
29
+ const server = {
30
+ ...client,
31
+ ...serverOverrides
32
+ };
33
+ const adminOverrides = filterUndefined({
34
+ createSchema: options.adminCreateSchema,
35
+ createDocs: docs.adminCreate,
36
+ readSchema: options.adminReadSchema,
37
+ readDocs: docs.adminRead,
38
+ listDocs: docs.adminList,
39
+ updateSchema: options.adminUpdateSchema,
40
+ updateDocs: docs.adminUpdate,
41
+ deleteSchema: options.adminDeleteSchema,
42
+ deleteDocs: docs.adminDelete
43
+ });
44
+ const admin = {
45
+ ...server,
46
+ ...adminOverrides
47
+ };
48
+ return {
49
+ client,
50
+ server,
51
+ admin,
52
+ hasCreate: !!admin.createSchema,
53
+ hasRead: !!admin.readSchema,
54
+ hasUpdate: !!admin.updateSchema,
55
+ hasDelete: !!admin.deleteSchema
56
+ };
57
+ }
58
+ (void 0)?.test("createCrud", ({ expect }) => {
59
+ const emptyCrud = createCrud({});
60
+ expect(emptyCrud.hasCreate).toBe(false);
61
+ expect(emptyCrud.hasRead).toBe(false);
62
+ expect(emptyCrud.hasUpdate).toBe(false);
63
+ expect(emptyCrud.hasDelete).toBe(false);
64
+ expect(emptyCrud.client.createSchema).toBeUndefined();
65
+ expect(emptyCrud.server.createSchema).toBeUndefined();
66
+ expect(emptyCrud.admin.createSchema).toBeUndefined();
67
+ const mockSchema = yupObject().shape({ name: yupString().defined() });
68
+ const clientOnlyCrud = createCrud({
69
+ clientCreateSchema: mockSchema,
70
+ clientReadSchema: mockSchema
71
+ });
72
+ expect(clientOnlyCrud.hasCreate).toBe(true);
73
+ expect(clientOnlyCrud.hasRead).toBe(true);
74
+ expect(clientOnlyCrud.hasUpdate).toBe(false);
75
+ expect(clientOnlyCrud.hasDelete).toBe(false);
76
+ expect(clientOnlyCrud.client.createSchema).toBe(mockSchema);
77
+ expect(clientOnlyCrud.server.createSchema).toBe(mockSchema);
78
+ expect(clientOnlyCrud.admin.createSchema).toBe(mockSchema);
79
+ const serverSchema = yupObject().shape({
80
+ name: yupString().defined(),
81
+ internalField: yupString().defined()
82
+ });
83
+ const serverOverrideCrud = createCrud({
84
+ clientCreateSchema: mockSchema,
85
+ serverCreateSchema: serverSchema
86
+ });
87
+ expect(serverOverrideCrud.hasCreate).toBe(true);
88
+ expect(serverOverrideCrud.client.createSchema).toBe(mockSchema);
89
+ expect(serverOverrideCrud.server.createSchema).toBe(serverSchema);
90
+ expect(serverOverrideCrud.admin.createSchema).toBe(serverSchema);
91
+ const adminSchema = yupObject().shape({
92
+ name: yupString().defined(),
93
+ internalField: yupString().defined(),
94
+ adminField: yupString().defined()
95
+ });
96
+ const fullOverrideCrud = createCrud({
97
+ clientCreateSchema: mockSchema,
98
+ serverCreateSchema: serverSchema,
99
+ adminCreateSchema: adminSchema
100
+ });
101
+ expect(fullOverrideCrud.hasCreate).toBe(true);
102
+ expect(fullOverrideCrud.client.createSchema).toBe(mockSchema);
103
+ expect(fullOverrideCrud.server.createSchema).toBe(serverSchema);
104
+ expect(fullOverrideCrud.admin.createSchema).toBe(adminSchema);
105
+ const crudWithDocs = createCrud({
106
+ clientCreateSchema: mockSchema,
107
+ docs: { clientCreate: {
108
+ summary: "Create a resource",
109
+ description: "Creates a new resource",
110
+ tags: ["resources"]
111
+ } }
112
+ });
113
+ expect(crudWithDocs.client.createDocs).toEqual({
114
+ summary: "Create a resource",
115
+ description: "Creates a new resource",
116
+ tags: ["resources"]
117
+ });
118
+ expect(crudWithDocs.server.createDocs).toEqual({
119
+ summary: "Create a resource",
120
+ description: "Creates a new resource",
121
+ tags: ["resources"]
122
+ });
123
+ });
124
+
125
+ //#endregion
126
+ export { createCrud };
127
+ //# sourceMappingURL=crud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud.js","names":[],"sources":["../../src/crud.tsx"],"sourcesContent":["import * as yup from 'yup';\nimport { yupObject, yupString } from './schema-fields';\nimport { filterUndefined } from './utils/objects';\nimport { NullishCoalesce } from './utils/types';\n\nexport type AccessType = \"client\" | \"server\" | \"admin\";\nexport type CrudOperation = \"create\" | \"read\" | \"update\" | \"delete\";\nexport type CrudlOperation = \"create\" | \"read\" | \"update\" | \"delete\" | \"list\";\nexport type AccessTypeXCrudOperation = `${AccessType}${Capitalize<CrudOperation>}`;\nexport type AccessTypeXCrudlOperation = `${AccessType}${Capitalize<CrudlOperation>}`;\n\ndeclare module 'yup' {\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n export interface CustomSchemaMetadata {\n openapiField?: {\n description?: string,\n exampleValue?: any,\n hidden?: boolean,\n onlyShowInOperations?: Capitalize<CrudlOperation>[],\n },\n }\n}\n\ntype ShownEndpointDocumentation = {\n summary: string,\n description: string,\n tags?: string[],\n crudOperation?: Capitalize<CrudlOperation>,\n};\nexport type EndpointDocumentation =\n | ({ hidden: true } & Partial<ShownEndpointDocumentation>)\n | ({ hidden?: boolean } & ShownEndpointDocumentation);\n\n\ntype InnerCrudSchema<\n CreateSchema extends yup.AnySchema | undefined = yup.AnySchema | undefined,\n ReadSchema extends yup.AnySchema | undefined = yup.AnySchema | undefined,\n UpdateSchema extends yup.AnySchema | undefined = yup.AnySchema | undefined,\n DeleteSchema extends yup.AnySchema | undefined = yup.AnySchema | undefined,\n> = {\n createSchema: CreateSchema,\n createDocs: EndpointDocumentation | undefined,\n\n readSchema: ReadSchema,\n readDocs: EndpointDocumentation | undefined,\n listDocs: EndpointDocumentation | undefined,\n\n updateSchema: UpdateSchema,\n updateDocs: EndpointDocumentation | undefined,\n\n deleteSchema: DeleteSchema,\n deleteDocs: EndpointDocumentation | undefined,\n};\n\nexport type CrudSchema<\n ClientSchema extends InnerCrudSchema = InnerCrudSchema,\n ServerSchema extends InnerCrudSchema = InnerCrudSchema,\n AdminSchema extends InnerCrudSchema = InnerCrudSchema,\n> = {\n client: ClientSchema,\n server: ServerSchema,\n admin: AdminSchema,\n\n hasCreate: boolean,\n hasRead: boolean,\n hasUpdate: boolean,\n hasDelete: boolean,\n};\n\nexport type CrudSchemaCreationOptions = {\n [K in AccessTypeXCrudOperation as `${K}Schema`]?: yup.AnySchema\n};\n\ntype FillInOptionalsPrepareStep<O extends CrudSchemaCreationOptions> =\n & { [K in keyof Required<CrudSchemaCreationOptions>]: K extends keyof O ? O[K] : undefined };\n\ntype FillInOptionalsStep<O extends FillInOptionalsPrepareStep<CrudSchemaCreationOptions>> = {\n clientCreateSchema: NullishCoalesce<O['clientCreateSchema'], undefined>,\n clientReadSchema: NullishCoalesce<O['clientReadSchema'], undefined>,\n clientUpdateSchema: NullishCoalesce<O['clientUpdateSchema'], undefined>,\n clientDeleteSchema: NullishCoalesce<O['clientDeleteSchema'], undefined>,\n\n serverCreateSchema: NullishCoalesce<O['serverCreateSchema'], O['clientCreateSchema']>,\n serverReadSchema: NullishCoalesce<O['serverReadSchema'], O['clientReadSchema']>,\n serverUpdateSchema: NullishCoalesce<O['serverUpdateSchema'], O['clientUpdateSchema']>,\n serverDeleteSchema: NullishCoalesce<O['serverDeleteSchema'], O['clientDeleteSchema']>,\n\n adminCreateSchema: NullishCoalesce<O['adminCreateSchema'], O['serverCreateSchema']>,\n adminReadSchema: NullishCoalesce<O['adminReadSchema'], O['serverReadSchema']>,\n adminUpdateSchema: NullishCoalesce<O['adminUpdateSchema'], O['serverUpdateSchema']>,\n adminDeleteSchema: NullishCoalesce<O['adminDeleteSchema'], O['serverDeleteSchema']>,\n};\n\ntype FillInOptionals<O extends CrudSchemaCreationOptions> = FillInOptionalsStep<FillInOptionalsStep<FillInOptionalsStep<FillInOptionalsPrepareStep<O>>>>;\n\ntype CrudSchemaFromOptionsInner<O extends FillInOptionals<any>> = CrudSchema<\n InnerCrudSchema<O['clientCreateSchema'], O['clientReadSchema'], O['clientUpdateSchema'], O['clientDeleteSchema']>,\n InnerCrudSchema<O['serverCreateSchema'], O['serverReadSchema'], O['serverUpdateSchema'], O['serverDeleteSchema']>,\n InnerCrudSchema<O['adminCreateSchema'], O['adminReadSchema'], O['adminUpdateSchema'], O['adminDeleteSchema']>\n>;\n\nexport type CrudSchemaFromOptions<O extends CrudSchemaCreationOptions> = CrudSchemaFromOptionsInner<FillInOptionals<O>>;\n\ntype InnerCrudTypeOf<S extends InnerCrudSchema> =\n & (S['createSchema'] extends {} ? { Create: yup.InferType<S['createSchema']> } : {})\n & (S['readSchema'] extends {} ? { Read: yup.InferType<S['readSchema']> } : {})\n & (S['updateSchema'] extends {} ? { Update: yup.InferType<S['updateSchema']> } : {})\n & (S['deleteSchema'] extends {} ? { Delete: yup.InferType<S['deleteSchema']> } : {})\n & (S['readSchema'] extends {} ? { List: {\n items: yup.InferType<S['readSchema']>[],\n is_paginated: boolean,\n pagination?: {\n next_cursor: string | null,\n },\n }, } : {});\n\nexport type CrudTypeOf<S extends CrudSchema> = {\n Client: InnerCrudTypeOf<S['client']>,\n Server: InnerCrudTypeOf<S['server']>,\n Admin: InnerCrudTypeOf<S['admin']>,\n}\n\ntype CrudDocsCreationOptions<SO extends CrudSchemaCreationOptions> = {\n [X in AccessTypeXCrudlOperation]?: EndpointDocumentation\n};\n\nexport function createCrud<SO extends CrudSchemaCreationOptions>(options: SO & { docs?: CrudDocsCreationOptions<SO> }): CrudSchemaFromOptions<SO> {\n const docs = options.docs ?? {};\n const client = {\n createSchema: options.clientCreateSchema,\n createDocs: docs.clientCreate,\n\n readSchema: options.clientReadSchema,\n readDocs: docs.clientRead,\n listDocs: docs.clientList,\n\n updateSchema: options.clientUpdateSchema,\n updateDocs: docs.clientUpdate,\n\n deleteSchema: options.clientDeleteSchema,\n deleteDocs: docs.clientDelete,\n };\n\n const serverOverrides = filterUndefined({\n createSchema: options.serverCreateSchema,\n createDocs: docs.serverCreate,\n\n readSchema: options.serverReadSchema,\n readDocs: docs.serverRead,\n listDocs: docs.serverList,\n\n updateSchema: options.serverUpdateSchema,\n updateDocs: docs.serverUpdate,\n\n deleteSchema: options.serverDeleteSchema,\n deleteDocs: docs.serverDelete,\n });\n const server = {\n ...client,\n ...serverOverrides,\n };\n\n const adminOverrides = filterUndefined({\n createSchema: options.adminCreateSchema,\n createDocs: docs.adminCreate,\n\n readSchema: options.adminReadSchema,\n readDocs: docs.adminRead,\n listDocs: docs.adminList,\n\n updateSchema: options.adminUpdateSchema,\n updateDocs: docs.adminUpdate,\n\n deleteSchema: options.adminDeleteSchema,\n deleteDocs: docs.adminDelete,\n });\n const admin = {\n ...server,\n ...adminOverrides,\n };\n\n return {\n client: client as any,\n server: server as any,\n admin: admin as any,\n\n hasCreate: !!admin.createSchema,\n hasRead: !!admin.readSchema,\n hasUpdate: !!admin.updateSchema,\n hasDelete: !!admin.deleteSchema,\n };\n}\n\nimport.meta.vitest?.test(\"createCrud\", ({ expect }) => {\n // Test with empty options\n const emptyCrud = createCrud({});\n expect(emptyCrud.hasCreate).toBe(false);\n expect(emptyCrud.hasRead).toBe(false);\n expect(emptyCrud.hasUpdate).toBe(false);\n expect(emptyCrud.hasDelete).toBe(false);\n expect(emptyCrud.client.createSchema).toBeUndefined();\n expect(emptyCrud.server.createSchema).toBeUndefined();\n expect(emptyCrud.admin.createSchema).toBeUndefined();\n\n // Test with client schemas only\n const mockSchema = yupObject().shape({\n name: yupString().defined(),\n });\n\n const clientOnlyCrud = createCrud({\n clientCreateSchema: mockSchema,\n clientReadSchema: mockSchema,\n });\n expect(clientOnlyCrud.hasCreate).toBe(true);\n expect(clientOnlyCrud.hasRead).toBe(true);\n expect(clientOnlyCrud.hasUpdate).toBe(false);\n expect(clientOnlyCrud.hasDelete).toBe(false);\n expect(clientOnlyCrud.client.createSchema).toBe(mockSchema);\n expect(clientOnlyCrud.server.createSchema).toBe(mockSchema);\n expect(clientOnlyCrud.admin.createSchema).toBe(mockSchema);\n\n // Test with server overrides\n const serverSchema = yupObject().shape({\n name: yupString().defined(),\n internalField: yupString().defined(),\n });\n\n const serverOverrideCrud = createCrud({\n clientCreateSchema: mockSchema,\n serverCreateSchema: serverSchema,\n });\n expect(serverOverrideCrud.hasCreate).toBe(true);\n expect(serverOverrideCrud.client.createSchema).toBe(mockSchema);\n expect(serverOverrideCrud.server.createSchema).toBe(serverSchema);\n expect(serverOverrideCrud.admin.createSchema).toBe(serverSchema);\n\n // Test with admin overrides\n const adminSchema = yupObject().shape({\n name: yupString().defined(),\n internalField: yupString().defined(),\n adminField: yupString().defined(),\n });\n\n const fullOverrideCrud = createCrud({\n clientCreateSchema: mockSchema,\n serverCreateSchema: serverSchema,\n adminCreateSchema: adminSchema,\n });\n expect(fullOverrideCrud.hasCreate).toBe(true);\n expect(fullOverrideCrud.client.createSchema).toBe(mockSchema);\n expect(fullOverrideCrud.server.createSchema).toBe(serverSchema);\n expect(fullOverrideCrud.admin.createSchema).toBe(adminSchema);\n\n // Test with documentation\n const crudWithDocs = createCrud({\n clientCreateSchema: mockSchema,\n docs: {\n clientCreate: {\n summary: \"Create a resource\",\n description: \"Creates a new resource\",\n tags: [\"resources\"],\n },\n },\n });\n expect(crudWithDocs.client.createDocs).toEqual({\n summary: \"Create a resource\",\n description: \"Creates a new resource\",\n tags: [\"resources\"],\n });\n expect(crudWithDocs.server.createDocs).toEqual({\n summary: \"Create a resource\",\n description: \"Creates a new resource\",\n tags: [\"resources\"],\n });\n});\n"],"mappings":";;;;AA8HA,SAAgB,WAAiD,SAAiF;CAChJ,MAAM,OAAO,QAAQ,QAAQ,EAAE;CAC/B,MAAM,SAAS;EACb,cAAc,QAAQ;EACtB,YAAY,KAAK;EAEjB,YAAY,QAAQ;EACpB,UAAU,KAAK;EACf,UAAU,KAAK;EAEf,cAAc,QAAQ;EACtB,YAAY,KAAK;EAEjB,cAAc,QAAQ;EACtB,YAAY,KAAK;EAClB;CAED,MAAM,kBAAkB,gBAAgB;EACtC,cAAc,QAAQ;EACtB,YAAY,KAAK;EAEjB,YAAY,QAAQ;EACpB,UAAU,KAAK;EACf,UAAU,KAAK;EAEf,cAAc,QAAQ;EACtB,YAAY,KAAK;EAEjB,cAAc,QAAQ;EACtB,YAAY,KAAK;EAClB,CAAC;CACF,MAAM,SAAS;EACb,GAAG;EACH,GAAG;EACJ;CAED,MAAM,iBAAiB,gBAAgB;EACrC,cAAc,QAAQ;EACtB,YAAY,KAAK;EAEjB,YAAY,QAAQ;EACpB,UAAU,KAAK;EACf,UAAU,KAAK;EAEf,cAAc,QAAQ;EACtB,YAAY,KAAK;EAEjB,cAAc,QAAQ;EACtB,YAAY,KAAK;EAClB,CAAC;CACF,MAAM,QAAQ;EACZ,GAAG;EACH,GAAG;EACJ;AAED,QAAO;EACG;EACA;EACD;EAEP,WAAW,CAAC,CAAC,MAAM;EACnB,SAAS,CAAC,CAAC,MAAM;EACjB,WAAW,CAAC,CAAC,MAAM;EACnB,WAAW,CAAC,CAAC,MAAM;EACpB;;CAGH,SAAW,KAAC,eAAc,EAAA,aAAgB;CAExC,MAAM,YAAY,WAAW,EAAE,CAAC;AAChC,QAAO,UAAU,UAAU,CAAC,KAAK,MAAM;AACvC,QAAO,UAAU,QAAQ,CAAC,KAAK,MAAM;AACrC,QAAO,UAAU,UAAU,CAAC,KAAK,MAAM;AACvC,QAAO,UAAU,UAAU,CAAC,KAAK,MAAM;AACvC,QAAO,UAAU,OAAO,aAAa,CAAC,eAAe;AACrD,QAAO,UAAU,OAAO,aAAa,CAAC,eAAe;AACrD,QAAO,UAAU,MAAM,aAAa,CAAC,eAAe;CAGpD,MAAM,aAAa,WAAW,CAAC,MAAM,EACnC,MAAM,WAAW,CAAC,SAAS,EAC5B,CAAC;CAEF,MAAM,iBAAiB,WAAW;EAChC,oBAAoB;EACpB,kBAAkB;EACnB,CAAC;AACF,QAAO,eAAe,UAAU,CAAC,KAAK,KAAK;AAC3C,QAAO,eAAe,QAAQ,CAAC,KAAK,KAAK;AACzC,QAAO,eAAe,UAAU,CAAC,KAAK,MAAM;AAC5C,QAAO,eAAe,UAAU,CAAC,KAAK,MAAM;AAC5C,QAAO,eAAe,OAAO,aAAa,CAAC,KAAK,WAAW;AAC3D,QAAO,eAAe,OAAO,aAAa,CAAC,KAAK,WAAW;AAC3D,QAAO,eAAe,MAAM,aAAa,CAAC,KAAK,WAAW;CAG1D,MAAM,eAAe,WAAW,CAAC,MAAM;EACrC,MAAM,WAAW,CAAC,SAAS;EAC3B,eAAe,WAAW,CAAC,SAAS;EACrC,CAAC;CAEF,MAAM,qBAAqB,WAAW;EACpC,oBAAoB;EACpB,oBAAoB;EACrB,CAAC;AACF,QAAO,mBAAmB,UAAU,CAAC,KAAK,KAAK;AAC/C,QAAO,mBAAmB,OAAO,aAAa,CAAC,KAAK,WAAW;AAC/D,QAAO,mBAAmB,OAAO,aAAa,CAAC,KAAK,aAAa;AACjE,QAAO,mBAAmB,MAAM,aAAa,CAAC,KAAK,aAAa;CAGhE,MAAM,cAAc,WAAW,CAAC,MAAM;EACpC,MAAM,WAAW,CAAC,SAAS;EAC3B,eAAe,WAAW,CAAC,SAAS;EACpC,YAAY,WAAW,CAAC,SAAS;EAClC,CAAC;CAEF,MAAM,mBAAmB,WAAW;EAClC,oBAAoB;EACpB,oBAAoB;EACpB,mBAAmB;EACpB,CAAC;AACF,QAAO,iBAAiB,UAAU,CAAC,KAAK,KAAK;AAC7C,QAAO,iBAAiB,OAAO,aAAa,CAAC,KAAK,WAAW;AAC7D,QAAO,iBAAiB,OAAO,aAAa,CAAC,KAAK,aAAa;AAC/D,QAAO,iBAAiB,MAAM,aAAa,CAAC,KAAK,YAAY;CAG7D,MAAM,eAAe,WAAW;EAC9B,oBAAoB;EACpB,MAAM,EACJ,cAAc;GACZ,SAAS;GACT,aAAa;GACb,MAAM,CAAC,YAAY;GACpB,EACF;EACF,CAAC;AACF,QAAO,aAAa,OAAO,WAAW,CAAC,QAAQ;EAC7C,SAAS;EACT,aAAa;EACb,MAAM,CAAC,YAAY;EACpB,CAAC;AACF,QAAO,aAAa,OAAO,WAAW,CAAC,QAAQ;EAC7C,SAAS;EACT,aAAa;EACb,MAAM,CAAC,YAAY;EACpB,CAAC;EACF"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,69 @@
1
+ //#region src/helpers/emails.d.ts
2
+ declare const defaultNewTemplateSource: string;
3
+ declare const previewTemplateSource: string;
4
+ declare const emptyEmailTheme: string;
5
+ declare const LightEmailTheme = "import { Html, Head, Tailwind, Body, Container, Section } from '@react-email/components';\nimport { ThemeProps, ProjectLogo } from \"@stackframe/emails\";\n\nexport function EmailTheme({ children, unsubscribeLink, projectLogos }: ThemeProps) {\n return (\n <Html>\n <Head />\n <Tailwind>\n <Body className=\"bg-[#fafbfb] font-sans text-base m-0 p-0\" style={{ overflowX: 'hidden' }}>\n <div className=\"py-8 px-4 flex justify-center\">\n <Container className=\"bg-white p-[45px] rounded-lg shadow-sm mx-auto\" style={{ width: '100%', maxWidth: '600px' }}>\n <ProjectLogo data={projectLogos} mode=\"light\" />\n {children}\n </Container>\n </div>\n {unsubscribeLink && (\n <Section className=\"p-4 opacity-60 text-center\" style={{ textAlign: 'center' }}>\n <a href={unsubscribeLink} className=\"text-blue-600\" target=\"_blank\" rel=\"noopener noreferrer\">Click here</a> to unsubscribe from these emails\n </Section>\n )}\n </Body>\n </Tailwind>\n </Html>\n );\n}\n\nEmailTheme.PreviewProps = {\n unsubscribeLink: \"https://example.com\",\n} satisfies Partial<ThemeProps>\n";
6
+ declare const DEFAULT_EMAIL_THEME_ID = "1df07ae6-abf3-4a40-83a5-a1a2cbe336ac";
7
+ declare const DEFAULT_EMAIL_THEMES: {
8
+ "1df07ae6-abf3-4a40-83a5-a1a2cbe336ac": {
9
+ displayName: string;
10
+ tsxSource: string;
11
+ };
12
+ "a0172b5d-cff0-463b-83bb-85124697373a": {
13
+ displayName: string;
14
+ tsxSource: string;
15
+ };
16
+ "c7e2d94f-8a1b-4e6d-b3f5-9d0a2e7c1b8f": {
17
+ displayName: string;
18
+ tsxSource: string;
19
+ };
20
+ };
21
+ declare const DEFAULT_EMAIL_TEMPLATES: {
22
+ "e7d009ce-8d47-4528-b245-5bf119f2ffa3": {
23
+ displayName: string;
24
+ tsxSource: string;
25
+ themeId: undefined;
26
+ };
27
+ "a70fb3a4-56c1-4e42-af25-49d25603abd0": {
28
+ displayName: string;
29
+ tsxSource: string;
30
+ themeId: undefined;
31
+ };
32
+ "822687fe-8d0a-4467-a0d1-416b6e639478": {
33
+ displayName: string;
34
+ tsxSource: string;
35
+ themeId: undefined;
36
+ };
37
+ "e84de395-2076-4831-9c19-8e9a96a868e4": {
38
+ displayName: string;
39
+ tsxSource: string;
40
+ themeId: undefined;
41
+ };
42
+ "066dd73c-36da-4fd0-b6d6-ebf87683f8bc": {
43
+ displayName: string;
44
+ tsxSource: string;
45
+ themeId: undefined;
46
+ };
47
+ "70372aee-0441-4d80-974c-2e858e40123a": {
48
+ displayName: string;
49
+ tsxSource: string;
50
+ themeId: undefined;
51
+ };
52
+ "f64b1afe-27ec-4a28-a277-7178f3261f9a": {
53
+ displayName: string;
54
+ tsxSource: string;
55
+ themeId: undefined;
56
+ };
57
+ };
58
+ declare const DEFAULT_TEMPLATE_IDS: {
59
+ readonly email_verification: "e7d009ce-8d47-4528-b245-5bf119f2ffa3";
60
+ readonly password_reset: "a70fb3a4-56c1-4e42-af25-49d25603abd0";
61
+ readonly magic_link: "822687fe-8d0a-4467-a0d1-416b6e639478";
62
+ readonly team_invitation: "e84de395-2076-4831-9c19-8e9a96a868e4";
63
+ readonly sign_in_invitation: "066dd73c-36da-4fd0-b6d6-ebf87683f8bc";
64
+ readonly payment_receipt: "70372aee-0441-4d80-974c-2e858e40123a";
65
+ readonly payment_failed: "f64b1afe-27ec-4a28-a277-7178f3261f9a";
66
+ };
67
+ //#endregion
68
+ export { DEFAULT_EMAIL_TEMPLATES, DEFAULT_EMAIL_THEMES, DEFAULT_EMAIL_THEME_ID, DEFAULT_TEMPLATE_IDS, LightEmailTheme, defaultNewTemplateSource, emptyEmailTheme, previewTemplateSource };
69
+ //# sourceMappingURL=emails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emails.d.ts","names":[],"sources":["../../../src/helpers/emails.ts"],"mappings":";cAEa,wBAAA;AAAA,cA0BA,qBAAA;AAAA,cAwCA,eAAA;AAAA,cAeA,eAAA;AAAA,cA+FA,sBAAA;AAAA,cAEA,oBAAA;;;;;;;;;;;;;;cAuBA,uBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsCA,oBAAA;EAAA"}
@@ -0,0 +1,243 @@
1
+ import { deindent } from "../utils/strings.js";
2
+
3
+ //#region src/helpers/emails.ts
4
+ const defaultNewTemplateSource = deindent`
5
+ import { type } from "arktype"
6
+ import { Container } from "@react-email/components";
7
+ import { Subject, NotificationCategory, Props } from "@stackframe/emails";
8
+
9
+ export const variablesSchema = type({
10
+ count: "number"
11
+ });
12
+
13
+ export function EmailTemplate({ user, variables }: Props<typeof variablesSchema.infer>) {
14
+ return (
15
+ <Container>
16
+ <Subject value={\`Hello \${user.displayName}!\`} />
17
+ <NotificationCategory value="Transactional" />
18
+ <div className="font-bold">Hi {user.displayName}!</div>
19
+ <br />
20
+ count is {variables.count}
21
+ </Container>
22
+ );
23
+ }
24
+
25
+ EmailTemplate.PreviewVariables = {
26
+ count: 10
27
+ } satisfies typeof variablesSchema.infer
28
+ `;
29
+ const previewTemplateSource = deindent`
30
+ import { Button, Section, Hr, Text, Heading } from "@react-email/components";
31
+ import { Subject, NotificationCategory } from "@stackframe/emails";
32
+
33
+ export const variablesSchema = v => v;
34
+
35
+ export function EmailTemplate({ user, project }) {
36
+ return (
37
+ <>
38
+ <Subject value={\`Verify your email at \${project.displayName}\`} />
39
+ <NotificationCategory value="Transactional" />
40
+ <div className="font-sans text-base font-normal tracking-[0.15008px] leading-[1.5] m-0 py-8 w-full min-h-full">
41
+ <Section>
42
+ <Heading as="h3" className="font-sans font-bold text-[20px] text-center py-4 px-6 m-0">
43
+ Verify your email at {project.displayName}
44
+ </Heading>
45
+ <Text className="font-sans font-normal text-[14px] text-center pt-2 px-6 pb-4 m-0 opacity-80">
46
+ Hi{user.displayName ? (", " + user.displayName) : ''}! Please click on the following button to verify your email.
47
+ </Text>
48
+ <div className="text-center py-3 px-6">
49
+ <Button
50
+ href="#"
51
+ className="text-black font-sans font-bold text-[14px] inline-block bg-[#f0f0f0] rounded-[4px] py-3 px-5 no-underline border-0"
52
+ >
53
+ Verify my email
54
+ </Button>
55
+ </div>
56
+ <div className="py-4 px-6">
57
+ <Hr className="opacity-20" />
58
+ </div>
59
+ <Text className="font-sans font-normal text-[12px] text-center pt-1 px-6 pb-6 m-0 opacity-60">
60
+ If you were not expecting this email, you can safely ignore it.
61
+ </Text>
62
+ </Section>
63
+ </div>
64
+ </>
65
+ )
66
+ }
67
+ `;
68
+ const emptyEmailTheme = deindent`
69
+ import { Html, Tailwind, Body } from '@react-email/components';
70
+ export function EmailTheme({ children }: { children: React.ReactNode }) {
71
+ return (
72
+ <Html>
73
+ <Tailwind>
74
+ <Body>
75
+ {children}
76
+ </Body>
77
+ </Tailwind>
78
+ </Html>
79
+ );
80
+ }
81
+ `;
82
+ const LightEmailTheme = `import { Html, Head, Tailwind, Body, Container, Section } from '@react-email/components';
83
+ import { ThemeProps, ProjectLogo } from "@stackframe/emails";
84
+
85
+ export function EmailTheme({ children, unsubscribeLink, projectLogos }: ThemeProps) {
86
+ return (
87
+ <Html>
88
+ <Head />
89
+ <Tailwind>
90
+ <Body className="bg-[#fafbfb] font-sans text-base m-0 p-0" style={{ overflowX: 'hidden' }}>
91
+ <div className="py-8 px-4 flex justify-center">
92
+ <Container className="bg-white p-[45px] rounded-lg shadow-sm mx-auto" style={{ width: '100%', maxWidth: '600px' }}>
93
+ <ProjectLogo data={projectLogos} mode="light" />
94
+ {children}
95
+ </Container>
96
+ </div>
97
+ {unsubscribeLink && (
98
+ <Section className="p-4 opacity-60 text-center" style={{ textAlign: 'center' }}>
99
+ <a href={unsubscribeLink} className="text-blue-600" target="_blank" rel="noopener noreferrer">Click here</a> to unsubscribe from these emails
100
+ </Section>
101
+ )}
102
+ </Body>
103
+ </Tailwind>
104
+ </Html>
105
+ );
106
+ }
107
+
108
+ EmailTheme.PreviewProps = {
109
+ unsubscribeLink: "https://example.com",
110
+ } satisfies Partial<ThemeProps>
111
+ `;
112
+ const DarkEmailTheme = `import { Html, Head, Tailwind, Body, Container, Section } from '@react-email/components';
113
+ import { ThemeProps, ProjectLogo } from "@stackframe/emails";
114
+
115
+ export function EmailTheme({ children, unsubscribeLink, projectLogos }: ThemeProps) {
116
+ return (
117
+ <Html>
118
+ <Head />
119
+ <Tailwind>
120
+ <Body className="bg-[#323232] font-sans text-white m-0 p-0" style={{ overflowX: 'hidden' }}>
121
+ <div className="py-8 px-4 flex justify-center">
122
+ <Container className="bg-black p-[45px] rounded-lg shadow-sm mx-auto" style={{ width: '100%', maxWidth: '600px' }}>
123
+ <ProjectLogo data={projectLogos} mode="dark" />
124
+ {children}
125
+ </Container>
126
+ </div>
127
+ {unsubscribeLink && (
128
+ <Section className="p-4 opacity-60 text-center" style={{ textAlign: 'center' }}>
129
+ <a href={unsubscribeLink} className="text-blue-600" target="_blank" rel="noopener noreferrer">Click here</a> to unsubscribe from these emails
130
+ </Section>
131
+ )}
132
+ </Body>
133
+ </Tailwind>
134
+ </Html>
135
+ );
136
+ }
137
+
138
+ EmailTheme.PreviewProps = {
139
+ unsubscribeLink: "https://example.com",
140
+ } satisfies Partial<ThemeProps>
141
+ `;
142
+ const ColorfulEmailTheme = `import { Html, Head, Tailwind, Body, Container, Section } from '@react-email/components';
143
+ import { ThemeProps, ProjectLogo } from "@stackframe/emails";
144
+
145
+ export function EmailTheme({ children, unsubscribeLink, projectLogos }: ThemeProps) {
146
+ return (
147
+ <Html>
148
+ <Head />
149
+ <Tailwind>
150
+ <Body className="bg-[#f0eef6] font-sans text-base m-0 p-0" style={{ overflowX: 'hidden' }}>
151
+ <div className="py-8 px-4 flex justify-center">
152
+ <Container className="bg-white p-[45px] rounded-2xl mx-auto" style={{ width: '100%', maxWidth: '600px', borderTop: '4px solid #7c5ce0' }}>
153
+ <ProjectLogo data={projectLogos} mode="light" />
154
+ {children}
155
+ </Container>
156
+ </div>
157
+ {unsubscribeLink && (
158
+ <Section className="p-4 opacity-60 text-center" style={{ textAlign: 'center' }}>
159
+ <a href={unsubscribeLink} className="text-[#7c5ce0]" target="_blank" rel="noopener noreferrer">Click here</a> to unsubscribe from these emails
160
+ </Section>
161
+ )}
162
+ </Body>
163
+ </Tailwind>
164
+ </Html>
165
+ );
166
+ }
167
+
168
+ EmailTheme.PreviewProps = {
169
+ unsubscribeLink: "https://example.com",
170
+ } satisfies Partial<ThemeProps>
171
+ `;
172
+ const DEFAULT_EMAIL_THEME_ID = "1df07ae6-abf3-4a40-83a5-a1a2cbe336ac";
173
+ const DEFAULT_EMAIL_THEMES = {
174
+ [DEFAULT_EMAIL_THEME_ID]: {
175
+ displayName: "Default Light",
176
+ tsxSource: LightEmailTheme
177
+ },
178
+ "a0172b5d-cff0-463b-83bb-85124697373a": {
179
+ displayName: "Default Dark",
180
+ tsxSource: DarkEmailTheme
181
+ },
182
+ "c7e2d94f-8a1b-4e6d-b3f5-9d0a2e7c1b8f": {
183
+ displayName: "Default Colorful",
184
+ tsxSource: ColorfulEmailTheme
185
+ }
186
+ };
187
+ const EMAIL_TEMPLATE_EMAIL_VERIFICATION_ID = "e7d009ce-8d47-4528-b245-5bf119f2ffa3";
188
+ const EMAIL_TEMPLATE_PASSWORD_RESET_ID = "a70fb3a4-56c1-4e42-af25-49d25603abd0";
189
+ const EMAIL_TEMPLATE_MAGIC_LINK_ID = "822687fe-8d0a-4467-a0d1-416b6e639478";
190
+ const EMAIL_TEMPLATE_TEAM_INVITATION_ID = "e84de395-2076-4831-9c19-8e9a96a868e4";
191
+ const EMAIL_TEMPLATE_SIGN_IN_INVITATION_ID = "066dd73c-36da-4fd0-b6d6-ebf87683f8bc";
192
+ const EMAIL_TEMPLATE_PAYMENT_RECEIPT_ID = "70372aee-0441-4d80-974c-2e858e40123a";
193
+ const EMAIL_TEMPLATE_PAYMENT_FAILED_ID = "f64b1afe-27ec-4a28-a277-7178f3261f9a";
194
+ const DEFAULT_EMAIL_TEMPLATES = {
195
+ [EMAIL_TEMPLATE_EMAIL_VERIFICATION_ID]: {
196
+ "displayName": "Email Verification",
197
+ "tsxSource": "import { type } from \"arktype\"\nimport { Button, Section, Hr, Text, Heading } from \"@react-email/components\";\nimport { Subject, NotificationCategory, Props } from \"@stackframe/emails\";\n\nexport const variablesSchema = type({\n emailVerificationLink: \"string\"\n})\n\nexport function EmailTemplate({ user, project, variables }: Props<typeof variablesSchema.infer>) {\n return (\n <>\n <Subject value={`Verify your email at ${project.displayName}`} />\n <NotificationCategory value=\"Transactional\" />\n <div className=\"font-sans text-base font-normal tracking-[0.15008px] leading-[1.5] m-0 py-8 w-full min-h-full\">\n <Section>\n <Heading as=\"h3\" className=\"font-sans font-bold text-[20px] text-center py-4 px-6 m-0\">\n Verify your email at {project.displayName}\n </Heading>\n <p className=\"font-sans font-normal text-[14px] text-center pt-2 px-6 pb-4 m-0 opacity-80\">\n Hi{user.displayName ? (\", \" + user.displayName) : ''}! Please click on the following button to verify your email.\n </p>\n <div className=\"text-center py-3 px-6\">\n <Button\n href={variables.emailVerificationLink}\n className=\"text-black font-sans font-bold text-[14px] inline-block bg-[#f0f0f0] rounded-[4px] py-3 px-5 no-underline border-0\"\n >\n Verify my email\n </Button>\n </div>\n <div className=\"py-4 px-6\">\n <Hr className=\"opacity-20\" />\n </div>\n <p className=\"font-sans font-normal text-[12px] text-center pt-1 px-6 pb-6 m-0 opacity-60\">\n If you were not expecting this email, you can safely ignore it. \n </p>\n </Section>\n </div>\n </>\n )\n}\n\nEmailTemplate.PreviewVariables = {\n emailVerificationLink: \"#\"\n} satisfies typeof variablesSchema.infer",
198
+ "themeId": void 0
199
+ },
200
+ [EMAIL_TEMPLATE_PASSWORD_RESET_ID]: {
201
+ "displayName": "Password Reset",
202
+ "tsxSource": "import { type } from \"arktype\"\nimport { Button, Section, Hr, Text, Heading } from \"@react-email/components\"\nimport { Subject, NotificationCategory, Props} from \"@stackframe/emails\"\n\nexport const variablesSchema = type({\n passwordResetLink: \"string\"\n})\n\nexport function EmailTemplate({ user, project, variables }: Props<typeof variablesSchema.infer>) {\n return (\n <>\n <Subject value={\"Reset your password at \" + project.displayName} />\n <NotificationCategory value=\"Transactional\" />\n <div className=\"font-sans text-base font-normal tracking-tight leading-relaxed py-8 w-full min-h-full\">\n <Section>\n <Heading as=\"h3\" className=\"font-sans font-bold text-[20px] text-center py-4 px-6 m-0\">\n Reset your password at {project.displayName}\n </Heading>\n\n <p className=\"text-sm font-sans font-normal text-center pt-2 pb-4 px-6 m-0 opacity-80\">\n Hi{user.displayName ? (\", \" + user.displayName) : \"\"}! Please click on the following button to start the password reset process.\n </p>\n\n <div className=\"text-center px-6 py-3\">\n <Button\n href={variables.passwordResetLink}\n className=\"text-black text-sm font-sans font-bold bg-[#f0f0f0] rounded-[4px] inline-block py-3 px-5 no-underline border-none\"\n target=\"_blank\"\n >\n Reset my password\n </Button>\n </div>\n\n <div className=\"px-6 py-4\">\n <Hr className=\"opacity-20\" />\n </div>\n\n <p className=\"text-xs font-sans font-normal text-center pt-1 pb-6 px-6 m-0 opacity-60\">\n If you were not expecting this email, you can safely ignore it.\n </p>\n </Section>\n </div>\n </>\n )\n}\n\nEmailTemplate.PreviewVariables = {\n passwordResetLink: \"#\"\n} satisfies typeof variablesSchema.infer",
203
+ "themeId": void 0
204
+ },
205
+ [EMAIL_TEMPLATE_MAGIC_LINK_ID]: {
206
+ "displayName": "Magic Link/OTP",
207
+ "tsxSource": "import { type } from 'arktype';\nimport { Section, Hr, Text, Heading } from '@react-email/components';\nimport { Subject, NotificationCategory, Props } from '@stackframe/emails';\n\nexport const variablesSchema = type({\n magicLink: 'string',\n otp: 'string',\n});\n\nexport function EmailTemplate({ user, project, variables }: Props<typeof variablesSchema.infer>) {\n return (\n <>\n <Subject value={\"Sign in to \" + project.displayName + \": Your code is \" + variables.otp} />\n <NotificationCategory value=\"Transactional\" />\n <div className=\"font-sans text-base font-normal tracking-[0.15008px] leading-6 m-0 py-8 w-full min-h-full\">\n <Section className=\"mx-auto\">\n <Heading as=\"h3\" className=\"font-sans font-bold text-xl text-center px-6 py-4 m-0\">\n Sign in to {project.displayName}\n </Heading>\n <p className=\"text-sm font-sans font-normal text-center px-6 py-4 m-0 opacity-80\">\n Hi{user.displayName ? \", \" + user.displayName : \"\"}! This is your one-time-password for signing in:\n </p>\n <p className=\"text-2xl font-mono font-bold text-center px-6 py-4 m-0\">\n {variables.otp}\n </p>\n <p className=\"text-sm font-sans font-normal text-center px-6 py-4 m-0\">\n Or you can click on{' '}\n <a\n key={20}\n href={variables.magicLink}\n rel=\"noopener noreferrer\"\n className=\"text-blue-600 underline\"\n >\n this link\n </a>{' '}\n to sign in\n </p>\n <Hr className=\"px-6 py-4 opacity-20\" />\n <p className=\"text-xs font-sans font-normal text-center px-6 pt-1 pb-6 m-0 opacity-60\">\n If you were not expecting this email, you can safely ignore it.\n </p>\n </Section>\n </div>\n </>\n );\n}\n\nEmailTemplate.PreviewVariables = {\n magicLink: \"#\",\n otp: \"3SLSWZ\"\n} satisfies typeof variablesSchema.infer",
208
+ "themeId": void 0
209
+ },
210
+ [EMAIL_TEMPLATE_TEAM_INVITATION_ID]: {
211
+ "displayName": "Team Invitation",
212
+ "tsxSource": "import { type } from \"arktype\";\nimport { Button, Section, Hr, Text, Heading } from \"@react-email/components\";\nimport { Subject, NotificationCategory, Props } from \"@stackframe/emails\";\n\n\nexport const variablesSchema = type({\n teamDisplayName: \"string\",\n teamInvitationLink: \"string\"\n});\n\nexport function EmailTemplate({ user, variables }: Props<typeof variablesSchema.infer>) {\n return (\n <>\n <Subject value={\"You have been invited to join \" + variables.teamDisplayName} />\n <NotificationCategory value=\"Transactional\" />\n <div className=\"font-sans text-base font-normal tracking-[0.15008px] leading-[1.5] m-0 py-8 w-full min-h-full\">\n <Section className=\"mx-auto max-w-lg\">\n <Heading as=\"h3\" className=\"font-sans font-bold text-xl text-center px-6 pt-8 m-0\">\n You are invited to {variables.teamDisplayName}\n </Heading>\n <p className=\"text-sm font-sans font-normal text-center px-6 pt-2 pb-4 m-0 opacity-80\">\n Hi{user.displayName ? \", \" + user.displayName : \"\"}! Please click the button below to join the team {variables.teamDisplayName}\n </p>\n <div className=\"text-center px-6 py-3\">\n <Button\n href={variables.teamInvitationLink}\n className=\"text-black text-sm font-sans font-bold bg-[#f0f0f0] rounded-md inline-block px-5 py-3 no-underline border-0\"\n >\n Join team\n </Button>\n </div>\n <div className=\"px-6 py-4\">\n <Hr className=\"opacity-20\" />\n </div>\n <p className=\"text-xs font-sans font-normal text-center px-6 pb-6 pt-1 m-0 opacity-60\">\n If you were not expecting this email, you can safely ignore it.\n </p>\n </Section>\n </div>\n </>\n );\n}\n\nEmailTemplate.PreviewVariables = {\n teamDisplayName: \"My Team\",\n teamInvitationLink: \"#\"\n} satisfies typeof variablesSchema.infer ",
213
+ "themeId": void 0
214
+ },
215
+ [EMAIL_TEMPLATE_SIGN_IN_INVITATION_ID]: {
216
+ "displayName": "Sign In Invitation",
217
+ "tsxSource": "import { type } from \"arktype\"\nimport { Button, Section, Hr, Text, Heading } from \"@react-email/components\";\nimport { Subject, NotificationCategory, Props } from \"@stackframe/emails\";\n\nexport const variablesSchema = type({\n signInInvitationLink: \"string\",\n teamDisplayName: \"string\"\n})\n\nexport function EmailTemplate({ user, project, variables }: Props<typeof variablesSchema.infer>) {\n return (\n <>\n <Subject\n value={\"You have been invited to sign in to \" + project.displayName}\n />\n <NotificationCategory value=\"Transactional\" />\n\n <div className=\"font-sans text-base font-normal leading-normal w-full min-h-full m-0 py-8\">\n <Section>\n <Heading as=\"h3\" className=\"font-sans font-bold text-xl text-center pt-8 px-6 m-0\">\n You are invited to sign in to {variables.teamDisplayName}\n </Heading>\n\n <p className=\"text-sm font-sans font-normal text-center pt-2 pb-4 px-6 m-0 opacity-80\">\n Hi\n {user.displayName ? \", \" + user.displayName : \"\"}! Please click on the following\n link to sign in to your account\n </p>\n\n <div className=\"text-center px-6 py-3\">\n <Button\n href={variables.signInInvitationLink}\n className=\"text-black text-sm font-sans font-bold bg-gray-200 rounded-md inline-block py-3 px-5 no-underline border-none\"\n >\n Sign in\n </Button>\n </div>\n\n <div className=\"px-6 py-4\">\n <Hr className=\"opacity-20\" />\n </div>\n\n <p className=\"text-xs font-sans font-normal text-center pt-1 pb-6 px-6 m-0 opacity-60\">\n If you were not expecting this email, you can safely ignore it.\n </p>\n </Section>\n </div>\n </>\n )\n}\n\nEmailTemplate.PreviewVariables = {\n signInInvitationLink: \"#\",\n teamDisplayName: \"My Team\"\n} satisfies typeof variablesSchema.infer",
218
+ "themeId": void 0
219
+ },
220
+ [EMAIL_TEMPLATE_PAYMENT_RECEIPT_ID]: {
221
+ "displayName": "Payment Receipt",
222
+ "tsxSource": "import { type } from \"arktype\";\nimport { Button, Section, Hr } from \"@react-email/components\";\nimport { Subject, NotificationCategory, Props } from \"@stackframe/emails\";\n\nexport const variablesSchema = type({\n productName: \"string\",\n quantity: \"number\",\n amount: \"string\",\n receiptLink: \"string?\"\n});\n\nexport function EmailTemplate({ user, project, variables }: Props<typeof variablesSchema.infer>) {\n return (\n <>\n <Subject value={\"Your receipt from \" + project.displayName} />\n <NotificationCategory value=\"Transactional\" />\n <div className=\"bg-white text-[#242424] font-sans text-base font-normal tracking-[0.15008px] leading-[1.5] m-0 py-8 w-full min-h-full\">\n <Section className=\"bg-white\">\n <h3 className=\"text-black font-sans font-bold text-[20px] text-center py-4 px-6 m-0\">\n Thanks for your purchase\n </h3>\n <p className=\"text-[#474849] font-sans font-normal text-[14px] text-center pt-2 px-6 pb-4 m-0\">\n Hi{user.displayName ? (\", \" + user.displayName) : \"\"}! Your payment for {variables.productName} is complete.\n </p>\n <div className=\"px-6\">\n <p className=\"text-black font-sans font-bold text-[16px] text-center m-0\">\n Total paid: {variables.amount}\n </p>\n <p className=\"text-[#474849] font-sans text-[13px] text-center mt-2 mb-0\">\n Quantity: {variables.quantity}\n </p>\n </div>\n {variables.receiptLink ? (\n <div className=\"text-center py-4 px-6\">\n <Button\n href={variables.receiptLink}\n target=\"_blank\"\n className=\"text-black font-sans font-bold text-[14px] inline-block bg-[#f0f0f0] rounded-[4px] py-3 px-5 no-underline border-0\"\n >\n View receipt\n </Button>\n </div>\n ) : null}\n <div className=\"py-4 px-6\">\n <Hr />\n </div>\n </Section>\n </div>\n </>\n );\n}\n\nEmailTemplate.PreviewVariables = {\n productName: \"Pro Plan\",\n quantity: 1,\n amount: \"$29.00\",\n receiptLink: \"https://example.com/receipt\"\n} satisfies typeof variablesSchema.infer;\n",
223
+ "themeId": void 0
224
+ },
225
+ [EMAIL_TEMPLATE_PAYMENT_FAILED_ID]: {
226
+ "displayName": "Payment Failed",
227
+ "tsxSource": "import { type } from \"arktype\";\nimport { Button, Section, Hr } from \"@react-email/components\";\nimport { Subject, NotificationCategory, Props } from \"@stackframe/emails\";\n\nexport const variablesSchema = type({\n productName: \"string\",\n amount: \"string\",\n invoiceUrl: \"string?\",\n failureReason: \"string?\"\n});\n\nexport function EmailTemplate({ user, project, variables }: Props<typeof variablesSchema.infer>) {\n return (\n <>\n <Subject value={\"Payment failed for \" + project.displayName} />\n <NotificationCategory value=\"Transactional\" />\n <div className=\"bg-white text-[#242424] font-sans text-base font-normal tracking-[0.15008px] leading-[1.5] m-0 py-8 w-full min-h-full\">\n <Section className=\"bg-white\">\n <h3 className=\"text-black font-sans font-bold text-[20px] text-center py-4 px-6 m-0\">\n We couldn't process your payment\n </h3>\n <p className=\"text-[#474849] font-sans font-normal text-[14px] text-center pt-2 px-6 pb-4 m-0\">\n Hi{user.displayName ? (\", \" + user.displayName) : \"\"}! Your payment for {variables.productName} ({variables.amount}) did not go through.\n </p>\n {variables.failureReason ? (\n <p className=\"text-[#8a8b8b] font-sans text-[12px] text-center px-6 pb-2 m-0\">\n Reason: {variables.failureReason}\n </p>\n ) : null}\n {variables.invoiceUrl ? (\n <div className=\"text-center py-3 px-6\">\n <Button\n href={variables.invoiceUrl}\n target=\"_blank\"\n className=\"text-black font-sans font-bold text-[14px] inline-block bg-[#f0f0f0] rounded-[4px] py-3 px-5 no-underline border-0\"\n >\n View invoice\n </Button>\n </div>\n ) : null}\n <div className=\"py-4 px-6\">\n <Hr />\n </div>\n <p className=\"text-[#474849] font-sans font-normal text-[12px] text-center pt-1 px-6 pb-6 m-0\">\n Please update your payment details to avoid service interruption.\n </p>\n </Section>\n </div>\n </>\n );\n}\n\nEmailTemplate.PreviewVariables = {\n productName: \"Pro Plan\",\n amount: \"$29.00\",\n invoiceUrl: \"https://example.com/billing\",\n failureReason: \"Your card was declined\"\n} satisfies typeof variablesSchema.infer;\n",
228
+ "themeId": void 0
229
+ }
230
+ };
231
+ const DEFAULT_TEMPLATE_IDS = {
232
+ email_verification: EMAIL_TEMPLATE_EMAIL_VERIFICATION_ID,
233
+ password_reset: EMAIL_TEMPLATE_PASSWORD_RESET_ID,
234
+ magic_link: EMAIL_TEMPLATE_MAGIC_LINK_ID,
235
+ team_invitation: EMAIL_TEMPLATE_TEAM_INVITATION_ID,
236
+ sign_in_invitation: EMAIL_TEMPLATE_SIGN_IN_INVITATION_ID,
237
+ payment_receipt: EMAIL_TEMPLATE_PAYMENT_RECEIPT_ID,
238
+ payment_failed: EMAIL_TEMPLATE_PAYMENT_FAILED_ID
239
+ };
240
+
241
+ //#endregion
242
+ export { DEFAULT_EMAIL_TEMPLATES, DEFAULT_EMAIL_THEMES, DEFAULT_EMAIL_THEME_ID, DEFAULT_TEMPLATE_IDS, LightEmailTheme, defaultNewTemplateSource, emptyEmailTheme, previewTemplateSource };
243
+ //# sourceMappingURL=emails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emails.js","names":[],"sources":["../../../src/helpers/emails.ts"],"sourcesContent":["import { deindent } from \"../utils/strings\";\n\nexport const defaultNewTemplateSource = deindent`\n import { type } from \"arktype\"\n import { Container } from \"@react-email/components\";\n import { Subject, NotificationCategory, Props } from \"@stackframe/emails\";\n\n export const variablesSchema = type({\n count: \"number\"\n });\n\n export function EmailTemplate({ user, variables }: Props<typeof variablesSchema.infer>) {\n return (\n <Container>\n <Subject value={\\`Hello \\${user.displayName}!\\`} />\n <NotificationCategory value=\"Transactional\" />\n <div className=\"font-bold\">Hi {user.displayName}!</div>\n <br />\n count is {variables.count}\n </Container>\n );\n }\n\n EmailTemplate.PreviewVariables = {\n count: 10\n } satisfies typeof variablesSchema.infer\n`;\n\nexport const previewTemplateSource = deindent`\n import { Button, Section, Hr, Text, Heading } from \"@react-email/components\";\n import { Subject, NotificationCategory } from \"@stackframe/emails\";\n\n export const variablesSchema = v => v;\n\n export function EmailTemplate({ user, project }) {\n return (\n <>\n <Subject value={\\`Verify your email at \\${project.displayName}\\`} />\n <NotificationCategory value=\"Transactional\" />\n <div className=\"font-sans text-base font-normal tracking-[0.15008px] leading-[1.5] m-0 py-8 w-full min-h-full\">\n <Section>\n <Heading as=\"h3\" className=\"font-sans font-bold text-[20px] text-center py-4 px-6 m-0\">\n Verify your email at {project.displayName}\n </Heading>\n <Text className=\"font-sans font-normal text-[14px] text-center pt-2 px-6 pb-4 m-0 opacity-80\">\n Hi{user.displayName ? (\", \" + user.displayName) : ''}! Please click on the following button to verify your email.\n </Text>\n <div className=\"text-center py-3 px-6\">\n <Button\n href=\"#\"\n className=\"text-black font-sans font-bold text-[14px] inline-block bg-[#f0f0f0] rounded-[4px] py-3 px-5 no-underline border-0\"\n >\n Verify my email\n </Button>\n </div>\n <div className=\"py-4 px-6\">\n <Hr className=\"opacity-20\" />\n </div>\n <Text className=\"font-sans font-normal text-[12px] text-center pt-1 px-6 pb-6 m-0 opacity-60\">\n If you were not expecting this email, you can safely ignore it. \n </Text>\n </Section>\n </div>\n </>\n )\n }\n`;\n\nexport const emptyEmailTheme = deindent`\n import { Html, Tailwind, Body } from '@react-email/components';\n export function EmailTheme({ children }: { children: React.ReactNode }) {\n return (\n <Html>\n <Tailwind>\n <Body>\n {children}\n </Body>\n </Tailwind>\n </Html>\n );\n }\n`;\n\nexport const LightEmailTheme = `import { Html, Head, Tailwind, Body, Container, Section } from '@react-email/components';\nimport { ThemeProps, ProjectLogo } from \"@stackframe/emails\";\n\nexport function EmailTheme({ children, unsubscribeLink, projectLogos }: ThemeProps) {\n return (\n <Html>\n <Head />\n <Tailwind>\n <Body className=\"bg-[#fafbfb] font-sans text-base m-0 p-0\" style={{ overflowX: 'hidden' }}>\n <div className=\"py-8 px-4 flex justify-center\">\n <Container className=\"bg-white p-[45px] rounded-lg shadow-sm mx-auto\" style={{ width: '100%', maxWidth: '600px' }}>\n <ProjectLogo data={projectLogos} mode=\"light\" />\n {children}\n </Container>\n </div>\n {unsubscribeLink && (\n <Section className=\"p-4 opacity-60 text-center\" style={{ textAlign: 'center' }}>\n <a href={unsubscribeLink} className=\"text-blue-600\" target=\"_blank\" rel=\"noopener noreferrer\">Click here</a> to unsubscribe from these emails\n </Section>\n )}\n </Body>\n </Tailwind>\n </Html>\n );\n}\n\nEmailTheme.PreviewProps = {\n unsubscribeLink: \"https://example.com\",\n} satisfies Partial<ThemeProps>\n`;\n\n\nconst DarkEmailTheme = `import { Html, Head, Tailwind, Body, Container, Section } from '@react-email/components';\nimport { ThemeProps, ProjectLogo } from \"@stackframe/emails\";\n\nexport function EmailTheme({ children, unsubscribeLink, projectLogos }: ThemeProps) {\n return (\n <Html>\n <Head />\n <Tailwind>\n <Body className=\"bg-[#323232] font-sans text-white m-0 p-0\" style={{ overflowX: 'hidden' }}>\n <div className=\"py-8 px-4 flex justify-center\">\n <Container className=\"bg-black p-[45px] rounded-lg shadow-sm mx-auto\" style={{ width: '100%', maxWidth: '600px' }}>\n <ProjectLogo data={projectLogos} mode=\"dark\" />\n {children}\n </Container>\n </div>\n {unsubscribeLink && (\n <Section className=\"p-4 opacity-60 text-center\" style={{ textAlign: 'center' }}>\n <a href={unsubscribeLink} className=\"text-blue-600\" target=\"_blank\" rel=\"noopener noreferrer\">Click here</a> to unsubscribe from these emails\n </Section>\n )}\n </Body>\n </Tailwind>\n </Html>\n );\n}\n\nEmailTheme.PreviewProps = {\n unsubscribeLink: \"https://example.com\",\n} satisfies Partial<ThemeProps>\n`;\n\n\nconst ColorfulEmailTheme = `import { Html, Head, Tailwind, Body, Container, Section } from '@react-email/components';\nimport { ThemeProps, ProjectLogo } from \"@stackframe/emails\";\n\nexport function EmailTheme({ children, unsubscribeLink, projectLogos }: ThemeProps) {\n return (\n <Html>\n <Head />\n <Tailwind>\n <Body className=\"bg-[#f0eef6] font-sans text-base m-0 p-0\" style={{ overflowX: 'hidden' }}>\n <div className=\"py-8 px-4 flex justify-center\">\n <Container className=\"bg-white p-[45px] rounded-2xl mx-auto\" style={{ width: '100%', maxWidth: '600px', borderTop: '4px solid #7c5ce0' }}>\n <ProjectLogo data={projectLogos} mode=\"light\" />\n {children}\n </Container>\n </div>\n {unsubscribeLink && (\n <Section className=\"p-4 opacity-60 text-center\" style={{ textAlign: 'center' }}>\n <a href={unsubscribeLink} className=\"text-[#7c5ce0]\" target=\"_blank\" rel=\"noopener noreferrer\">Click here</a> to unsubscribe from these emails\n </Section>\n )}\n </Body>\n </Tailwind>\n </Html>\n );\n}\n\nEmailTheme.PreviewProps = {\n unsubscribeLink: \"https://example.com\",\n} satisfies Partial<ThemeProps>\n`;\n\nexport const DEFAULT_EMAIL_THEME_ID = \"1df07ae6-abf3-4a40-83a5-a1a2cbe336ac\";\n\nexport const DEFAULT_EMAIL_THEMES = {\n [DEFAULT_EMAIL_THEME_ID]: {\n displayName: 'Default Light',\n tsxSource: LightEmailTheme,\n },\n \"a0172b5d-cff0-463b-83bb-85124697373a\": {\n displayName: 'Default Dark',\n tsxSource: DarkEmailTheme,\n },\n \"c7e2d94f-8a1b-4e6d-b3f5-9d0a2e7c1b8f\": {\n displayName: 'Default Colorful',\n tsxSource: ColorfulEmailTheme,\n },\n};\n\nconst EMAIL_TEMPLATE_EMAIL_VERIFICATION_ID = \"e7d009ce-8d47-4528-b245-5bf119f2ffa3\";\nconst EMAIL_TEMPLATE_PASSWORD_RESET_ID = \"a70fb3a4-56c1-4e42-af25-49d25603abd0\";\nconst EMAIL_TEMPLATE_MAGIC_LINK_ID = \"822687fe-8d0a-4467-a0d1-416b6e639478\";\nconst EMAIL_TEMPLATE_TEAM_INVITATION_ID = \"e84de395-2076-4831-9c19-8e9a96a868e4\";\nconst EMAIL_TEMPLATE_SIGN_IN_INVITATION_ID = \"066dd73c-36da-4fd0-b6d6-ebf87683f8bc\";\nconst EMAIL_TEMPLATE_PAYMENT_RECEIPT_ID = \"70372aee-0441-4d80-974c-2e858e40123a\";\nconst EMAIL_TEMPLATE_PAYMENT_FAILED_ID = \"f64b1afe-27ec-4a28-a277-7178f3261f9a\";\n\nexport const DEFAULT_EMAIL_TEMPLATES = {\n [EMAIL_TEMPLATE_EMAIL_VERIFICATION_ID]: {\n \"displayName\": \"Email Verification\",\n \"tsxSource\": \"import { type } from \\\"arktype\\\"\\nimport { Button, Section, Hr, Text, Heading } from \\\"@react-email/components\\\";\\nimport { Subject, NotificationCategory, Props } from \\\"@stackframe/emails\\\";\\n\\nexport const variablesSchema = type({\\n emailVerificationLink: \\\"string\\\"\\n})\\n\\nexport function EmailTemplate({ user, project, variables }: Props<typeof variablesSchema.infer>) {\\n return (\\n <>\\n <Subject value={`Verify your email at ${project.displayName}`} />\\n <NotificationCategory value=\\\"Transactional\\\" />\\n <div className=\\\"font-sans text-base font-normal tracking-[0.15008px] leading-[1.5] m-0 py-8 w-full min-h-full\\\">\\n <Section>\\n <Heading as=\\\"h3\\\" className=\\\"font-sans font-bold text-[20px] text-center py-4 px-6 m-0\\\">\\n Verify your email at {project.displayName}\\n </Heading>\\n <p className=\\\"font-sans font-normal text-[14px] text-center pt-2 px-6 pb-4 m-0 opacity-80\\\">\\n Hi{user.displayName ? (\\\", \\\" + user.displayName) : ''}! Please click on the following button to verify your email.\\n </p>\\n <div className=\\\"text-center py-3 px-6\\\">\\n <Button\\n href={variables.emailVerificationLink}\\n className=\\\"text-black font-sans font-bold text-[14px] inline-block bg-[#f0f0f0] rounded-[4px] py-3 px-5 no-underline border-0\\\"\\n >\\n Verify my email\\n </Button>\\n </div>\\n <div className=\\\"py-4 px-6\\\">\\n <Hr className=\\\"opacity-20\\\" />\\n </div>\\n <p className=\\\"font-sans font-normal text-[12px] text-center pt-1 px-6 pb-6 m-0 opacity-60\\\">\\n If you were not expecting this email, you can safely ignore it. \\n </p>\\n </Section>\\n </div>\\n </>\\n )\\n}\\n\\nEmailTemplate.PreviewVariables = {\\n emailVerificationLink: \\\"#\\\"\\n} satisfies typeof variablesSchema.infer\",\n \"themeId\": undefined,\n },\n [EMAIL_TEMPLATE_PASSWORD_RESET_ID]: {\n \"displayName\": \"Password Reset\",\n \"tsxSource\": \"import { type } from \\\"arktype\\\"\\nimport { Button, Section, Hr, Text, Heading } from \\\"@react-email/components\\\"\\nimport { Subject, NotificationCategory, Props} from \\\"@stackframe/emails\\\"\\n\\nexport const variablesSchema = type({\\n passwordResetLink: \\\"string\\\"\\n})\\n\\nexport function EmailTemplate({ user, project, variables }: Props<typeof variablesSchema.infer>) {\\n return (\\n <>\\n <Subject value={\\\"Reset your password at \\\" + project.displayName} />\\n <NotificationCategory value=\\\"Transactional\\\" />\\n <div className=\\\"font-sans text-base font-normal tracking-tight leading-relaxed py-8 w-full min-h-full\\\">\\n <Section>\\n <Heading as=\\\"h3\\\" className=\\\"font-sans font-bold text-[20px] text-center py-4 px-6 m-0\\\">\\n Reset your password at {project.displayName}\\n </Heading>\\n\\n <p className=\\\"text-sm font-sans font-normal text-center pt-2 pb-4 px-6 m-0 opacity-80\\\">\\n Hi{user.displayName ? (\\\", \\\" + user.displayName) : \\\"\\\"}! Please click on the following button to start the password reset process.\\n </p>\\n\\n <div className=\\\"text-center px-6 py-3\\\">\\n <Button\\n href={variables.passwordResetLink}\\n className=\\\"text-black text-sm font-sans font-bold bg-[#f0f0f0] rounded-[4px] inline-block py-3 px-5 no-underline border-none\\\"\\n target=\\\"_blank\\\"\\n >\\n Reset my password\\n </Button>\\n </div>\\n\\n <div className=\\\"px-6 py-4\\\">\\n <Hr className=\\\"opacity-20\\\" />\\n </div>\\n\\n <p className=\\\"text-xs font-sans font-normal text-center pt-1 pb-6 px-6 m-0 opacity-60\\\">\\n If you were not expecting this email, you can safely ignore it.\\n </p>\\n </Section>\\n </div>\\n </>\\n )\\n}\\n\\nEmailTemplate.PreviewVariables = {\\n passwordResetLink: \\\"#\\\"\\n} satisfies typeof variablesSchema.infer\",\n \"themeId\": undefined,\n },\n [EMAIL_TEMPLATE_MAGIC_LINK_ID]: {\n \"displayName\": \"Magic Link/OTP\",\n \"tsxSource\": \"import { type } from 'arktype';\\nimport { Section, Hr, Text, Heading } from '@react-email/components';\\nimport { Subject, NotificationCategory, Props } from '@stackframe/emails';\\n\\nexport const variablesSchema = type({\\n magicLink: 'string',\\n otp: 'string',\\n});\\n\\nexport function EmailTemplate({ user, project, variables }: Props<typeof variablesSchema.infer>) {\\n return (\\n <>\\n <Subject value={\\\"Sign in to \\\" + project.displayName + \\\": Your code is \\\" + variables.otp} />\\n <NotificationCategory value=\\\"Transactional\\\" />\\n <div className=\\\"font-sans text-base font-normal tracking-[0.15008px] leading-6 m-0 py-8 w-full min-h-full\\\">\\n <Section className=\\\"mx-auto\\\">\\n <Heading as=\\\"h3\\\" className=\\\"font-sans font-bold text-xl text-center px-6 py-4 m-0\\\">\\n Sign in to {project.displayName}\\n </Heading>\\n <p className=\\\"text-sm font-sans font-normal text-center px-6 py-4 m-0 opacity-80\\\">\\n Hi{user.displayName ? \\\", \\\" + user.displayName : \\\"\\\"}! This is your one-time-password for signing in:\\n </p>\\n <p className=\\\"text-2xl font-mono font-bold text-center px-6 py-4 m-0\\\">\\n {variables.otp}\\n </p>\\n <p className=\\\"text-sm font-sans font-normal text-center px-6 py-4 m-0\\\">\\n Or you can click on{' '}\\n <a\\n key={20}\\n href={variables.magicLink}\\n rel=\\\"noopener noreferrer\\\"\\n className=\\\"text-blue-600 underline\\\"\\n >\\n this link\\n </a>{' '}\\n to sign in\\n </p>\\n <Hr className=\\\"px-6 py-4 opacity-20\\\" />\\n <p className=\\\"text-xs font-sans font-normal text-center px-6 pt-1 pb-6 m-0 opacity-60\\\">\\n If you were not expecting this email, you can safely ignore it.\\n </p>\\n </Section>\\n </div>\\n </>\\n );\\n}\\n\\nEmailTemplate.PreviewVariables = {\\n magicLink: \\\"#\\\",\\n otp: \\\"3SLSWZ\\\"\\n} satisfies typeof variablesSchema.infer\",\n \"themeId\": undefined,\n },\n [EMAIL_TEMPLATE_TEAM_INVITATION_ID]: {\n \"displayName\": \"Team Invitation\",\n \"tsxSource\": \"import { type } from \\\"arktype\\\";\\nimport { Button, Section, Hr, Text, Heading } from \\\"@react-email/components\\\";\\nimport { Subject, NotificationCategory, Props } from \\\"@stackframe/emails\\\";\\n\\n\\nexport const variablesSchema = type({\\n teamDisplayName: \\\"string\\\",\\n teamInvitationLink: \\\"string\\\"\\n});\\n\\nexport function EmailTemplate({ user, variables }: Props<typeof variablesSchema.infer>) {\\n return (\\n <>\\n <Subject value={\\\"You have been invited to join \\\" + variables.teamDisplayName} />\\n <NotificationCategory value=\\\"Transactional\\\" />\\n <div className=\\\"font-sans text-base font-normal tracking-[0.15008px] leading-[1.5] m-0 py-8 w-full min-h-full\\\">\\n <Section className=\\\"mx-auto max-w-lg\\\">\\n <Heading as=\\\"h3\\\" className=\\\"font-sans font-bold text-xl text-center px-6 pt-8 m-0\\\">\\n You are invited to {variables.teamDisplayName}\\n </Heading>\\n <p className=\\\"text-sm font-sans font-normal text-center px-6 pt-2 pb-4 m-0 opacity-80\\\">\\n Hi{user.displayName ? \\\", \\\" + user.displayName : \\\"\\\"}! Please click the button below to join the team {variables.teamDisplayName}\\n </p>\\n <div className=\\\"text-center px-6 py-3\\\">\\n <Button\\n href={variables.teamInvitationLink}\\n className=\\\"text-black text-sm font-sans font-bold bg-[#f0f0f0] rounded-md inline-block px-5 py-3 no-underline border-0\\\"\\n >\\n Join team\\n </Button>\\n </div>\\n <div className=\\\"px-6 py-4\\\">\\n <Hr className=\\\"opacity-20\\\" />\\n </div>\\n <p className=\\\"text-xs font-sans font-normal text-center px-6 pb-6 pt-1 m-0 opacity-60\\\">\\n If you were not expecting this email, you can safely ignore it.\\n </p>\\n </Section>\\n </div>\\n </>\\n );\\n}\\n\\nEmailTemplate.PreviewVariables = {\\n teamDisplayName: \\\"My Team\\\",\\n teamInvitationLink: \\\"#\\\"\\n} satisfies typeof variablesSchema.infer \",\n \"themeId\": undefined,\n },\n [EMAIL_TEMPLATE_SIGN_IN_INVITATION_ID]: {\n \"displayName\": \"Sign In Invitation\",\n \"tsxSource\": \"import { type } from \\\"arktype\\\"\\nimport { Button, Section, Hr, Text, Heading } from \\\"@react-email/components\\\";\\nimport { Subject, NotificationCategory, Props } from \\\"@stackframe/emails\\\";\\n\\nexport const variablesSchema = type({\\n signInInvitationLink: \\\"string\\\",\\n teamDisplayName: \\\"string\\\"\\n})\\n\\nexport function EmailTemplate({ user, project, variables }: Props<typeof variablesSchema.infer>) {\\n return (\\n <>\\n <Subject\\n value={\\\"You have been invited to sign in to \\\" + project.displayName}\\n />\\n <NotificationCategory value=\\\"Transactional\\\" />\\n\\n <div className=\\\"font-sans text-base font-normal leading-normal w-full min-h-full m-0 py-8\\\">\\n <Section>\\n <Heading as=\\\"h3\\\" className=\\\"font-sans font-bold text-xl text-center pt-8 px-6 m-0\\\">\\n You are invited to sign in to {variables.teamDisplayName}\\n </Heading>\\n\\n <p className=\\\"text-sm font-sans font-normal text-center pt-2 pb-4 px-6 m-0 opacity-80\\\">\\n Hi\\n {user.displayName ? \\\", \\\" + user.displayName : \\\"\\\"}! Please click on the following\\n link to sign in to your account\\n </p>\\n\\n <div className=\\\"text-center px-6 py-3\\\">\\n <Button\\n href={variables.signInInvitationLink}\\n className=\\\"text-black text-sm font-sans font-bold bg-gray-200 rounded-md inline-block py-3 px-5 no-underline border-none\\\"\\n >\\n Sign in\\n </Button>\\n </div>\\n\\n <div className=\\\"px-6 py-4\\\">\\n <Hr className=\\\"opacity-20\\\" />\\n </div>\\n\\n <p className=\\\"text-xs font-sans font-normal text-center pt-1 pb-6 px-6 m-0 opacity-60\\\">\\n If you were not expecting this email, you can safely ignore it.\\n </p>\\n </Section>\\n </div>\\n </>\\n )\\n}\\n\\nEmailTemplate.PreviewVariables = {\\n signInInvitationLink: \\\"#\\\",\\n teamDisplayName: \\\"My Team\\\"\\n} satisfies typeof variablesSchema.infer\",\n \"themeId\": undefined,\n },\n [EMAIL_TEMPLATE_PAYMENT_RECEIPT_ID]: {\n \"displayName\": \"Payment Receipt\",\n \"tsxSource\": \"import { type } from \\\"arktype\\\";\\nimport { Button, Section, Hr } from \\\"@react-email/components\\\";\\nimport { Subject, NotificationCategory, Props } from \\\"@stackframe/emails\\\";\\n\\nexport const variablesSchema = type({\\n productName: \\\"string\\\",\\n quantity: \\\"number\\\",\\n amount: \\\"string\\\",\\n receiptLink: \\\"string?\\\"\\n});\\n\\nexport function EmailTemplate({ user, project, variables }: Props<typeof variablesSchema.infer>) {\\n return (\\n <>\\n <Subject value={\\\"Your receipt from \\\" + project.displayName} />\\n <NotificationCategory value=\\\"Transactional\\\" />\\n <div className=\\\"bg-white text-[#242424] font-sans text-base font-normal tracking-[0.15008px] leading-[1.5] m-0 py-8 w-full min-h-full\\\">\\n <Section className=\\\"bg-white\\\">\\n <h3 className=\\\"text-black font-sans font-bold text-[20px] text-center py-4 px-6 m-0\\\">\\n Thanks for your purchase\\n </h3>\\n <p className=\\\"text-[#474849] font-sans font-normal text-[14px] text-center pt-2 px-6 pb-4 m-0\\\">\\n Hi{user.displayName ? (\\\", \\\" + user.displayName) : \\\"\\\"}! Your payment for {variables.productName} is complete.\\n </p>\\n <div className=\\\"px-6\\\">\\n <p className=\\\"text-black font-sans font-bold text-[16px] text-center m-0\\\">\\n Total paid: {variables.amount}\\n </p>\\n <p className=\\\"text-[#474849] font-sans text-[13px] text-center mt-2 mb-0\\\">\\n Quantity: {variables.quantity}\\n </p>\\n </div>\\n {variables.receiptLink ? (\\n <div className=\\\"text-center py-4 px-6\\\">\\n <Button\\n href={variables.receiptLink}\\n target=\\\"_blank\\\"\\n className=\\\"text-black font-sans font-bold text-[14px] inline-block bg-[#f0f0f0] rounded-[4px] py-3 px-5 no-underline border-0\\\"\\n >\\n View receipt\\n </Button>\\n </div>\\n ) : null}\\n <div className=\\\"py-4 px-6\\\">\\n <Hr />\\n </div>\\n </Section>\\n </div>\\n </>\\n );\\n}\\n\\nEmailTemplate.PreviewVariables = {\\n productName: \\\"Pro Plan\\\",\\n quantity: 1,\\n amount: \\\"$29.00\\\",\\n receiptLink: \\\"https://example.com/receipt\\\"\\n} satisfies typeof variablesSchema.infer;\\n\",\n \"themeId\": undefined,\n },\n [EMAIL_TEMPLATE_PAYMENT_FAILED_ID]: {\n \"displayName\": \"Payment Failed\",\n \"tsxSource\": \"import { type } from \\\"arktype\\\";\\nimport { Button, Section, Hr } from \\\"@react-email/components\\\";\\nimport { Subject, NotificationCategory, Props } from \\\"@stackframe/emails\\\";\\n\\nexport const variablesSchema = type({\\n productName: \\\"string\\\",\\n amount: \\\"string\\\",\\n invoiceUrl: \\\"string?\\\",\\n failureReason: \\\"string?\\\"\\n});\\n\\nexport function EmailTemplate({ user, project, variables }: Props<typeof variablesSchema.infer>) {\\n return (\\n <>\\n <Subject value={\\\"Payment failed for \\\" + project.displayName} />\\n <NotificationCategory value=\\\"Transactional\\\" />\\n <div className=\\\"bg-white text-[#242424] font-sans text-base font-normal tracking-[0.15008px] leading-[1.5] m-0 py-8 w-full min-h-full\\\">\\n <Section className=\\\"bg-white\\\">\\n <h3 className=\\\"text-black font-sans font-bold text-[20px] text-center py-4 px-6 m-0\\\">\\n We couldn't process your payment\\n </h3>\\n <p className=\\\"text-[#474849] font-sans font-normal text-[14px] text-center pt-2 px-6 pb-4 m-0\\\">\\n Hi{user.displayName ? (\\\", \\\" + user.displayName) : \\\"\\\"}! Your payment for {variables.productName} ({variables.amount}) did not go through.\\n </p>\\n {variables.failureReason ? (\\n <p className=\\\"text-[#8a8b8b] font-sans text-[12px] text-center px-6 pb-2 m-0\\\">\\n Reason: {variables.failureReason}\\n </p>\\n ) : null}\\n {variables.invoiceUrl ? (\\n <div className=\\\"text-center py-3 px-6\\\">\\n <Button\\n href={variables.invoiceUrl}\\n target=\\\"_blank\\\"\\n className=\\\"text-black font-sans font-bold text-[14px] inline-block bg-[#f0f0f0] rounded-[4px] py-3 px-5 no-underline border-0\\\"\\n >\\n View invoice\\n </Button>\\n </div>\\n ) : null}\\n <div className=\\\"py-4 px-6\\\">\\n <Hr />\\n </div>\\n <p className=\\\"text-[#474849] font-sans font-normal text-[12px] text-center pt-1 px-6 pb-6 m-0\\\">\\n Please update your payment details to avoid service interruption.\\n </p>\\n </Section>\\n </div>\\n </>\\n );\\n}\\n\\nEmailTemplate.PreviewVariables = {\\n productName: \\\"Pro Plan\\\",\\n amount: \\\"$29.00\\\",\\n invoiceUrl: \\\"https://example.com/billing\\\",\\n failureReason: \\\"Your card was declined\\\"\\n} satisfies typeof variablesSchema.infer;\\n\",\n \"themeId\": undefined,\n }\n};\n\nexport const DEFAULT_TEMPLATE_IDS = {\n email_verification: EMAIL_TEMPLATE_EMAIL_VERIFICATION_ID,\n password_reset: EMAIL_TEMPLATE_PASSWORD_RESET_ID,\n magic_link: EMAIL_TEMPLATE_MAGIC_LINK_ID,\n team_invitation: EMAIL_TEMPLATE_TEAM_INVITATION_ID,\n sign_in_invitation: EMAIL_TEMPLATE_SIGN_IN_INVITATION_ID,\n payment_receipt: EMAIL_TEMPLATE_PAYMENT_RECEIPT_ID,\n payment_failed: EMAIL_TEMPLATE_PAYMENT_FAILED_ID,\n} as const;\n"],"mappings":";;;AAEA,MAAa,2BAA2B,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;AA0BhD,MAAa,wBAAwB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwC7C,MAAa,kBAAkB,QAAQ;;;;;;;;;;;;;;AAevC,MAAa,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgC/B,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCvB,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+B3B,MAAa,yBAAyB;AAEtC,MAAa,uBAAuB;EACjC,yBAAyB;EACxB,aAAa;EACb,WAAW;EACZ;CACD,wCAAwC;EACtC,aAAa;EACb,WAAW;EACZ;CACD,wCAAwC;EACtC,aAAa;EACb,WAAW;EACZ;CACF;AAED,MAAM,uCAAuC;AAC7C,MAAM,mCAAmC;AACzC,MAAM,+BAA+B;AACrC,MAAM,oCAAoC;AAC1C,MAAM,uCAAuC;AAC7C,MAAM,oCAAoC;AAC1C,MAAM,mCAAmC;AAEzC,MAAa,0BAA0B;EACpC,uCAAuC;EACtC,eAAe;EACf,aAAa;EACb,WAAW;EACZ;EACA,mCAAmC;EAClC,eAAe;EACf,aAAa;EACb,WAAW;EACZ;EACA,+BAA+B;EAC9B,eAAe;EACf,aAAa;EACb,WAAW;EACZ;EACA,oCAAoC;EACnC,eAAe;EACf,aAAa;EACb,WAAW;EACZ;EACA,uCAAuC;EACtC,eAAe;EACf,aAAa;EACb,WAAW;EACZ;EACA,oCAAoC;EACnC,eAAe;EACf,aAAa;EACb,WAAW;EACZ;EACA,mCAAmC;EAClC,eAAe;EACf,aAAa;EACb,WAAW;EACZ;CACF;AAED,MAAa,uBAAuB;CAClC,oBAAoB;CACpB,gBAAgB;CAChB,YAAY;CACZ,iBAAiB;CACjB,oBAAoB;CACpB,iBAAiB;CACjB,gBAAgB;CACjB"}
@@ -0,0 +1,5 @@
1
+ //#region src/helpers/init-prompt.d.ts
2
+ declare const createInitPrompt: (web: boolean, configPath?: string) => string;
3
+ //#endregion
4
+ export { createInitPrompt };
5
+ //# sourceMappingURL=init-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-prompt.d.ts","names":[],"sources":["../../../src/helpers/init-prompt.ts"],"mappings":";cAsBa,gBAAA,GAAoB,GAAA,WAAc,UAAA"}
@@ -0,0 +1,40 @@
1
+ import { aiSetupPrompt } from "../ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js";
2
+
3
+ //#region src/helpers/init-prompt.ts
4
+ function getCliProjectSetupContext(configPath) {
5
+ if (configPath != null) return `
6
+ The Hexclave CLI already created or linked this project to a local Hexclave development environment config file:
7
+
8
+ \`\`\`text
9
+ ${configPath}
10
+ \`\`\`
11
+
12
+ Do not create or link another Hexclave project. When the SDK setup instructions mention creating \`stack.config.ts\` or wrapping the dev script with \`stack dev --config-file\`, use the config file path above.
13
+ `;
14
+ return `
15
+ The Hexclave CLI already created or linked this project to a hosted Hexclave cloud project and wrote or printed the Hexclave environment variables.
16
+
17
+ Do not create or link another Hexclave project. Use the existing environment variables in this workspace. If the variables were printed instead of written because the user declined to append them to an env file, tell the user exactly which variables still need to be added.
18
+ `;
19
+ }
20
+ const createInitPrompt = (web, configPath) => `=============================
21
+ HEXCLAVE SETUP INSTRUCTIONS
22
+ =============================
23
+
24
+ These instructions describe how to set up Hexclave.
25
+ ${web ? `
26
+ First of all, if you have access to a terminal, it is better to use \`npx @hexclave/cli init\`.
27
+ ` : ""}
28
+
29
+ ${getCliProjectSetupContext(configPath)}
30
+
31
+ Use the full setup guide below as the source of truth, with one important CLI-specific adjustment: the "Setting up the project" step is already complete. Use that section only to understand how the existing config/env files should connect to the SDK wiring; do not ask the user for project IDs or keys that the CLI already generated or linked.
32
+
33
+ Apply only the sections relevant to this project. For example, do not add Convex, Supabase, or command-line-app authentication unless the existing project already uses that surface or the user explicitly asked for it.
34
+
35
+ ${aiSetupPrompt}
36
+ `;
37
+
38
+ //#endregion
39
+ export { createInitPrompt };
40
+ //# sourceMappingURL=init-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-prompt.js","names":[],"sources":["../../../src/helpers/init-prompt.ts"],"sourcesContent":["import { aiSetupPrompt } from \"../ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt\";\n\nfunction getCliProjectSetupContext(configPath?: string): string {\n if (configPath != null) {\n return `\nThe Hexclave CLI already created or linked this project to a local Hexclave development environment config file:\n\n\\`\\`\\`text\n${configPath}\n\\`\\`\\`\n\nDo not create or link another Hexclave project. When the SDK setup instructions mention creating \\`stack.config.ts\\` or wrapping the dev script with \\`stack dev --config-file\\`, use the config file path above.\n`;\n }\n\n return `\nThe Hexclave CLI already created or linked this project to a hosted Hexclave cloud project and wrote or printed the Hexclave environment variables.\n\nDo not create or link another Hexclave project. Use the existing environment variables in this workspace. If the variables were printed instead of written because the user declined to append them to an env file, tell the user exactly which variables still need to be added.\n`;\n}\n\nexport const createInitPrompt = (web: boolean, configPath?: string) => `=============================\nHEXCLAVE SETUP INSTRUCTIONS\n=============================\n\nThese instructions describe how to set up Hexclave.\n${web ? `\nFirst of all, if you have access to a terminal, it is better to use \\`npx @hexclave/cli init\\`.\n` : \"\"}\n\n${getCliProjectSetupContext(configPath)}\n\nUse the full setup guide below as the source of truth, with one important CLI-specific adjustment: the \"Setting up the project\" step is already complete. Use that section only to understand how the existing config/env files should connect to the SDK wiring; do not ask the user for project IDs or keys that the CLI already generated or linked.\n\nApply only the sections relevant to this project. For example, do not add Convex, Supabase, or command-line-app authentication unless the existing project already uses that surface or the user explicitly asked for it.\n\n${aiSetupPrompt}\n`;\n"],"mappings":";;;AAEA,SAAS,0BAA0B,YAA6B;AAC9D,KAAI,cAAc,KAChB,QAAO;;;;EAIT,WAAW;;;;;AAOX,QAAO;;;;;;AAOT,MAAa,oBAAoB,KAAc,eAAwB;;;;;EAKrE,MAAM;;IAEJ,GAAG;;EAEL,0BAA0B,WAAW,CAAC;;;;;;EAMtC,cAAc"}