@leadcms/sdk 3.3.5 → 3.3.8

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