@leadcms/sdk 3.5.4 → 3.5.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 (138) hide show
  1. package/dist/cli/bin/content-status-args.js +0 -0
  2. package/dist/cli/bin/generate-env.js +0 -0
  3. package/dist/cli/bin/init.js +0 -0
  4. package/dist/cli/bin/login.js +0 -0
  5. package/dist/cli/bin/pull-all.js +0 -0
  6. package/dist/cli/bin/pull-comments.js +0 -0
  7. package/dist/cli/bin/pull-content.js +0 -0
  8. package/dist/cli/bin/pull-email-templates.js +0 -0
  9. package/dist/cli/bin/pull-media.js +0 -0
  10. package/dist/cli/bin/pull-segments.d.ts +6 -0
  11. package/dist/cli/bin/pull-segments.d.ts.map +1 -0
  12. package/dist/cli/bin/pull-segments.js +26 -0
  13. package/dist/cli/bin/pull-segments.js.map +1 -0
  14. package/dist/cli/bin/pull-sequences.d.ts +6 -0
  15. package/dist/cli/bin/pull-sequences.d.ts.map +1 -0
  16. package/dist/cli/bin/pull-sequences.js +26 -0
  17. package/dist/cli/bin/pull-sequences.js.map +1 -0
  18. package/dist/cli/bin/pull-settings.js +0 -0
  19. package/dist/cli/bin/push-all.js +18 -0
  20. package/dist/cli/bin/push-all.js.map +1 -1
  21. package/dist/cli/bin/push-comments.js +0 -0
  22. package/dist/cli/bin/push-content.js +0 -0
  23. package/dist/cli/bin/push-email-templates.js +0 -0
  24. package/dist/cli/bin/push-media.js +0 -0
  25. package/dist/cli/bin/push-segments.d.ts +6 -0
  26. package/dist/cli/bin/push-segments.d.ts.map +1 -0
  27. package/dist/cli/bin/push-segments.js +30 -0
  28. package/dist/cli/bin/push-segments.js.map +1 -0
  29. package/dist/cli/bin/push-sequences.d.ts +6 -0
  30. package/dist/cli/bin/push-sequences.d.ts.map +1 -0
  31. package/dist/cli/bin/push-sequences.js +30 -0
  32. package/dist/cli/bin/push-sequences.js.map +1 -0
  33. package/dist/cli/bin/push-settings.js +0 -0
  34. package/dist/cli/bin/push.js +0 -0
  35. package/dist/cli/bin/remote-flag.js +0 -0
  36. package/dist/cli/bin/remote.js +0 -0
  37. package/dist/cli/bin/status-all.js +134 -6
  38. package/dist/cli/bin/status-all.js.map +1 -1
  39. package/dist/cli/bin/status-comments.js +0 -0
  40. package/dist/cli/bin/status-content.js +0 -0
  41. package/dist/cli/bin/status-email-templates.js +0 -0
  42. package/dist/cli/bin/status-media.js +0 -0
  43. package/dist/cli/bin/status-segments.d.ts +6 -0
  44. package/dist/cli/bin/status-segments.d.ts.map +1 -0
  45. package/dist/cli/bin/status-segments.js +25 -0
  46. package/dist/cli/bin/status-segments.js.map +1 -0
  47. package/dist/cli/bin/status-sequences.d.ts +6 -0
  48. package/dist/cli/bin/status-sequences.d.ts.map +1 -0
  49. package/dist/cli/bin/status-sequences.js +25 -0
  50. package/dist/cli/bin/status-sequences.js.map +1 -0
  51. package/dist/cli/bin/status-settings.js +0 -0
  52. package/dist/cli/bin/status.js +0 -0
  53. package/dist/cli/bin/watch.js +0 -0
  54. package/dist/cli/index.js +18 -0
  55. package/dist/cli/index.js.map +1 -1
  56. package/dist/index.d.ts +3 -1
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +2 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/lib/automation-types.d.ts +235 -0
  61. package/dist/lib/automation-types.d.ts.map +1 -0
  62. package/dist/lib/automation-types.js +150 -0
  63. package/dist/lib/automation-types.js.map +1 -0
  64. package/dist/lib/cms-config-types.d.ts +8 -0
  65. package/dist/lib/cms-config-types.d.ts.map +1 -1
  66. package/dist/lib/cms-config-types.js +12 -0
  67. package/dist/lib/cms-config-types.js.map +1 -1
  68. package/dist/lib/cms.d.ts.map +1 -1
  69. package/dist/lib/cms.js +2 -0
  70. package/dist/lib/cms.js.map +1 -1
  71. package/dist/lib/config.d.ts +4 -0
  72. package/dist/lib/config.d.ts.map +1 -1
  73. package/dist/lib/config.js +10 -0
  74. package/dist/lib/config.js.map +1 -1
  75. package/dist/lib/data-service.d.ts +38 -1
  76. package/dist/lib/data-service.d.ts.map +1 -1
  77. package/dist/lib/data-service.js +312 -0
  78. package/dist/lib/data-service.js.map +1 -1
  79. package/dist/lib/email-template-transformation.d.ts.map +1 -1
  80. package/dist/lib/email-template-transformation.js +1 -0
  81. package/dist/lib/email-template-transformation.js.map +1 -1
  82. package/dist/lib/remote-context.d.ts +19 -1
  83. package/dist/lib/remote-context.d.ts.map +1 -1
  84. package/dist/lib/remote-context.js +99 -1
  85. package/dist/lib/remote-context.js.map +1 -1
  86. package/dist/lib/settings-types.d.ts +53 -1
  87. package/dist/lib/settings-types.d.ts.map +1 -1
  88. package/dist/lib/settings-types.js +115 -1
  89. package/dist/lib/settings-types.js.map +1 -1
  90. package/dist/lib/slugify.d.ts +9 -0
  91. package/dist/lib/slugify.d.ts.map +1 -0
  92. package/dist/lib/slugify.js +12 -0
  93. package/dist/lib/slugify.js.map +1 -0
  94. package/dist/scripts/leadcms-helpers.d.ts +2 -0
  95. package/dist/scripts/leadcms-helpers.d.ts.map +1 -1
  96. package/dist/scripts/leadcms-helpers.js +2 -0
  97. package/dist/scripts/leadcms-helpers.js.map +1 -1
  98. package/dist/scripts/pull-all.d.ts +9 -1
  99. package/dist/scripts/pull-all.d.ts.map +1 -1
  100. package/dist/scripts/pull-all.js +59 -5
  101. package/dist/scripts/pull-all.js.map +1 -1
  102. package/dist/scripts/pull-leadcms-comments.d.ts.map +1 -1
  103. package/dist/scripts/pull-leadcms-comments.js +9 -1
  104. package/dist/scripts/pull-leadcms-comments.js.map +1 -1
  105. package/dist/scripts/pull-leadcms-content.d.ts.map +1 -1
  106. package/dist/scripts/pull-leadcms-content.js +9 -1
  107. package/dist/scripts/pull-leadcms-content.js.map +1 -1
  108. package/dist/scripts/pull-leadcms-email-templates.d.ts.map +1 -1
  109. package/dist/scripts/pull-leadcms-email-templates.js +12 -10
  110. package/dist/scripts/pull-leadcms-email-templates.js.map +1 -1
  111. package/dist/scripts/pull-segments.d.ts +32 -0
  112. package/dist/scripts/pull-segments.d.ts.map +1 -0
  113. package/dist/scripts/pull-segments.js +215 -0
  114. package/dist/scripts/pull-segments.js.map +1 -0
  115. package/dist/scripts/pull-sequences.d.ts +32 -0
  116. package/dist/scripts/pull-sequences.d.ts.map +1 -0
  117. package/dist/scripts/pull-sequences.js +236 -0
  118. package/dist/scripts/pull-sequences.js.map +1 -0
  119. package/dist/scripts/push-email-templates.d.ts.map +1 -1
  120. package/dist/scripts/push-email-templates.js +1 -8
  121. package/dist/scripts/push-email-templates.js.map +1 -1
  122. package/dist/scripts/push-leadcms-content.js +1 -1
  123. package/dist/scripts/push-segments.d.ts +35 -0
  124. package/dist/scripts/push-segments.d.ts.map +1 -0
  125. package/dist/scripts/push-segments.js +318 -0
  126. package/dist/scripts/push-segments.js.map +1 -0
  127. package/dist/scripts/push-sequences.d.ts +36 -0
  128. package/dist/scripts/push-sequences.d.ts.map +1 -0
  129. package/dist/scripts/push-sequences.js +351 -0
  130. package/dist/scripts/push-sequences.js.map +1 -0
  131. package/dist/scripts/push-settings.d.ts +3 -3
  132. package/dist/scripts/push-settings.js +8 -8
  133. package/dist/scripts/push-settings.js.map +1 -1
  134. package/dist/scripts/settings-manager.d.ts +5 -4
  135. package/dist/scripts/settings-manager.d.ts.map +1 -1
  136. package/dist/scripts/settings-manager.js +61 -55
  137. package/dist/scripts/settings-manager.js.map +1 -1
  138. package/package.json +21 -21
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * LeadCMS Pull Segments CLI Entry Point
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=pull-segments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull-segments.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/pull-segments.ts"],"names":[],"mappings":";AACA;;GAEG"}
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * LeadCMS Pull Segments CLI Entry Point
4
+ */
5
+ import { pullLeadCMSSegments } from '../../scripts/pull-segments.js';
6
+ import { resolveIdentity } from '../../scripts/leadcms-helpers.js';
7
+ import { initVerboseFromArgs } from '../../lib/logger.js';
8
+ import { startSpinner } from '../../lib/spinner.js';
9
+ import { parseRemoteFlag } from './remote-flag.js';
10
+ const args = process.argv.slice(2);
11
+ initVerboseFromArgs(args);
12
+ const remoteContext = parseRemoteFlag(args);
13
+ const reset = args.includes('--reset');
14
+ await resolveIdentity();
15
+ const spinner = startSpinner('Pulling segments from LeadCMS…');
16
+ pullLeadCMSSegments({ reset, remoteContext })
17
+ .then(() => {
18
+ spinner.stop();
19
+ process.exit(0);
20
+ })
21
+ .catch((error) => {
22
+ spinner.fail('Segment pull failed');
23
+ console.error(error.message);
24
+ process.exit(1);
25
+ });
26
+ //# sourceMappingURL=pull-segments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull-segments.js","sourceRoot":"","sources":["../../../src/cli/bin/pull-segments.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAEvC,MAAM,eAAe,EAAE,CAAC;AAExB,MAAM,OAAO,GAAG,YAAY,CAAC,gCAAgC,CAAC,CAAC;AAC/D,mBAAmB,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;KAC1C,IAAI,CAAC,GAAG,EAAE;IACT,OAAO,CAAC,IAAI,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;IACpB,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACpC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * LeadCMS Pull Sequences CLI Entry Point
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=pull-sequences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull-sequences.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/pull-sequences.ts"],"names":[],"mappings":";AACA;;GAEG"}
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * LeadCMS Pull Sequences CLI Entry Point
4
+ */
5
+ import { pullLeadCMSSequences } from '../../scripts/pull-sequences.js';
6
+ import { resolveIdentity } from '../../scripts/leadcms-helpers.js';
7
+ import { initVerboseFromArgs } from '../../lib/logger.js';
8
+ import { startSpinner } from '../../lib/spinner.js';
9
+ import { parseRemoteFlag } from './remote-flag.js';
10
+ const args = process.argv.slice(2);
11
+ initVerboseFromArgs(args);
12
+ const remoteContext = parseRemoteFlag(args);
13
+ const reset = args.includes('--reset');
14
+ await resolveIdentity();
15
+ const spinner = startSpinner('Pulling sequences from LeadCMS…');
16
+ pullLeadCMSSequences({ reset, remoteContext })
17
+ .then(() => {
18
+ spinner.stop();
19
+ process.exit(0);
20
+ })
21
+ .catch((error) => {
22
+ spinner.fail('Sequence pull failed');
23
+ console.error(error.message);
24
+ process.exit(1);
25
+ });
26
+ //# sourceMappingURL=pull-sequences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull-sequences.js","sourceRoot":"","sources":["../../../src/cli/bin/pull-sequences.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAEvC,MAAM,eAAe,EAAE,CAAC;AAExB,MAAM,OAAO,GAAG,YAAY,CAAC,iCAAiC,CAAC,CAAC;AAChE,oBAAoB,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;KAC3C,IAAI,CAAC,GAAG,EAAE;IACT,OAAO,CAAC,IAAI,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;IACpB,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACrC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
File without changes
@@ -9,6 +9,8 @@ import { pushComments } from '../../scripts/push-comments.js';
9
9
  import { pushMedia } from '../../scripts/push-media.js';
10
10
  import { pushEmailTemplates } from '../../scripts/push-email-templates.js';
11
11
  import { pushSettings } from '../../scripts/push-settings.js';
12
+ import { pushSegments } from '../../scripts/push-segments.js';
13
+ import { pushSequences } from '../../scripts/push-sequences.js';
12
14
  import { requireAuthenticatedUser } from '../../scripts/leadcms-helpers.js';
13
15
  import { initVerboseFromArgs } from '../../lib/logger.js';
14
16
  import { startSpinner } from '../../lib/spinner.js';
@@ -82,6 +84,22 @@ async function pushAll() {
82
84
  scopeUid,
83
85
  allowDelete
84
86
  });
87
+ console.log('\n🔖 Pushing segments...');
88
+ spinner.update('Pushing segments…');
89
+ await pushSegments({
90
+ dryRun,
91
+ force,
92
+ allowDelete,
93
+ remoteContext,
94
+ });
95
+ console.log('\n🔗 Pushing sequences...');
96
+ spinner.update('Pushing sequences…');
97
+ await pushSequences({
98
+ dryRun,
99
+ force,
100
+ allowDelete,
101
+ remoteContext,
102
+ });
85
103
  spinner.succeed('Push operation completed successfully!');
86
104
  }
87
105
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"push-all.js","sourceRoot":"","sources":["../../../src/cli/bin/push-all.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push-all.js","sourceRoot":"","sources":["../../../src/cli/bin/push-all.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * LeadCMS Push Segments CLI Entry Point
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=push-segments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push-segments.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/push-segments.ts"],"names":[],"mappings":";AACA;;GAEG"}
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * LeadCMS Push Segments CLI Entry Point
4
+ */
5
+ import { pushSegments } from '../../scripts/push-segments.js';
6
+ import { requireAuthenticatedUser, resolveIdentity } from '../../scripts/leadcms-helpers.js';
7
+ import { initVerboseFromArgs } from '../../lib/logger.js';
8
+ import { startSpinner } from '../../lib/spinner.js';
9
+ import { parseRemoteFlag } from './remote-flag.js';
10
+ const args = process.argv.slice(2);
11
+ initVerboseFromArgs(args);
12
+ const remoteContext = parseRemoteFlag(args);
13
+ const force = args.includes('--force') || args.includes('-f');
14
+ const dryRun = args.includes('--dry-run') || args.includes('-d');
15
+ const allowDelete = args.includes('--delete');
16
+ if (!dryRun) {
17
+ await requireAuthenticatedUser();
18
+ }
19
+ else {
20
+ await resolveIdentity();
21
+ }
22
+ const spinner = startSpinner('Pushing segments to LeadCMS…');
23
+ pushSegments({ force, dryRun, allowDelete, remoteContext })
24
+ .then(() => spinner.stop())
25
+ .catch((error) => {
26
+ spinner.fail('Segment push failed');
27
+ console.error(error.message);
28
+ process.exit(1);
29
+ });
30
+ //# sourceMappingURL=push-segments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push-segments.js","sourceRoot":"","sources":["../../../src/cli/bin/push-segments.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AAE5C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAE9C,IAAI,CAAC,MAAM,EAAE,CAAC;IACV,MAAM,wBAAwB,EAAE,CAAC;AACrC,CAAC;KAAM,CAAC;IACJ,MAAM,eAAe,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,OAAO,GAAG,YAAY,CAAC,8BAA8B,CAAC,CAAC;AAC7D,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;KACtD,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KAC1B,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;IAClB,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACpC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * LeadCMS Push Sequences CLI Entry Point
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=push-sequences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push-sequences.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/push-sequences.ts"],"names":[],"mappings":";AACA;;GAEG"}
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * LeadCMS Push Sequences CLI Entry Point
4
+ */
5
+ import { pushSequences } from '../../scripts/push-sequences.js';
6
+ import { requireAuthenticatedUser, resolveIdentity } from '../../scripts/leadcms-helpers.js';
7
+ import { initVerboseFromArgs } from '../../lib/logger.js';
8
+ import { startSpinner } from '../../lib/spinner.js';
9
+ import { parseRemoteFlag } from './remote-flag.js';
10
+ const args = process.argv.slice(2);
11
+ initVerboseFromArgs(args);
12
+ const remoteContext = parseRemoteFlag(args);
13
+ const force = args.includes('--force') || args.includes('-f');
14
+ const dryRun = args.includes('--dry-run') || args.includes('-d');
15
+ const allowDelete = args.includes('--delete');
16
+ if (!dryRun) {
17
+ await requireAuthenticatedUser();
18
+ }
19
+ else {
20
+ await resolveIdentity();
21
+ }
22
+ const spinner = startSpinner('Pushing sequences to LeadCMS…');
23
+ pushSequences({ force, dryRun, allowDelete, remoteContext })
24
+ .then(() => spinner.stop())
25
+ .catch((error) => {
26
+ spinner.fail('Sequence push failed');
27
+ console.error(error.message);
28
+ process.exit(1);
29
+ });
30
+ //# sourceMappingURL=push-sequences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push-sequences.js","sourceRoot":"","sources":["../../../src/cli/bin/push-sequences.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AAE5C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAE9C,IAAI,CAAC,MAAM,EAAE,CAAC;IACV,MAAM,wBAAwB,EAAE,CAAC;AACrC,CAAC;KAAM,CAAC;IACJ,MAAM,eAAe,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,OAAO,GAAG,YAAY,CAAC,+BAA+B,CAAC,CAAC;AAC9D,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;KACvD,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KAC1B,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;IAClB,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACrC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
File without changes
File without changes
File without changes
File without changes
@@ -9,6 +9,8 @@ import { buildCommentStatus } from '../../scripts/push-comments.js';
9
9
  import { statusMedia } from '../../scripts/push-media.js';
10
10
  import { buildEmailTemplateStatus, getRemoteGroupLabel } from '../../scripts/push-email-templates.js';
11
11
  import { getSettingsStatusData, formatSettingValue, formatSettingDiff, renderSettingDiffPreview } from '../../scripts/push-settings.js';
12
+ import { buildSegmentStatus } from '../../scripts/push-segments.js';
13
+ import { buildSequenceStatus } from '../../scripts/push-sequences.js';
12
14
  import { initVerboseFromArgs } from '../../lib/logger.js';
13
15
  import { colorConsole, statusColors } from '../../lib/console-colors.js';
14
16
  import { defaultLanguage, leadCMSApiKey, resolveIdentity } from '../../scripts/leadcms-helpers.js';
@@ -50,7 +52,7 @@ function renderContentSection(ops) {
50
52
  const deletes = showDelete ? sortByLocaleAndSlug(ops.delete, o => o.remote?.language || '', o => o.remote?.slug || '') : [];
51
53
  const changeCount = creates.length + updates.length + renames.length + typeChanges.length + conflicts.length + deletes.length;
52
54
  for (const op of creates)
53
- renderContentLine(op, 'new file: ', statusColors.created);
55
+ renderContentLine(op, 'new: ', statusColors.created);
54
56
  for (const op of updates)
55
57
  renderContentLine(op, 'modified: ', statusColors.modified);
56
58
  for (const op of renames) {
@@ -82,7 +84,7 @@ function renderMediaSection(result) {
82
84
  const changeCount = creates.length + updates.length + deletes.length;
83
85
  for (const op of creates) {
84
86
  const sizeKB = (op.local.size / 1024).toFixed(2);
85
- colorConsole.log(` ${statusColors.created('new file: ')} ${op.local.scopeUid}/${colorConsole.highlight(op.local.name)} ${colorConsole.gray(`(${sizeKB}KB)`)}`);
87
+ colorConsole.log(` ${statusColors.created('new: ')} ${op.local.scopeUid}/${colorConsole.highlight(op.local.name)} ${colorConsole.gray(`(${sizeKB}KB)`)}`);
86
88
  }
87
89
  for (const op of updates) {
88
90
  const sizeKB = (op.local.size / 1024).toFixed(2);
@@ -106,7 +108,7 @@ function renderCommentSection(operations) {
106
108
  for (const op of creates) {
107
109
  const comment = op.local?.comment;
108
110
  const label = `${comment?.commentableType || 'Unknown'}#${comment?.commentableId || '?'} [${comment?.language || defaultLanguage}]`;
109
- colorConsole.log(` ${statusColors.created('new file: ')} ${label} ${colorConsole.highlight(comment?.body?.slice(0, 48) || 'New comment')}`);
111
+ colorConsole.log(` ${statusColors.created('new: ')} ${label} ${colorConsole.highlight(comment?.body?.slice(0, 48) || 'New comment')}`);
110
112
  }
111
113
  for (const op of updates) {
112
114
  const comment = op.local?.comment || op.remote;
@@ -139,7 +141,7 @@ function renderEmailTemplateSection(operations) {
139
141
  const groupLabel = (op.local?.groupFolder || 'ungrouped').padEnd(12);
140
142
  const localeLabel = `[${op.local?.locale || defaultLanguage}]`.padEnd(6);
141
143
  const nameLabel = op.local?.metadata?.name || 'unknown';
142
- colorConsole.log(` ${statusColors.created('new file: ')} ${groupLabel} ${localeLabel} ${colorConsole.highlight(nameLabel)}`);
144
+ colorConsole.log(` ${statusColors.created('new: ')} ${groupLabel} ${localeLabel} ${colorConsole.highlight(nameLabel)}`);
143
145
  }
144
146
  for (const op of updates) {
145
147
  const groupLabel = (op.local?.groupFolder || 'ungrouped').padEnd(12);
@@ -164,6 +166,66 @@ function renderEmailTemplateSection(operations) {
164
166
  }
165
167
  return changeCount;
166
168
  }
169
+ // ── Segment rendering ────────────────────────────────────────────────────────
170
+ function renderSegmentSection(operations) {
171
+ const creates = operations.filter(op => op.type === 'create');
172
+ const updates = operations.filter(op => op.type === 'update');
173
+ const conflicts = operations.filter(op => op.type === 'conflict');
174
+ const deletes = showDelete ? operations.filter(op => op.type === 'delete') : [];
175
+ const changeCount = creates.length + updates.length + conflicts.length + deletes.length;
176
+ for (const op of creates) {
177
+ const nameLabel = op.local?.name || 'unknown';
178
+ colorConsole.log(` ${statusColors.created('new: ')} ${colorConsole.highlight(nameLabel)}`);
179
+ }
180
+ for (const op of updates) {
181
+ const nameLabel = op.local?.name || op.remote?.name || 'unknown';
182
+ const idLabel = op.remote?.id ? `(ID: ${op.remote.id})` : '';
183
+ colorConsole.log(` ${statusColors.modified('modified: ')} ${colorConsole.highlight(nameLabel)} ${colorConsole.gray(idLabel)}`);
184
+ }
185
+ for (const op of conflicts) {
186
+ const nameLabel = op.local?.name || op.remote?.name || 'unknown';
187
+ const idLabel = op.remote?.id ? `(ID: ${op.remote.id})` : '';
188
+ colorConsole.log(` ${statusColors.conflict('conflict: ')} ${colorConsole.highlight(nameLabel)} ${colorConsole.gray(idLabel)}`);
189
+ if (op.reason)
190
+ colorConsole.log(` ${colorConsole.gray(op.reason)}`);
191
+ }
192
+ for (const op of deletes) {
193
+ const nameLabel = op.remote?.name || 'unknown';
194
+ const idLabel = op.remote?.id ? `(ID: ${op.remote.id})` : '';
195
+ colorConsole.log(` ${statusColors.conflict('deleted: ')} ${colorConsole.highlight(nameLabel)} ${colorConsole.gray(idLabel)}`);
196
+ }
197
+ return changeCount;
198
+ }
199
+ // ── Sequence rendering ───────────────────────────────────────────────────────
200
+ function renderSequenceSection(operations) {
201
+ const creates = operations.filter(op => op.type === 'create');
202
+ const updates = operations.filter(op => op.type === 'update');
203
+ const conflicts = operations.filter(op => op.type === 'conflict');
204
+ const deletes = showDelete ? operations.filter(op => op.type === 'delete') : [];
205
+ const changeCount = creates.length + updates.length + conflicts.length + deletes.length;
206
+ for (const op of creates) {
207
+ const nameLabel = op.local?.name || 'unknown';
208
+ colorConsole.log(` ${statusColors.created('new: ')} ${colorConsole.highlight(nameLabel)}`);
209
+ }
210
+ for (const op of updates) {
211
+ const nameLabel = op.local?.name || op.remote?.name || 'unknown';
212
+ const idLabel = op.remote?.id ? `(ID: ${op.remote.id})` : '';
213
+ colorConsole.log(` ${statusColors.modified('modified: ')} ${colorConsole.highlight(nameLabel)} ${colorConsole.gray(idLabel)}`);
214
+ }
215
+ for (const op of conflicts) {
216
+ const nameLabel = op.local?.name || op.remote?.name || 'unknown';
217
+ const idLabel = op.remote?.id ? `(ID: ${op.remote.id})` : '';
218
+ colorConsole.log(` ${statusColors.conflict('conflict: ')} ${colorConsole.highlight(nameLabel)} ${colorConsole.gray(idLabel)}`);
219
+ if (op.reason)
220
+ colorConsole.log(` ${colorConsole.gray(op.reason)}`);
221
+ }
222
+ for (const op of deletes) {
223
+ const nameLabel = op.remote?.name || 'unknown';
224
+ const idLabel = op.remote?.id ? `(ID: ${op.remote.id})` : '';
225
+ colorConsole.log(` ${statusColors.conflict('deleted: ')} ${colorConsole.highlight(nameLabel)} ${colorConsole.gray(idLabel)}`);
226
+ }
227
+ return changeCount;
228
+ }
167
229
  // ── Summary helper ───────────────────────────────────────────────────────────
168
230
  function renderSummaryLine(label, counts) {
169
231
  const parts = [];
@@ -197,8 +259,10 @@ async function statusAll() {
197
259
  let mediaResult = null;
198
260
  let emailResult = null;
199
261
  let settingsResult = null;
262
+ let segmentResult = null;
263
+ let sequenceResult = null;
200
264
  try {
201
- [contentResult, commentResult, mediaResult, emailResult, settingsResult] = await Promise.all([
265
+ [contentResult, commentResult, mediaResult, emailResult, settingsResult, segmentResult, sequenceResult] = await Promise.all([
202
266
  getContentStatusData({ showDelete, remoteContext }).catch((err) => {
203
267
  spinner.update('Fetching status… (content failed)');
204
268
  return null;
@@ -223,6 +287,18 @@ async function statusAll() {
223
287
  return null;
224
288
  })
225
289
  : Promise.resolve(null),
290
+ canCheckEmailTemplates
291
+ ? buildSegmentStatus({ showDelete, remoteContext }).catch((err) => {
292
+ spinner.update('Fetching status… (segments failed)');
293
+ return null;
294
+ })
295
+ : Promise.resolve(null),
296
+ canCheckEmailTemplates
297
+ ? buildSequenceStatus({ showDelete, remoteContext }).catch((err) => {
298
+ spinner.update('Fetching status… (sequences failed)');
299
+ return null;
300
+ })
301
+ : Promise.resolve(null),
226
302
  ]);
227
303
  spinner.stop();
228
304
  }
@@ -235,6 +311,8 @@ async function statusAll() {
235
311
  const contentOps = contentResult?.operations ?? null;
236
312
  const commentOps = commentResult?.operations ?? null;
237
313
  const emailOps = emailResult?.operations ?? null;
314
+ const segmentOps = segmentResult?.operations ?? null;
315
+ const sequenceOps = sequenceResult?.operations ?? null;
238
316
  // Count changes per section
239
317
  const contentChanges = contentOps
240
318
  ? contentOps.create.length + contentOps.update.length + contentOps.rename.length +
@@ -254,6 +332,12 @@ async function statusAll() {
254
332
  const settingsChanges = settingsResult
255
333
  ? settingsResult.comparisons.filter(c => c.status !== 'in-sync').length
256
334
  : 0;
335
+ const segmentChanges = segmentOps
336
+ ? segmentOps.filter(op => showDelete ? true : op.type !== 'delete').length
337
+ : 0;
338
+ const sequenceChanges = sequenceOps
339
+ ? sequenceOps.filter(op => showDelete ? true : op.type !== 'delete').length
340
+ : 0;
257
341
  // Count up-to-date items per section
258
342
  const contentSkips = contentResult
259
343
  ? contentResult.totalLocal - contentChanges
@@ -270,7 +354,13 @@ async function statusAll() {
270
354
  const settingsInSync = settingsResult
271
355
  ? settingsResult.comparisons.filter(c => c.status === 'in-sync').length
272
356
  : 0;
273
- const totalChanges = contentChanges + commentChanges + mediaChanges + emailChanges + settingsChanges;
357
+ const segmentSkips = segmentResult
358
+ ? segmentResult.totalLocal - segmentChanges
359
+ : 0;
360
+ const sequenceSkips = sequenceResult
361
+ ? sequenceResult.totalLocal - sequenceChanges
362
+ : 0;
363
+ const totalChanges = contentChanges + commentChanges + mediaChanges + emailChanges + settingsChanges + segmentChanges + sequenceChanges;
274
364
  if (totalChanges === 0) {
275
365
  colorConsole.success('\n✅ Everything is in sync!\n');
276
366
  if (contentResult)
@@ -285,6 +375,12 @@ async function statusAll() {
285
375
  if (canCheckEmailTemplates && settingsResult) {
286
376
  console.log(` ⚙️ Settings: ${settingsInSync > 0 ? `${settingsInSync} setting(s) ` : ''}up to date`);
287
377
  }
378
+ if (canCheckEmailTemplates && segmentResult) {
379
+ console.log(` 🔖 Segments: ${segmentSkips > 0 ? `${segmentSkips} item(s) ` : ''}up to date`);
380
+ }
381
+ if (canCheckEmailTemplates && sequenceResult) {
382
+ console.log(` 🔗 Sequences: ${sequenceSkips > 0 ? `${sequenceSkips} item(s) ` : ''}up to date`);
383
+ }
288
384
  console.log('');
289
385
  process.exit(0);
290
386
  }
@@ -335,6 +431,18 @@ async function statusAll() {
335
431
  }
336
432
  console.log('');
337
433
  }
434
+ // ── Segments section ──
435
+ if (segmentOps && segmentChanges > 0) {
436
+ colorConsole.important(` 🔖 Segments (${segmentChanges} change${segmentChanges !== 1 ? 's' : ''}):`);
437
+ renderSegmentSection(segmentOps);
438
+ console.log('');
439
+ }
440
+ // ── Sequences section ──
441
+ if (sequenceOps && sequenceChanges > 0) {
442
+ colorConsole.important(` 🔗 Sequences (${sequenceChanges} change${sequenceChanges !== 1 ? 's' : ''}):`);
443
+ renderSequenceSection(sequenceOps);
444
+ console.log('');
445
+ }
338
446
  // ── Summary ──
339
447
  console.log('─'.repeat(80));
340
448
  if (contentOps) {
@@ -388,6 +496,26 @@ async function statusAll() {
388
496
  skips: settingsInSync,
389
497
  }));
390
498
  }
499
+ if (canCheckEmailTemplates && segmentOps) {
500
+ const counts = segmentOps.reduce((acc, op) => { acc[op.type] = (acc[op.type] || 0) + 1; return acc; }, {});
501
+ console.log(renderSummaryLine('🔖 Segments: ', {
502
+ creates: counts.create || 0,
503
+ updates: counts.update || 0,
504
+ conflicts: counts.conflict || 0,
505
+ deletes: showDelete ? (counts.delete || 0) : 0,
506
+ skips: segmentSkips,
507
+ }));
508
+ }
509
+ if (canCheckEmailTemplates && sequenceOps) {
510
+ const counts = sequenceOps.reduce((acc, op) => { acc[op.type] = (acc[op.type] || 0) + 1; return acc; }, {});
511
+ console.log(renderSummaryLine('🔗 Sequences: ', {
512
+ creates: counts.create || 0,
513
+ updates: counts.update || 0,
514
+ conflicts: counts.conflict || 0,
515
+ deletes: showDelete ? (counts.delete || 0) : 0,
516
+ skips: sequenceSkips,
517
+ }));
518
+ }
391
519
  console.log('');
392
520
  process.exit(0);
393
521
  }