@intelligo-dev/core 1.0.0-beta.1 → 1.0.0-beta.14
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.
- package/NOTICE +6 -0
- package/README.md +102 -0
- package/dist/attachments/errors.d.ts +7 -0
- package/dist/attachments/errors.d.ts.map +1 -0
- package/dist/attachments/errors.js +11 -0
- package/dist/attachments/errors.js.map +1 -0
- package/dist/attachments/index.d.ts +8 -0
- package/dist/attachments/index.d.ts.map +1 -0
- package/dist/attachments/index.js +7 -0
- package/dist/attachments/index.js.map +1 -0
- package/dist/attachments/service.d.ts +45 -0
- package/dist/attachments/service.d.ts.map +1 -0
- package/dist/attachments/service.js +100 -0
- package/dist/attachments/service.js.map +1 -0
- package/dist/attachments/types.d.ts +6 -0
- package/dist/attachments/types.d.ts.map +1 -0
- package/dist/attachments/types.js +2 -0
- package/dist/attachments/types.js.map +1 -0
- package/dist/conversations/errors.d.ts +2 -8
- package/dist/conversations/errors.d.ts.map +1 -1
- package/dist/conversations/errors.js +2 -8
- package/dist/conversations/errors.js.map +1 -1
- package/dist/conversations/index.d.ts +4 -12
- package/dist/conversations/index.d.ts.map +1 -1
- package/dist/conversations/index.js +2 -11
- package/dist/conversations/index.js.map +1 -1
- package/dist/conversations/service.d.ts +49 -61
- package/dist/conversations/service.d.ts.map +1 -1
- package/dist/conversations/service.js +110 -83
- package/dist/conversations/service.js.map +1 -1
- package/dist/conversations/types.d.ts +1 -4
- package/dist/conversations/types.d.ts.map +1 -1
- package/dist/conversations/types.js +0 -3
- package/dist/conversations/types.js.map +1 -1
- package/dist/db/client.d.ts +21 -10
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +43 -18
- package/dist/db/client.js.map +1 -1
- package/dist/db/index.d.ts +3 -3
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +3 -7
- package/dist/db/index.js.map +1 -1
- package/dist/db/schema/agents.d.ts +14 -51
- package/dist/db/schema/agents.d.ts.map +1 -1
- package/dist/db/schema/agents.js +9 -21
- package/dist/db/schema/agents.js.map +1 -1
- package/dist/db/schema/ai.d.ts +86 -1556
- package/dist/db/schema/ai.d.ts.map +1 -1
- package/dist/db/schema/ai.js +32 -236
- package/dist/db/schema/ai.js.map +1 -1
- package/dist/db/schema/auth.d.ts +5 -34
- package/dist/db/schema/auth.d.ts.map +1 -1
- package/dist/db/schema/auth.js +25 -56
- package/dist/db/schema/auth.js.map +1 -1
- package/dist/db/schema/billing.d.ts +339 -105
- package/dist/db/schema/billing.d.ts.map +1 -1
- package/dist/db/schema/billing.js +99 -58
- package/dist/db/schema/billing.js.map +1 -1
- package/dist/db/schema/feature-flags.d.ts +3 -12
- package/dist/db/schema/feature-flags.d.ts.map +1 -1
- package/dist/db/schema/feature-flags.js +3 -12
- package/dist/db/schema/feature-flags.js.map +1 -1
- package/dist/db/schema/identity.d.ts +12 -274
- package/dist/db/schema/identity.d.ts.map +1 -1
- package/dist/db/schema/identity.js +19 -104
- package/dist/db/schema/identity.js.map +1 -1
- package/dist/db/schema/index.d.ts +8 -15
- package/dist/db/schema/index.d.ts.map +1 -1
- package/dist/db/schema/index.js +12 -42
- package/dist/db/schema/index.js.map +1 -1
- package/dist/db/schema/notifications.d.ts +3 -17
- package/dist/db/schema/notifications.d.ts.map +1 -1
- package/dist/db/schema/notifications.js +3 -17
- package/dist/db/schema/notifications.js.map +1 -1
- package/dist/db/schema/usage.d.ts +94 -77
- package/dist/db/schema/usage.d.ts.map +1 -1
- package/dist/db/schema/usage.js +59 -89
- package/dist/db/schema/usage.js.map +1 -1
- package/dist/db/validate.d.ts +2 -11
- package/dist/db/validate.d.ts.map +1 -1
- package/dist/db/validate.js +6 -17
- package/dist/db/validate.js.map +1 -1
- package/dist/db/workspace-queries.d.ts +5 -29
- package/dist/db/workspace-queries.d.ts.map +1 -1
- package/dist/db/workspace-queries.js +5 -29
- package/dist/db/workspace-queries.js.map +1 -1
- package/dist/documents/classifier.d.ts +5 -12
- package/dist/documents/classifier.d.ts.map +1 -1
- package/dist/documents/classifier.js +16 -16
- package/dist/documents/classifier.js.map +1 -1
- package/dist/documents/errors.d.ts +2 -10
- package/dist/documents/errors.d.ts.map +1 -1
- package/dist/documents/errors.js +2 -10
- package/dist/documents/errors.js.map +1 -1
- package/dist/documents/index.d.ts +4 -13
- package/dist/documents/index.d.ts.map +1 -1
- package/dist/documents/index.js +3 -12
- package/dist/documents/index.js.map +1 -1
- package/dist/documents/service.d.ts +19 -26
- package/dist/documents/service.d.ts.map +1 -1
- package/dist/documents/service.js +44 -38
- package/dist/documents/service.js.map +1 -1
- package/dist/documents/types.d.ts +6 -10
- package/dist/documents/types.d.ts.map +1 -1
- package/dist/documents/types.js +0 -3
- package/dist/documents/types.js.map +1 -1
- package/dist/email/brand.d.ts +17 -0
- package/dist/email/brand.d.ts.map +1 -0
- package/dist/email/brand.js +9 -0
- package/dist/email/brand.js.map +1 -0
- package/dist/email/index.d.ts +4 -4
- package/dist/email/index.js +4 -4
- package/dist/email/provider.d.ts +1 -7
- package/dist/email/provider.d.ts.map +1 -1
- package/dist/email/provider.js +10 -19
- package/dist/email/provider.js.map +1 -1
- package/dist/email/send.d.ts +12 -12
- package/dist/email/send.d.ts.map +1 -1
- package/dist/email/send.js +5 -19
- package/dist/email/send.js.map +1 -1
- package/dist/email/senders.d.ts +17 -30
- package/dist/email/senders.d.ts.map +1 -1
- package/dist/email/senders.js +33 -47
- package/dist/email/senders.js.map +1 -1
- package/dist/email/templates/base-layout.d.ts +1 -1
- package/dist/email/templates/base-layout.d.ts.map +1 -1
- package/dist/email/templates/base-layout.js +4 -6
- package/dist/email/templates/base-layout.js.map +1 -1
- package/dist/email/templates/index.d.ts +10 -10
- package/dist/email/templates/index.d.ts.map +1 -1
- package/dist/email/templates/index.js +10 -16
- package/dist/email/templates/index.js.map +1 -1
- package/dist/email/templates/password-reset.d.ts +2 -2
- package/dist/email/templates/password-reset.d.ts.map +1 -1
- package/dist/email/templates/password-reset.js +10 -22
- package/dist/email/templates/password-reset.js.map +1 -1
- package/dist/email/templates/payment-failed.d.ts +2 -2
- package/dist/email/templates/payment-failed.d.ts.map +1 -1
- package/dist/email/templates/payment-failed.js +11 -24
- package/dist/email/templates/payment-failed.js.map +1 -1
- package/dist/email/templates/quota-warning.d.ts +4 -4
- package/dist/email/templates/quota-warning.d.ts.map +1 -1
- package/dist/email/templates/quota-warning.js +19 -39
- package/dist/email/templates/quota-warning.js.map +1 -1
- package/dist/email/templates/subscription-confirmed.d.ts +2 -2
- package/dist/email/templates/subscription-confirmed.d.ts.map +1 -1
- package/dist/email/templates/subscription-confirmed.js +13 -28
- package/dist/email/templates/subscription-confirmed.js.map +1 -1
- package/dist/email/templates/trial-expiry.d.ts +2 -2
- package/dist/email/templates/trial-expiry.d.ts.map +1 -1
- package/dist/email/templates/trial-expiry.js +12 -36
- package/dist/email/templates/trial-expiry.js.map +1 -1
- package/dist/email/templates/trial-warning.d.ts +2 -2
- package/dist/email/templates/trial-warning.d.ts.map +1 -1
- package/dist/email/templates/trial-warning.js +15 -32
- package/dist/email/templates/trial-warning.js.map +1 -1
- package/dist/email/templates/verify-email.d.ts +2 -2
- package/dist/email/templates/verify-email.d.ts.map +1 -1
- package/dist/email/templates/verify-email.js +10 -22
- package/dist/email/templates/verify-email.js.map +1 -1
- package/dist/email/templates/welcome.d.ts +2 -2
- package/dist/email/templates/welcome.d.ts.map +1 -1
- package/dist/email/templates/welcome.js +13 -20
- package/dist/email/templates/welcome.js.map +1 -1
- package/dist/email/templates/workspace-invitation.d.ts +2 -2
- package/dist/email/templates/workspace-invitation.d.ts.map +1 -1
- package/dist/email/templates/workspace-invitation.js +12 -26
- package/dist/email/templates/workspace-invitation.js.map +1 -1
- package/dist/env.d.ts +5 -10
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +41 -31
- package/dist/env.js.map +1 -1
- package/dist/identity/audit.d.ts +11 -24
- package/dist/identity/audit.d.ts.map +1 -1
- package/dist/identity/audit.js +13 -27
- package/dist/identity/audit.js.map +1 -1
- package/dist/identity/errors.d.ts +4 -12
- package/dist/identity/errors.d.ts.map +1 -1
- package/dist/identity/errors.js +2 -8
- package/dist/identity/errors.js.map +1 -1
- package/dist/identity/index.d.ts +6 -13
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +5 -12
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/service.d.ts +29 -47
- package/dist/identity/service.d.ts.map +1 -1
- package/dist/identity/service.js +107 -79
- package/dist/identity/service.js.map +1 -1
- package/dist/identity/types.d.ts +28 -4
- package/dist/identity/types.d.ts.map +1 -1
- package/dist/identity/types.js +0 -3
- package/dist/identity/types.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -10
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +7 -18
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +45 -49
- package/dist/logger.js.map +1 -1
- package/dist/money.d.ts +95 -0
- package/dist/money.d.ts.map +1 -0
- package/dist/money.js +208 -0
- package/dist/money.js.map +1 -0
- package/dist/notifications/index.d.ts +9 -43
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +9 -49
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/triggers.d.ts +9 -32
- package/dist/notifications/triggers.d.ts.map +1 -1
- package/dist/notifications/triggers.js +21 -58
- package/dist/notifications/triggers.js.map +1 -1
- package/dist/notifications/types.d.ts +6 -8
- package/dist/notifications/types.d.ts.map +1 -1
- package/dist/notifications/types.js +0 -9
- package/dist/notifications/types.js.map +1 -1
- package/dist/prompt.d.ts +38 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +118 -0
- package/dist/prompt.js.map +1 -0
- package/dist/registry.d.ts +32 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +60 -0
- package/dist/registry.js.map +1 -0
- package/dist/request-context.d.ts +49 -0
- package/dist/request-context.d.ts.map +1 -0
- package/dist/request-context.js +100 -0
- package/dist/request-context.js.map +1 -0
- package/dist/storage/index.d.ts +65 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +109 -0
- package/dist/storage/index.js.map +1 -0
- package/package.json +74 -24
- package/src/attachments/errors.ts +18 -0
- package/src/attachments/index.ts +22 -0
- package/src/attachments/service.ts +178 -0
- package/src/attachments/types.ts +6 -0
- package/src/conversations/errors.ts +45 -0
- package/src/conversations/index.ts +39 -0
- package/src/conversations/service.ts +594 -0
- package/src/conversations/types.ts +15 -0
- package/src/db/client.ts +91 -0
- package/src/db/index.ts +3 -0
- package/src/db/migrations/0000_baseline.sql +652 -0
- package/src/db/migrations/0001_reconcile_chain_built_databases.sql +53 -0
- package/src/db/migrations/0002_webhook_claim_lease.sql +1 -0
- package/src/db/migrations/0003_local_payments.sql +18 -0
- package/src/db/migrations/README.md +103 -36
- package/src/db/migrations/legacy-chain.json +206 -0
- package/src/db/migrations/meta/0000_snapshot.json +4182 -157
- package/src/db/migrations/meta/0002_snapshot.json +2478 -368
- package/src/db/migrations/meta/0003_snapshot.json +2567 -554
- package/src/db/migrations/meta/_journal.json +8 -274
- package/src/db/schema/agents.ts +57 -0
- package/src/db/schema/ai.ts +174 -0
- package/src/db/schema/auth.ts +183 -0
- package/src/db/schema/billing.ts +245 -0
- package/src/db/schema/feature-flags.ts +20 -0
- package/src/db/schema/identity.ts +250 -0
- package/src/db/schema/index.ts +12 -0
- package/src/db/schema/notifications.ts +31 -0
- package/src/db/schema/usage.ts +269 -0
- package/src/db/validate.ts +63 -0
- package/src/db/workspace-queries.ts +64 -0
- package/src/documents/classifier.ts +61 -0
- package/src/documents/errors.ts +44 -0
- package/src/documents/index.ts +24 -0
- package/src/documents/service.ts +256 -0
- package/src/documents/types.ts +24 -0
- package/src/email/brand.ts +24 -0
- package/src/email/index.ts +19 -0
- package/src/email/provider.ts +278 -0
- package/src/email/send.ts +169 -0
- package/src/email/senders.ts +292 -0
- package/src/email/templates/base-layout.tsx +145 -0
- package/src/email/templates/index.ts +28 -0
- package/src/email/templates/password-reset.tsx +72 -0
- package/src/email/templates/payment-failed.tsx +77 -0
- package/src/email/templates/quota-warning.tsx +118 -0
- package/src/email/templates/subscription-confirmed.tsx +91 -0
- package/src/email/templates/trial-expiry.tsx +124 -0
- package/src/email/templates/trial-warning.tsx +104 -0
- package/src/email/templates/verify-email.tsx +72 -0
- package/src/email/templates/welcome.tsx +64 -0
- package/src/email/templates/workspace-invitation.tsx +105 -0
- package/src/env.ts +180 -0
- package/src/identity/audit.ts +65 -0
- package/src/identity/errors.ts +44 -0
- package/src/identity/index.ts +29 -0
- package/src/identity/service.ts +303 -0
- package/src/identity/types.ts +58 -0
- package/src/index.ts +4 -0
- package/src/logger.ts +198 -0
- package/src/money.ts +270 -0
- package/src/notifications/index.ts +112 -0
- package/src/notifications/triggers.ts +158 -0
- package/src/notifications/types.ts +26 -0
- package/src/prompt.ts +142 -0
- package/src/registry.ts +75 -0
- package/src/request-context.ts +137 -0
- package/src/storage/index.ts +153 -0
- package/dist/db/schema/rag.d.ts +0 -171
- package/dist/db/schema/rag.d.ts.map +0 -1
- package/dist/db/schema/rag.js +0 -42
- package/dist/db/schema/rag.js.map +0 -1
- package/src/db/migrations/0000_sharp_night_nurse.sql +0 -52
- package/src/db/migrations/0001_hesitant_vapor.sql +0 -40
- package/src/db/migrations/0002_numerous_lady_vermin.sql +0 -235
- package/src/db/migrations/0003_mighty_jean_grey.sql +0 -37
- package/src/db/migrations/0004_cynical_grandmaster.sql +0 -2
- package/src/db/migrations/0005_careful_switch.sql +0 -8
- package/src/db/migrations/0006_tense_blue_marvel.sql +0 -16
- package/src/db/migrations/0007_next_squadron_sinister.sql +0 -1
- package/src/db/migrations/0008_powerful_scream.sql +0 -39
- package/src/db/migrations/0009_sad_ink.sql +0 -1
- package/src/db/migrations/0010_shocking_omega_flight.sql +0 -2
- package/src/db/migrations/0011_ambiguous_otto_octavius.sql +0 -151
- package/src/db/migrations/0011_hnsw_vector_index.sql +0 -17
- package/src/db/migrations/0012_user_profiles.sql +0 -30
- package/src/db/migrations/0013_trending_seasonal_columns.sql +0 -9
- package/src/db/migrations/0014_add_product_type_to_agents.sql +0 -6
- package/src/db/migrations/0015_new_v1_tables.sql +0 -149
- package/src/db/migrations/0016_document_types.sql +0 -30
- package/src/db/migrations/0017_document_metadata.sql +0 -2
- package/src/db/migrations/0018_identity_graph.sql +0 -200
- package/src/db/migrations/0019_db_driven_prompts.sql +0 -20
- package/src/db/migrations/0020_pending_extractions.sql +0 -35
- package/src/db/migrations/0021_rag_documents.sql +0 -39
- package/src/db/migrations/0022_user_quotas_usage_jsonb.sql +0 -70
- package/src/db/migrations/0023_user_facts_user_scoped_unique.sql +0 -17
- package/src/db/migrations/0024_user_memories_hnsw.sql +0 -23
- package/src/db/migrations/0025_audit_trigger_errcode.sql +0 -21
- package/src/db/migrations/0026_user_profile_snapshots_composite_pk.sql +0 -17
- package/src/db/migrations/0027_billing_settings_mnt_columns.sql +0 -54
- package/src/db/migrations/0028_trial_credits_normalized_email.sql +0 -37
- package/src/db/migrations/0029_usage_records_conversation_idx.sql +0 -13
- package/src/db/migrations/0030_pending_extractions_composite_idx.sql +0 -11
- package/src/db/migrations/0031_rag_documents_hnsw.sql +0 -16
- package/src/db/migrations/0032_rate_limit_unique_idx.sql +0 -16
- package/src/db/migrations/0033_pending_extractions_partial_idx.sql +0 -18
- package/src/db/migrations/0034_rate_limit_count.sql +0 -9
- package/src/db/migrations/0035_credit_reservations.sql +0 -24
- package/src/db/migrations/0036_executions_audit_jobs.sql +0 -96
- package/src/db/migrations/0037_rate_limit_minute_bucket.sql +0 -46
- package/src/db/migrations/0038_user_quotas_generic_usage.sql +0 -25
- package/src/db/migrations/0039_platform_admin_impersonation.sql +0 -27
- package/src/db/migrations/0040_ee_audit_chain.sql +0 -23
- package/src/db/migrations/meta/0001_snapshot.json +0 -631
- package/src/db/migrations/meta/0004_snapshot.json +0 -2500
- package/src/db/migrations/meta/0005_snapshot.json +0 -2548
- package/src/db/migrations/meta/0006_snapshot.json +0 -2650
- package/src/db/migrations/meta/0007_snapshot.json +0 -2657
- package/src/db/migrations/meta/0008_snapshot.json +0 -2719
- package/src/db/migrations/meta/0009_snapshot.json +0 -2726
- package/src/db/migrations/meta/0010_snapshot.json +0 -2739
- package/src/db/migrations/meta/0011_snapshot.json +0 -3886
package/dist/email/senders.js
CHANGED
|
@@ -1,35 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Email
|
|
2
|
+
* Typed wrappers that render a React Email template and send it. They never
|
|
3
|
+
* throw; each returns a SendEmailResult.
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
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 {
|
|
24
|
-
import {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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:
|
|
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
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
? "
|
|
118
|
-
: `
|
|
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
|
-
|
|
123
|
-
|
|
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
|
-
|
|
133
|
-
|
|
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
|
|
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
|
|
214
|
-
: `Your
|
|
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":"AAAA
|
|
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):
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
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":";AAAA,OAAO,EACL,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,EAAE,EACF,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,OAAO,EACP,IAAI,GACL,MAAM,yBAAyB,CAAC;
|
|
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":"
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
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,
|
|
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,
|
|
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":"
|
|
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"}
|
|
@@ -1,29 +1,17 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Button, Text } from "@react-email/components";
|
|
3
|
-
import { BaseLayout } from "./base-layout";
|
|
4
|
-
export function PasswordResetEmail({ userName, resetUrl,
|
|
5
|
-
const text =
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
: {
|
|
15
|
-
preview: "Reset your password",
|
|
16
|
-
heading: "Reset your password",
|
|
17
|
-
greeting: "Hi",
|
|
18
|
-
body: "We received a request to reset your password. Click the button below to choose a new one.",
|
|
19
|
-
button: "Reset Password",
|
|
20
|
-
note: "This link expires in 1 hour. If you didn't request a password reset, you can safely ignore this email.",
|
|
21
|
-
};
|
|
3
|
+
import { BaseLayout } from "./base-layout.js";
|
|
4
|
+
export function PasswordResetEmail({ userName, resetUrl, }) {
|
|
5
|
+
const text = {
|
|
6
|
+
preview: "Reset your password",
|
|
7
|
+
heading: "Reset your password",
|
|
8
|
+
greeting: "Hi",
|
|
9
|
+
body: "We received a request to reset your password. Click the button below to choose a new one.",
|
|
10
|
+
button: "Reset Password",
|
|
11
|
+
note: "This link expires in 1 hour. If you didn't request a password reset, you can safely ignore this email.",
|
|
12
|
+
};
|
|
22
13
|
return (_jsxs(BaseLayout, { preview: text.preview, children: [_jsx(Text, { style: headingStyle, children: text.heading }), _jsxs(Text, { style: bodyTextStyle, children: [text.greeting, " ", userName, ","] }), _jsx(Text, { style: bodyTextStyle, children: text.body }), _jsx(Button, { href: resetUrl, style: buttonStyle, children: text.button }), _jsx(Text, { style: noteStyle, children: text.note })] }));
|
|
23
14
|
}
|
|
24
|
-
// ---------------------------------------------------------------------------
|
|
25
|
-
// Inline Styles
|
|
26
|
-
// ---------------------------------------------------------------------------
|
|
27
15
|
const headingStyle = {
|
|
28
16
|
color: "#18181b",
|
|
29
17
|
fontSize: "22px",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-reset.js","sourceRoot":"","sources":["../../../src/email/templates/password-reset.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"password-reset.js","sourceRoot":"","sources":["../../../src/email/templates/password-reset.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,MAAM,UAAU,kBAAkB,CAAC,EACjC,QAAQ,EACR,QAAQ,GACgB;IACxB,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE,qBAAqB;QAC9B,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,2FAA2F;QACjG,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,wGAAwG;KAC/G,CAAC;IAEF,OAAO,CACL,MAAC,UAAU,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO,aAC/B,KAAC,IAAI,IAAC,KAAK,EAAE,YAAY,YAAG,IAAI,CAAC,OAAO,GAAQ,EAChD,MAAC,IAAI,IAAC,KAAK,EAAE,aAAa,aACvB,IAAI,CAAC,QAAQ,OAAG,QAAQ,SACpB,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,aAAa,YAAG,IAAI,CAAC,IAAI,GAAQ,EAC9C,KAAC,MAAM,IAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,YACvC,IAAI,CAAC,MAAM,GACL,EACT,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,YAAG,IAAI,CAAC,IAAI,GAAQ,IAC/B,CACd,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAwB;IACxC,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF,MAAM,aAAa,GAAwB;IACzC,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF,MAAM,WAAW,GAAwB;IACvC,eAAe,EAAE,SAAS;IAC1B,YAAY,EAAE,KAAK;IACnB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,cAAc;IACvB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,WAAW;IACpB,cAAc,EAAE,MAAM;IACtB,SAAS,EAAE,QAAiB;IAC5B,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF,MAAM,SAAS,GAAwB;IACrC,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,MAAM;CAClB,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
1
2
|
export interface PaymentFailedEmailProps {
|
|
2
3
|
workspaceName: string;
|
|
3
4
|
amount: string;
|
|
4
5
|
updatePaymentUrl: string;
|
|
5
|
-
locale?: "en" | "mn";
|
|
6
6
|
}
|
|
7
|
-
export declare function PaymentFailedEmail({ workspaceName, amount, updatePaymentUrl,
|
|
7
|
+
export declare function PaymentFailedEmail({ workspaceName, amount, updatePaymentUrl, }: PaymentFailedEmailProps): React.JSX.Element;
|
|
8
8
|
//# sourceMappingURL=payment-failed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-failed.d.ts","sourceRoot":"","sources":["../../../src/email/templates/payment-failed.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"payment-failed.d.ts","sourceRoot":"","sources":["../../../src/email/templates/payment-failed.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,EACjC,aAAa,EACb,MAAM,EACN,gBAAgB,GACjB,EAAE,uBAAuB,qBAyBzB"}
|
|
@@ -1,31 +1,18 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Button, Text } from "@react-email/components";
|
|
3
|
-
import { BaseLayout } from "./base-layout";
|
|
4
|
-
export function PaymentFailedEmail({ workspaceName, amount, updatePaymentUrl,
|
|
5
|
-
const text =
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
: {
|
|
16
|
-
preview: `Payment failed for ${workspaceName}`,
|
|
17
|
-
heading: "Payment Failed",
|
|
18
|
-
body1: "We were unable to process the payment of",
|
|
19
|
-
body2: "for your workspace",
|
|
20
|
-
body3: "",
|
|
21
|
-
warning: "Your subscription will be restricted to free limits after a 3-day grace period if payment is not updated.",
|
|
22
|
-
button: "Update Payment Method",
|
|
23
|
-
};
|
|
3
|
+
import { BaseLayout } from "./base-layout.js";
|
|
4
|
+
export function PaymentFailedEmail({ workspaceName, amount, updatePaymentUrl, }) {
|
|
5
|
+
const text = {
|
|
6
|
+
preview: `Payment failed for ${workspaceName}`,
|
|
7
|
+
heading: "Payment Failed",
|
|
8
|
+
body1: "We were unable to process the payment of",
|
|
9
|
+
body2: "for your workspace",
|
|
10
|
+
body3: "",
|
|
11
|
+
warning: "Your subscription will be restricted to free limits after a 3-day grace period if payment is not updated.",
|
|
12
|
+
button: "Update Payment Method",
|
|
13
|
+
};
|
|
24
14
|
return (_jsxs(BaseLayout, { preview: text.preview, children: [_jsx(Text, { style: headingStyle, children: text.heading }), _jsxs(Text, { style: bodyTextStyle, children: [text.body1, " ", _jsx("strong", { children: amount }), " ", text.body2, " \u2018", workspaceName, "\u2019", text.body3] }), _jsx(Text, { style: warningTextStyle, children: text.warning }), _jsx(Button, { href: updatePaymentUrl, style: buttonStyle, children: text.button })] }));
|
|
25
15
|
}
|
|
26
|
-
// ---------------------------------------------------------------------------
|
|
27
|
-
// Inline Styles
|
|
28
|
-
// ---------------------------------------------------------------------------
|
|
29
16
|
const headingStyle = {
|
|
30
17
|
color: "#18181b",
|
|
31
18
|
fontSize: "22px",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-failed.js","sourceRoot":"","sources":["../../../src/email/templates/payment-failed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"payment-failed.js","sourceRoot":"","sources":["../../../src/email/templates/payment-failed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAQ3C,MAAM,UAAU,kBAAkB,CAAC,EACjC,aAAa,EACb,MAAM,EACN,gBAAgB,GACQ;IACxB,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,sBAAsB,aAAa,EAAE;QAC9C,OAAO,EAAE,gBAAgB;QACzB,KAAK,EAAE,0CAA0C;QACjD,KAAK,EAAE,oBAAoB;QAC3B,KAAK,EAAE,EAAE;QACT,OAAO,EACL,2GAA2G;QAC7G,MAAM,EAAE,uBAAuB;KAChC,CAAC;IAEF,OAAO,CACL,MAAC,UAAU,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO,aAC/B,KAAC,IAAI,IAAC,KAAK,EAAE,YAAY,YAAG,IAAI,CAAC,OAAO,GAAQ,EAChD,MAAC,IAAI,IAAC,KAAK,EAAE,aAAa,aACvB,IAAI,CAAC,KAAK,OAAE,2BAAS,MAAM,GAAU,OAAE,IAAI,CAAC,KAAK,aACjD,aAAa,YAAS,IAAI,CAAC,KAAK,IAC5B,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,gBAAgB,YAAG,IAAI,CAAC,OAAO,GAAQ,EACpD,KAAC,MAAM,IAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,YAC/C,IAAI,CAAC,MAAM,GACL,IACE,CACd,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAwB;IACxC,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF,MAAM,aAAa,GAAwB;IACzC,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF,MAAM,gBAAgB,GAAwB;IAC5C,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF,MAAM,WAAW,GAAwB;IACvC,eAAe,EAAE,SAAS;IAC1B,YAAY,EAAE,KAAK;IACnB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,cAAc;IACvB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,WAAW;IACpB,cAAc,EAAE,MAAM;IACtB,SAAS,EAAE,QAAiB;IAC5B,SAAS,EAAE,KAAK;CACjB,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
1
2
|
export interface QuotaWarningEmailProps {
|
|
2
3
|
workspaceName: string;
|
|
3
4
|
percentageUsed: number;
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
used: string;
|
|
6
|
+
allowance: string;
|
|
6
7
|
upgradeUrl: string;
|
|
7
8
|
isExceeded: boolean;
|
|
8
|
-
locale?: "en" | "mn";
|
|
9
9
|
}
|
|
10
|
-
export declare function QuotaWarningEmail({ workspaceName, percentageUsed,
|
|
10
|
+
export declare function QuotaWarningEmail({ workspaceName, percentageUsed, used, allowance, upgradeUrl, isExceeded, }: QuotaWarningEmailProps): React.JSX.Element;
|
|
11
11
|
//# sourceMappingURL=quota-warning.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-warning.d.ts","sourceRoot":"","sources":["../../../src/email/templates/quota-warning.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quota-warning.d.ts","sourceRoot":"","sources":["../../../src/email/templates/quota-warning.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,aAAa,EACb,cAAc,EACd,IAAI,EACJ,SAAS,EACT,UAAU,EACV,UAAU,GACX,EAAE,sBAAsB,qBAiDxB"}
|
|
@@ -1,45 +1,25 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { Button, Text } from "@react-email/components";
|
|
3
|
-
import { BaseLayout } from "./base-layout";
|
|
4
|
-
export function QuotaWarningEmail({ workspaceName, percentageUsed,
|
|
5
|
-
const text =
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
: {
|
|
23
|
-
previewExceeded: "Your token quota is exceeded",
|
|
24
|
-
previewWarning: `You've used ${percentageUsed}% of your token quota`,
|
|
25
|
-
headingExceeded: "Quota Exceeded",
|
|
26
|
-
headingWarning: "Quota Warning",
|
|
27
|
-
bodyExceeded1: "Your workspace",
|
|
28
|
-
bodyExceeded2: "has used all",
|
|
29
|
-
bodyExceeded3: "tokens this month.",
|
|
30
|
-
warningText: "AI features are currently restricted until your quota resets or you upgrade.",
|
|
31
|
-
bodyWarning1: "Your workspace",
|
|
32
|
-
bodyWarning2: "has used",
|
|
33
|
-
bodyWarning3: "of",
|
|
34
|
-
bodyWarning4: "tokens",
|
|
35
|
-
button: "Upgrade Plan",
|
|
36
|
-
note: "Your quota resets at the start of your next billing period.",
|
|
37
|
-
};
|
|
38
|
-
return (_jsxs(BaseLayout, { preview: isExceeded ? text.previewExceeded : text.previewWarning, children: [_jsx(Text, { style: headingStyle, children: isExceeded ? text.headingExceeded : text.headingWarning }), isExceeded ? (_jsxs(_Fragment, { children: [_jsxs(Text, { style: bodyTextStyle, children: [text.bodyExceeded1, " \u2018", workspaceName, "\u2019", " ", text.bodyExceeded2, " ", tokensLimit.toLocaleString(), " ", text.bodyExceeded3] }), _jsx(Text, { style: warningTextStyle, children: text.warningText })] })) : (_jsxs(Text, { style: bodyTextStyle, children: [text.bodyWarning1, " \u2018", workspaceName, "\u2019 ", text.bodyWarning2, " ", tokensUsed.toLocaleString(), " ", text.bodyWarning3, " ", tokensLimit.toLocaleString(), " ", text.bodyWarning4, "(", percentageUsed, "%)."] })), _jsx(Button, { href: upgradeUrl, style: buttonStyle, children: text.button }), _jsx(Text, { style: noteStyle, children: text.note })] }));
|
|
3
|
+
import { BaseLayout } from "./base-layout.js";
|
|
4
|
+
export function QuotaWarningEmail({ workspaceName, percentageUsed, used, allowance, upgradeUrl, isExceeded, }) {
|
|
5
|
+
const text = {
|
|
6
|
+
previewExceeded: "Your monthly allowance is used up",
|
|
7
|
+
previewWarning: `You've used ${percentageUsed}% of your monthly allowance`,
|
|
8
|
+
headingExceeded: "Allowance Used Up",
|
|
9
|
+
headingWarning: "Allowance Warning",
|
|
10
|
+
bodyExceeded1: "Your workspace",
|
|
11
|
+
bodyExceeded2: "has used all of its",
|
|
12
|
+
bodyExceeded3: "monthly allowance.",
|
|
13
|
+
warningText: "AI features are currently restricted until your allowance resets or you upgrade.",
|
|
14
|
+
bodyWarning1: "Your workspace",
|
|
15
|
+
bodyWarning2: "has used",
|
|
16
|
+
bodyWarning3: "of its",
|
|
17
|
+
bodyWarning4: "monthly allowance",
|
|
18
|
+
button: "Upgrade Plan",
|
|
19
|
+
note: "Your allowance resets at the start of next month.",
|
|
20
|
+
};
|
|
21
|
+
return (_jsxs(BaseLayout, { preview: isExceeded ? text.previewExceeded : text.previewWarning, children: [_jsx(Text, { style: headingStyle, children: isExceeded ? text.headingExceeded : text.headingWarning }), isExceeded ? (_jsxs(_Fragment, { children: [_jsxs(Text, { style: bodyTextStyle, children: [text.bodyExceeded1, " \u2018", workspaceName, "\u2019", " ", text.bodyExceeded2, " ", allowance, " ", text.bodyExceeded3] }), _jsx(Text, { style: warningTextStyle, children: text.warningText })] })) : (_jsxs(Text, { style: bodyTextStyle, children: [text.bodyWarning1, " \u2018", workspaceName, "\u2019 ", text.bodyWarning2, " ", used, " ", text.bodyWarning3, " ", allowance, " ", text.bodyWarning4, " (", percentageUsed, "%)."] })), _jsx(Button, { href: upgradeUrl, style: buttonStyle, children: text.button }), _jsx(Text, { style: noteStyle, children: text.note })] }));
|
|
39
22
|
}
|
|
40
|
-
// ---------------------------------------------------------------------------
|
|
41
|
-
// Inline Styles
|
|
42
|
-
// ---------------------------------------------------------------------------
|
|
43
23
|
const headingStyle = {
|
|
44
24
|
color: "#18181b",
|
|
45
25
|
fontSize: "22px",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-warning.js","sourceRoot":"","sources":["../../../src/email/templates/quota-warning.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"quota-warning.js","sourceRoot":"","sources":["../../../src/email/templates/quota-warning.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import * as React from "react";
|
|
1
2
|
export interface SubscriptionConfirmedEmailProps {
|
|
2
3
|
workspaceName: string;
|
|
3
4
|
planName: string;
|
|
4
5
|
amount: string;
|
|
5
6
|
dashboardUrl: string;
|
|
6
|
-
locale?: "en" | "mn";
|
|
7
7
|
}
|
|
8
|
-
export declare function SubscriptionConfirmedEmail({ workspaceName, planName, amount, dashboardUrl,
|
|
8
|
+
export declare function SubscriptionConfirmedEmail({ workspaceName, planName, amount, dashboardUrl, }: SubscriptionConfirmedEmailProps): React.JSX.Element;
|
|
9
9
|
//# sourceMappingURL=subscription-confirmed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-confirmed.d.ts","sourceRoot":"","sources":["../../../src/email/templates/subscription-confirmed.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subscription-confirmed.d.ts","sourceRoot":"","sources":["../../../src/email/templates/subscription-confirmed.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,+BAA+B;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,0BAA0B,CAAC,EACzC,aAAa,EACb,QAAQ,EACR,MAAM,EACN,YAAY,GACb,EAAE,+BAA+B,qBA8BjC"}
|