@leadcms/sdk 3.3.4 → 3.3.7
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/README.md +3 -0
- package/dist/cli/bin/pull-all.js +9 -2
- package/dist/cli/bin/pull-all.js.map +1 -1
- package/dist/cli/bin/pull-comments.js +9 -2
- package/dist/cli/bin/pull-comments.js.map +1 -1
- package/dist/cli/bin/pull-content.js +9 -2
- package/dist/cli/bin/pull-content.js.map +1 -1
- package/dist/cli/bin/pull-email-templates.d.ts +6 -0
- package/dist/cli/bin/pull-email-templates.d.ts.map +1 -0
- package/dist/cli/bin/pull-email-templates.js +24 -0
- package/dist/cli/bin/pull-email-templates.js.map +1 -0
- package/dist/cli/bin/pull-media.js +9 -2
- package/dist/cli/bin/pull-media.js.map +1 -1
- package/dist/cli/bin/push-all.js +17 -4
- package/dist/cli/bin/push-all.js.map +1 -1
- package/dist/cli/bin/push-content.js +9 -2
- package/dist/cli/bin/push-content.js.map +1 -1
- package/dist/cli/bin/push-email-templates.d.ts +6 -0
- package/dist/cli/bin/push-email-templates.d.ts.map +1 -0
- package/dist/cli/bin/push-email-templates.js +21 -0
- package/dist/cli/bin/push-email-templates.js.map +1 -0
- package/dist/cli/bin/push-media.js +9 -2
- package/dist/cli/bin/push-media.js.map +1 -1
- package/dist/cli/bin/push.js +2 -0
- package/dist/cli/bin/push.js.map +1 -1
- package/dist/cli/bin/status-all.d.ts +1 -1
- package/dist/cli/bin/status-all.js +255 -31
- package/dist/cli/bin/status-all.js.map +1 -1
- package/dist/cli/bin/status-content.js +9 -2
- package/dist/cli/bin/status-content.js.map +1 -1
- package/dist/cli/bin/status-email-templates.d.ts +6 -0
- package/dist/cli/bin/status-email-templates.d.ts.map +1 -0
- package/dist/cli/bin/status-email-templates.js +29 -0
- package/dist/cli/bin/status-email-templates.js.map +1 -0
- package/dist/cli/bin/status-media.js +9 -2
- package/dist/cli/bin/status-media.js.map +1 -1
- package/dist/cli/bin/status.js +2 -0
- package/dist/cli/bin/status.js.map +1 -1
- package/dist/cli/bin/watch.js +2 -0
- package/dist/cli/bin/watch.js.map +1 -1
- package/dist/cli/index.js +27 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/lib/cms-config-types.d.ts +4 -0
- package/dist/lib/cms-config-types.d.ts.map +1 -1
- package/dist/lib/cms-config-types.js +6 -0
- package/dist/lib/cms-config-types.js.map +1 -1
- package/dist/lib/cms.d.ts.map +1 -1
- package/dist/lib/cms.js +1 -0
- package/dist/lib/cms.js.map +1 -1
- package/dist/lib/config.d.ts +2 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +5 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/content-merge.d.ts +2 -2
- package/dist/lib/content-merge.d.ts.map +1 -1
- package/dist/lib/content-merge.js +39 -35
- package/dist/lib/content-merge.js.map +1 -1
- package/dist/lib/content-transformation.d.ts +1 -1
- package/dist/lib/content-transformation.d.ts.map +1 -1
- package/dist/lib/content-transformation.js +8 -2
- package/dist/lib/content-transformation.js.map +1 -1
- package/dist/lib/data-service.d.ts +56 -0
- package/dist/lib/data-service.d.ts.map +1 -1
- package/dist/lib/data-service.js +246 -36
- package/dist/lib/data-service.js.map +1 -1
- package/dist/lib/email-template-transformation.d.ts +36 -0
- package/dist/lib/email-template-transformation.d.ts.map +1 -0
- package/dist/lib/email-template-transformation.js +88 -0
- package/dist/lib/email-template-transformation.js.map +1 -0
- package/dist/lib/logger.d.ts +63 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +87 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/spinner.d.ts +25 -0
- package/dist/lib/spinner.d.ts.map +1 -0
- package/dist/lib/spinner.js +80 -0
- package/dist/lib/spinner.js.map +1 -0
- package/dist/scripts/fetch-leadcms-comments.d.ts.map +1 -1
- package/dist/scripts/fetch-leadcms-comments.js +22 -21
- package/dist/scripts/fetch-leadcms-comments.js.map +1 -1
- package/dist/scripts/fetch-leadcms-content.d.ts.map +1 -1
- package/dist/scripts/fetch-leadcms-content.js +46 -45
- package/dist/scripts/fetch-leadcms-content.js.map +1 -1
- package/dist/scripts/fetch-leadcms-email-templates.d.ts +15 -0
- package/dist/scripts/fetch-leadcms-email-templates.d.ts.map +1 -0
- package/dist/scripts/fetch-leadcms-email-templates.js +272 -0
- package/dist/scripts/fetch-leadcms-email-templates.js.map +1 -0
- package/dist/scripts/init-leadcms.d.ts.map +1 -1
- package/dist/scripts/init-leadcms.js +22 -3
- package/dist/scripts/init-leadcms.js.map +1 -1
- package/dist/scripts/leadcms-helpers.d.ts +1 -0
- package/dist/scripts/leadcms-helpers.d.ts.map +1 -1
- package/dist/scripts/leadcms-helpers.js +7 -5
- package/dist/scripts/leadcms-helpers.js.map +1 -1
- package/dist/scripts/pull-all.d.ts +5 -1
- package/dist/scripts/pull-all.d.ts.map +1 -1
- package/dist/scripts/pull-all.js +38 -17
- package/dist/scripts/pull-all.js.map +1 -1
- package/dist/scripts/pull-comments.d.ts.map +1 -1
- package/dist/scripts/pull-comments.js +3 -2
- package/dist/scripts/pull-comments.js.map +1 -1
- package/dist/scripts/pull-content.d.ts.map +1 -1
- package/dist/scripts/pull-content.js +3 -2
- package/dist/scripts/pull-content.js.map +1 -1
- package/dist/scripts/pull-email-templates.d.ts +13 -0
- package/dist/scripts/pull-email-templates.d.ts.map +1 -0
- package/dist/scripts/pull-email-templates.js +79 -0
- package/dist/scripts/pull-email-templates.js.map +1 -0
- package/dist/scripts/pull-media.d.ts.map +1 -1
- package/dist/scripts/pull-media.js +3 -2
- package/dist/scripts/pull-media.js.map +1 -1
- package/dist/scripts/push-email-templates.d.ts +50 -0
- package/dist/scripts/push-email-templates.d.ts.map +1 -0
- package/dist/scripts/push-email-templates.js +687 -0
- package/dist/scripts/push-email-templates.js.map +1 -0
- package/dist/scripts/push-leadcms-content.d.ts +45 -1
- package/dist/scripts/push-leadcms-content.d.ts.map +1 -1
- package/dist/scripts/push-leadcms-content.js +112 -28
- package/dist/scripts/push-leadcms-content.js.map +1 -1
- package/dist/scripts/push-media.d.ts +2 -0
- package/dist/scripts/push-media.d.ts.map +1 -1
- package/dist/scripts/push-media.js +8 -5
- package/dist/scripts/push-media.js.map +1 -1
- package/dist/scripts/sse-watcher.d.ts.map +1 -1
- package/dist/scripts/sse-watcher.js +72 -71
- package/dist/scripts/sse-watcher.js.map +1 -1
- package/leadcms.config.json.sample +2 -0
- package/package.json +1 -1
package/dist/scripts/pull-all.js
CHANGED
|
@@ -8,14 +8,15 @@ import fs from "fs/promises";
|
|
|
8
8
|
import path from "path";
|
|
9
9
|
import axios from "axios";
|
|
10
10
|
import { leadCMSUrl } from "./leadcms-helpers.js";
|
|
11
|
-
import { setCMSConfig, isContentSupported, isMediaSupported, isCommentsSupported } from "../lib/cms-config-types.js";
|
|
11
|
+
import { setCMSConfig, isContentSupported, isMediaSupported, isCommentsSupported, isEmailTemplatesSupported } from "../lib/cms-config-types.js";
|
|
12
12
|
import { getConfig } from "../lib/config.js";
|
|
13
|
+
import { logger } from "../lib/logger.js";
|
|
13
14
|
/**
|
|
14
15
|
* Fetch CMS config to determine which entities are supported
|
|
15
16
|
*/
|
|
16
17
|
async function fetchAndCacheCMSConfig() {
|
|
17
18
|
try {
|
|
18
|
-
|
|
19
|
+
logger.verbose(`🔍 Checking CMS configuration...`);
|
|
19
20
|
const configUrl = new URL('/api/config', leadCMSUrl).toString();
|
|
20
21
|
const response = await axios.get(configUrl, { timeout: 10000 });
|
|
21
22
|
if (response.data) {
|
|
@@ -24,12 +25,14 @@ async function fetchAndCacheCMSConfig() {
|
|
|
24
25
|
content: isContentSupported(),
|
|
25
26
|
media: isMediaSupported(),
|
|
26
27
|
comments: isCommentsSupported(),
|
|
28
|
+
emailTemplates: isEmailTemplatesSupported(),
|
|
27
29
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
logger.verbose(`✅ CMS Configuration received`);
|
|
31
|
+
logger.verbose(` - Content: ${support.content ? '✓' : '✗'}`);
|
|
32
|
+
logger.verbose(` - Media: ${support.media ? '✓' : '✗'}`);
|
|
33
|
+
logger.verbose(` - Comments: ${support.comments ? '✓' : '✗'}`);
|
|
34
|
+
logger.verbose(` - Email Templates: ${support.emailTemplates ? '✓' : '✗'}`);
|
|
35
|
+
logger.verbose('');
|
|
33
36
|
return support;
|
|
34
37
|
}
|
|
35
38
|
}
|
|
@@ -37,7 +40,7 @@ async function fetchAndCacheCMSConfig() {
|
|
|
37
40
|
console.warn(`⚠️ Could not fetch CMS config: ${error.message}`);
|
|
38
41
|
console.warn(`⚠️ Assuming all entities are supported (backward compatibility)\n`);
|
|
39
42
|
}
|
|
40
|
-
return { content: false, media: false, comments: false };
|
|
43
|
+
return { content: false, media: false, comments: false, emailTemplates: false };
|
|
41
44
|
}
|
|
42
45
|
/**
|
|
43
46
|
* Reset content directory and its sync tokens.
|
|
@@ -48,13 +51,13 @@ async function resetContentState() {
|
|
|
48
51
|
const contentDir = path.resolve(config.contentDir);
|
|
49
52
|
try {
|
|
50
53
|
await fs.rm(contentDir, { recursive: true, force: true });
|
|
51
|
-
|
|
54
|
+
logger.verbose(` ✓ Cleared content directory: ${contentDir}`);
|
|
52
55
|
}
|
|
53
56
|
catch { /* directory may not exist */ }
|
|
54
57
|
// Clean up legacy content sync token (SDK ≤ 3.2)
|
|
55
58
|
try {
|
|
56
59
|
await fs.unlink(path.join(path.dirname(contentDir), 'sync-token.txt'));
|
|
57
|
-
|
|
60
|
+
logger.verbose(` ✓ Removed legacy content sync token`);
|
|
58
61
|
}
|
|
59
62
|
catch { /* not found — ok */ }
|
|
60
63
|
}
|
|
@@ -68,13 +71,13 @@ async function resetMediaState() {
|
|
|
68
71
|
const contentDir = path.resolve(config.contentDir);
|
|
69
72
|
try {
|
|
70
73
|
await fs.rm(mediaDir, { recursive: true, force: true });
|
|
71
|
-
|
|
74
|
+
logger.verbose(` ✓ Cleared media directory: ${mediaDir}`);
|
|
72
75
|
}
|
|
73
76
|
catch { /* directory may not exist */ }
|
|
74
77
|
// Clean up legacy media sync token (SDK ≤ 3.2, stored next to content dir)
|
|
75
78
|
try {
|
|
76
79
|
await fs.unlink(path.join(path.dirname(contentDir), 'media-sync-token.txt'));
|
|
77
|
-
|
|
80
|
+
logger.verbose(` ✓ Removed legacy media sync token`);
|
|
78
81
|
}
|
|
79
82
|
catch { /* not found — ok */ }
|
|
80
83
|
}
|
|
@@ -87,16 +90,28 @@ async function resetCommentsState() {
|
|
|
87
90
|
const commentsDir = path.resolve(config.commentsDir);
|
|
88
91
|
try {
|
|
89
92
|
await fs.rm(commentsDir, { recursive: true, force: true });
|
|
90
|
-
|
|
93
|
+
logger.verbose(` ✓ Cleared comments directory: ${commentsDir}`);
|
|
91
94
|
}
|
|
92
95
|
catch { /* directory may not exist */ }
|
|
93
96
|
// Clean up legacy comment sync token (SDK ≤ 3.2)
|
|
94
97
|
try {
|
|
95
98
|
await fs.unlink(path.join(path.dirname(commentsDir), 'comment-sync-token.txt'));
|
|
96
|
-
|
|
99
|
+
logger.verbose(` ✓ Removed legacy comment sync token`);
|
|
97
100
|
}
|
|
98
101
|
catch { /* not found — ok */ }
|
|
99
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Reset email templates directory and its sync tokens.
|
|
105
|
+
*/
|
|
106
|
+
async function resetEmailTemplatesState() {
|
|
107
|
+
const config = getConfig();
|
|
108
|
+
const emailTemplatesDir = path.resolve(config.emailTemplatesDir);
|
|
109
|
+
try {
|
|
110
|
+
await fs.rm(emailTemplatesDir, { recursive: true, force: true });
|
|
111
|
+
logger.verbose(` ✓ Cleared email templates directory: ${emailTemplatesDir}`);
|
|
112
|
+
}
|
|
113
|
+
catch { /* directory may not exist */ }
|
|
114
|
+
}
|
|
100
115
|
/**
|
|
101
116
|
* Delete all local content, media, comments, and sync tokens.
|
|
102
117
|
* Used by --reset to do a clean pull from scratch.
|
|
@@ -106,6 +121,7 @@ async function resetLocalState() {
|
|
|
106
121
|
await resetContentState();
|
|
107
122
|
await resetMediaState();
|
|
108
123
|
await resetCommentsState();
|
|
124
|
+
await resetEmailTemplatesState();
|
|
109
125
|
console.log(` ✅ Local state reset complete\n`);
|
|
110
126
|
}
|
|
111
127
|
/**
|
|
@@ -129,8 +145,8 @@ async function main(options = {}) {
|
|
|
129
145
|
console.log(`\n🚀 LeadCMS Pull - Fetching all content\n`);
|
|
130
146
|
}
|
|
131
147
|
// Check which entities are supported
|
|
132
|
-
const { content, media, comments } = await fetchAndCacheCMSConfig();
|
|
133
|
-
if (!content && !media && !comments) {
|
|
148
|
+
const { content, media, comments, emailTemplates } = await fetchAndCacheCMSConfig();
|
|
149
|
+
if (!content && !media && !comments && !emailTemplates) {
|
|
134
150
|
console.log(`⏭️ No supported entities found - nothing to sync`);
|
|
135
151
|
return;
|
|
136
152
|
}
|
|
@@ -146,6 +162,11 @@ async function main(options = {}) {
|
|
|
146
162
|
const { fetchLeadCMSComments } = await import('./fetch-leadcms-comments.js');
|
|
147
163
|
fetchPromises.push(fetchLeadCMSComments());
|
|
148
164
|
}
|
|
165
|
+
if (emailTemplates) {
|
|
166
|
+
console.log(`📧 Fetching email templates...`);
|
|
167
|
+
const { fetchLeadCMSEmailTemplates } = await import('./fetch-leadcms-email-templates.js');
|
|
168
|
+
fetchPromises.push(fetchLeadCMSEmailTemplates());
|
|
169
|
+
}
|
|
149
170
|
// Wait for all fetches to complete
|
|
150
171
|
try {
|
|
151
172
|
await Promise.all(fetchPromises);
|
|
@@ -159,7 +180,7 @@ async function main(options = {}) {
|
|
|
159
180
|
// Export the main function
|
|
160
181
|
export { main as pullAll };
|
|
161
182
|
// Export reset functions for individual pull commands and testing
|
|
162
|
-
export { resetLocalState, resetContentState, resetMediaState, resetCommentsState };
|
|
183
|
+
export { resetLocalState, resetContentState, resetMediaState, resetCommentsState, resetEmailTemplatesState };
|
|
163
184
|
// Note: CLI execution moved to src/cli/bin/pull-all.ts
|
|
164
185
|
// This file now only exports the function for programmatic use
|
|
165
186
|
//# sourceMappingURL=pull-all.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-all.js","sourceRoot":"","sources":["../../src/scripts/pull-all.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"pull-all.js","sourceRoot":"","sources":["../../src/scripts/pull-all.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-comments.d.ts","sourceRoot":"","sources":["../../src/scripts/pull-comments.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pull-comments.d.ts","sourceRoot":"","sources":["../../src/scripts/pull-comments.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;AAQvB,UAAU,mBAAmB;IAC3B,gHAAgH;IAChH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,iBAAe,IAAI,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCpE;AAKD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -8,6 +8,7 @@ import { leadCMSUrl } from "./leadcms-helpers.js";
|
|
|
8
8
|
import { setCMSConfig, isCommentsSupported } from "../lib/cms-config-types.js";
|
|
9
9
|
import { fetchLeadCMSComments } from "./fetch-leadcms-comments.js";
|
|
10
10
|
import { resetCommentsState } from "./pull-all.js";
|
|
11
|
+
import { logger } from "../lib/logger.js";
|
|
11
12
|
/**
|
|
12
13
|
* Main function
|
|
13
14
|
*/
|
|
@@ -21,7 +22,7 @@ async function main(options = {}) {
|
|
|
21
22
|
}
|
|
22
23
|
// Check if comments are supported
|
|
23
24
|
try {
|
|
24
|
-
|
|
25
|
+
logger.verbose(`🔍 Checking CMS configuration...`);
|
|
25
26
|
const configUrl = new URL('/api/config', leadCMSUrl).toString();
|
|
26
27
|
const response = await axios.get(configUrl, { timeout: 10000 });
|
|
27
28
|
if (response.data) {
|
|
@@ -30,7 +31,7 @@ async function main(options = {}) {
|
|
|
30
31
|
console.log(`⏭️ Comments entity not supported by this LeadCMS instance`);
|
|
31
32
|
return;
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
+
logger.verbose(`✅ Comments entity supported\n`);
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-comments.js","sourceRoot":"","sources":["../../src/scripts/pull-comments.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pull-comments.js","sourceRoot":"","sources":["../../src/scripts/pull-comments.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAO1C;;GAEG;AACH,KAAK,UAAU,IAAI,CAAC,UAA+B,EAAE;IACnD,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAE1B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE5C,qDAAqD;IACrD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,MAAM,kBAAkB,EAAE,CAAC;IAC7B,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhE,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE5B,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;gBAC1E,OAAO;YACT,CAAC;YAED,MAAM,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IACjF,CAAC;IAED,iBAAiB;IACjB,MAAM,oBAAoB,EAAE,CAAC;IAE7B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC;AAED,4DAA4D;AAC5D,+DAA+D;AAE/D,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-content.d.ts","sourceRoot":"","sources":["../../src/scripts/pull-content.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pull-content.d.ts","sourceRoot":"","sources":["../../src/scripts/pull-content.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;AAWvB,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gHAAgH;IAChH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,iBAAe,IAAI,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqFnE;AAKD,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC"}
|
|
@@ -11,6 +11,7 @@ import { leadCMSDataService } from "../lib/data-service.js";
|
|
|
11
11
|
import { saveContentFile } from "../lib/content-transformation.js";
|
|
12
12
|
import { CONTENT_DIR, fetchContentTypes } from "./leadcms-helpers.js";
|
|
13
13
|
import { resetContentState } from "./pull-all.js";
|
|
14
|
+
import { logger } from "../lib/logger.js";
|
|
14
15
|
/**
|
|
15
16
|
* Main function
|
|
16
17
|
*/
|
|
@@ -67,7 +68,7 @@ async function main(options = {}) {
|
|
|
67
68
|
}
|
|
68
69
|
// Check if content is supported
|
|
69
70
|
try {
|
|
70
|
-
|
|
71
|
+
logger.verbose(`🔍 Checking CMS configuration...`);
|
|
71
72
|
const configUrl = new URL('/api/config', leadCMSUrl).toString();
|
|
72
73
|
const response = await axios.get(configUrl, { timeout: 10000 });
|
|
73
74
|
if (response.data) {
|
|
@@ -76,7 +77,7 @@ async function main(options = {}) {
|
|
|
76
77
|
console.log(`⏭️ Content entity not supported by this LeadCMS instance`);
|
|
77
78
|
return;
|
|
78
79
|
}
|
|
79
|
-
|
|
80
|
+
logger.verbose(`✅ Content entity supported\n`);
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
83
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-content.js","sourceRoot":"","sources":["../../src/scripts/pull-content.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pull-content.js","sourceRoot":"","sources":["../../src/scripts/pull-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Pull email templates from LeadCMS
|
|
4
|
+
*/
|
|
5
|
+
import "dotenv/config";
|
|
6
|
+
interface PullEmailTemplatesOptions {
|
|
7
|
+
targetId?: string;
|
|
8
|
+
/** When true, delete all local email template files and sync token before pulling. */
|
|
9
|
+
reset?: boolean;
|
|
10
|
+
}
|
|
11
|
+
declare function main(options?: PullEmailTemplatesOptions): Promise<void>;
|
|
12
|
+
export { main as pullEmailTemplates };
|
|
13
|
+
//# sourceMappingURL=pull-email-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-email-templates.d.ts","sourceRoot":"","sources":["../../src/scripts/pull-email-templates.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;AAQvB,UAAU,yBAAyB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,iBAAe,IAAI,CAAC,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CA4E1E;AAED,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Pull email templates from LeadCMS
|
|
4
|
+
*/
|
|
5
|
+
import "dotenv/config";
|
|
6
|
+
import axios from "axios";
|
|
7
|
+
import { leadCMSUrl, leadCMSApiKey, EMAIL_TEMPLATES_DIR } from "./leadcms-helpers.js";
|
|
8
|
+
import { setCMSConfig, isEmailTemplatesSupported } from "../lib/cms-config-types.js";
|
|
9
|
+
import { fetchLeadCMSEmailTemplates, buildEmailTemplateIdIndex, deleteEmailTemplateFilesById, saveEmailTemplateFile } from "./fetch-leadcms-email-templates.js";
|
|
10
|
+
import { resetEmailTemplatesState } from "./pull-all.js";
|
|
11
|
+
import { logger } from "../lib/logger.js";
|
|
12
|
+
async function main(options = {}) {
|
|
13
|
+
const { targetId, reset } = options;
|
|
14
|
+
console.log(`\n📧 LeadCMS Pull Email Templates\n`);
|
|
15
|
+
if (reset) {
|
|
16
|
+
console.log(`🔄 Resetting email templates state...\n`);
|
|
17
|
+
await resetEmailTemplatesState();
|
|
18
|
+
}
|
|
19
|
+
if (targetId) {
|
|
20
|
+
const id = parseInt(targetId, 10);
|
|
21
|
+
if (Number.isNaN(id)) {
|
|
22
|
+
console.error(`❌ Invalid ID: ${targetId}`);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (!leadCMSApiKey) {
|
|
26
|
+
console.error(`❌ LEADCMS_API_KEY is required to pull email templates by ID`);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const url = new URL(`/api/email-templates/${id}`, leadCMSUrl).toString();
|
|
31
|
+
const response = await axios.get(url, {
|
|
32
|
+
headers: { Authorization: `Bearer ${leadCMSApiKey}` },
|
|
33
|
+
timeout: 10000,
|
|
34
|
+
});
|
|
35
|
+
if (!response.data) {
|
|
36
|
+
console.log(`⚠️ Email template not found: ID ${id}`);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const index = await buildEmailTemplateIdIndex(EMAIL_TEMPLATES_DIR);
|
|
40
|
+
await deleteEmailTemplateFilesById(index, String(id));
|
|
41
|
+
const filePath = await saveEmailTemplateFile(response.data);
|
|
42
|
+
console.log(`✅ Email template saved: ${filePath}`);
|
|
43
|
+
console.log(`\n✨ Email templates pull completed!\n`);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (error.response?.status === 404) {
|
|
48
|
+
console.log(`⚠️ Email template not found: ID ${id}`);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (error.response?.status === 401) {
|
|
52
|
+
console.error(`❌ Authentication failed - check your LEADCMS_API_KEY`);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
logger.verbose(`🔍 Checking CMS configuration...`);
|
|
60
|
+
const configUrl = new URL('/api/config', leadCMSUrl).toString();
|
|
61
|
+
const response = await axios.get(configUrl, { timeout: 10000 });
|
|
62
|
+
if (response.data) {
|
|
63
|
+
setCMSConfig(response.data);
|
|
64
|
+
if (!isEmailTemplatesSupported()) {
|
|
65
|
+
console.log(`⏭️ Email templates entity not supported by this LeadCMS instance`);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
logger.verbose(`✅ Email templates entity supported\n`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
console.warn(`⚠️ Could not fetch CMS config: ${error.message}`);
|
|
73
|
+
console.warn(`⚠️ Assuming email templates are supported (backward compatibility)\n`);
|
|
74
|
+
}
|
|
75
|
+
await fetchLeadCMSEmailTemplates();
|
|
76
|
+
console.log(`\n✨ Email templates pull completed!\n`);
|
|
77
|
+
}
|
|
78
|
+
export { main as pullEmailTemplates };
|
|
79
|
+
//# sourceMappingURL=pull-email-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-email-templates.js","sourceRoot":"","sources":["../../src/scripts/pull-email-templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-media.d.ts","sourceRoot":"","sources":["../../src/scripts/pull-media.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pull-media.d.ts","sourceRoot":"","sources":["../../src/scripts/pull-media.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;AAOvB,UAAU,gBAAgB;IACxB,8GAA8G;IAC9G,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,iBAAe,IAAI,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCjE;AAKD,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC"}
|
|
@@ -7,6 +7,7 @@ import axios from "axios";
|
|
|
7
7
|
import { leadCMSUrl } from "./leadcms-helpers.js";
|
|
8
8
|
import { setCMSConfig, isMediaSupported } from "../lib/cms-config-types.js";
|
|
9
9
|
import { resetMediaState } from "./pull-all.js";
|
|
10
|
+
import { logger } from "../lib/logger.js";
|
|
10
11
|
/**
|
|
11
12
|
* Main function - currently media is fetched as part of content sync
|
|
12
13
|
* This is a placeholder for future dedicated media sync
|
|
@@ -21,7 +22,7 @@ async function main(options = {}) {
|
|
|
21
22
|
}
|
|
22
23
|
// Check if media is supported
|
|
23
24
|
try {
|
|
24
|
-
|
|
25
|
+
logger.verbose(`🔍 Checking CMS configuration...`);
|
|
25
26
|
const configUrl = new URL('/api/config', leadCMSUrl).toString();
|
|
26
27
|
const response = await axios.get(configUrl, { timeout: 10000 });
|
|
27
28
|
if (response.data) {
|
|
@@ -30,7 +31,7 @@ async function main(options = {}) {
|
|
|
30
31
|
console.log(`⏭️ Media entity not supported by this LeadCMS instance`);
|
|
31
32
|
return;
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
+
logger.verbose(`✅ Media entity supported\n`);
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-media.js","sourceRoot":"","sources":["../../src/scripts/pull-media.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pull-media.js","sourceRoot":"","sources":["../../src/scripts/pull-media.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAO1C;;;GAGG;AACH,KAAK,UAAU,IAAI,CAAC,UAA4B,EAAE;IAChD,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAE1B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAE3C,kDAAkD;IAClD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,MAAM,eAAe,EAAE,CAAC;IAC1B,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhE,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE5B,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;gBACvE,OAAO;YACT,CAAC;YAED,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAC7E,CAAC;IAED,sDAAsD;IACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAC3E,MAAM,mBAAmB,EAAE,CAAC;IAE5B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAC7C,CAAC;AAED,yDAAyD;AACzD,+DAA+D;AAE/D,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import "dotenv/config";
|
|
2
|
+
interface LocalEmailTemplateItem {
|
|
3
|
+
filePath: string;
|
|
4
|
+
locale: string;
|
|
5
|
+
groupFolder: string;
|
|
6
|
+
metadata: Record<string, any>;
|
|
7
|
+
body: string;
|
|
8
|
+
}
|
|
9
|
+
interface RemoteEmailTemplateItem {
|
|
10
|
+
id?: number;
|
|
11
|
+
name?: string;
|
|
12
|
+
subject?: string;
|
|
13
|
+
bodyTemplate?: string;
|
|
14
|
+
fromEmail?: string;
|
|
15
|
+
fromName?: string;
|
|
16
|
+
language?: string;
|
|
17
|
+
translationKey?: string | null;
|
|
18
|
+
emailGroupId?: number | null;
|
|
19
|
+
createdAt?: string;
|
|
20
|
+
updatedAt?: string | null;
|
|
21
|
+
emailGroup?: Record<string, any> | null;
|
|
22
|
+
}
|
|
23
|
+
interface PushOptions {
|
|
24
|
+
force?: boolean;
|
|
25
|
+
dryRun?: boolean;
|
|
26
|
+
allowDelete?: boolean;
|
|
27
|
+
}
|
|
28
|
+
interface StatusOptions {
|
|
29
|
+
showDelete?: boolean;
|
|
30
|
+
targetId?: string;
|
|
31
|
+
showDetailedPreview?: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface EmailTemplateOperation {
|
|
34
|
+
type: 'create' | 'update' | 'delete' | 'conflict';
|
|
35
|
+
local?: LocalEmailTemplateItem;
|
|
36
|
+
remote?: RemoteEmailTemplateItem;
|
|
37
|
+
reason?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface EmailTemplateStatusResult {
|
|
40
|
+
operations: EmailTemplateOperation[];
|
|
41
|
+
totalLocal: number;
|
|
42
|
+
totalRemote: number;
|
|
43
|
+
}
|
|
44
|
+
declare function buildEmailTemplateStatus(options?: StatusOptions): Promise<EmailTemplateStatusResult>;
|
|
45
|
+
declare function getRemoteGroupLabel(remote: RemoteEmailTemplateItem): string;
|
|
46
|
+
export declare function statusEmailTemplates(options?: StatusOptions): Promise<void>;
|
|
47
|
+
export { buildEmailTemplateStatus, getRemoteGroupLabel };
|
|
48
|
+
export type { EmailTemplateOperation, LocalEmailTemplateItem, RemoteEmailTemplateItem };
|
|
49
|
+
export declare function pushEmailTemplates(options?: PushOptions): Promise<void>;
|
|
50
|
+
//# sourceMappingURL=push-email-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push-email-templates.d.ts","sourceRoot":"","sources":["../../src/scripts/push-email-templates.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAqBvB,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,uBAAuB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;CACzC;AAQD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,aAAa;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;IAClD,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4XD,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,iBAAe,wBAAwB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAmHvG;AAED,iBAAS,mBAAmB,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAKpE;AAED,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgLrF;AAGD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,CAAC;AAExF,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsHjF"}
|