@intelligo-dev/core 1.0.0-beta.1 → 1.0.0-beta.13

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 (355) hide show
  1. package/NOTICE +6 -0
  2. package/README.md +102 -0
  3. package/dist/attachments/errors.d.ts +7 -0
  4. package/dist/attachments/errors.d.ts.map +1 -0
  5. package/dist/attachments/errors.js +11 -0
  6. package/dist/attachments/errors.js.map +1 -0
  7. package/dist/attachments/index.d.ts +8 -0
  8. package/dist/attachments/index.d.ts.map +1 -0
  9. package/dist/attachments/index.js +7 -0
  10. package/dist/attachments/index.js.map +1 -0
  11. package/dist/attachments/service.d.ts +45 -0
  12. package/dist/attachments/service.d.ts.map +1 -0
  13. package/dist/attachments/service.js +100 -0
  14. package/dist/attachments/service.js.map +1 -0
  15. package/dist/attachments/types.d.ts +6 -0
  16. package/dist/attachments/types.d.ts.map +1 -0
  17. package/dist/attachments/types.js +2 -0
  18. package/dist/attachments/types.js.map +1 -0
  19. package/dist/conversations/errors.d.ts +2 -8
  20. package/dist/conversations/errors.d.ts.map +1 -1
  21. package/dist/conversations/errors.js +2 -8
  22. package/dist/conversations/errors.js.map +1 -1
  23. package/dist/conversations/index.d.ts +4 -12
  24. package/dist/conversations/index.d.ts.map +1 -1
  25. package/dist/conversations/index.js +2 -11
  26. package/dist/conversations/index.js.map +1 -1
  27. package/dist/conversations/service.d.ts +49 -61
  28. package/dist/conversations/service.d.ts.map +1 -1
  29. package/dist/conversations/service.js +110 -83
  30. package/dist/conversations/service.js.map +1 -1
  31. package/dist/conversations/types.d.ts +1 -4
  32. package/dist/conversations/types.d.ts.map +1 -1
  33. package/dist/conversations/types.js +0 -3
  34. package/dist/conversations/types.js.map +1 -1
  35. package/dist/db/client.d.ts +21 -10
  36. package/dist/db/client.d.ts.map +1 -1
  37. package/dist/db/client.js +43 -18
  38. package/dist/db/client.js.map +1 -1
  39. package/dist/db/index.d.ts +3 -3
  40. package/dist/db/index.d.ts.map +1 -1
  41. package/dist/db/index.js +3 -7
  42. package/dist/db/index.js.map +1 -1
  43. package/dist/db/schema/agents.d.ts +14 -51
  44. package/dist/db/schema/agents.d.ts.map +1 -1
  45. package/dist/db/schema/agents.js +9 -21
  46. package/dist/db/schema/agents.js.map +1 -1
  47. package/dist/db/schema/ai.d.ts +86 -1556
  48. package/dist/db/schema/ai.d.ts.map +1 -1
  49. package/dist/db/schema/ai.js +32 -236
  50. package/dist/db/schema/ai.js.map +1 -1
  51. package/dist/db/schema/auth.d.ts +5 -34
  52. package/dist/db/schema/auth.d.ts.map +1 -1
  53. package/dist/db/schema/auth.js +25 -56
  54. package/dist/db/schema/auth.js.map +1 -1
  55. package/dist/db/schema/billing.d.ts +136 -107
  56. package/dist/db/schema/billing.d.ts.map +1 -1
  57. package/dist/db/schema/billing.js +72 -60
  58. package/dist/db/schema/billing.js.map +1 -1
  59. package/dist/db/schema/feature-flags.d.ts +3 -12
  60. package/dist/db/schema/feature-flags.d.ts.map +1 -1
  61. package/dist/db/schema/feature-flags.js +3 -12
  62. package/dist/db/schema/feature-flags.js.map +1 -1
  63. package/dist/db/schema/identity.d.ts +12 -274
  64. package/dist/db/schema/identity.d.ts.map +1 -1
  65. package/dist/db/schema/identity.js +19 -104
  66. package/dist/db/schema/identity.js.map +1 -1
  67. package/dist/db/schema/index.d.ts +8 -15
  68. package/dist/db/schema/index.d.ts.map +1 -1
  69. package/dist/db/schema/index.js +12 -42
  70. package/dist/db/schema/index.js.map +1 -1
  71. package/dist/db/schema/notifications.d.ts +3 -17
  72. package/dist/db/schema/notifications.d.ts.map +1 -1
  73. package/dist/db/schema/notifications.js +3 -17
  74. package/dist/db/schema/notifications.js.map +1 -1
  75. package/dist/db/schema/usage.d.ts +94 -77
  76. package/dist/db/schema/usage.d.ts.map +1 -1
  77. package/dist/db/schema/usage.js +59 -89
  78. package/dist/db/schema/usage.js.map +1 -1
  79. package/dist/db/validate.d.ts +2 -11
  80. package/dist/db/validate.d.ts.map +1 -1
  81. package/dist/db/validate.js +6 -17
  82. package/dist/db/validate.js.map +1 -1
  83. package/dist/db/workspace-queries.d.ts +5 -29
  84. package/dist/db/workspace-queries.d.ts.map +1 -1
  85. package/dist/db/workspace-queries.js +5 -29
  86. package/dist/db/workspace-queries.js.map +1 -1
  87. package/dist/documents/classifier.d.ts +5 -12
  88. package/dist/documents/classifier.d.ts.map +1 -1
  89. package/dist/documents/classifier.js +16 -16
  90. package/dist/documents/classifier.js.map +1 -1
  91. package/dist/documents/errors.d.ts +2 -10
  92. package/dist/documents/errors.d.ts.map +1 -1
  93. package/dist/documents/errors.js +2 -10
  94. package/dist/documents/errors.js.map +1 -1
  95. package/dist/documents/index.d.ts +4 -13
  96. package/dist/documents/index.d.ts.map +1 -1
  97. package/dist/documents/index.js +3 -12
  98. package/dist/documents/index.js.map +1 -1
  99. package/dist/documents/service.d.ts +19 -26
  100. package/dist/documents/service.d.ts.map +1 -1
  101. package/dist/documents/service.js +44 -38
  102. package/dist/documents/service.js.map +1 -1
  103. package/dist/documents/types.d.ts +6 -10
  104. package/dist/documents/types.d.ts.map +1 -1
  105. package/dist/documents/types.js +0 -3
  106. package/dist/documents/types.js.map +1 -1
  107. package/dist/email/brand.d.ts +17 -0
  108. package/dist/email/brand.d.ts.map +1 -0
  109. package/dist/email/brand.js +9 -0
  110. package/dist/email/brand.js.map +1 -0
  111. package/dist/email/index.d.ts +4 -4
  112. package/dist/email/index.js +4 -4
  113. package/dist/email/provider.d.ts +1 -7
  114. package/dist/email/provider.d.ts.map +1 -1
  115. package/dist/email/provider.js +10 -19
  116. package/dist/email/provider.js.map +1 -1
  117. package/dist/email/send.d.ts +12 -12
  118. package/dist/email/send.d.ts.map +1 -1
  119. package/dist/email/send.js +5 -19
  120. package/dist/email/send.js.map +1 -1
  121. package/dist/email/senders.d.ts +17 -30
  122. package/dist/email/senders.d.ts.map +1 -1
  123. package/dist/email/senders.js +33 -47
  124. package/dist/email/senders.js.map +1 -1
  125. package/dist/email/templates/base-layout.d.ts +1 -1
  126. package/dist/email/templates/base-layout.d.ts.map +1 -1
  127. package/dist/email/templates/base-layout.js +4 -6
  128. package/dist/email/templates/base-layout.js.map +1 -1
  129. package/dist/email/templates/index.d.ts +10 -10
  130. package/dist/email/templates/index.d.ts.map +1 -1
  131. package/dist/email/templates/index.js +10 -16
  132. package/dist/email/templates/index.js.map +1 -1
  133. package/dist/email/templates/password-reset.d.ts +2 -2
  134. package/dist/email/templates/password-reset.d.ts.map +1 -1
  135. package/dist/email/templates/password-reset.js +10 -22
  136. package/dist/email/templates/password-reset.js.map +1 -1
  137. package/dist/email/templates/payment-failed.d.ts +2 -2
  138. package/dist/email/templates/payment-failed.d.ts.map +1 -1
  139. package/dist/email/templates/payment-failed.js +11 -24
  140. package/dist/email/templates/payment-failed.js.map +1 -1
  141. package/dist/email/templates/quota-warning.d.ts +4 -4
  142. package/dist/email/templates/quota-warning.d.ts.map +1 -1
  143. package/dist/email/templates/quota-warning.js +19 -39
  144. package/dist/email/templates/quota-warning.js.map +1 -1
  145. package/dist/email/templates/subscription-confirmed.d.ts +2 -2
  146. package/dist/email/templates/subscription-confirmed.d.ts.map +1 -1
  147. package/dist/email/templates/subscription-confirmed.js +13 -28
  148. package/dist/email/templates/subscription-confirmed.js.map +1 -1
  149. package/dist/email/templates/trial-expiry.d.ts +2 -2
  150. package/dist/email/templates/trial-expiry.d.ts.map +1 -1
  151. package/dist/email/templates/trial-expiry.js +12 -36
  152. package/dist/email/templates/trial-expiry.js.map +1 -1
  153. package/dist/email/templates/trial-warning.d.ts +2 -2
  154. package/dist/email/templates/trial-warning.d.ts.map +1 -1
  155. package/dist/email/templates/trial-warning.js +15 -32
  156. package/dist/email/templates/trial-warning.js.map +1 -1
  157. package/dist/email/templates/verify-email.d.ts +2 -2
  158. package/dist/email/templates/verify-email.d.ts.map +1 -1
  159. package/dist/email/templates/verify-email.js +10 -22
  160. package/dist/email/templates/verify-email.js.map +1 -1
  161. package/dist/email/templates/welcome.d.ts +2 -2
  162. package/dist/email/templates/welcome.d.ts.map +1 -1
  163. package/dist/email/templates/welcome.js +13 -20
  164. package/dist/email/templates/welcome.js.map +1 -1
  165. package/dist/email/templates/workspace-invitation.d.ts +2 -2
  166. package/dist/email/templates/workspace-invitation.d.ts.map +1 -1
  167. package/dist/email/templates/workspace-invitation.js +12 -26
  168. package/dist/email/templates/workspace-invitation.js.map +1 -1
  169. package/dist/env.d.ts +5 -10
  170. package/dist/env.d.ts.map +1 -1
  171. package/dist/env.js +41 -31
  172. package/dist/env.js.map +1 -1
  173. package/dist/identity/audit.d.ts +11 -24
  174. package/dist/identity/audit.d.ts.map +1 -1
  175. package/dist/identity/audit.js +13 -27
  176. package/dist/identity/audit.js.map +1 -1
  177. package/dist/identity/errors.d.ts +4 -12
  178. package/dist/identity/errors.d.ts.map +1 -1
  179. package/dist/identity/errors.js +2 -8
  180. package/dist/identity/errors.js.map +1 -1
  181. package/dist/identity/index.d.ts +5 -13
  182. package/dist/identity/index.d.ts.map +1 -1
  183. package/dist/identity/index.js +4 -12
  184. package/dist/identity/index.js.map +1 -1
  185. package/dist/identity/service.d.ts +13 -47
  186. package/dist/identity/service.d.ts.map +1 -1
  187. package/dist/identity/service.js +31 -78
  188. package/dist/identity/service.js.map +1 -1
  189. package/dist/identity/types.d.ts +1 -4
  190. package/dist/identity/types.d.ts.map +1 -1
  191. package/dist/identity/types.js +0 -3
  192. package/dist/identity/types.js.map +1 -1
  193. package/dist/index.d.ts +1 -2
  194. package/dist/index.d.ts.map +1 -1
  195. package/dist/index.js +3 -10
  196. package/dist/index.js.map +1 -1
  197. package/dist/logger.d.ts +7 -18
  198. package/dist/logger.d.ts.map +1 -1
  199. package/dist/logger.js +45 -49
  200. package/dist/logger.js.map +1 -1
  201. package/dist/money.d.ts +95 -0
  202. package/dist/money.d.ts.map +1 -0
  203. package/dist/money.js +208 -0
  204. package/dist/money.js.map +1 -0
  205. package/dist/notifications/index.d.ts +9 -43
  206. package/dist/notifications/index.d.ts.map +1 -1
  207. package/dist/notifications/index.js +9 -49
  208. package/dist/notifications/index.js.map +1 -1
  209. package/dist/notifications/triggers.d.ts +9 -32
  210. package/dist/notifications/triggers.d.ts.map +1 -1
  211. package/dist/notifications/triggers.js +21 -58
  212. package/dist/notifications/triggers.js.map +1 -1
  213. package/dist/notifications/types.d.ts +1 -10
  214. package/dist/notifications/types.d.ts.map +1 -1
  215. package/dist/notifications/types.js +0 -9
  216. package/dist/notifications/types.js.map +1 -1
  217. package/dist/prompt.d.ts +38 -0
  218. package/dist/prompt.d.ts.map +1 -0
  219. package/dist/prompt.js +118 -0
  220. package/dist/prompt.js.map +1 -0
  221. package/dist/registry.d.ts +32 -0
  222. package/dist/registry.d.ts.map +1 -0
  223. package/dist/registry.js +60 -0
  224. package/dist/registry.js.map +1 -0
  225. package/dist/request-context.d.ts +49 -0
  226. package/dist/request-context.d.ts.map +1 -0
  227. package/dist/request-context.js +100 -0
  228. package/dist/request-context.js.map +1 -0
  229. package/dist/storage/index.d.ts +65 -0
  230. package/dist/storage/index.d.ts.map +1 -0
  231. package/dist/storage/index.js +109 -0
  232. package/dist/storage/index.js.map +1 -0
  233. package/package.json +74 -24
  234. package/src/attachments/errors.ts +18 -0
  235. package/src/attachments/index.ts +22 -0
  236. package/src/attachments/service.ts +178 -0
  237. package/src/attachments/types.ts +6 -0
  238. package/src/conversations/errors.ts +45 -0
  239. package/src/conversations/index.ts +39 -0
  240. package/src/conversations/service.ts +594 -0
  241. package/src/conversations/types.ts +15 -0
  242. package/src/db/client.ts +91 -0
  243. package/src/db/index.ts +3 -0
  244. package/src/db/migrations/0000_baseline.sql +652 -0
  245. package/src/db/migrations/0001_reconcile_chain_built_databases.sql +53 -0
  246. package/src/db/migrations/0002_webhook_claim_lease.sql +1 -0
  247. package/src/db/migrations/README.md +74 -36
  248. package/src/db/migrations/legacy-chain.json +197 -0
  249. package/src/db/migrations/meta/0000_snapshot.json +4182 -157
  250. package/src/db/migrations/meta/0002_snapshot.json +2478 -368
  251. package/src/db/migrations/meta/_journal.json +6 -279
  252. package/src/db/schema/agents.ts +57 -0
  253. package/src/db/schema/ai.ts +174 -0
  254. package/src/db/schema/auth.ts +183 -0
  255. package/src/db/schema/billing.ts +209 -0
  256. package/src/db/schema/feature-flags.ts +20 -0
  257. package/src/db/schema/identity.ts +250 -0
  258. package/src/db/schema/index.ts +12 -0
  259. package/src/db/schema/notifications.ts +31 -0
  260. package/src/db/schema/usage.ts +269 -0
  261. package/src/db/validate.ts +63 -0
  262. package/src/db/workspace-queries.ts +64 -0
  263. package/src/documents/classifier.ts +61 -0
  264. package/src/documents/errors.ts +44 -0
  265. package/src/documents/index.ts +24 -0
  266. package/src/documents/service.ts +256 -0
  267. package/src/documents/types.ts +24 -0
  268. package/src/email/brand.ts +24 -0
  269. package/src/email/index.ts +19 -0
  270. package/src/email/provider.ts +278 -0
  271. package/src/email/send.ts +169 -0
  272. package/src/email/senders.ts +292 -0
  273. package/src/email/templates/base-layout.tsx +145 -0
  274. package/src/email/templates/index.ts +28 -0
  275. package/src/email/templates/password-reset.tsx +72 -0
  276. package/src/email/templates/payment-failed.tsx +77 -0
  277. package/src/email/templates/quota-warning.tsx +118 -0
  278. package/src/email/templates/subscription-confirmed.tsx +91 -0
  279. package/src/email/templates/trial-expiry.tsx +124 -0
  280. package/src/email/templates/trial-warning.tsx +104 -0
  281. package/src/email/templates/verify-email.tsx +72 -0
  282. package/src/email/templates/welcome.tsx +64 -0
  283. package/src/email/templates/workspace-invitation.tsx +105 -0
  284. package/src/env.ts +180 -0
  285. package/src/identity/audit.ts +65 -0
  286. package/src/identity/errors.ts +44 -0
  287. package/src/identity/index.ts +26 -0
  288. package/src/identity/service.ts +202 -0
  289. package/src/identity/types.ts +28 -0
  290. package/src/index.ts +4 -0
  291. package/src/logger.ts +198 -0
  292. package/src/money.ts +270 -0
  293. package/src/notifications/index.ts +108 -0
  294. package/src/notifications/triggers.ts +158 -0
  295. package/src/notifications/types.ts +18 -0
  296. package/src/prompt.ts +142 -0
  297. package/src/registry.ts +75 -0
  298. package/src/request-context.ts +137 -0
  299. package/src/storage/index.ts +153 -0
  300. package/dist/db/schema/rag.d.ts +0 -171
  301. package/dist/db/schema/rag.d.ts.map +0 -1
  302. package/dist/db/schema/rag.js +0 -42
  303. package/dist/db/schema/rag.js.map +0 -1
  304. package/src/db/migrations/0000_sharp_night_nurse.sql +0 -52
  305. package/src/db/migrations/0001_hesitant_vapor.sql +0 -40
  306. package/src/db/migrations/0002_numerous_lady_vermin.sql +0 -235
  307. package/src/db/migrations/0003_mighty_jean_grey.sql +0 -37
  308. package/src/db/migrations/0004_cynical_grandmaster.sql +0 -2
  309. package/src/db/migrations/0005_careful_switch.sql +0 -8
  310. package/src/db/migrations/0006_tense_blue_marvel.sql +0 -16
  311. package/src/db/migrations/0007_next_squadron_sinister.sql +0 -1
  312. package/src/db/migrations/0008_powerful_scream.sql +0 -39
  313. package/src/db/migrations/0009_sad_ink.sql +0 -1
  314. package/src/db/migrations/0010_shocking_omega_flight.sql +0 -2
  315. package/src/db/migrations/0011_ambiguous_otto_octavius.sql +0 -151
  316. package/src/db/migrations/0011_hnsw_vector_index.sql +0 -17
  317. package/src/db/migrations/0012_user_profiles.sql +0 -30
  318. package/src/db/migrations/0013_trending_seasonal_columns.sql +0 -9
  319. package/src/db/migrations/0014_add_product_type_to_agents.sql +0 -6
  320. package/src/db/migrations/0015_new_v1_tables.sql +0 -149
  321. package/src/db/migrations/0016_document_types.sql +0 -30
  322. package/src/db/migrations/0017_document_metadata.sql +0 -2
  323. package/src/db/migrations/0018_identity_graph.sql +0 -200
  324. package/src/db/migrations/0019_db_driven_prompts.sql +0 -20
  325. package/src/db/migrations/0020_pending_extractions.sql +0 -35
  326. package/src/db/migrations/0021_rag_documents.sql +0 -39
  327. package/src/db/migrations/0022_user_quotas_usage_jsonb.sql +0 -70
  328. package/src/db/migrations/0023_user_facts_user_scoped_unique.sql +0 -17
  329. package/src/db/migrations/0024_user_memories_hnsw.sql +0 -23
  330. package/src/db/migrations/0025_audit_trigger_errcode.sql +0 -21
  331. package/src/db/migrations/0026_user_profile_snapshots_composite_pk.sql +0 -17
  332. package/src/db/migrations/0027_billing_settings_mnt_columns.sql +0 -54
  333. package/src/db/migrations/0028_trial_credits_normalized_email.sql +0 -37
  334. package/src/db/migrations/0029_usage_records_conversation_idx.sql +0 -13
  335. package/src/db/migrations/0030_pending_extractions_composite_idx.sql +0 -11
  336. package/src/db/migrations/0031_rag_documents_hnsw.sql +0 -16
  337. package/src/db/migrations/0032_rate_limit_unique_idx.sql +0 -16
  338. package/src/db/migrations/0033_pending_extractions_partial_idx.sql +0 -18
  339. package/src/db/migrations/0034_rate_limit_count.sql +0 -9
  340. package/src/db/migrations/0035_credit_reservations.sql +0 -24
  341. package/src/db/migrations/0036_executions_audit_jobs.sql +0 -96
  342. package/src/db/migrations/0037_rate_limit_minute_bucket.sql +0 -46
  343. package/src/db/migrations/0038_user_quotas_generic_usage.sql +0 -25
  344. package/src/db/migrations/0039_platform_admin_impersonation.sql +0 -27
  345. package/src/db/migrations/0040_ee_audit_chain.sql +0 -23
  346. package/src/db/migrations/meta/0001_snapshot.json +0 -631
  347. package/src/db/migrations/meta/0003_snapshot.json +0 -2488
  348. package/src/db/migrations/meta/0004_snapshot.json +0 -2500
  349. package/src/db/migrations/meta/0005_snapshot.json +0 -2548
  350. package/src/db/migrations/meta/0006_snapshot.json +0 -2650
  351. package/src/db/migrations/meta/0007_snapshot.json +0 -2657
  352. package/src/db/migrations/meta/0008_snapshot.json +0 -2719
  353. package/src/db/migrations/meta/0009_snapshot.json +0 -2726
  354. package/src/db/migrations/meta/0010_snapshot.json +0 -2739
  355. package/src/db/migrations/meta/0011_snapshot.json +0 -3886
@@ -1,10 +1,13 @@
1
1
  import type React from "react";
2
- import { type EmailTemplateRef } from "./provider";
2
+ import { type EmailTemplateRef } from "./provider.js";
3
3
  export interface SendEmailParams {
4
4
  to: string | string[];
5
5
  subject: string;
6
6
  html: string;
7
- /** Defaults to EMAIL_FROM env var or "Intelligo <noreply@intelligo.dev>" */
7
+ /**
8
+ * Defaults to the EMAIL_FROM env var. There is no built-in sender: a
9
+ * provider that needs one refuses the send when neither is set.
10
+ */
8
11
  from?: string;
9
12
  replyTo?: string;
10
13
  /**
@@ -18,7 +21,10 @@ export interface SendEmailWithComponentParams {
18
21
  subject: string;
19
22
  /** A React Email component element. Will be rendered to HTML before sending. */
20
23
  react: React.ReactElement;
21
- /** Defaults to EMAIL_FROM env var or "Intelligo <noreply@intelligo.dev>" */
24
+ /**
25
+ * Defaults to the EMAIL_FROM env var. There is no built-in sender: a
26
+ * provider that needs one refuses the send when neither is set.
27
+ */
22
28
  from?: string;
23
29
  replyTo?: string;
24
30
  /**
@@ -33,15 +39,9 @@ export interface SendEmailResult {
33
39
  error?: string;
34
40
  }
35
41
  /**
36
- * Send an email through the configured provider with retry logic.
37
- *
38
- * Accepts either raw HTML via `{ html }` or a React Email component via
39
- * `{ react }`. When a React element is provided, it is rendered to HTML
40
- * using `@react-email/components`'s `render()` before sending.
41
- *
42
- * This function NEVER throws. All errors are caught and returned as
43
- * `{ success: false, error: "..." }`. This prevents email failures
44
- * from crashing the application (TECH-08).
42
+ * Sends an email through the configured provider, retrying transient
43
+ * failures. Takes raw HTML via `{ html }` or a React Email element via
44
+ * `{ react }`. Never throws: failures return `{ success: false, error }`.
45
45
  */
46
46
  export declare function sendEmail(params: SendEmailParams | SendEmailWithComponentParams): Promise<SendEmailResult>;
47
47
  //# sourceMappingURL=send.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/email/send.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAcrE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA2CD;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,eAAe,GAAG,4BAA4B,GACrD,OAAO,CAAC,eAAe,CAAC,CAgF1B"}
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/email/send.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMrE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyCD;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,eAAe,GAAG,4BAA4B,GACrD,OAAO,CAAC,eAAe,CAAC,CAyE1B"}
@@ -1,5 +1,5 @@
1
1
  import { render } from "@react-email/components";
2
- import { getEmailProvider } from "./provider";
2
+ import { getEmailProvider } from "./provider.js";
3
3
  const MAX_ATTEMPTS = 3;
4
4
  const BASE_DELAY_MS = 1000;
5
5
  /**
@@ -8,12 +8,10 @@ const BASE_DELAY_MS = 1000;
8
8
  function isClientError(error) {
9
9
  if (error && typeof error === "object") {
10
10
  const err = error;
11
- // Check for explicit statusCode (set by ResendProvider / LoopsProvider).
12
11
  // 429 is excluded: rate limits are transient and worth retrying.
13
12
  if (typeof err.statusCode === "number") {
14
13
  return (err.statusCode >= 400 && err.statusCode < 500 && err.statusCode !== 429);
15
14
  }
16
- // Check for status property (some HTTP libraries)
17
15
  if (typeof err.status === "number") {
18
16
  return err.status >= 400 && err.status < 500 && err.status !== 429;
19
17
  }
@@ -31,26 +29,17 @@ function delay(ms) {
31
29
  return new Promise((resolve) => setTimeout(resolve, ms));
32
30
  }
33
31
  /**
34
- * Send an email through the configured provider with retry logic.
35
- *
36
- * Accepts either raw HTML via `{ html }` or a React Email component via
37
- * `{ react }`. When a React element is provided, it is rendered to HTML
38
- * using `@react-email/components`'s `render()` before sending.
39
- *
40
- * This function NEVER throws. All errors are caught and returned as
41
- * `{ success: false, error: "..." }`. This prevents email failures
42
- * from crashing the application (TECH-08).
32
+ * Sends an email through the configured provider, retrying transient
33
+ * failures. Takes raw HTML via `{ html }` or a React Email element via
34
+ * `{ react }`. Never throws: failures return `{ success: false, error }`.
43
35
  */
44
36
  export async function sendEmail(params) {
45
37
  try {
46
38
  const provider = getEmailProvider();
47
- const from = params.from ??
48
- process.env.EMAIL_FROM ??
49
- "Intelligo <noreply@intelligo.dev>";
39
+ const from = params.from ?? (process.env.EMAIL_FROM?.trim() || undefined);
50
40
  const recipient = Array.isArray(params.to)
51
41
  ? params.to.join(", ")
52
42
  : params.to;
53
- // Resolve HTML content: either use provided html or render React component
54
43
  let html;
55
44
  if ("react" in params) {
56
45
  try {
@@ -83,19 +72,16 @@ export async function sendEmail(params) {
83
72
  catch (error) {
84
73
  lastError = error;
85
74
  const message = error instanceof Error ? error.message : String(error);
86
- // Do NOT retry client errors (4xx) – they will always fail
87
75
  if (isClientError(error)) {
88
76
  console.error(`[Email] Send failed for ${recipient} (client error, not retrying): ${message}`);
89
77
  return { success: false, error: message };
90
78
  }
91
79
  console.warn(`[Email] Send attempt ${attempt}/${MAX_ATTEMPTS} failed for ${recipient}: ${message}`);
92
- // Wait before next attempt (exponential backoff: 1s, 2s, 4s)
93
80
  if (attempt < MAX_ATTEMPTS) {
94
81
  await delay(BASE_DELAY_MS * Math.pow(2, attempt - 1));
95
82
  }
96
83
  }
97
84
  }
98
- // All attempts exhausted
99
85
  const finalMessage = lastError instanceof Error ? lastError.message : String(lastError);
100
86
  console.error(`[Email] All ${MAX_ATTEMPTS} attempts failed for ${recipient}: ${params.subject}`);
101
87
  return { success: false, error: finalMessage };
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/email/send.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/email/send.ts"],"names":[],"mappings":"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"}
@@ -1,44 +1,30 @@
1
1
  /**
2
- * Email Sender Functions
2
+ * Typed wrappers that render a React Email template and send it. They never
3
+ * throw; each returns a SendEmailResult.
3
4
  *
4
- * High-level convenience wrappers that compose sendEmail() with React Email
5
- * templates. Each function accepts typed params and returns SendEmailResult.
6
- *
7
- * These are the primary API for sending branded emails throughout the app:
8
- * - Auth emails: welcome, verify, password reset (wired into Better-Auth)
9
- * - Team emails: workspace invitation (replaces Phase 10 console.log)
10
- * - Billing emails: quota warning, trial warning, payment failed, subscription confirmed
11
- *
12
- * All functions return Promise<SendEmailResult> and NEVER throw (TECH-08).
13
- *
14
- * Every sender attaches a stable `template` key + flat variables so
15
- * template-based providers (Loops) can send the same email from a
16
- * provider-side template. HTML-capable providers (Resend) ignore it.
17
- * Loops mapping: LOOPS_TRANSACTIONAL_ID_<KEY> (e.g. "verify-email" →
18
- * LOOPS_TRANSACTIONAL_ID_VERIFY_EMAIL). Boolean variants use distinct keys
19
- * (quota-warning / quota-exceeded, trial-warning / trial-depleted) because
20
- * template providers branch per template, not per variable.
5
+ * Every sender attaches a stable `template` key and flat variables so
6
+ * template-based providers (Loops) can send the same email; HTML providers
7
+ * ignore it. Boolean variants use distinct keys (quota-warning /
8
+ * quota-exceeded, trial-warning / trial-depleted) because template providers
9
+ * branch per template, not per variable.
21
10
  */
22
- import { type SendEmailResult } from "./send";
23
- /** Send welcome email after signup (EMAIL-03) */
11
+ import { type SendEmailResult } from "./send.js";
12
+ import { type Money } from "../money.js";
24
13
  export declare function sendWelcomeEmail(params: {
25
14
  to: string;
26
15
  userName: string;
27
16
  dashboardUrl: string;
28
17
  }): Promise<SendEmailResult>;
29
- /** Send email verification link (EMAIL-04) */
30
18
  export declare function sendVerifyEmail(params: {
31
19
  to: string;
32
20
  userName: string;
33
21
  verificationUrl: string;
34
22
  }): Promise<SendEmailResult>;
35
- /** Send password reset link (EMAIL-05) */
36
23
  export declare function sendPasswordResetEmail(params: {
37
24
  to: string;
38
25
  userName: string;
39
26
  resetUrl: string;
40
27
  }): Promise<SendEmailResult>;
41
- /** Send workspace invitation email (EMAIL-06) */
42
28
  export declare function sendInvitationEmail(params: {
43
29
  to: string;
44
30
  inviterName: string;
@@ -47,17 +33,21 @@ export declare function sendInvitationEmail(params: {
47
33
  acceptUrl: string;
48
34
  declineUrl: string;
49
35
  }): Promise<SendEmailResult>;
50
- /** Send quota warning or exceeded email (EMAIL-09 / EMAIL-10) */
36
+ /**
37
+ * Send the allowance warning or used-up email. `used` and `allowance`
38
+ * are money in the deployment's billing currency; the template and the
39
+ * provider variables receive them formatted.
40
+ */
51
41
  export declare function sendQuotaWarningEmail(params: {
52
42
  to: string;
53
43
  workspaceName: string;
54
44
  percentageUsed: number;
55
- tokensUsed: number;
56
- tokensLimit: number;
45
+ used: Money;
46
+ allowance: Money;
57
47
  upgradeUrl: string;
58
48
  isExceeded: boolean;
59
49
  }): Promise<SendEmailResult>;
60
- /** Send trial warning or depleted email (EMAIL-07 / EMAIL-08) */
50
+ /** Send trial warning or depleted email. */
61
51
  export declare function sendTrialWarningEmail(params: {
62
52
  to: string;
63
53
  workspaceName: string;
@@ -67,14 +57,12 @@ export declare function sendTrialWarningEmail(params: {
67
57
  upgradeUrl: string;
68
58
  isDepleted: boolean;
69
59
  }): Promise<SendEmailResult>;
70
- /** Send payment failed email (EMAIL-11) */
71
60
  export declare function sendPaymentFailedEmail(params: {
72
61
  to: string;
73
62
  workspaceName: string;
74
63
  amount: string;
75
64
  updatePaymentUrl: string;
76
65
  }): Promise<SendEmailResult>;
77
- /** Send subscription confirmed email (EMAIL-12) */
78
66
  export declare function sendSubscriptionConfirmedEmail(params: {
79
67
  to: string;
80
68
  workspaceName: string;
@@ -82,7 +70,6 @@ export declare function sendSubscriptionConfirmedEmail(params: {
82
70
  amount: string;
83
71
  dashboardUrl: string;
84
72
  }): Promise<SendEmailResult>;
85
- /** Send trial expiry reminder email (EMAIL-13) */
86
73
  export declare function sendTrialExpiryEmail(params: {
87
74
  to: string;
88
75
  workspaceName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"senders.d.ts","sourceRoot":"","sources":["../../src/email/senders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAC;AAiBzD,iDAAiD;AACjD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,eAAe,CAAC,CAgB3B;AAED,8CAA8C;AAC9C,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,eAAe,CAAC,CAgB3B;AAED,0CAA0C;AAC1C,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,eAAe,CAAC,CAgB3B;AAMD,iDAAiD;AACjD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,eAAe,CAAC,CAsB3B;AAMD,iEAAiE;AACjE,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAAC,eAAe,CAAC,CAyB3B;AAED,iEAAiE;AACjE,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAAC,eAAe,CAAC,CAyB3B;AAED,2CAA2C;AAC3C,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAAC,eAAe,CAAC,CAkB3B;AAED,mDAAmD;AACnD,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,eAAe,CAAC,CAoB3B;AAED,kDAAkD;AAClD,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,eAAe,CAAC,CAuB3B"}
1
+ {"version":3,"file":"senders.d.ts","sourceRoot":"","sources":["../../src/email/senders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAgBnD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,eAAe,CAAC,CAkB3B;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,eAAe,CAAC,CAgB3B;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,eAAe,CAAC,CAgB3B;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,eAAe,CAAC,CAsB3B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,KAAK,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAAC,eAAe,CAAC,CA6B3B;AAED,4CAA4C;AAC5C,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAAC,eAAe,CAAC,CAyB3B;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAAC,eAAe,CAAC,CAkB3B;AAED,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,eAAe,CAAC,CAoB3B;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,eAAe,CAAC,CAuB3B"}
@@ -1,35 +1,26 @@
1
1
  /**
2
- * Email Sender Functions
2
+ * Typed wrappers that render a React Email template and send it. They never
3
+ * throw; each returns a SendEmailResult.
3
4
  *
4
- * High-level convenience wrappers that compose sendEmail() with React Email
5
- * templates. Each function accepts typed params and returns SendEmailResult.
6
- *
7
- * These are the primary API for sending branded emails throughout the app:
8
- * - Auth emails: welcome, verify, password reset (wired into Better-Auth)
9
- * - Team emails: workspace invitation (replaces Phase 10 console.log)
10
- * - Billing emails: quota warning, trial warning, payment failed, subscription confirmed
11
- *
12
- * All functions return Promise<SendEmailResult> and NEVER throw (TECH-08).
13
- *
14
- * Every sender attaches a stable `template` key + flat variables so
15
- * template-based providers (Loops) can send the same email from a
16
- * provider-side template. HTML-capable providers (Resend) ignore it.
17
- * Loops mapping: LOOPS_TRANSACTIONAL_ID_<KEY> (e.g. "verify-email" →
18
- * LOOPS_TRANSACTIONAL_ID_VERIFY_EMAIL). Boolean variants use distinct keys
19
- * (quota-warning / quota-exceeded, trial-warning / trial-depleted) because
20
- * template providers branch per template, not per variable.
5
+ * Every sender attaches a stable `template` key and flat variables so
6
+ * template-based providers (Loops) can send the same email; HTML providers
7
+ * ignore it. Boolean variants use distinct keys (quota-warning /
8
+ * quota-exceeded, trial-warning / trial-depleted) because template providers
9
+ * branch per template, not per variable.
21
10
  */
22
11
  import * as React from "react";
23
- import { sendEmail } from "./send";
24
- import { WelcomeEmail, VerifyEmailEmail, PasswordResetEmail, WorkspaceInvitationEmail, QuotaWarningEmail, TrialWarningEmail, TrialExpiryEmail, PaymentFailedEmail, SubscriptionConfirmedEmail, } from "./templates";
25
- // ---------------------------------------------------------------------------
26
- // Auth Emails
27
- // ---------------------------------------------------------------------------
28
- /** Send welcome email after signup (EMAIL-03) */
12
+ import { emailBrand } from "./brand.js";
13
+ import { sendEmail } from "./send.js";
14
+ import { formatMoney } from "../money.js";
15
+ import { WelcomeEmail, VerifyEmailEmail, PasswordResetEmail, WorkspaceInvitationEmail, QuotaWarningEmail, TrialWarningEmail, TrialExpiryEmail, PaymentFailedEmail, SubscriptionConfirmedEmail, } from "./templates/index.js";
16
+ /** The locale the email copy is written in; amounts are formatted to match. */
17
+ const EMAIL_LOCALE = "en";
29
18
  export async function sendWelcomeEmail(params) {
30
19
  return sendEmail({
31
20
  to: params.to,
32
- subject: "Welcome to Intelligo!",
21
+ subject: emailBrand().name
22
+ ? `Welcome to ${emailBrand().name}!`
23
+ : "Welcome!",
33
24
  react: React.createElement(WelcomeEmail, {
34
25
  userName: params.userName,
35
26
  dashboardUrl: params.dashboardUrl,
@@ -43,7 +34,6 @@ export async function sendWelcomeEmail(params) {
43
34
  },
44
35
  });
45
36
  }
46
- /** Send email verification link (EMAIL-04) */
47
37
  export async function sendVerifyEmail(params) {
48
38
  return sendEmail({
49
39
  to: params.to,
@@ -61,7 +51,6 @@ export async function sendVerifyEmail(params) {
61
51
  },
62
52
  });
63
53
  }
64
- /** Send password reset link (EMAIL-05) */
65
54
  export async function sendPasswordResetEmail(params) {
66
55
  return sendEmail({
67
56
  to: params.to,
@@ -79,10 +68,6 @@ export async function sendPasswordResetEmail(params) {
79
68
  },
80
69
  });
81
70
  }
82
- // ---------------------------------------------------------------------------
83
- // Team Emails
84
- // ---------------------------------------------------------------------------
85
- /** Send workspace invitation email (EMAIL-06) */
86
71
  export async function sendInvitationEmail(params) {
87
72
  return sendEmail({
88
73
  to: params.to,
@@ -106,21 +91,24 @@ export async function sendInvitationEmail(params) {
106
91
  },
107
92
  });
108
93
  }
109
- // ---------------------------------------------------------------------------
110
- // Billing / Usage Emails
111
- // ---------------------------------------------------------------------------
112
- /** Send quota warning or exceeded email (EMAIL-09 / EMAIL-10) */
94
+ /**
95
+ * Send the allowance warning or used-up email. `used` and `allowance`
96
+ * are money in the deployment's billing currency; the template and the
97
+ * provider variables receive them formatted.
98
+ */
113
99
  export async function sendQuotaWarningEmail(params) {
100
+ const used = formatMoney(params.used, EMAIL_LOCALE);
101
+ const allowance = formatMoney(params.allowance, EMAIL_LOCALE);
114
102
  return sendEmail({
115
103
  to: params.to,
116
104
  subject: params.isExceeded
117
- ? "Token quota exceeded"
118
- : `Token quota at ${params.percentageUsed}%`,
105
+ ? "Monthly allowance used up"
106
+ : `Monthly allowance at ${params.percentageUsed}%`,
119
107
  react: React.createElement(QuotaWarningEmail, {
120
108
  workspaceName: params.workspaceName,
121
109
  percentageUsed: params.percentageUsed,
122
- tokensUsed: params.tokensUsed,
123
- tokensLimit: params.tokensLimit,
110
+ used,
111
+ allowance,
124
112
  upgradeUrl: params.upgradeUrl,
125
113
  isExceeded: params.isExceeded,
126
114
  }),
@@ -129,14 +117,15 @@ export async function sendQuotaWarningEmail(params) {
129
117
  variables: {
130
118
  workspaceName: params.workspaceName,
131
119
  percentageUsed: params.percentageUsed,
132
- tokensUsed: params.tokensUsed,
133
- tokensLimit: params.tokensLimit,
120
+ used,
121
+ allowance,
122
+ currency: params.allowance.currency,
134
123
  upgradeUrl: params.upgradeUrl,
135
124
  },
136
125
  },
137
126
  });
138
127
  }
139
- /** Send trial warning or depleted email (EMAIL-07 / EMAIL-08) */
128
+ /** Send trial warning or depleted email. */
140
129
  export async function sendTrialWarningEmail(params) {
141
130
  return sendEmail({
142
131
  to: params.to,
@@ -163,7 +152,6 @@ export async function sendTrialWarningEmail(params) {
163
152
  },
164
153
  });
165
154
  }
166
- /** Send payment failed email (EMAIL-11) */
167
155
  export async function sendPaymentFailedEmail(params) {
168
156
  return sendEmail({
169
157
  to: params.to,
@@ -183,7 +171,6 @@ export async function sendPaymentFailedEmail(params) {
183
171
  },
184
172
  });
185
173
  }
186
- /** Send subscription confirmed email (EMAIL-12) */
187
174
  export async function sendSubscriptionConfirmedEmail(params) {
188
175
  return sendEmail({
189
176
  to: params.to,
@@ -205,13 +192,12 @@ export async function sendSubscriptionConfirmedEmail(params) {
205
192
  },
206
193
  });
207
194
  }
208
- /** Send trial expiry reminder email (EMAIL-13) */
209
195
  export async function sendTrialExpiryEmail(params) {
210
196
  return sendEmail({
211
197
  to: params.to,
212
198
  subject: params.daysRemaining <= 0
213
- ? `Your Pro trial for ${params.workspaceName} has expired`
214
- : `Your Pro trial expires in ${params.daysRemaining} day${params.daysRemaining === 1 ? "" : "s"}`,
199
+ ? `Your trial for ${params.workspaceName} has ended`
200
+ : `Your trial ends in ${params.daysRemaining} day${params.daysRemaining === 1 ? "" : "s"}`,
215
201
  react: React.createElement(TrialExpiryEmail, {
216
202
  workspaceName: params.workspaceName,
217
203
  expiryDate: params.expiryDate,
@@ -1 +1 @@
1
- {"version":3,"file":"senders.js","sourceRoot":"","sources":["../../src/email/senders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"senders.js","sourceRoot":"","sources":["../../src/email/senders.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ export interface BaseLayoutProps {
3
3
  preview: string;
4
4
  children: React.ReactNode;
5
5
  }
6
- export declare function BaseLayout({ preview, children }: BaseLayoutProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function BaseLayout({ preview, children }: BaseLayoutProps): React.JSX.Element;
7
7
  //# sourceMappingURL=base-layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-layout.d.ts","sourceRoot":"","sources":["../../../src/email/templates/base-layout.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAYD,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAqChE"}
1
+ {"version":3,"file":"base-layout.d.ts","sourceRoot":"","sources":["../../../src/email/templates/base-layout.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAWD,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,eAAe,qBAiDhE"}
@@ -1,6 +1,6 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Body, Container, Head, Hr, Html, Link, Preview, Section, Text, } from "@react-email/components";
3
- // Color palette
3
+ import { emailBrand } from "../brand.js";
4
4
  const colors = {
5
5
  background: "#f4f4f5", // zinc-100
6
6
  container: "#ffffff",
@@ -10,11 +10,9 @@ const colors = {
10
10
  border: "#e4e4e7", // zinc-200
11
11
  };
12
12
  export function BaseLayout({ preview, children }) {
13
- return (_jsxs(Html, { lang: "en", children: [_jsx(Head, { children: _jsx("meta", { charSet: "utf-8" }) }), _jsx(Preview, { children: preview }), _jsx(Body, { style: bodyStyle, children: _jsxs(Container, { style: containerStyle, children: [_jsx(Section, { style: headerStyle, children: _jsx(Text, { style: logoStyle, children: "Intelligo" }) }), _jsx(Hr, { style: hrStyle }), _jsx(Section, { style: contentStyle, children: children }), _jsx(Hr, { style: hrStyle }), _jsxs(Section, { style: footerStyle, children: [_jsx(Text, { style: footerTextStyle, children: "Intelligo AI Platform" }), _jsxs(Text, { style: footerMutedStyle, children: ["This is a transactional email from Intelligo. If you believe you received this email in error, please contact", " ", _jsx(Link, { href: "mailto:support@intelligo.dev", style: footerLinkStyle, children: "support@intelligo.dev" }), "."] })] })] }) })] }));
13
+ const brand = emailBrand();
14
+ return (_jsxs(Html, { lang: "en", children: [_jsx(Head, { children: _jsx("meta", { charSet: "utf-8" }) }), _jsx(Preview, { children: preview }), _jsx(Body, { style: bodyStyle, children: _jsxs(Container, { style: containerStyle, children: [brand.name ? (_jsx(Section, { style: headerStyle, children: _jsx(Text, { style: logoStyle, children: brand.name }) })) : null, _jsx(Hr, { style: hrStyle }), _jsx(Section, { style: contentStyle, children: children }), _jsx(Hr, { style: hrStyle }), _jsxs(Section, { style: footerStyle, children: [brand.name ? (_jsx(Text, { style: footerTextStyle, children: brand.name })) : null, _jsxs(Text, { style: footerMutedStyle, children: ["This is a transactional email", brand.name ? ` from ${brand.name}` : "", ".", brand.supportEmail ? (_jsxs(_Fragment, { children: [" ", "If you believe you received this email in error, please contact", " ", _jsx(Link, { href: `mailto:${brand.supportEmail}`, style: footerLinkStyle, children: brand.supportEmail }), "."] })) : null] })] })] }) })] }));
14
15
  }
15
- // ---------------------------------------------------------------------------
16
- // Inline Styles
17
- // ---------------------------------------------------------------------------
18
16
  const bodyStyle = {
19
17
  backgroundColor: colors.background,
20
18
  fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
@@ -1 +1 @@
1
- {"version":3,"file":"base-layout.js","sourceRoot":"","sources":["../../../src/email/templates/base-layout.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-layout.js","sourceRoot":"","sources":["../../../src/email/templates/base-layout.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- export { BaseLayout, type BaseLayoutProps } from "./base-layout";
2
- export { WelcomeEmail, type WelcomeEmailProps } from "./welcome";
3
- export { VerifyEmailEmail, type VerifyEmailEmailProps } from "./verify-email";
4
- export { PasswordResetEmail, type PasswordResetEmailProps, } from "./password-reset";
5
- export { WorkspaceInvitationEmail, type WorkspaceInvitationEmailProps, } from "./workspace-invitation";
6
- export { QuotaWarningEmail, type QuotaWarningEmailProps, } from "./quota-warning";
7
- export { TrialWarningEmail, type TrialWarningEmailProps, } from "./trial-warning";
8
- export { PaymentFailedEmail, type PaymentFailedEmailProps, } from "./payment-failed";
9
- export { SubscriptionConfirmedEmail, type SubscriptionConfirmedEmailProps, } from "./subscription-confirmed";
10
- export { TrialExpiryEmail, type TrialExpiryEmailProps } from "./trial-expiry";
1
+ export { BaseLayout, type BaseLayoutProps } from "./base-layout.js";
2
+ export { WelcomeEmail, type WelcomeEmailProps } from "./welcome.js";
3
+ export { VerifyEmailEmail, type VerifyEmailEmailProps } from "./verify-email.js";
4
+ export { PasswordResetEmail, type PasswordResetEmailProps, } from "./password-reset.js";
5
+ export { WorkspaceInvitationEmail, type WorkspaceInvitationEmailProps, } from "./workspace-invitation.js";
6
+ export { QuotaWarningEmail, type QuotaWarningEmailProps, } from "./quota-warning.js";
7
+ export { TrialWarningEmail, type TrialWarningEmailProps, } from "./trial-warning.js";
8
+ export { PaymentFailedEmail, type PaymentFailedEmailProps, } from "./payment-failed.js";
9
+ export { SubscriptionConfirmedEmail, type SubscriptionConfirmedEmailProps, } from "./subscription-confirmed.js";
10
+ export { TrialExpiryEmail, type TrialExpiryEmailProps } from "./trial-expiry.js";
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/email/templates/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,KAAK,6BAA6B,GACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,KAAK,+BAA+B,GACrC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/email/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,KAAK,6BAA6B,GACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,KAAK,+BAA+B,GACrC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,17 +1,11 @@
1
- // ---------------------------------------------------------------------------
2
- // Email Templates — Barrel Export
3
- // ---------------------------------------------------------------------------
4
- // All React Email templates with Intelligo branding. Each template wraps
5
- // content in BaseLayout for consistent styling.
6
- // ---------------------------------------------------------------------------
7
- export { BaseLayout } from "./base-layout";
8
- export { WelcomeEmail } from "./welcome";
9
- export { VerifyEmailEmail } from "./verify-email";
10
- export { PasswordResetEmail, } from "./password-reset";
11
- export { WorkspaceInvitationEmail, } from "./workspace-invitation";
12
- export { QuotaWarningEmail, } from "./quota-warning";
13
- export { TrialWarningEmail, } from "./trial-warning";
14
- export { PaymentFailedEmail, } from "./payment-failed";
15
- export { SubscriptionConfirmedEmail, } from "./subscription-confirmed";
16
- export { TrialExpiryEmail } from "./trial-expiry";
1
+ export { BaseLayout } from "./base-layout.js";
2
+ export { WelcomeEmail } from "./welcome.js";
3
+ export { VerifyEmailEmail } from "./verify-email.js";
4
+ export { PasswordResetEmail, } from "./password-reset.js";
5
+ export { WorkspaceInvitationEmail, } from "./workspace-invitation.js";
6
+ export { QuotaWarningEmail, } from "./quota-warning.js";
7
+ export { TrialWarningEmail, } from "./trial-warning.js";
8
+ export { PaymentFailedEmail, } from "./payment-failed.js";
9
+ export { SubscriptionConfirmedEmail, } from "./subscription-confirmed.js";
10
+ export { TrialExpiryEmail } from "./trial-expiry.js";
17
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/email/templates/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAC9E,yEAAyE;AACzE,gDAAgD;AAChD,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAwB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,YAAY,EAA0B,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAA8B,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EACL,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,GAEzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,GAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,GAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,GAE3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAA8B,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/email/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,YAAY,EAA0B,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAA8B,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EACL,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,GAEzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,GAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,GAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,GAE3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAA8B,MAAM,gBAAgB,CAAC"}
@@ -1,7 +1,7 @@
1
+ import * as React from "react";
1
2
  export interface PasswordResetEmailProps {
2
3
  userName: string;
3
4
  resetUrl: string;
4
- locale?: "en" | "mn";
5
5
  }
6
- export declare function PasswordResetEmail({ userName, resetUrl, locale, }: PasswordResetEmailProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function PasswordResetEmail({ userName, resetUrl, }: PasswordResetEmailProps): React.JSX.Element;
7
7
  //# sourceMappingURL=password-reset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"password-reset.d.ts","sourceRoot":"","sources":["../../../src/email/templates/password-reset.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,MAAa,GACd,EAAE,uBAAuB,2CAiCzB"}
1
+ {"version":3,"file":"password-reset.d.ts","sourceRoot":"","sources":["../../../src/email/templates/password-reset.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,QAAQ,GACT,EAAE,uBAAuB,qBAuBzB"}