@leadcms/sdk 3.4.0 â 3.5.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/cli/bin/login.js +1 -1
- package/dist/cli/bin/login.js.map +1 -1
- package/dist/cli/bin/pull-all.js +4 -2
- package/dist/cli/bin/pull-all.js.map +1 -1
- package/dist/cli/bin/pull-comments.js +3 -1
- package/dist/cli/bin/pull-comments.js.map +1 -1
- package/dist/cli/bin/pull-content.js +4 -2
- package/dist/cli/bin/pull-content.js.map +1 -1
- package/dist/cli/bin/pull-email-templates.js +3 -1
- package/dist/cli/bin/pull-email-templates.js.map +1 -1
- package/dist/cli/bin/pull-media.js +3 -1
- package/dist/cli/bin/pull-media.js.map +1 -1
- package/dist/cli/bin/pull-settings.js +2 -0
- package/dist/cli/bin/pull-settings.js.map +1 -1
- package/dist/cli/bin/push-all.js +4 -1
- package/dist/cli/bin/push-all.js.map +1 -1
- package/dist/cli/bin/push-comments.js +2 -0
- package/dist/cli/bin/push-comments.js.map +1 -1
- package/dist/cli/bin/push-content.js +5 -3
- package/dist/cli/bin/push-content.js.map +1 -1
- package/dist/cli/bin/push-email-templates.js +3 -1
- package/dist/cli/bin/push-email-templates.js.map +1 -1
- package/dist/cli/bin/push-media.js +2 -0
- package/dist/cli/bin/push-media.js.map +1 -1
- package/dist/cli/bin/push-settings.js +2 -0
- package/dist/cli/bin/push-settings.js.map +1 -1
- package/dist/cli/bin/push.js +5 -3
- package/dist/cli/bin/push.js.map +1 -1
- package/dist/cli/bin/remote-flag.d.ts +17 -0
- package/dist/cli/bin/remote-flag.d.ts.map +1 -0
- package/dist/cli/bin/remote-flag.js +50 -0
- package/dist/cli/bin/remote-flag.js.map +1 -0
- package/dist/cli/bin/remote.d.ts +14 -0
- package/dist/cli/bin/remote.d.ts.map +1 -0
- package/dist/cli/bin/remote.js +291 -0
- package/dist/cli/bin/remote.js.map +1 -0
- package/dist/cli/bin/status-all.js +4 -2
- package/dist/cli/bin/status-all.js.map +1 -1
- package/dist/cli/bin/status-comments.js +2 -0
- package/dist/cli/bin/status-comments.js.map +1 -1
- package/dist/cli/bin/status-content.js +4 -2
- package/dist/cli/bin/status-content.js.map +1 -1
- package/dist/cli/bin/status-email-templates.js +3 -1
- package/dist/cli/bin/status-email-templates.js.map +1 -1
- package/dist/cli/bin/status-media.js +2 -0
- package/dist/cli/bin/status-media.js.map +1 -1
- package/dist/cli/bin/status-settings.js +2 -0
- package/dist/cli/bin/status-settings.js.map +1 -1
- package/dist/cli/bin/status.js +5 -2
- package/dist/cli/bin/status.js.map +1 -1
- package/dist/cli/bin/watch.js +6 -3
- package/dist/cli/bin/watch.js.map +1 -1
- package/dist/cli/index.js +47 -10
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/auth.d.ts +1 -1
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/auth.js +5 -5
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/config.d.ts +6 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +37 -4
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/content-transformation.d.ts +5 -0
- package/dist/lib/content-transformation.d.ts.map +1 -1
- package/dist/lib/content-transformation.js +49 -2
- package/dist/lib/content-transformation.js.map +1 -1
- package/dist/lib/data-service.d.ts +6 -0
- package/dist/lib/data-service.d.ts.map +1 -1
- package/dist/lib/data-service.js +11 -0
- package/dist/lib/data-service.js.map +1 -1
- package/dist/lib/remote-context.d.ts +98 -0
- package/dist/lib/remote-context.d.ts.map +1 -0
- package/dist/lib/remote-context.js +297 -0
- package/dist/lib/remote-context.js.map +1 -0
- package/dist/scripts/init-leadcms.d.ts.map +1 -1
- package/dist/scripts/init-leadcms.js +127 -15
- package/dist/scripts/init-leadcms.js.map +1 -1
- package/dist/scripts/leadcms-helpers.d.ts +16 -5
- package/dist/scripts/leadcms-helpers.d.ts.map +1 -1
- package/dist/scripts/leadcms-helpers.js +31 -8
- package/dist/scripts/leadcms-helpers.js.map +1 -1
- package/dist/scripts/login-leadcms.d.ts +4 -1
- package/dist/scripts/login-leadcms.d.ts.map +1 -1
- package/dist/scripts/login-leadcms.js +45 -6
- package/dist/scripts/login-leadcms.js.map +1 -1
- package/dist/scripts/pull-all.d.ts +14 -6
- package/dist/scripts/pull-all.d.ts.map +1 -1
- package/dist/scripts/pull-all.js +86 -33
- package/dist/scripts/pull-all.js.map +1 -1
- package/dist/scripts/pull-comments.d.ts +3 -0
- package/dist/scripts/pull-comments.d.ts.map +1 -1
- package/dist/scripts/pull-comments.js +4 -4
- package/dist/scripts/pull-comments.js.map +1 -1
- package/dist/scripts/pull-content.d.ts +3 -0
- package/dist/scripts/pull-content.d.ts.map +1 -1
- package/dist/scripts/pull-content.js +7 -6
- package/dist/scripts/pull-content.js.map +1 -1
- package/dist/scripts/pull-email-templates.d.ts +3 -0
- package/dist/scripts/pull-email-templates.d.ts.map +1 -1
- package/dist/scripts/pull-email-templates.js +4 -4
- package/dist/scripts/pull-email-templates.js.map +1 -1
- package/dist/scripts/{fetch-leadcms-comments.d.ts â pull-leadcms-comments.d.ts} +7 -6
- package/dist/scripts/pull-leadcms-comments.d.ts.map +1 -0
- package/dist/scripts/{fetch-leadcms-comments.js â pull-leadcms-comments.js} +56 -28
- package/dist/scripts/pull-leadcms-comments.js.map +1 -0
- package/dist/scripts/{fetch-leadcms-content.d.ts â pull-leadcms-content.d.ts} +13 -19
- package/dist/scripts/pull-leadcms-content.d.ts.map +1 -0
- package/dist/scripts/{fetch-leadcms-content.js â pull-leadcms-content.js} +121 -250
- package/dist/scripts/pull-leadcms-content.js.map +1 -0
- package/dist/scripts/{fetch-leadcms-email-templates.d.ts â pull-leadcms-email-templates.d.ts} +5 -4
- package/dist/scripts/pull-leadcms-email-templates.d.ts.map +1 -0
- package/dist/scripts/{fetch-leadcms-email-templates.js â pull-leadcms-email-templates.js} +89 -11
- package/dist/scripts/pull-leadcms-email-templates.js.map +1 -0
- package/dist/scripts/pull-leadcms-media.d.ts +32 -0
- package/dist/scripts/pull-leadcms-media.d.ts.map +1 -0
- package/dist/scripts/pull-leadcms-media.js +229 -0
- package/dist/scripts/pull-leadcms-media.js.map +1 -0
- package/dist/scripts/pull-media.d.ts +4 -1
- package/dist/scripts/pull-media.d.ts.map +1 -1
- package/dist/scripts/pull-media.js +4 -4
- package/dist/scripts/pull-media.js.map +1 -1
- package/dist/scripts/push-comments.js +3 -3
- package/dist/scripts/push-comments.js.map +1 -1
- package/dist/scripts/push-email-templates.d.ts +6 -1
- package/dist/scripts/push-email-templates.d.ts.map +1 -1
- package/dist/scripts/push-email-templates.js +96 -21
- package/dist/scripts/push-email-templates.js.map +1 -1
- package/dist/scripts/push-leadcms-content.d.ts +9 -3
- package/dist/scripts/push-leadcms-content.d.ts.map +1 -1
- package/dist/scripts/push-leadcms-content.js +110 -36
- package/dist/scripts/push-leadcms-content.js.map +1 -1
- package/dist/scripts/sse-watcher.d.ts +9 -8
- package/dist/scripts/sse-watcher.d.ts.map +1 -1
- package/dist/scripts/sse-watcher.js +59 -52
- package/dist/scripts/sse-watcher.js.map +1 -1
- package/leadcms.config.json.sample +12 -1
- package/package.json +2 -3
- package/dist/scripts/fetch-leadcms-comments.d.ts.map +0 -1
- package/dist/scripts/fetch-leadcms-comments.js.map +0 -1
- package/dist/scripts/fetch-leadcms-content.d.ts.map +0 -1
- package/dist/scripts/fetch-leadcms-content.js.map +0 -1
- package/dist/scripts/fetch-leadcms-email-templates.d.ts.map +0 -1
- package/dist/scripts/fetch-leadcms-email-templates.js.map +0 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* Orchestrator for pulling all content from LeadCMS
|
|
4
|
-
* Checks entity support before
|
|
4
|
+
* Checks entity support before pulling content, media, and comments
|
|
5
5
|
*/
|
|
6
6
|
import "dotenv/config";
|
|
7
|
+
import type { RemoteContext } from "../lib/remote-context.js";
|
|
7
8
|
interface PullAllOptions {
|
|
8
9
|
targetId?: string;
|
|
9
10
|
targetSlug?: string;
|
|
@@ -11,26 +12,32 @@ interface PullAllOptions {
|
|
|
11
12
|
reset?: boolean;
|
|
12
13
|
/** When true, skip three-way merge and always overwrite local files with remote content. */
|
|
13
14
|
force?: boolean;
|
|
15
|
+
/** Remote context for multi-remote support. */
|
|
16
|
+
remoteContext?: RemoteContext;
|
|
14
17
|
}
|
|
15
18
|
/**
|
|
16
19
|
* Reset content directory and its sync tokens.
|
|
17
20
|
* Deletes content files, the sync token inside contentDir, and any legacy sync tokens.
|
|
21
|
+
* When remoteCtx is provided, also clears per-remote sync tokens.
|
|
18
22
|
*/
|
|
19
|
-
declare function resetContentState(): Promise<void>;
|
|
23
|
+
declare function resetContentState(remoteCtx?: RemoteContext): Promise<void>;
|
|
20
24
|
/**
|
|
21
25
|
* Reset media directory and its sync tokens.
|
|
22
26
|
* Deletes media files, the sync token inside mediaDir, and any legacy sync tokens.
|
|
27
|
+
* When remoteCtx is provided, also clears per-remote media sync token.
|
|
23
28
|
*/
|
|
24
|
-
declare function resetMediaState(): Promise<void>;
|
|
29
|
+
declare function resetMediaState(remoteCtx?: RemoteContext): Promise<void>;
|
|
25
30
|
/**
|
|
26
31
|
* Reset comments directory and its sync tokens.
|
|
27
32
|
* Deletes comment files, the sync token inside commentsDir, and any legacy sync tokens.
|
|
33
|
+
* When remoteCtx is provided, also clears per-remote comments sync token.
|
|
28
34
|
*/
|
|
29
|
-
declare function resetCommentsState(): Promise<void>;
|
|
35
|
+
declare function resetCommentsState(remoteCtx?: RemoteContext): Promise<void>;
|
|
30
36
|
/**
|
|
31
37
|
* Reset email templates directory and its sync tokens.
|
|
38
|
+
* When remoteCtx is provided, also clears per-remote email-templates sync token.
|
|
32
39
|
*/
|
|
33
|
-
declare function resetEmailTemplatesState(): Promise<void>;
|
|
40
|
+
declare function resetEmailTemplatesState(remoteCtx?: RemoteContext): Promise<void>;
|
|
34
41
|
/**
|
|
35
42
|
* Reset settings directory.
|
|
36
43
|
*/
|
|
@@ -38,8 +45,9 @@ declare function resetSettingsState(): Promise<void>;
|
|
|
38
45
|
/**
|
|
39
46
|
* Delete all local content, media, comments, and sync tokens.
|
|
40
47
|
* Used by --reset to do a clean pull from scratch.
|
|
48
|
+
* When remoteCtx is provided, also clears per-remote state (sync tokens and metadata).
|
|
41
49
|
*/
|
|
42
|
-
declare function resetLocalState(): Promise<void>;
|
|
50
|
+
declare function resetLocalState(remoteCtx?: RemoteContext): Promise<void>;
|
|
43
51
|
/**
|
|
44
52
|
* Main orchestrator function
|
|
45
53
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-all.d.ts","sourceRoot":"","sources":["../../src/scripts/pull-all.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,eAAe,CAAC;AASvB,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qHAAqH;IACrH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4FAA4F;IAC5F,KAAK,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"pull-all.d.ts","sourceRoot":"","sources":["../../src/scripts/pull-all.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,eAAe,CAAC;AASvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qHAAqH;IACrH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4FAA4F;IAC5F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AA+CD;;;;GAIG;AACH,iBAAe,iBAAiB,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBzE;AAED;;;;GAIG;AACH,iBAAe,eAAe,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBvE;AAED;;;;GAIG;AACH,iBAAe,kBAAkB,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB1E;AAED;;;GAGG;AACH,iBAAe,wBAAwB,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhF;AAED;;GAEG;AACH,iBAAe,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQjD;AAED;;;;GAIG;AACH,iBAAe,eAAe,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBvE;AAED;;GAEG;AACH,iBAAe,IAAI,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2E/D;AAGD,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/scripts/pull-all.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* Orchestrator for pulling all content from LeadCMS
|
|
4
|
-
* Checks entity support before
|
|
4
|
+
* Checks entity support before pulling content, media, and comments
|
|
5
5
|
*/
|
|
6
6
|
import "dotenv/config";
|
|
7
7
|
import fs from "fs/promises";
|
|
@@ -11,13 +11,15 @@ import { leadCMSUrl, leadCMSApiKey } from "./leadcms-helpers.js";
|
|
|
11
11
|
import { setCMSConfig, isContentSupported, isMediaSupported, isCommentsSupported, isEmailTemplatesSupported, isSettingsSupported } from "../lib/cms-config-types.js";
|
|
12
12
|
import { getConfig } from "../lib/config.js";
|
|
13
13
|
import { logger } from "../lib/logger.js";
|
|
14
|
+
import { syncTokenPath, metadataMapPath } from "../lib/remote-context.js";
|
|
14
15
|
/**
|
|
15
16
|
* Fetch CMS config to determine which entities are supported
|
|
16
17
|
*/
|
|
17
|
-
async function fetchAndCacheCMSConfig() {
|
|
18
|
+
async function fetchAndCacheCMSConfig(baseUrl) {
|
|
18
19
|
try {
|
|
20
|
+
const effectiveUrl = baseUrl || leadCMSUrl;
|
|
19
21
|
logger.info(`đ Checking CMS configuration...`);
|
|
20
|
-
const configUrl = new URL('/api/config',
|
|
22
|
+
const configUrl = new URL('/api/config', effectiveUrl).toString();
|
|
21
23
|
const response = await axios.get(configUrl, { timeout: 10000 });
|
|
22
24
|
if (response.data) {
|
|
23
25
|
setCMSConfig(response.data);
|
|
@@ -48,8 +50,9 @@ async function fetchAndCacheCMSConfig() {
|
|
|
48
50
|
/**
|
|
49
51
|
* Reset content directory and its sync tokens.
|
|
50
52
|
* Deletes content files, the sync token inside contentDir, and any legacy sync tokens.
|
|
53
|
+
* When remoteCtx is provided, also clears per-remote sync tokens.
|
|
51
54
|
*/
|
|
52
|
-
async function resetContentState() {
|
|
55
|
+
async function resetContentState(remoteCtx) {
|
|
53
56
|
const config = getConfig();
|
|
54
57
|
const contentDir = path.resolve(config.contentDir);
|
|
55
58
|
try {
|
|
@@ -63,12 +66,21 @@ async function resetContentState() {
|
|
|
63
66
|
logger.verbose(` â Removed legacy content sync token`);
|
|
64
67
|
}
|
|
65
68
|
catch { /* not found â ok */ }
|
|
69
|
+
// Clear per-remote content sync token when remote context is provided
|
|
70
|
+
if (remoteCtx) {
|
|
71
|
+
try {
|
|
72
|
+
await fs.unlink(syncTokenPath(remoteCtx, 'content'));
|
|
73
|
+
logger.verbose(` â Removed per-remote content sync token (${remoteCtx.name})`);
|
|
74
|
+
}
|
|
75
|
+
catch { /* not found â ok */ }
|
|
76
|
+
}
|
|
66
77
|
}
|
|
67
78
|
/**
|
|
68
79
|
* Reset media directory and its sync tokens.
|
|
69
80
|
* Deletes media files, the sync token inside mediaDir, and any legacy sync tokens.
|
|
81
|
+
* When remoteCtx is provided, also clears per-remote media sync token.
|
|
70
82
|
*/
|
|
71
|
-
async function resetMediaState() {
|
|
83
|
+
async function resetMediaState(remoteCtx) {
|
|
72
84
|
const config = getConfig();
|
|
73
85
|
const mediaDir = path.resolve(config.mediaDir);
|
|
74
86
|
const contentDir = path.resolve(config.contentDir);
|
|
@@ -83,12 +95,21 @@ async function resetMediaState() {
|
|
|
83
95
|
logger.verbose(` â Removed legacy media sync token`);
|
|
84
96
|
}
|
|
85
97
|
catch { /* not found â ok */ }
|
|
98
|
+
// Clear per-remote media sync token
|
|
99
|
+
if (remoteCtx) {
|
|
100
|
+
try {
|
|
101
|
+
await fs.unlink(syncTokenPath(remoteCtx, 'media'));
|
|
102
|
+
logger.verbose(` â Removed per-remote media sync token (${remoteCtx.name})`);
|
|
103
|
+
}
|
|
104
|
+
catch { /* not found â ok */ }
|
|
105
|
+
}
|
|
86
106
|
}
|
|
87
107
|
/**
|
|
88
108
|
* Reset comments directory and its sync tokens.
|
|
89
109
|
* Deletes comment files, the sync token inside commentsDir, and any legacy sync tokens.
|
|
110
|
+
* When remoteCtx is provided, also clears per-remote comments sync token.
|
|
90
111
|
*/
|
|
91
|
-
async function resetCommentsState() {
|
|
112
|
+
async function resetCommentsState(remoteCtx) {
|
|
92
113
|
const config = getConfig();
|
|
93
114
|
const commentsDir = path.resolve(config.commentsDir);
|
|
94
115
|
try {
|
|
@@ -102,11 +123,20 @@ async function resetCommentsState() {
|
|
|
102
123
|
logger.verbose(` â Removed legacy comment sync token`);
|
|
103
124
|
}
|
|
104
125
|
catch { /* not found â ok */ }
|
|
126
|
+
// Clear per-remote comments sync token
|
|
127
|
+
if (remoteCtx) {
|
|
128
|
+
try {
|
|
129
|
+
await fs.unlink(syncTokenPath(remoteCtx, 'comments'));
|
|
130
|
+
logger.verbose(` â Removed per-remote comments sync token (${remoteCtx.name})`);
|
|
131
|
+
}
|
|
132
|
+
catch { /* not found â ok */ }
|
|
133
|
+
}
|
|
105
134
|
}
|
|
106
135
|
/**
|
|
107
136
|
* Reset email templates directory and its sync tokens.
|
|
137
|
+
* When remoteCtx is provided, also clears per-remote email-templates sync token.
|
|
108
138
|
*/
|
|
109
|
-
async function resetEmailTemplatesState() {
|
|
139
|
+
async function resetEmailTemplatesState(remoteCtx) {
|
|
110
140
|
const config = getConfig();
|
|
111
141
|
const emailTemplatesDir = path.resolve(config.emailTemplatesDir);
|
|
112
142
|
try {
|
|
@@ -114,6 +144,14 @@ async function resetEmailTemplatesState() {
|
|
|
114
144
|
logger.verbose(` â Cleared email templates directory: ${emailTemplatesDir}`);
|
|
115
145
|
}
|
|
116
146
|
catch { /* directory may not exist */ }
|
|
147
|
+
// Clear per-remote email-templates sync token
|
|
148
|
+
if (remoteCtx) {
|
|
149
|
+
try {
|
|
150
|
+
await fs.unlink(syncTokenPath(remoteCtx, 'email-templates'));
|
|
151
|
+
logger.verbose(` â Removed per-remote email-templates sync token (${remoteCtx.name})`);
|
|
152
|
+
}
|
|
153
|
+
catch { /* not found â ok */ }
|
|
154
|
+
}
|
|
117
155
|
}
|
|
118
156
|
/**
|
|
119
157
|
* Reset settings directory.
|
|
@@ -130,45 +168,55 @@ async function resetSettingsState() {
|
|
|
130
168
|
/**
|
|
131
169
|
* Delete all local content, media, comments, and sync tokens.
|
|
132
170
|
* Used by --reset to do a clean pull from scratch.
|
|
171
|
+
* When remoteCtx is provided, also clears per-remote state (sync tokens and metadata).
|
|
133
172
|
*/
|
|
134
|
-
async function resetLocalState() {
|
|
173
|
+
async function resetLocalState(remoteCtx) {
|
|
135
174
|
console.log(`đď¸ Resetting local state...`);
|
|
136
|
-
await resetContentState();
|
|
137
|
-
await resetMediaState();
|
|
138
|
-
await resetCommentsState();
|
|
139
|
-
await resetEmailTemplatesState();
|
|
175
|
+
await resetContentState(remoteCtx);
|
|
176
|
+
await resetMediaState(remoteCtx);
|
|
177
|
+
await resetCommentsState(remoteCtx);
|
|
178
|
+
await resetEmailTemplatesState(remoteCtx);
|
|
140
179
|
await resetSettingsState();
|
|
180
|
+
// Clear per-remote metadata
|
|
181
|
+
if (remoteCtx) {
|
|
182
|
+
try {
|
|
183
|
+
await fs.unlink(metadataMapPath(remoteCtx));
|
|
184
|
+
logger.verbose(` â Removed per-remote metadata (${remoteCtx.name})`);
|
|
185
|
+
}
|
|
186
|
+
catch { /* not found â ok */ }
|
|
187
|
+
}
|
|
141
188
|
console.log(` â
Local state reset complete\n`);
|
|
142
189
|
}
|
|
143
190
|
/**
|
|
144
191
|
* Main orchestrator function
|
|
145
192
|
*/
|
|
146
193
|
async function main(options = {}) {
|
|
147
|
-
const { targetId, targetSlug, reset, force } = options;
|
|
194
|
+
const { targetId, targetSlug, reset, force, remoteContext: remoteCtx } = options;
|
|
195
|
+
const effectiveUrl = remoteCtx?.url || leadCMSUrl;
|
|
148
196
|
// If pulling specific content by ID or slug, use pull-content logic directly
|
|
149
197
|
if (targetId || targetSlug) {
|
|
150
|
-
console.log(`\nđ LeadCMS Pull -
|
|
198
|
+
console.log(`\nđ LeadCMS Pull - Pulling specific content\n`);
|
|
151
199
|
const { pullContent } = await import('./pull-content.js');
|
|
152
|
-
await pullContent({ targetId, targetSlug });
|
|
200
|
+
await pullContent({ targetId, targetSlug, remoteContext: remoteCtx });
|
|
153
201
|
return;
|
|
154
202
|
}
|
|
155
203
|
// Handle --reset flag: clear everything before pulling
|
|
156
204
|
if (reset) {
|
|
157
205
|
console.log(`\nđ LeadCMS Pull --reset - Fresh pull from scratch\n`);
|
|
158
|
-
await resetLocalState();
|
|
206
|
+
await resetLocalState(remoteCtx);
|
|
159
207
|
}
|
|
160
208
|
else {
|
|
161
|
-
console.log(`\nđ LeadCMS Pull -
|
|
209
|
+
console.log(`\nđ LeadCMS Pull - Pulling all content\n`);
|
|
162
210
|
}
|
|
163
211
|
// Check which entities are supported
|
|
164
|
-
const { content, media, comments, emailTemplates, settings } = await fetchAndCacheCMSConfig();
|
|
212
|
+
const { content, media, comments, emailTemplates, settings } = await fetchAndCacheCMSConfig(effectiveUrl);
|
|
165
213
|
if (!content && !media && !comments && !emailTemplates && !settings) {
|
|
166
214
|
console.log(`âď¸ No supported entities found - nothing to sync`);
|
|
167
215
|
return;
|
|
168
216
|
}
|
|
169
217
|
// Pull settings first â other content may depend on settings
|
|
170
218
|
if (settings) {
|
|
171
|
-
console.log(`\nâď¸
|
|
219
|
+
console.log(`\nâď¸ Pulling settings...`);
|
|
172
220
|
try {
|
|
173
221
|
const { pullSettings } = await import('./pull-settings.js');
|
|
174
222
|
await pullSettings({ reset: false });
|
|
@@ -178,26 +226,31 @@ async function main(options = {}) {
|
|
|
178
226
|
// Continue with other content - settings failure should not block the pull
|
|
179
227
|
}
|
|
180
228
|
}
|
|
181
|
-
// Import and run
|
|
182
|
-
const
|
|
183
|
-
if (content
|
|
184
|
-
console.log(`đ
|
|
185
|
-
const {
|
|
186
|
-
|
|
229
|
+
// Import and run pull functions for supported entities
|
|
230
|
+
const pullPromises = [];
|
|
231
|
+
if (content) {
|
|
232
|
+
console.log(`đ Pulling content...`);
|
|
233
|
+
const { pullLeadCMSContent } = await import('./pull-leadcms-content.js');
|
|
234
|
+
pullPromises.push(pullLeadCMSContent({ forceOverwrite: force, remoteContext: remoteCtx }));
|
|
235
|
+
}
|
|
236
|
+
if (media) {
|
|
237
|
+
console.log(`đźď¸ Pulling media...`);
|
|
238
|
+
const { pullLeadCMSMedia } = await import('./pull-leadcms-media.js');
|
|
239
|
+
pullPromises.push(pullLeadCMSMedia({ remoteContext: remoteCtx }));
|
|
187
240
|
}
|
|
188
241
|
if (comments) {
|
|
189
|
-
console.log(`đŹ
|
|
190
|
-
const {
|
|
191
|
-
|
|
242
|
+
console.log(`đŹ Pulling comments...`);
|
|
243
|
+
const { pullLeadCMSComments } = await import('./pull-leadcms-comments.js');
|
|
244
|
+
pullPromises.push(pullLeadCMSComments(remoteCtx));
|
|
192
245
|
}
|
|
193
246
|
if (emailTemplates) {
|
|
194
|
-
console.log(`đ§
|
|
195
|
-
const {
|
|
196
|
-
|
|
247
|
+
console.log(`đ§ Pulling email templates...`);
|
|
248
|
+
const { pullLeadCMSEmailTemplates } = await import('./pull-leadcms-email-templates.js');
|
|
249
|
+
pullPromises.push(pullLeadCMSEmailTemplates(remoteCtx));
|
|
197
250
|
}
|
|
198
|
-
// Wait for all
|
|
251
|
+
// Wait for all pulls to complete
|
|
199
252
|
try {
|
|
200
|
-
await Promise.all(
|
|
253
|
+
await Promise.all(pullPromises);
|
|
201
254
|
console.log(`\n⨠Pull completed successfully!\n`);
|
|
202
255
|
}
|
|
203
256
|
catch (error) {
|
|
@@ -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,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACrK,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"pull-all.js","sourceRoot":"","sources":["../../src/scripts/pull-all.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
* Pull only comments from LeadCMS (no content, no media)
|
|
4
4
|
*/
|
|
5
5
|
import "dotenv/config";
|
|
6
|
+
import type { RemoteContext } from "../lib/remote-context.js";
|
|
6
7
|
interface PullCommentsOptions {
|
|
7
8
|
/** When true, delete all local comment files and sync tokens before pulling, effectively doing a fresh pull. */
|
|
8
9
|
reset?: boolean;
|
|
10
|
+
/** Optional remote context for multi-remote sync token isolation. */
|
|
11
|
+
remoteContext?: RemoteContext;
|
|
9
12
|
}
|
|
10
13
|
/**
|
|
11
14
|
* Main function
|
|
@@ -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;AAOvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,UAAU,mBAAmB;IAC3B,gHAAgH;IAChH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qEAAqE;IACrE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;GAEG;AACH,iBAAe,IAAI,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCpE;AAKD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -6,19 +6,19 @@ import "dotenv/config";
|
|
|
6
6
|
import axios from "axios";
|
|
7
7
|
import { leadCMSUrl } from "./leadcms-helpers.js";
|
|
8
8
|
import { setCMSConfig, isCommentsSupported } from "../lib/cms-config-types.js";
|
|
9
|
-
import {
|
|
9
|
+
import { pullLeadCMSComments } from "./pull-leadcms-comments.js";
|
|
10
10
|
import { resetCommentsState } from "./pull-all.js";
|
|
11
11
|
import { logger } from "../lib/logger.js";
|
|
12
12
|
/**
|
|
13
13
|
* Main function
|
|
14
14
|
*/
|
|
15
15
|
async function main(options = {}) {
|
|
16
|
-
const { reset } = options;
|
|
16
|
+
const { reset, remoteContext } = options;
|
|
17
17
|
console.log(`\nđŹ LeadCMS Pull Comments\n`);
|
|
18
18
|
// Handle --reset flag: clear comments before pulling
|
|
19
19
|
if (reset) {
|
|
20
20
|
console.log(`đ Resetting comments state...\n`);
|
|
21
|
-
await resetCommentsState();
|
|
21
|
+
await resetCommentsState(remoteContext);
|
|
22
22
|
}
|
|
23
23
|
// Check if comments are supported
|
|
24
24
|
try {
|
|
@@ -39,7 +39,7 @@ async function main(options = {}) {
|
|
|
39
39
|
console.warn(`â ď¸ Assuming comments are supported (backward compatibility)\n`);
|
|
40
40
|
}
|
|
41
41
|
// Fetch comments
|
|
42
|
-
await
|
|
42
|
+
await pullLeadCMSComments(remoteContext);
|
|
43
43
|
console.log(`\n⨠Comments pull completed!\n`);
|
|
44
44
|
}
|
|
45
45
|
// Note: CLI execution moved to src/cli/bin/pull-comments.ts
|
|
@@ -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,
|
|
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,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAU1C;;GAEG;AACH,KAAK,UAAU,IAAI,CAAC,UAA+B,EAAE;IACnD,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAEzC,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,CAAC,aAAa,CAAC,CAAC;IAC1C,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,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAEzC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC;AAED,4DAA4D;AAC5D,+DAA+D;AAE/D,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import "dotenv/config";
|
|
6
6
|
import { type ContentOperations, type MatchOperation } from "./push-leadcms-content.js";
|
|
7
|
+
import type { RemoteContext } from "../lib/remote-context.js";
|
|
7
8
|
interface PullContentOptions {
|
|
8
9
|
targetId?: string;
|
|
9
10
|
targetSlug?: string;
|
|
@@ -12,6 +13,8 @@ interface PullContentOptions {
|
|
|
12
13
|
reset?: boolean;
|
|
13
14
|
/** When true, skip three-way merge and always overwrite local files with remote content. */
|
|
14
15
|
force?: boolean;
|
|
16
|
+
/** Remote context for multi-remote support. */
|
|
17
|
+
remoteContext?: RemoteContext;
|
|
15
18
|
}
|
|
16
19
|
interface PullTargetItem {
|
|
17
20
|
id: number;
|
|
@@ -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;AAUvB,OAAO,EAAiD,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"pull-content.d.ts","sourceRoot":"","sources":["../../src/scripts/pull-content.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;AAUvB,OAAO,EAAiD,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACvI,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gHAAgH;IAChH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4FAA4F;IAC5F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,iBAAiB,GAAG,gBAAgB,CAiC5F;AAoDD;;GAEG;AACH,iBAAe,IAAI,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FnE;AAKD,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC"}
|
|
@@ -6,7 +6,7 @@ import "dotenv/config";
|
|
|
6
6
|
import axios from "axios";
|
|
7
7
|
import { leadCMSUrl } from "./leadcms-helpers.js";
|
|
8
8
|
import { setCMSConfig, isContentSupported } from "../lib/cms-config-types.js";
|
|
9
|
-
import {
|
|
9
|
+
import { pullLeadCMSContent } from "./pull-leadcms-content.js";
|
|
10
10
|
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";
|
|
@@ -86,12 +86,13 @@ async function pullFilteredContent(targetId, targetSlug, statusFilter) {
|
|
|
86
86
|
* Main function
|
|
87
87
|
*/
|
|
88
88
|
async function main(options = {}) {
|
|
89
|
-
const { targetId, targetSlug, statusFilter, reset, force } = options;
|
|
89
|
+
const { targetId, targetSlug, statusFilter, reset, force, remoteContext: remoteCtx } = options;
|
|
90
|
+
const effectiveUrl = remoteCtx?.url || leadCMSUrl;
|
|
90
91
|
console.log(`\nđ LeadCMS Pull Content\n`);
|
|
91
92
|
// Handle --reset flag: clear content before pulling
|
|
92
93
|
if (reset) {
|
|
93
94
|
console.log(`đ Resetting content state...\n`);
|
|
94
|
-
await resetContentState();
|
|
95
|
+
await resetContentState(remoteCtx);
|
|
95
96
|
}
|
|
96
97
|
// If pulling targeted or filtered content
|
|
97
98
|
if (targetId || targetSlug || (statusFilter && statusFilter.length > 0)) {
|
|
@@ -145,7 +146,7 @@ async function main(options = {}) {
|
|
|
145
146
|
// Check if content is supported
|
|
146
147
|
try {
|
|
147
148
|
logger.verbose(`đ Checking CMS configuration...`);
|
|
148
|
-
const configUrl = new URL('/api/config',
|
|
149
|
+
const configUrl = new URL('/api/config', effectiveUrl).toString();
|
|
149
150
|
const response = await axios.get(configUrl, { timeout: 10000 });
|
|
150
151
|
if (response.data) {
|
|
151
152
|
setCMSConfig(response.data);
|
|
@@ -160,8 +161,8 @@ async function main(options = {}) {
|
|
|
160
161
|
console.warn(`â ď¸ Could not fetch CMS config: ${error.message}`);
|
|
161
162
|
console.warn(`â ď¸ Assuming content is supported (backward compatibility)\n`);
|
|
162
163
|
}
|
|
163
|
-
// Fetch content
|
|
164
|
-
await
|
|
164
|
+
// Fetch content only (no media)
|
|
165
|
+
await pullLeadCMSContent({ forceOverwrite: force, remoteContext: remoteCtx });
|
|
165
166
|
console.log(`\n⨠Content pull completed!\n`);
|
|
166
167
|
}
|
|
167
168
|
// Note: CLI execution moved to src/cli/bin/pull-content.ts
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"pull-content.js","sourceRoot":"","sources":["../../src/scripts/pull-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,13 @@
|
|
|
3
3
|
* Pull email templates from LeadCMS
|
|
4
4
|
*/
|
|
5
5
|
import "dotenv/config";
|
|
6
|
+
import type { RemoteContext } from "../lib/remote-context.js";
|
|
6
7
|
interface PullEmailTemplatesOptions {
|
|
7
8
|
targetId?: string;
|
|
8
9
|
/** When true, delete all local email template files and sync token before pulling. */
|
|
9
10
|
reset?: boolean;
|
|
11
|
+
/** Optional remote context for multi-remote sync token isolation. */
|
|
12
|
+
remoteContext?: RemoteContext;
|
|
10
13
|
}
|
|
11
14
|
declare function main(options?: PullEmailTemplatesOptions): Promise<void>;
|
|
12
15
|
export { main as pullEmailTemplates };
|
|
@@ -1 +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;
|
|
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;AAOvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,UAAU,yBAAyB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qEAAqE;IACrE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,iBAAe,IAAI,CAAC,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CA4E1E;AAED,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,CAAC"}
|
|
@@ -6,15 +6,15 @@ import "dotenv/config";
|
|
|
6
6
|
import axios from "axios";
|
|
7
7
|
import { leadCMSUrl, leadCMSApiKey, EMAIL_TEMPLATES_DIR } from "./leadcms-helpers.js";
|
|
8
8
|
import { setCMSConfig, isEmailTemplatesSupported } from "../lib/cms-config-types.js";
|
|
9
|
-
import {
|
|
9
|
+
import { pullLeadCMSEmailTemplates, buildEmailTemplateIdIndex, deleteEmailTemplateFilesById, saveEmailTemplateFile } from "./pull-leadcms-email-templates.js";
|
|
10
10
|
import { resetEmailTemplatesState } from "./pull-all.js";
|
|
11
11
|
import { logger } from "../lib/logger.js";
|
|
12
12
|
async function main(options = {}) {
|
|
13
|
-
const { targetId, reset } = options;
|
|
13
|
+
const { targetId, reset, remoteContext } = options;
|
|
14
14
|
console.log(`\nđ§ LeadCMS Pull Email Templates\n`);
|
|
15
15
|
if (reset) {
|
|
16
16
|
console.log(`đ Resetting email templates state...\n`);
|
|
17
|
-
await resetEmailTemplatesState();
|
|
17
|
+
await resetEmailTemplatesState(remoteContext);
|
|
18
18
|
}
|
|
19
19
|
if (targetId) {
|
|
20
20
|
const id = parseInt(targetId, 10);
|
|
@@ -72,7 +72,7 @@ async function main(options = {}) {
|
|
|
72
72
|
console.warn(`â ď¸ Could not fetch CMS config: ${error.message}`);
|
|
73
73
|
console.warn(`â ď¸ Assuming email templates are supported (backward compatibility)\n`);
|
|
74
74
|
}
|
|
75
|
-
await
|
|
75
|
+
await pullLeadCMSEmailTemplates(remoteContext);
|
|
76
76
|
console.log(`\n⨠Email templates pull completed!\n`);
|
|
77
77
|
}
|
|
78
78
|
export { main as pullEmailTemplates };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-email-templates.js","sourceRoot":"","sources":["../../src/scripts/pull-email-templates.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pull-email-templates.js","sourceRoot":"","sources":["../../src/scripts/pull-email-templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
2
|
import type { Comment, CommentSyncResult, StoredComment } from "../lib/comment-types.js";
|
|
3
|
+
import { type RemoteContext } from "../lib/remote-context.js";
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
+
* Pull comments from LeadCMS sync endpoint
|
|
5
6
|
* Handles pagination automatically
|
|
6
7
|
*/
|
|
7
|
-
declare function
|
|
8
|
+
declare function pullCommentSync(syncToken?: string): Promise<CommentSyncResult>;
|
|
8
9
|
/**
|
|
9
10
|
* Convert Comment to StoredComment by removing nested objects
|
|
10
11
|
*/
|
|
@@ -29,8 +30,8 @@ declare function groupCommentsByEntityAndLanguage(comments: Comment[]): Map<stri
|
|
|
29
30
|
/**
|
|
30
31
|
* Main function to sync comments from LeadCMS
|
|
31
32
|
*/
|
|
32
|
-
export declare function main(): Promise<void>;
|
|
33
|
-
export { main as
|
|
34
|
-
export {
|
|
33
|
+
export declare function main(remoteCtx?: RemoteContext): Promise<void>;
|
|
34
|
+
export { main as pullLeadCMSComments };
|
|
35
|
+
export { pullCommentSync, loadCommentsForEntity, saveCommentsForEntity, groupCommentsByEntityAndLanguage, toStoredComment, deleteComment, };
|
|
35
36
|
export type { CommentSyncResult };
|
|
36
|
-
//# sourceMappingURL=
|
|
37
|
+
//# sourceMappingURL=pull-leadcms-comments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-leadcms-comments.d.ts","sourceRoot":"","sources":["../../src/scripts/pull-leadcms-comments.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAQvB,OAAO,KAAK,EACV,OAAO,EAEP,iBAAiB,EACjB,aAAa,EACd,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA4E7E;;;GAGG;AACH,iBAAe,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoF7E;AAED;;GAEG;AACH,iBAAS,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAGxD;AAqBD;;GAEG;AACH,iBAAe,qBAAqB,CAClC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,EAAE,CAAC,CAS1B;AAED;;GAEG;AACH,iBAAe,qBAAqB,CAClC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;;GAGG;AACH,iBAAe,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC7D;AAgCD;;GAEG;AACH,iBAAS,gCAAgC,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAYrF;AA0BD;;GAEG;AACH,wBAAsB,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiGnE;AAGD,OAAO,EAAE,IAAI,IAAI,mBAAmB,EAAE,CAAC;AAMvC,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,gCAAgC,EAChC,eAAe,EACf,aAAa,GACd,CAAC;AAGF,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
|