@contentgrowth/content-emailing 0.4.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/TemplateManager-Db41KyPN.d.cts +77 -0
- package/dist/TemplateManager-Db41KyPN.d.ts +77 -0
- package/dist/backend/EmailService.cjs +737 -0
- package/dist/backend/EmailService.cjs.map +1 -0
- package/dist/backend/EmailService.d.cts +101 -0
- package/dist/backend/EmailService.d.ts +101 -0
- package/dist/backend/EmailService.js +703 -0
- package/dist/backend/EmailService.js.map +1 -0
- package/dist/backend/EmailingCacheDO.cjs +389 -0
- package/dist/backend/EmailingCacheDO.cjs.map +1 -0
- package/dist/backend/EmailingCacheDO.d.cts +66 -0
- package/dist/backend/EmailingCacheDO.d.ts +66 -0
- package/dist/backend/EmailingCacheDO.js +364 -0
- package/dist/backend/EmailingCacheDO.js.map +1 -0
- package/dist/backend/routes/index.cjs +1001 -0
- package/dist/backend/routes/index.cjs.map +1 -0
- package/dist/backend/routes/index.d.cts +32 -0
- package/dist/backend/routes/index.d.ts +32 -0
- package/dist/backend/routes/index.js +965 -0
- package/dist/backend/routes/index.js.map +1 -0
- package/dist/cli.cjs +53 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.d.cts +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +53 -0
- package/dist/cli.js.map +1 -0
- package/dist/common/index.cjs +267 -0
- package/dist/common/index.cjs.map +1 -0
- package/dist/common/index.d.cts +46 -0
- package/dist/common/index.d.ts +46 -0
- package/{src/common/htmlWrapper.js → dist/common/index.js} +75 -18
- package/dist/common/index.js.map +1 -0
- package/dist/frontend/index.cjs +665 -0
- package/dist/frontend/index.cjs.map +1 -0
- package/dist/frontend/index.d.cts +32 -0
- package/dist/frontend/index.d.ts +32 -0
- package/dist/frontend/index.js +626 -0
- package/dist/frontend/index.js.map +1 -0
- package/dist/index.cjs +1842 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +1793 -0
- package/dist/index.js.map +1 -0
- package/package.json +31 -13
- package/examples/.env.example +0 -16
- package/examples/README.md +0 -55
- package/examples/mocks/MockD1.js +0 -311
- package/examples/mocks/MockEmailSender.js +0 -64
- package/examples/mocks/index.js +0 -5
- package/examples/package-lock.json +0 -73
- package/examples/package.json +0 -18
- package/examples/portal/index.html +0 -919
- package/examples/server.js +0 -314
- package/release.sh +0 -56
- package/src/backend/EmailService.js +0 -537
- package/src/backend/EmailingCacheDO.js +0 -466
- package/src/backend/routes/index.js +0 -30
- package/src/backend/routes/templates.js +0 -98
- package/src/backend/routes/tracking.js +0 -215
- package/src/backend/routes.js +0 -98
- package/src/common/index.js +0 -11
- package/src/common/utils.js +0 -141
- package/src/frontend/TemplateEditor.jsx +0 -117
- package/src/frontend/TemplateManager.jsx +0 -117
- package/src/index.js +0 -24
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface TemplateFormData {
|
|
4
|
+
template_id?: string;
|
|
5
|
+
template_name: string;
|
|
6
|
+
template_type: string;
|
|
7
|
+
subject_template: string;
|
|
8
|
+
body_markdown: string;
|
|
9
|
+
variables?: string;
|
|
10
|
+
description: string;
|
|
11
|
+
is_active: boolean;
|
|
12
|
+
}
|
|
13
|
+
interface TemplateEditorProps {
|
|
14
|
+
/** Initial template data for editing, null for create mode */
|
|
15
|
+
initialData?: TemplateFormData | null;
|
|
16
|
+
/** Called when save is clicked, should return a promise */
|
|
17
|
+
onSave: (data: TemplateFormData) => Promise<void>;
|
|
18
|
+
/** Called when cancel/close is clicked */
|
|
19
|
+
onCancel: () => void;
|
|
20
|
+
/** Template types available for selection */
|
|
21
|
+
templateTypes?: string[];
|
|
22
|
+
/** Whether the component is in saving state */
|
|
23
|
+
saving?: boolean;
|
|
24
|
+
}
|
|
25
|
+
declare const TemplateEditor: React.FC<TemplateEditorProps>;
|
|
26
|
+
|
|
27
|
+
interface EmailTemplate$1 {
|
|
28
|
+
template_id: string;
|
|
29
|
+
template_name: string;
|
|
30
|
+
subject_template: string;
|
|
31
|
+
body_markdown: string;
|
|
32
|
+
variables?: string | null;
|
|
33
|
+
}
|
|
34
|
+
interface TestEmailData {
|
|
35
|
+
template_id: string;
|
|
36
|
+
to_email: string;
|
|
37
|
+
variables: Record<string, string>;
|
|
38
|
+
}
|
|
39
|
+
interface TemplateTesterProps {
|
|
40
|
+
template: EmailTemplate$1;
|
|
41
|
+
onSendTest: (data: TestEmailData) => Promise<void>;
|
|
42
|
+
onCancel: () => void;
|
|
43
|
+
sending?: boolean;
|
|
44
|
+
}
|
|
45
|
+
declare const TemplateTester: React.FC<TemplateTesterProps>;
|
|
46
|
+
|
|
47
|
+
interface EmailTemplate {
|
|
48
|
+
template_id: string;
|
|
49
|
+
template_name: string;
|
|
50
|
+
template_type: string;
|
|
51
|
+
subject_template: string;
|
|
52
|
+
body_markdown: string;
|
|
53
|
+
variables?: string | null;
|
|
54
|
+
description: string | null;
|
|
55
|
+
is_active: number | boolean;
|
|
56
|
+
created_at?: number | null;
|
|
57
|
+
updated_at?: number | null;
|
|
58
|
+
}
|
|
59
|
+
interface TemplateManagerProps {
|
|
60
|
+
/** Fetch all templates - returns promise with template array */
|
|
61
|
+
onLoadTemplates: () => Promise<EmailTemplate[]>;
|
|
62
|
+
/** Save a template (create or update) */
|
|
63
|
+
onSaveTemplate: (data: TemplateFormData) => Promise<void>;
|
|
64
|
+
/** Delete a template by ID */
|
|
65
|
+
onDeleteTemplate?: (id: string) => Promise<void>;
|
|
66
|
+
/** Send a test email */
|
|
67
|
+
onSendTestEmail?: (data: TestEmailData) => Promise<void>;
|
|
68
|
+
/** Page title */
|
|
69
|
+
title?: string;
|
|
70
|
+
/** Page description */
|
|
71
|
+
description?: string;
|
|
72
|
+
/** Template types for filtering and editor */
|
|
73
|
+
templateTypes?: string[];
|
|
74
|
+
}
|
|
75
|
+
declare const TemplateManager: React.FC<TemplateManagerProps>;
|
|
76
|
+
|
|
77
|
+
export { type EmailTemplate as E, TemplateManager as T, TemplateEditor as a, type TemplateManagerProps as b, type TemplateEditorProps as c, type TemplateFormData as d, TemplateTester as e, type TemplateTesterProps as f, type TestEmailData as g };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface TemplateFormData {
|
|
4
|
+
template_id?: string;
|
|
5
|
+
template_name: string;
|
|
6
|
+
template_type: string;
|
|
7
|
+
subject_template: string;
|
|
8
|
+
body_markdown: string;
|
|
9
|
+
variables?: string;
|
|
10
|
+
description: string;
|
|
11
|
+
is_active: boolean;
|
|
12
|
+
}
|
|
13
|
+
interface TemplateEditorProps {
|
|
14
|
+
/** Initial template data for editing, null for create mode */
|
|
15
|
+
initialData?: TemplateFormData | null;
|
|
16
|
+
/** Called when save is clicked, should return a promise */
|
|
17
|
+
onSave: (data: TemplateFormData) => Promise<void>;
|
|
18
|
+
/** Called when cancel/close is clicked */
|
|
19
|
+
onCancel: () => void;
|
|
20
|
+
/** Template types available for selection */
|
|
21
|
+
templateTypes?: string[];
|
|
22
|
+
/** Whether the component is in saving state */
|
|
23
|
+
saving?: boolean;
|
|
24
|
+
}
|
|
25
|
+
declare const TemplateEditor: React.FC<TemplateEditorProps>;
|
|
26
|
+
|
|
27
|
+
interface EmailTemplate$1 {
|
|
28
|
+
template_id: string;
|
|
29
|
+
template_name: string;
|
|
30
|
+
subject_template: string;
|
|
31
|
+
body_markdown: string;
|
|
32
|
+
variables?: string | null;
|
|
33
|
+
}
|
|
34
|
+
interface TestEmailData {
|
|
35
|
+
template_id: string;
|
|
36
|
+
to_email: string;
|
|
37
|
+
variables: Record<string, string>;
|
|
38
|
+
}
|
|
39
|
+
interface TemplateTesterProps {
|
|
40
|
+
template: EmailTemplate$1;
|
|
41
|
+
onSendTest: (data: TestEmailData) => Promise<void>;
|
|
42
|
+
onCancel: () => void;
|
|
43
|
+
sending?: boolean;
|
|
44
|
+
}
|
|
45
|
+
declare const TemplateTester: React.FC<TemplateTesterProps>;
|
|
46
|
+
|
|
47
|
+
interface EmailTemplate {
|
|
48
|
+
template_id: string;
|
|
49
|
+
template_name: string;
|
|
50
|
+
template_type: string;
|
|
51
|
+
subject_template: string;
|
|
52
|
+
body_markdown: string;
|
|
53
|
+
variables?: string | null;
|
|
54
|
+
description: string | null;
|
|
55
|
+
is_active: number | boolean;
|
|
56
|
+
created_at?: number | null;
|
|
57
|
+
updated_at?: number | null;
|
|
58
|
+
}
|
|
59
|
+
interface TemplateManagerProps {
|
|
60
|
+
/** Fetch all templates - returns promise with template array */
|
|
61
|
+
onLoadTemplates: () => Promise<EmailTemplate[]>;
|
|
62
|
+
/** Save a template (create or update) */
|
|
63
|
+
onSaveTemplate: (data: TemplateFormData) => Promise<void>;
|
|
64
|
+
/** Delete a template by ID */
|
|
65
|
+
onDeleteTemplate?: (id: string) => Promise<void>;
|
|
66
|
+
/** Send a test email */
|
|
67
|
+
onSendTestEmail?: (data: TestEmailData) => Promise<void>;
|
|
68
|
+
/** Page title */
|
|
69
|
+
title?: string;
|
|
70
|
+
/** Page description */
|
|
71
|
+
description?: string;
|
|
72
|
+
/** Template types for filtering and editor */
|
|
73
|
+
templateTypes?: string[];
|
|
74
|
+
}
|
|
75
|
+
declare const TemplateManager: React.FC<TemplateManagerProps>;
|
|
76
|
+
|
|
77
|
+
export { type EmailTemplate as E, TemplateManager as T, TemplateEditor as a, type TemplateManagerProps as b, type TemplateEditorProps as c, type TemplateFormData as d, TemplateTester as e, type TemplateTesterProps as f, type TestEmailData as g };
|