@leadcms/sdk 3.3.12 → 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/README.md +2 -1
- package/dist/cli/bin/content-status-args.d.ts +7 -0
- package/dist/cli/bin/content-status-args.d.ts.map +1 -0
- package/dist/cli/bin/content-status-args.js +27 -0
- package/dist/cli/bin/content-status-args.js.map +1 -0
- 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 +6 -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 +12 -1
- package/dist/cli/bin/push-all.js.map +1 -1
- package/dist/cli/bin/push-comments.d.ts +6 -0
- package/dist/cli/bin/push-comments.d.ts.map +1 -0
- package/dist/cli/bin/push-comments.js +35 -0
- package/dist/cli/bin/push-comments.js.map +1 -0
- package/dist/cli/bin/push-content.js +7 -4
- 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 +67 -4
- package/dist/cli/bin/status-all.js.map +1 -1
- package/dist/cli/bin/status-comments.d.ts +6 -0
- package/dist/cli/bin/status-comments.d.ts.map +1 -0
- package/dist/cli/bin/status-comments.js +30 -0
- package/dist/cli/bin/status-comments.js.map +1 -0
- package/dist/cli/bin/status-content.js +6 -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 +65 -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/cms.d.ts +7 -7
- package/dist/lib/cms.d.ts.map +1 -1
- package/dist/lib/cms.js +41 -7
- package/dist/lib/cms.js.map +1 -1
- package/dist/lib/comment-types.d.ts +4 -0
- package/dist/lib/comment-types.d.ts.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 -8
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/content-merge.d.ts.map +1 -1
- package/dist/lib/content-merge.js +102 -19
- package/dist/lib/content-merge.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 +47 -1
- package/dist/lib/data-service.d.ts.map +1 -1
- package/dist/lib/data-service.js +143 -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 +14 -0
- package/dist/scripts/pull-content.d.ts.map +1 -1
- package/dist/scripts/pull-content.js +85 -8
- 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} +10 -4
- package/dist/scripts/pull-leadcms-comments.d.ts.map +1 -0
- package/dist/scripts/{fetch-leadcms-comments.js → pull-leadcms-comments.js} +62 -32
- 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.d.ts +48 -0
- package/dist/scripts/push-comments.d.ts.map +1 -0
- package/dist/scripts/push-comments.js +433 -0
- package/dist/scripts/push-comments.js.map +1 -0
- 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 +24 -8
- package/dist/scripts/push-leadcms-content.d.ts.map +1 -1
- package/dist/scripts/push-leadcms-content.js +192 -56
- 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,4 +1,5 @@
|
|
|
1
1
|
import { type UserIdentity } from "../lib/data-service.js";
|
|
2
|
+
import type { RemoteContext } from "../lib/remote-context.js";
|
|
2
3
|
interface ContentItem {
|
|
3
4
|
id?: number;
|
|
4
5
|
slug: string;
|
|
@@ -9,14 +10,14 @@ interface ContentItem {
|
|
|
9
10
|
body?: string;
|
|
10
11
|
[key: string]: any;
|
|
11
12
|
}
|
|
12
|
-
export declare
|
|
13
|
-
export declare
|
|
13
|
+
export declare let leadCMSUrl: string;
|
|
14
|
+
export declare let leadCMSApiKey: string | undefined;
|
|
14
15
|
export declare const defaultLanguage: string;
|
|
15
16
|
export declare const CONTENT_DIR: string;
|
|
16
17
|
export declare const MEDIA_DIR: string;
|
|
17
18
|
export declare const EMAIL_TEMPLATES_DIR: string;
|
|
18
19
|
export declare const SETTINGS_DIR: string;
|
|
19
|
-
export declare function fetchContentTypes(): Promise<Record<string, string>>;
|
|
20
|
+
export declare function fetchContentTypes(baseUrl?: string): Promise<Record<string, string>>;
|
|
20
21
|
export declare function extractMediaUrlsFromContent(content: ContentItem): string[];
|
|
21
22
|
export declare function downloadMediaFileDirect(mediaUrl: string, destPath: string, leadCMSUrl: string, leadCMSApiKey?: string): Promise<boolean>;
|
|
22
23
|
export type { ContentItem };
|
|
@@ -29,15 +30,25 @@ export type { ContentItem };
|
|
|
29
30
|
*
|
|
30
31
|
* Call this at the start of every CLI command so the user always sees *who*
|
|
31
32
|
* is making the requests.
|
|
33
|
+
*
|
|
34
|
+
* @param overrideApiKey Optional API key override (e.g., from RemoteContext).
|
|
35
|
+
* When provided, this is used instead of the module-level key.
|
|
32
36
|
*/
|
|
33
|
-
export declare function resolveIdentity(): Promise<UserIdentity | null>;
|
|
37
|
+
export declare function resolveIdentity(overrideApiKey?: string): Promise<UserIdentity | null>;
|
|
34
38
|
/**
|
|
35
39
|
* Require an authenticated user. Calls resolveIdentity() and exits if
|
|
36
40
|
* the user is anonymous (no API key).
|
|
37
41
|
*
|
|
38
42
|
* Use this for write operations (push) that cannot run anonymously.
|
|
43
|
+
*
|
|
44
|
+
* @param overrideApiKey Optional API key override (e.g., from RemoteContext).
|
|
45
|
+
*/
|
|
46
|
+
export declare function requireAuthenticatedUser(overrideApiKey?: string): Promise<UserIdentity>;
|
|
47
|
+
/**
|
|
48
|
+
* Set up the data service for a specific RemoteContext and resolve identity.
|
|
49
|
+
* Use at the start of CLI commands when --remote is specified.
|
|
39
50
|
*/
|
|
40
|
-
export declare function
|
|
51
|
+
export declare function configureDataServiceForRemote(ctx: RemoteContext): void;
|
|
41
52
|
/**
|
|
42
53
|
* @deprecated Use requireAuthenticatedUser() instead – it also verifies the
|
|
43
54
|
* token is valid by calling /api/users/me before proceeding.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leadcms-helpers.d.ts","sourceRoot":"","sources":["../../src/scripts/leadcms-helpers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"leadcms-helpers.d.ts","sourceRoot":"","sources":["../../src/scripts/leadcms-helpers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAQ9D,UAAU,WAAW;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAQD,eAAO,IAAI,UAAU,QAAa,CAAC;AACnC,eAAO,IAAI,aAAa,oBAAgB,CAAC;AACzC,eAAO,MAAM,eAAe,QAAyB,CAAC;AACtD,eAAO,MAAM,WAAW,QAAkC,CAAC;AAC3D,eAAO,MAAM,SAAS,QAAgC,CAAC;AACvD,eAAO,MAAM,mBAAmB,QAAyC,CAAC;AAC1E,eAAO,MAAM,YAAY,QAA0D,CAAC;AAIpF,wBAAsB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAwBzF;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE,CAoB1E;AAGD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC,CA+BlB;AAGD,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAyB3F;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAY7F;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAUtE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAQ1C"}
|
|
@@ -7,8 +7,10 @@ import { leadCMSDataService } from "../lib/data-service.js";
|
|
|
7
7
|
// Use the main configuration system instead of duplicating logic
|
|
8
8
|
const config = getConfig();
|
|
9
9
|
// Use configuration with environment variable fallbacks
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
// These are `let` so that configureDataServiceForRemote() can update them
|
|
11
|
+
// at runtime for multi-remote setups (ESM live bindings propagate to importers).
|
|
12
|
+
export let leadCMSUrl = config.url;
|
|
13
|
+
export let leadCMSApiKey = config.apiKey;
|
|
12
14
|
export const defaultLanguage = config.defaultLanguage;
|
|
13
15
|
export const CONTENT_DIR = path.resolve(config.contentDir);
|
|
14
16
|
export const MEDIA_DIR = path.resolve(config.mediaDir);
|
|
@@ -16,10 +18,11 @@ export const EMAIL_TEMPLATES_DIR = path.resolve(config.emailTemplatesDir);
|
|
|
16
18
|
export const SETTINGS_DIR = path.resolve(config.settingsDir || ".leadcms/settings");
|
|
17
19
|
// Fetch content types dynamically from LeadCMS API to build typeMap
|
|
18
20
|
// Content types are automatically detected and don't need to be configured
|
|
19
|
-
export async function fetchContentTypes() {
|
|
21
|
+
export async function fetchContentTypes(baseUrl) {
|
|
22
|
+
const effectiveUrl = baseUrl || leadCMSUrl;
|
|
20
23
|
logger.verbose(`[LeadCMS] Fetching content types from API...`);
|
|
21
24
|
logger.verbose(`[LeadCMS] Fetching public content types (no authentication)`);
|
|
22
|
-
const url = new URL("/api/content-types",
|
|
25
|
+
const url = new URL("/api/content-types", effectiveUrl);
|
|
23
26
|
url.searchParams.set("filter[limit]", "100");
|
|
24
27
|
try {
|
|
25
28
|
// SECURITY: Never send API key for read operations
|
|
@@ -93,9 +96,13 @@ export async function downloadMediaFileDirect(mediaUrl, destPath, leadCMSUrl, le
|
|
|
93
96
|
*
|
|
94
97
|
* Call this at the start of every CLI command so the user always sees *who*
|
|
95
98
|
* is making the requests.
|
|
99
|
+
*
|
|
100
|
+
* @param overrideApiKey Optional API key override (e.g., from RemoteContext).
|
|
101
|
+
* When provided, this is used instead of the module-level key.
|
|
96
102
|
*/
|
|
97
|
-
export async function resolveIdentity() {
|
|
98
|
-
|
|
103
|
+
export async function resolveIdentity(overrideApiKey) {
|
|
104
|
+
const effectiveApiKey = overrideApiKey ?? leadCMSApiKey;
|
|
105
|
+
if (!effectiveApiKey) {
|
|
99
106
|
console.log('👤 Running in anonymous mode');
|
|
100
107
|
return null;
|
|
101
108
|
}
|
|
@@ -123,9 +130,11 @@ export async function resolveIdentity() {
|
|
|
123
130
|
* the user is anonymous (no API key).
|
|
124
131
|
*
|
|
125
132
|
* Use this for write operations (push) that cannot run anonymously.
|
|
133
|
+
*
|
|
134
|
+
* @param overrideApiKey Optional API key override (e.g., from RemoteContext).
|
|
126
135
|
*/
|
|
127
|
-
export async function requireAuthenticatedUser() {
|
|
128
|
-
const identity = await resolveIdentity();
|
|
136
|
+
export async function requireAuthenticatedUser(overrideApiKey) {
|
|
137
|
+
const identity = await resolveIdentity(overrideApiKey);
|
|
129
138
|
if (!identity) {
|
|
130
139
|
console.error('\n❌ This operation requires authentication.');
|
|
131
140
|
console.error('\n💡 To authenticate:');
|
|
@@ -135,6 +144,20 @@ export async function requireAuthenticatedUser() {
|
|
|
135
144
|
}
|
|
136
145
|
return identity;
|
|
137
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Set up the data service for a specific RemoteContext and resolve identity.
|
|
149
|
+
* Use at the start of CLI commands when --remote is specified.
|
|
150
|
+
*/
|
|
151
|
+
export function configureDataServiceForRemote(ctx) {
|
|
152
|
+
leadCMSDataService.configureForRemote(ctx.url, ctx.apiKey);
|
|
153
|
+
// Also update module-level vars so scripts that import leadCMSUrl / leadCMSApiKey
|
|
154
|
+
// directly (pull-settings, fetch-comments, fetch-email-templates, push-settings)
|
|
155
|
+
// pick up the correct values via ESM live bindings.
|
|
156
|
+
leadCMSUrl = ctx.url;
|
|
157
|
+
if (ctx.apiKey !== undefined) {
|
|
158
|
+
leadCMSApiKey = ctx.apiKey;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
138
161
|
/**
|
|
139
162
|
* @deprecated Use requireAuthenticatedUser() instead – it also verifies the
|
|
140
163
|
* token is valid by calling /api/users/me before proceeding.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leadcms-helpers.js","sourceRoot":"","sources":["../../src/scripts/leadcms-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAsB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAqB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"leadcms-helpers.js","sourceRoot":"","sources":["../../src/scripts/leadcms-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* LeadCMS Login - Interactive token-based authentication
|
|
3
3
|
*/
|
|
4
|
+
declare function parseRemoteArg(args: string[]): string | undefined;
|
|
5
|
+
declare function remoteApiKeyEnvName(remoteName: string): string;
|
|
4
6
|
/**
|
|
5
7
|
* Interactive login flow
|
|
6
8
|
*/
|
|
7
|
-
declare function main(): Promise<void>;
|
|
9
|
+
declare function main(args?: string[]): Promise<void>;
|
|
8
10
|
export { main as loginLeadCMS };
|
|
11
|
+
export { parseRemoteArg, remoteApiKeyEnvName };
|
|
9
12
|
//# sourceMappingURL=login-leadcms.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login-leadcms.d.ts","sourceRoot":"","sources":["../../src/scripts/login-leadcms.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"login-leadcms.d.ts","sourceRoot":"","sources":["../../src/scripts/login-leadcms.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6BH,iBAAS,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAY1D;AAED,iBAAS,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,iBAAe,IAAI,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA0EtD;AAKD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { config as dotenvConfig } from 'dotenv';
|
|
5
5
|
import { getConfig } from '../lib/config.js';
|
|
6
6
|
import { authenticate, saveTokenToEnv } from '../lib/auth.js';
|
|
7
|
+
import { resolveRemote } from '../lib/remote-context.js';
|
|
7
8
|
import axios from 'axios';
|
|
8
9
|
import * as readline from 'readline';
|
|
9
10
|
// Load environment variables from .env file
|
|
@@ -23,18 +24,45 @@ function prompt(question) {
|
|
|
23
24
|
});
|
|
24
25
|
});
|
|
25
26
|
}
|
|
27
|
+
function parseRemoteArg(args) {
|
|
28
|
+
const idx = args.findIndex(arg => arg === '--remote' || arg === '-r');
|
|
29
|
+
if (idx === -1) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
const name = args[idx + 1];
|
|
33
|
+
if (!name || name.startsWith('-')) {
|
|
34
|
+
throw new Error('--remote requires a remote name (e.g. --remote production)');
|
|
35
|
+
}
|
|
36
|
+
return name;
|
|
37
|
+
}
|
|
38
|
+
function remoteApiKeyEnvName(remoteName) {
|
|
39
|
+
return `LEADCMS_REMOTE_${remoteName.toUpperCase().replace(/-/g, '_')}_API_KEY`;
|
|
40
|
+
}
|
|
26
41
|
/**
|
|
27
42
|
* Interactive login flow
|
|
28
43
|
*/
|
|
29
|
-
async function main() {
|
|
44
|
+
async function main(args = []) {
|
|
30
45
|
let leadCMSUrl;
|
|
31
|
-
|
|
46
|
+
let selectedRemoteName;
|
|
47
|
+
let shouldAlsoSaveGenericKey = false;
|
|
48
|
+
const requestedRemote = parseRemoteArg(args);
|
|
32
49
|
try {
|
|
33
50
|
const config = getConfig();
|
|
34
|
-
|
|
51
|
+
if (config.remotes && Object.keys(config.remotes).length > 0) {
|
|
52
|
+
const remoteCtx = resolveRemote(requestedRemote);
|
|
53
|
+
leadCMSUrl = remoteCtx.url;
|
|
54
|
+
selectedRemoteName = remoteCtx.name;
|
|
55
|
+
shouldAlsoSaveGenericKey = remoteCtx.isDefault;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
leadCMSUrl = config.url || process.env.LEADCMS_URL;
|
|
59
|
+
}
|
|
35
60
|
}
|
|
36
61
|
catch (error) {
|
|
37
|
-
// Config file not found
|
|
62
|
+
// Config file not found/invalid; fallback to env for URL only when no explicit remote is requested.
|
|
63
|
+
if (requestedRemote) {
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
38
66
|
leadCMSUrl = process.env.LEADCMS_URL;
|
|
39
67
|
}
|
|
40
68
|
if (!leadCMSUrl) {
|
|
@@ -48,8 +76,18 @@ async function main() {
|
|
|
48
76
|
// Use shared authentication function
|
|
49
77
|
const { token, user } = await authenticate(leadCMSUrl, prompt);
|
|
50
78
|
// Save to .env
|
|
51
|
-
|
|
52
|
-
|
|
79
|
+
if (selectedRemoteName) {
|
|
80
|
+
const remoteEnvKey = remoteApiKeyEnvName(selectedRemoteName);
|
|
81
|
+
saveTokenToEnv(token, remoteEnvKey);
|
|
82
|
+
if (shouldAlsoSaveGenericKey) {
|
|
83
|
+
saveTokenToEnv(token, 'LEADCMS_API_KEY');
|
|
84
|
+
}
|
|
85
|
+
console.log(`✅ Token verified and saved to .env file (${remoteEnvKey})!`);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
saveTokenToEnv(token);
|
|
89
|
+
console.log('✅ Token verified and saved to .env file!');
|
|
90
|
+
}
|
|
53
91
|
console.log(`\n👤 Successfully logged in as: ${user.displayName || user.userName}`);
|
|
54
92
|
console.log(` Email: ${user.email}`);
|
|
55
93
|
console.log('\n✅ You can now use commands like:');
|
|
@@ -81,4 +119,5 @@ async function main() {
|
|
|
81
119
|
// Note: CLI execution moved to src/cli/bin/login.ts
|
|
82
120
|
// This file now only exports the function for programmatic use
|
|
83
121
|
export { main as loginLeadCMS };
|
|
122
|
+
export { parseRemoteArg, remoteApiKeyEnvName };
|
|
84
123
|
//# sourceMappingURL=login-leadcms.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login-leadcms.js","sourceRoot":"","sources":["../../src/scripts/login-leadcms.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,4CAA4C;AAC5C,YAAY,EAAE,CAAC;AAEf;;GAEG;AACH,SAAS,MAAM,CAAC,QAAgB;IAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;
|
|
1
|
+
{"version":3,"file":"login-leadcms.js","sourceRoot":"","sources":["../../src/scripts/login-leadcms.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,4CAA4C;AAC5C,YAAY,EAAE,CAAC;AAEf;;GAEG;AACH,SAAS,MAAM,CAAC,QAAgB;IAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,IAAc;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;IACtE,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,OAAO,kBAAkB,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC;AACjF,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI,CAAC,OAAiB,EAAE;IACrC,IAAI,UAA8B,CAAC;IACnC,IAAI,kBAAsC,CAAC;IAC3C,IAAI,wBAAwB,GAAG,KAAK,CAAC;IACrC,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;YACjD,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC;YAC3B,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC;YACpC,wBAAwB,GAAG,SAAS,CAAC,SAAS,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QACrD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oGAAoG;QACpG,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,KAAK,CAAC;QACd,CAAC;QACD,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,qCAAqC;QACrC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAE/D,eAAe;QACf,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;YAC7D,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YACpC,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,cAAc,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,4CAA4C,YAAY,IAAI,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAEvC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACvE,CAAC;iBAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,QAAQ,EAAE,UAAU,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzE,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,+DAA+D;AAE/D,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -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":";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;AAC1C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAc1E;;GAEG;AACH,KAAK,UAAU,sBAAsB,CAAC,OAAgB;IAOpD,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,OAAO,IAAI,UAAU,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClE,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;YAC5B,MAAM,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC;YAClC,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE,kBAAkB,EAAE;gBAC7B,KAAK,EAAE,gBAAgB,EAAE;gBACzB,QAAQ,EAAE,mBAAmB,EAAE;gBAC/B,cAAc,EAAE,yBAAyB,EAAE,IAAI,SAAS;gBACxD,QAAQ,EAAE,mBAAmB,EAAE,IAAI,SAAS;aAC7C,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjJ,MAAM,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9H,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEhB,OAAO,OAAO,CAAC;QACjB,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,oEAAoE,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACnG,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAAC,SAAyB;IACxD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,mCAAmC,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,CAAC;IAEzC,iDAAiD;IACjD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAEhC,sEAAsE;IACtE,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,OAAO,CAAC,+CAA+C,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;QACnF,CAAC;QAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAAC,SAAyB;IACtD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,OAAO,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,CAAC;IAEzC,2EAA2E;IAC3E,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAEhC,oCAAoC;IACpC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,OAAO,CAAC,6CAA6C,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;QACjF,CAAC;QAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAAC,SAAyB;IACzD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,oCAAoC,WAAW,EAAE,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,CAAC;IAEzC,iDAAiD;IACjD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,wBAAwB,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAEhC,uCAAuC;IACvC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,gDAAgD,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,wBAAwB,CAAC,SAAyB;IAC/D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAEjE,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,CAAC,2CAA2C,iBAAiB,EAAE,CAAC,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,CAAC;IAEzC,8CAA8C;IAC9C,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,OAAO,CAAC,uDAAuD,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;QAC3F,CAAC;QAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB;IAC/B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,mBAAmB,CAAC,CAAC;IAE5E,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,oCAAoC,WAAW,EAAE,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAAC,SAAyB;IACtD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAE7C,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,kBAAkB,EAAE,CAAC;IAE3B,4BAA4B;IAC5B,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,qCAAqC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI,CAAC,UAA0B,EAAE;IAC9C,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACjF,MAAM,YAAY,GAAG,SAAS,EAAE,GAAG,IAAI,UAAU,CAAC;IAElD,6EAA6E;IAC7E,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC1D,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IAED,uDAAuD;IACvD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;IAED,qCAAqC;IACrC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,MAAM,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAE1G,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,6DAA6D;IAC7D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAC5D,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,2EAA2E;QAC7E,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,MAAM,YAAY,GAAoB,EAAE,CAAC;IAEzC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACzE,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACrE,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;QAC3E,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,MAAM,EAAE,yBAAyB,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QACxF,YAAY,CAAC,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QACrD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,2BAA2B;AAC3B,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,CAAC;AAE3B,kEAAkE;AAClE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,CAAC;AAEjI,uDAAuD;AACvD,+DAA+D"}
|