@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
|
@@ -6,6 +6,7 @@ import { leadCMSUrl, leadCMSApiKey, } from "./leadcms-helpers.js";
|
|
|
6
6
|
import { getConfig } from "../lib/config.js";
|
|
7
7
|
import { isValidLocaleCode } from "../lib/locale-utils.js";
|
|
8
8
|
import { logger } from "../lib/logger.js";
|
|
9
|
+
import { syncTokenPath } from "../lib/remote-context.js";
|
|
9
10
|
// Load config to get commentsDir
|
|
10
11
|
const config = getConfig();
|
|
11
12
|
const COMMENTS_DIR = path.resolve(config.commentsDir);
|
|
@@ -17,8 +18,28 @@ const LEGACY_COMMENT_SYNC_TOKEN_PATH = path.join(path.dirname(COMMENTS_DIR), "co
|
|
|
17
18
|
/**
|
|
18
19
|
* Read the last comment sync token from disk.
|
|
19
20
|
* Checks new location first, then falls back to legacy for migration.
|
|
21
|
+
* When remoteCtx is provided, reads from the remote-specific state directory.
|
|
20
22
|
*/
|
|
21
|
-
async function readCommentSyncToken() {
|
|
23
|
+
async function readCommentSyncToken(remoteCtx) {
|
|
24
|
+
if (remoteCtx) {
|
|
25
|
+
const tokenPath = syncTokenPath(remoteCtx, "comments");
|
|
26
|
+
try {
|
|
27
|
+
const token = (await fs.readFile(tokenPath, "utf8")).trim();
|
|
28
|
+
if (token)
|
|
29
|
+
return { token, migrated: false };
|
|
30
|
+
}
|
|
31
|
+
catch { /* not found */ }
|
|
32
|
+
// Migration: check old single-remote path and move to per-remote path
|
|
33
|
+
try {
|
|
34
|
+
const legacyToken = (await fs.readFile(COMMENT_SYNC_TOKEN_PATH, "utf8")).trim();
|
|
35
|
+
if (legacyToken) {
|
|
36
|
+
logger.verbose(`[SYNC] Migrating comment sync token to remote "${remoteCtx.name}"`);
|
|
37
|
+
return { token: legacyToken, migrated: true };
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch { /* not found */ }
|
|
41
|
+
return { token: undefined, migrated: false };
|
|
42
|
+
}
|
|
22
43
|
try {
|
|
23
44
|
const token = (await fs.readFile(COMMENT_SYNC_TOKEN_PATH, "utf8")).trim();
|
|
24
45
|
if (token)
|
|
@@ -36,9 +57,16 @@ async function readCommentSyncToken() {
|
|
|
36
57
|
return { token: undefined, migrated: false };
|
|
37
58
|
}
|
|
38
59
|
/**
|
|
39
|
-
* Write the comment sync token to disk
|
|
60
|
+
* Write the comment sync token to disk.
|
|
61
|
+
* When remoteCtx is provided, writes to the remote-specific state directory.
|
|
40
62
|
*/
|
|
41
|
-
async function writeCommentSyncToken(token) {
|
|
63
|
+
async function writeCommentSyncToken(token, remoteCtx) {
|
|
64
|
+
if (remoteCtx) {
|
|
65
|
+
const tokenPath = syncTokenPath(remoteCtx, "comments");
|
|
66
|
+
await fs.mkdir(path.dirname(tokenPath), { recursive: true });
|
|
67
|
+
await fs.writeFile(tokenPath, token, "utf8");
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
42
70
|
await fs.mkdir(path.dirname(COMMENT_SYNC_TOKEN_PATH), { recursive: true });
|
|
43
71
|
await fs.writeFile(COMMENT_SYNC_TOKEN_PATH, token, "utf8");
|
|
44
72
|
}
|
|
@@ -52,12 +80,12 @@ async function cleanupLegacyCommentSyncToken() {
|
|
|
52
80
|
catch { /* not found ā ok */ }
|
|
53
81
|
}
|
|
54
82
|
/**
|
|
55
|
-
*
|
|
83
|
+
* Pull comments from LeadCMS sync endpoint
|
|
56
84
|
* Handles pagination automatically
|
|
57
85
|
*/
|
|
58
|
-
async function
|
|
59
|
-
logger.verbose(`[
|
|
60
|
-
logger.verbose(`[
|
|
86
|
+
async function pullCommentSync(syncToken) {
|
|
87
|
+
logger.verbose(`[PULL_COMMENT_SYNC] Starting with syncToken: ${syncToken || "NONE"}`);
|
|
88
|
+
logger.verbose(`[PULL_COMMENT_SYNC] Pulling public comments (no authentication)`);
|
|
61
89
|
let allItems = [];
|
|
62
90
|
let allDeleted = [];
|
|
63
91
|
let token = syncToken || "";
|
|
@@ -67,7 +95,7 @@ async function fetchCommentSync(syncToken) {
|
|
|
67
95
|
const url = new URL("/api/comments/sync", leadCMSUrl);
|
|
68
96
|
url.searchParams.set("filter[limit]", "100");
|
|
69
97
|
url.searchParams.set("syncToken", token);
|
|
70
|
-
logger.verbose(`[
|
|
98
|
+
logger.verbose(`[PULL_COMMENT_SYNC] Page ${page}, URL: ${url.toString()}`);
|
|
71
99
|
try {
|
|
72
100
|
// SECURITY: Never send API key for read operations
|
|
73
101
|
// Comments sync should only return public comments
|
|
@@ -75,21 +103,21 @@ async function fetchCommentSync(syncToken) {
|
|
|
75
103
|
headers: {},
|
|
76
104
|
});
|
|
77
105
|
if (res.status === 204) {
|
|
78
|
-
logger.verbose(`[
|
|
106
|
+
logger.verbose(`[PULL_COMMENT_SYNC] Got 204 No Content - ending sync`);
|
|
79
107
|
break;
|
|
80
108
|
}
|
|
81
109
|
const data = res.data;
|
|
82
|
-
logger.verbose(`[
|
|
110
|
+
logger.verbose(`[PULL_COMMENT_SYNC] Page ${page} - Got ${data.items?.length || 0} items, ${data.deleted?.length || 0} deleted`);
|
|
83
111
|
if (data.items && Array.isArray(data.items))
|
|
84
112
|
allItems.push(...data.items);
|
|
85
113
|
if (data.deleted && Array.isArray(data.deleted)) {
|
|
86
114
|
allDeleted.push(...data.deleted);
|
|
87
115
|
}
|
|
88
116
|
const newSyncToken = res.headers["x-next-sync-token"] || token;
|
|
89
|
-
logger.verbose(`[
|
|
117
|
+
logger.verbose(`[PULL_COMMENT_SYNC] Next sync token: ${newSyncToken}`);
|
|
90
118
|
if (!newSyncToken || newSyncToken === token) {
|
|
91
119
|
nextSyncToken = newSyncToken || token;
|
|
92
|
-
logger.verbose(`[
|
|
120
|
+
logger.verbose(`[PULL_COMMENT_SYNC] No new sync token - ending sync`);
|
|
93
121
|
break;
|
|
94
122
|
}
|
|
95
123
|
nextSyncToken = newSyncToken;
|
|
@@ -97,7 +125,7 @@ async function fetchCommentSync(syncToken) {
|
|
|
97
125
|
page++;
|
|
98
126
|
}
|
|
99
127
|
catch (error) {
|
|
100
|
-
console.error(`[
|
|
128
|
+
console.error(`[PULL_COMMENT_SYNC] Failed on page ${page}:`, error.message);
|
|
101
129
|
// Provide helpful error messages based on status code
|
|
102
130
|
if (error.response?.status === 403) {
|
|
103
131
|
console.error(`\nā Access Denied (403 Forbidden)`);
|
|
@@ -120,7 +148,7 @@ async function fetchCommentSync(syncToken) {
|
|
|
120
148
|
throw error;
|
|
121
149
|
}
|
|
122
150
|
}
|
|
123
|
-
logger.verbose(`[
|
|
151
|
+
logger.verbose(`[PULL_COMMENT_SYNC] Completed - Total items: ${allItems.length}, deleted: ${allDeleted.length}`);
|
|
124
152
|
return {
|
|
125
153
|
items: allItems,
|
|
126
154
|
deleted: allDeleted,
|
|
@@ -270,7 +298,7 @@ function groupCommentsByEntityAndLanguage(comments) {
|
|
|
270
298
|
return grouped;
|
|
271
299
|
}
|
|
272
300
|
/**
|
|
273
|
-
*
|
|
301
|
+
* Check CMS config to check if comments are supported
|
|
274
302
|
*/
|
|
275
303
|
async function fetchCMSConfigForEntity() {
|
|
276
304
|
try {
|
|
@@ -284,15 +312,15 @@ async function fetchCMSConfigForEntity() {
|
|
|
284
312
|
}
|
|
285
313
|
}
|
|
286
314
|
catch (error) {
|
|
287
|
-
console.warn(`[
|
|
288
|
-
console.warn(`[
|
|
315
|
+
console.warn(`[PULL_COMMENT_SYNC] Could not fetch CMS config: ${error.message}`);
|
|
316
|
+
console.warn(`[PULL_COMMENT_SYNC] Assuming comments are supported (backward compatibility)`);
|
|
289
317
|
}
|
|
290
318
|
return false;
|
|
291
319
|
}
|
|
292
320
|
/**
|
|
293
321
|
* Main function to sync comments from LeadCMS
|
|
294
322
|
*/
|
|
295
|
-
export async function main() {
|
|
323
|
+
export async function main(remoteCtx) {
|
|
296
324
|
logger.verbose(`[ENV] LeadCMS URL: ${leadCMSUrl}`);
|
|
297
325
|
logger.verbose(`[ENV] LeadCMS API Key: ${leadCMSApiKey ? 'CONFIGURED (ignored for anonymous comment pull)' : 'NOT_SET'}`);
|
|
298
326
|
logger.verbose(`[ENV] Comments Dir: ${COMMENTS_DIR}`);
|
|
@@ -305,22 +333,22 @@ export async function main() {
|
|
|
305
333
|
}
|
|
306
334
|
logger.verbose(`ā
Comments supported - proceeding with sync\n`);
|
|
307
335
|
await fs.mkdir(COMMENTS_DIR, { recursive: true });
|
|
308
|
-
const { token: lastSyncToken, migrated: commentTokenMigrated } = await readCommentSyncToken();
|
|
336
|
+
const { token: lastSyncToken, migrated: commentTokenMigrated } = await readCommentSyncToken(remoteCtx);
|
|
309
337
|
let items = [], deleted = [], nextSyncToken = "";
|
|
310
338
|
try {
|
|
311
339
|
if (lastSyncToken) {
|
|
312
340
|
logger.verbose(`Syncing comments from LeadCMS using sync token: ${lastSyncToken}`);
|
|
313
|
-
({ items, deleted, nextSyncToken } = await
|
|
341
|
+
({ items, deleted, nextSyncToken } = await pullCommentSync(lastSyncToken));
|
|
314
342
|
}
|
|
315
343
|
else {
|
|
316
|
-
logger.verbose("No comment sync token found. Doing full
|
|
317
|
-
({ items, deleted, nextSyncToken } = await
|
|
344
|
+
logger.verbose("No comment sync token found. Doing full pull from LeadCMS...");
|
|
345
|
+
({ items, deleted, nextSyncToken } = await pullCommentSync(undefined));
|
|
318
346
|
}
|
|
319
347
|
}
|
|
320
348
|
catch (error) {
|
|
321
349
|
console.error(`\nā Failed to sync comments from LeadCMS`);
|
|
322
350
|
console.error(` Error: ${error.message}`);
|
|
323
|
-
// Error details are already logged by
|
|
351
|
+
// Error details are already logged by pullCommentSync
|
|
324
352
|
// Just provide a summary here
|
|
325
353
|
if (error.response?.status === 403 || error.response?.status === 401) {
|
|
326
354
|
console.error(`\nš” This may be a LeadCMS configuration issue.`);
|
|
@@ -328,7 +356,7 @@ export async function main() {
|
|
|
328
356
|
}
|
|
329
357
|
throw error;
|
|
330
358
|
}
|
|
331
|
-
console.log(`\x1b[
|
|
359
|
+
console.log(`\x1b[32mPulled ${items.length} comment items, ${deleted.length} deleted.\x1b[0m`);
|
|
332
360
|
// Process updated/new comments
|
|
333
361
|
if (items.length > 0) {
|
|
334
362
|
const groupedComments = groupCommentsByEntityAndLanguage(items);
|
|
@@ -358,7 +386,7 @@ export async function main() {
|
|
|
358
386
|
}
|
|
359
387
|
// Save new sync token
|
|
360
388
|
if (nextSyncToken) {
|
|
361
|
-
await writeCommentSyncToken(nextSyncToken);
|
|
389
|
+
await writeCommentSyncToken(nextSyncToken, remoteCtx);
|
|
362
390
|
logger.verbose(`Comment sync token updated: ${nextSyncToken}`);
|
|
363
391
|
}
|
|
364
392
|
// Clean up legacy sync token after successful migration
|
|
@@ -369,9 +397,9 @@ export async function main() {
|
|
|
369
397
|
console.log(`\nComment sync completed successfully.`);
|
|
370
398
|
}
|
|
371
399
|
// Export the main function so it can be imported by other modules
|
|
372
|
-
export { main as
|
|
400
|
+
export { main as pullLeadCMSComments };
|
|
373
401
|
// Note: CLI execution moved to CLI entry points
|
|
374
402
|
// This file now only exports the function for programmatic use
|
|
375
403
|
// Export helper functions for testing
|
|
376
|
-
export {
|
|
377
|
-
//# sourceMappingURL=
|
|
404
|
+
export { pullCommentSync, loadCommentsForEntity, saveCommentsForEntity, groupCommentsByEntityAndLanguage, toStoredComment, deleteComment, };
|
|
405
|
+
//# sourceMappingURL=pull-leadcms-comments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-leadcms-comments.js","sourceRoot":"","sources":["../../src/scripts/pull-leadcms-comments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
2
|
import { ContentItem } from "./leadcms-helpers.js";
|
|
3
|
+
import type { RemoteContext } from "../lib/remote-context.js";
|
|
3
4
|
/**
|
|
4
|
-
* Options for
|
|
5
|
+
* Options for pullLeadCMSContent.
|
|
5
6
|
*/
|
|
6
|
-
export interface
|
|
7
|
+
export interface PullContentOptions {
|
|
7
8
|
/**
|
|
8
9
|
* When true, skip three-way merge logic and always overwrite local files
|
|
9
10
|
* with remote content. This is used in watch mode (SSE watcher) to prevent
|
|
10
11
|
* merge conflicts caused by rapid sequential/concurrent syncs.
|
|
11
12
|
*/
|
|
12
13
|
forceOverwrite?: boolean;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
scopeUid: string;
|
|
20
|
-
name: string;
|
|
14
|
+
/**
|
|
15
|
+
* Remote context for multi-remote support. When provided, sync tokens and
|
|
16
|
+
* API calls use this remote's URL and per-remote state directory.
|
|
17
|
+
* When omitted, falls back to single-remote behavior (backward compat).
|
|
18
|
+
*/
|
|
19
|
+
remoteContext?: RemoteContext;
|
|
21
20
|
}
|
|
22
21
|
interface ContentSyncResult {
|
|
23
22
|
items: ContentItem[];
|
|
@@ -25,11 +24,6 @@ interface ContentSyncResult {
|
|
|
25
24
|
baseItems: Record<string, ContentItem>;
|
|
26
25
|
nextSyncToken: string;
|
|
27
26
|
}
|
|
28
|
-
interface MediaSyncResult {
|
|
29
|
-
items: MediaItem[];
|
|
30
|
-
deleted: MediaDeletedItem[];
|
|
31
|
-
nextSyncToken: string;
|
|
32
|
-
}
|
|
33
27
|
/**
|
|
34
28
|
* A map from content ID (as string) to an array of file paths containing that ID.
|
|
35
29
|
*/
|
|
@@ -59,9 +53,9 @@ declare function deleteContentFilesById(index: ContentIdIndex, idStr: string): P
|
|
|
59
53
|
* to avoid repeated filesystem walks.
|
|
60
54
|
*/
|
|
61
55
|
declare function findAndDeleteContentFile(dir: string, idStr: string): Promise<void>;
|
|
62
|
-
declare function main(options?:
|
|
63
|
-
export { main as
|
|
56
|
+
declare function main(options?: PullContentOptions): Promise<void>;
|
|
57
|
+
export { main as pullLeadCMSContent };
|
|
64
58
|
export { findAndDeleteContentFile };
|
|
65
59
|
export { buildContentIdIndex, deleteContentFilesById, extractContentId };
|
|
66
|
-
export type { ContentSyncResult
|
|
67
|
-
//# sourceMappingURL=
|
|
60
|
+
export type { ContentSyncResult };
|
|
61
|
+
//# sourceMappingURL=pull-leadcms-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-leadcms-content.d.ts","sourceRoot":"","sources":["../../src/scripts/pull-leadcms-content.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAIvB,OAAO,EAML,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAUD,UAAU,iBAAiB;IACzB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;CACvB;AA+JD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAEnD;;;;GAIG;AACH,iBAAe,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAqCvE;AAED;;;;GAIG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAU7D;AAED;;;GAGG;AACH,iBAAe,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAezF;AAED;;;;;;GAMG;AACH,iBAAe,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BjF;AAED,iBAAe,IAAI,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgPnE;AAGD,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,CAAC;AAGtC,OAAO,EAAE,wBAAwB,EAAE,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,CAAC;AAMzE,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
|