@leadcms/sdk 2.2.2 → 2.2.4
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 +34 -0
- package/dist/cli/bin/generate-env.d.ts +6 -0
- package/dist/cli/bin/generate-env.d.ts.map +1 -0
- package/dist/cli/bin/generate-env.js +7 -0
- package/dist/cli/bin/generate-env.js.map +1 -0
- package/dist/cli/bin/init.d.ts +6 -0
- package/dist/cli/bin/init.d.ts.map +1 -0
- package/dist/cli/bin/init.js +7 -0
- package/dist/cli/bin/init.js.map +1 -0
- package/dist/cli/bin/login.d.ts +6 -0
- package/dist/cli/bin/login.d.ts.map +1 -0
- package/dist/cli/bin/login.js +10 -0
- package/dist/cli/bin/login.js.map +1 -0
- package/dist/cli/bin/pull-all.d.ts +6 -0
- package/dist/cli/bin/pull-all.d.ts.map +1 -0
- package/dist/cli/bin/pull-all.js +10 -0
- package/dist/cli/bin/pull-all.js.map +1 -0
- package/dist/cli/bin/pull-comments.d.ts +6 -0
- package/dist/cli/bin/pull-comments.d.ts.map +1 -0
- package/dist/cli/bin/pull-comments.js +10 -0
- package/dist/cli/bin/pull-comments.js.map +1 -0
- package/dist/cli/bin/pull-content.d.ts +6 -0
- package/dist/cli/bin/pull-content.d.ts.map +1 -0
- package/dist/cli/bin/pull-content.js +10 -0
- package/dist/cli/bin/pull-content.js.map +1 -0
- package/dist/cli/bin/pull-media.d.ts +6 -0
- package/dist/cli/bin/pull-media.d.ts.map +1 -0
- package/dist/cli/bin/pull-media.js +10 -0
- package/dist/cli/bin/pull-media.js.map +1 -0
- package/dist/cli/bin/push.d.ts +6 -0
- package/dist/cli/bin/push.d.ts.map +1 -0
- package/dist/cli/bin/push.js +25 -0
- package/dist/cli/bin/push.js.map +1 -0
- package/dist/cli/bin/status.d.ts +6 -0
- package/dist/cli/bin/status.d.ts.map +1 -0
- package/dist/cli/bin/status.js +10 -0
- package/dist/cli/bin/status.js.map +1 -0
- package/dist/cli/bin/watch.d.ts +6 -0
- package/dist/cli/bin/watch.d.ts.map +1 -0
- package/dist/cli/bin/watch.js +7 -0
- package/dist/cli/bin/watch.js.map +1 -0
- package/dist/cli/index.js +13 -11
- package/dist/cli/index.js.map +1 -1
- package/dist/lib/cms.d.ts +16 -0
- package/dist/lib/cms.d.ts.map +1 -1
- package/dist/lib/cms.js +36 -1
- package/dist/lib/cms.js.map +1 -1
- package/dist/scripts/fetch-leadcms-comments.d.ts.map +1 -1
- package/dist/scripts/fetch-leadcms-comments.js +2 -8
- package/dist/scripts/fetch-leadcms-comments.js.map +1 -1
- package/dist/scripts/fetch-leadcms-content.d.ts.map +1 -1
- package/dist/scripts/fetch-leadcms-content.js +0 -8
- package/dist/scripts/fetch-leadcms-content.js.map +1 -1
- package/dist/scripts/login-leadcms.d.ts +0 -1
- package/dist/scripts/login-leadcms.d.ts.map +1 -1
- package/dist/scripts/login-leadcms.js +2 -8
- package/dist/scripts/login-leadcms.js.map +1 -1
- package/dist/scripts/pull-all.js +2 -7
- package/dist/scripts/pull-all.js.map +1 -1
- package/dist/scripts/pull-comments.d.ts.map +1 -1
- package/dist/scripts/pull-comments.js +2 -7
- package/dist/scripts/pull-comments.js.map +1 -1
- package/dist/scripts/pull-content.d.ts.map +1 -1
- package/dist/scripts/pull-content.js +2 -7
- package/dist/scripts/pull-content.js.map +1 -1
- package/dist/scripts/pull-media.d.ts.map +1 -1
- package/dist/scripts/pull-media.js +2 -7
- package/dist/scripts/pull-media.js.map +1 -1
- package/dist/scripts/push-leadcms-content.d.ts.map +1 -1
- package/dist/scripts/push-leadcms-content.js +14 -32
- package/dist/scripts/push-leadcms-content.js.map +1 -1
- package/dist/scripts/status-leadcms-content.d.ts.map +1 -1
- package/dist/scripts/status-leadcms-content.js +2 -4
- package/dist/scripts/status-leadcms-content.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -509,6 +509,40 @@ const routes = getAllContentRoutes();
|
|
|
509
509
|
|
|
510
510
|
**📖 See [Content Management Guide](./docs/CONTENT_MANAGEMENT.md)** for complete API documentation, framework integration examples, and advanced features.
|
|
511
511
|
|
|
512
|
+
#### Preview Mode (Zero Configuration)
|
|
513
|
+
|
|
514
|
+
The SDK automatically detects preview slugs and enables draft content access without requiring explicit configuration:
|
|
515
|
+
|
|
516
|
+
```typescript
|
|
517
|
+
import { getCMSContentBySlugForLocale } from '@leadcms/sdk';
|
|
518
|
+
|
|
519
|
+
// Normal slug - only returns published content
|
|
520
|
+
const published = getCMSContentBySlugForLocale('home', 'en');
|
|
521
|
+
// Returns: null if content has no publishedAt
|
|
522
|
+
|
|
523
|
+
// Preview slug with GUID - automatically enables draft access
|
|
524
|
+
const preview = getCMSContentBySlugForLocale(
|
|
525
|
+
'home-550e8400-e29b-41d4-a716-446655440000',
|
|
526
|
+
'en'
|
|
527
|
+
);
|
|
528
|
+
// Returns: draft content even without publishedAt
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
**How it works:**
|
|
532
|
+
- When a slug contains a GUID pattern (e.g., `home-{userUid}`), the SDK automatically:
|
|
533
|
+
1. Detects the GUID suffix
|
|
534
|
+
2. Extracts the base slug and userUid
|
|
535
|
+
3. Enables draft content access for this request
|
|
536
|
+
4. Returns user's draft version or falls back to base content
|
|
537
|
+
|
|
538
|
+
**Benefits:**
|
|
539
|
+
- ✅ Zero configuration - works automatically with LeadCMS preview URLs
|
|
540
|
+
- 🔒 Secure - only preview slugs (with valid GUID) can access drafts
|
|
541
|
+
- 🔄 Backward compatible - normal slugs continue to require `publishedAt`
|
|
542
|
+
- 🚀 Developer-friendly - no additional parameters needed
|
|
543
|
+
|
|
544
|
+
**📖 See [Draft Handling Guide](./docs/DRAFT_HANDLING.md)** for more details on preview mode and draft content handling.
|
|
545
|
+
|
|
512
546
|
### Media API
|
|
513
547
|
|
|
514
548
|
Media files are automatically synced during content pull:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-env.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/generate-env.ts"],"names":[],"mappings":";AACA;;GAEG;AAGH,OAAO,kCAAkC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-env.js","sourceRoot":"","sources":["../../../src/cli/bin/generate-env.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,kDAAkD;AAClD,OAAO,kCAAkC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/init.ts"],"names":[],"mappings":";AACA;;GAEG;AAGH,OAAO,+BAA+B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/bin/init.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,kFAAkF;AAClF,OAAO,+BAA+B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/login.ts"],"names":[],"mappings":";AACA;;GAEG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* LeadCMS Login CLI Entry Point
|
|
4
|
+
*/
|
|
5
|
+
import { loginLeadCMS } from '../../scripts/login-leadcms.js';
|
|
6
|
+
loginLeadCMS().catch((error) => {
|
|
7
|
+
console.error('Error:', error.message);
|
|
8
|
+
process.exit(1);
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/bin/login.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC7B,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-all.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/pull-all.ts"],"names":[],"mappings":";AACA;;GAEG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* LeadCMS Pull All CLI Entry Point
|
|
4
|
+
*/
|
|
5
|
+
import { pullAll } from '../../scripts/pull-all.js';
|
|
6
|
+
pullAll().catch((error) => {
|
|
7
|
+
console.error('Error running LeadCMS pull:', error.message);
|
|
8
|
+
process.exit(1);
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=pull-all.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-all.js","sourceRoot":"","sources":["../../../src/cli/bin/pull-all.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEpD,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;IAC7B,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-comments.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/pull-comments.ts"],"names":[],"mappings":";AACA;;GAEG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* LeadCMS Pull Comments CLI Entry Point
|
|
4
|
+
*/
|
|
5
|
+
import { pullComments } from '../../scripts/pull-comments.js';
|
|
6
|
+
pullComments().catch((error) => {
|
|
7
|
+
console.error('Error running LeadCMS pull comments:', error.message);
|
|
8
|
+
process.exit(1);
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=pull-comments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-comments.js","sourceRoot":"","sources":["../../../src/cli/bin/pull-comments.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;IAClC,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-content.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/pull-content.ts"],"names":[],"mappings":";AACA;;GAEG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* LeadCMS Pull Content CLI Entry Point
|
|
4
|
+
*/
|
|
5
|
+
import { pullContent } from '../../scripts/pull-content.js';
|
|
6
|
+
pullContent().catch((error) => {
|
|
7
|
+
console.error('Error running LeadCMS pull content:', error.message);
|
|
8
|
+
process.exit(1);
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=pull-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-content.js","sourceRoot":"","sources":["../../../src/cli/bin/pull-content.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;IACjC,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-media.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/pull-media.ts"],"names":[],"mappings":";AACA;;GAEG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* LeadCMS Pull Media CLI Entry Point
|
|
4
|
+
*/
|
|
5
|
+
import { pullMedia } from '../../scripts/pull-media.js';
|
|
6
|
+
pullMedia().catch((error) => {
|
|
7
|
+
console.error('Error running LeadCMS pull media:', error.message);
|
|
8
|
+
process.exit(1);
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=pull-media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-media.js","sourceRoot":"","sources":["../../../src/cli/bin/pull-media.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;IAC/B,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/push.ts"],"names":[],"mappings":";AACA;;GAEG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* LeadCMS Push CLI Entry Point
|
|
4
|
+
*/
|
|
5
|
+
import { pushLeadCMSContent } from '../../scripts/push-leadcms-content.js';
|
|
6
|
+
const args = process.argv.slice(2);
|
|
7
|
+
const statusOnly = args.includes('--status');
|
|
8
|
+
const force = args.includes('--force');
|
|
9
|
+
const dryRun = args.includes('--dry-run');
|
|
10
|
+
// Parse target ID or slug
|
|
11
|
+
let targetId;
|
|
12
|
+
let targetSlug;
|
|
13
|
+
const idIndex = args.findIndex(arg => arg === '--id');
|
|
14
|
+
if (idIndex !== -1 && args[idIndex + 1]) {
|
|
15
|
+
targetId = args[idIndex + 1];
|
|
16
|
+
}
|
|
17
|
+
const slugIndex = args.findIndex(arg => arg === '--slug');
|
|
18
|
+
if (slugIndex !== -1 && args[slugIndex + 1]) {
|
|
19
|
+
targetSlug = args[slugIndex + 1];
|
|
20
|
+
}
|
|
21
|
+
pushLeadCMSContent({ statusOnly, force, targetId, targetSlug, dryRun }).catch((error) => {
|
|
22
|
+
console.error('Error running LeadCMS push:', error.message);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=push.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/cli/bin/push.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAE1C,0BAA0B;AAC1B,IAAI,QAA4B,CAAC;AACjC,IAAI,UAA8B,CAAC;AAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;AACtD,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;IACxC,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;AAC1D,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;IAC5C,UAAU,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,kBAAkB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;IAC3F,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/status.ts"],"names":[],"mappings":";AACA;;GAEG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* LeadCMS Status CLI Entry Point
|
|
4
|
+
*/
|
|
5
|
+
import { statusLeadCMSContent } from '../../scripts/status-leadcms-content.js';
|
|
6
|
+
statusLeadCMSContent().catch((error) => {
|
|
7
|
+
console.error('Error running LeadCMS status:', error.message);
|
|
8
|
+
process.exit(1);
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/bin/status.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAE/E,oBAAoB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;IAC1C,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/cli/bin/watch.ts"],"names":[],"mappings":";AACA;;GAEG;AAGH,OAAO,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/cli/bin/watch.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,iDAAiD;AACjD,OAAO,8BAA8B,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -7,10 +7,11 @@ const __filename = fileURLToPath(import.meta.url);
|
|
|
7
7
|
const __dirname = path.dirname(__filename);
|
|
8
8
|
const command = process.argv[2];
|
|
9
9
|
const commandArgs = process.argv.slice(3);
|
|
10
|
-
const scriptDir = path.join(__dirname, '../scripts');
|
|
11
10
|
function runScript(scriptName, args = []) {
|
|
12
|
-
|
|
13
|
-
const
|
|
11
|
+
// Use the new CLI bin files instead of the scripts directory
|
|
12
|
+
const binDir = path.join(__dirname, 'bin');
|
|
13
|
+
const binPath = path.join(binDir, scriptName);
|
|
14
|
+
const child = spawn('node', [binPath, ...args], {
|
|
14
15
|
stdio: 'inherit',
|
|
15
16
|
env: process.env
|
|
16
17
|
});
|
|
@@ -25,8 +26,9 @@ function runScriptSequence(scripts, args = []) {
|
|
|
25
26
|
return;
|
|
26
27
|
}
|
|
27
28
|
const scriptName = scripts[currentIndex];
|
|
28
|
-
const
|
|
29
|
-
const
|
|
29
|
+
const binDir = path.join(__dirname, 'bin');
|
|
30
|
+
const binPath = path.join(binDir, scriptName);
|
|
31
|
+
const child = spawn('node', [binPath, ...args], {
|
|
30
32
|
stdio: 'inherit',
|
|
31
33
|
env: process.env
|
|
32
34
|
});
|
|
@@ -73,23 +75,23 @@ switch (command) {
|
|
|
73
75
|
runScript('pull-comments.js');
|
|
74
76
|
break;
|
|
75
77
|
case 'push':
|
|
76
|
-
runScript('push
|
|
78
|
+
runScript('push.js', commandArgs);
|
|
77
79
|
break;
|
|
78
80
|
case 'status':
|
|
79
|
-
runScript('status
|
|
81
|
+
runScript('status.js', commandArgs);
|
|
80
82
|
break;
|
|
81
83
|
case 'watch':
|
|
82
|
-
runScript('
|
|
84
|
+
runScript('watch.js');
|
|
83
85
|
break;
|
|
84
86
|
case 'generate-env':
|
|
85
|
-
runScript('generate-env
|
|
87
|
+
runScript('generate-env.js');
|
|
86
88
|
break;
|
|
87
89
|
case 'init':
|
|
88
90
|
case 'config':
|
|
89
|
-
runScript('init
|
|
91
|
+
runScript('init.js');
|
|
90
92
|
break;
|
|
91
93
|
case 'login':
|
|
92
|
-
runScript('login
|
|
94
|
+
runScript('login.js');
|
|
93
95
|
break;
|
|
94
96
|
case 'docker':
|
|
95
97
|
case 'templates':
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/cms.d.ts
CHANGED
|
@@ -67,6 +67,22 @@ export declare function getAllContentSlugsForLocale(locale?: string, contentType
|
|
|
67
67
|
export declare function getCMSContentBySlugForLocaleWithDraftSupport(slug: string, locale: string, userUid?: string | null, includeDrafts?: boolean): CMSContent | null;
|
|
68
68
|
/**
|
|
69
69
|
* Get content by slug for a specific locale
|
|
70
|
+
*
|
|
71
|
+
* Automatically detects preview slugs (containing userUid/GUID pattern) and enables
|
|
72
|
+
* draft content access without requiring explicit configuration.
|
|
73
|
+
*
|
|
74
|
+
* @param slug - Content slug (e.g., 'home' or 'home-550e8400-e29b-41d4-a716-446655440000')
|
|
75
|
+
* @param locale - Optional locale code
|
|
76
|
+
* @param includeDrafts - Whether to include draft content (default: false)
|
|
77
|
+
* @returns Content object or null if not found/not published
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* // Normal slug - requires publishedAt
|
|
81
|
+
* getCMSContentBySlugForLocale('home', 'en')
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* // Preview slug - automatically enables draft access
|
|
85
|
+
* getCMSContentBySlugForLocale('home-550e8400-e29b-41d4-a716-446655440000', 'en')
|
|
70
86
|
*/
|
|
71
87
|
export declare function getCMSContentBySlugForLocale(slug: string, locale?: string, includeDrafts?: boolean): CMSContent | null;
|
|
72
88
|
/**
|
package/dist/lib/cms.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cms.d.ts","sourceRoot":"","sources":["../../src/lib/cms.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5D,MAAM,WAAW,YAAY;IAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CAAE;AACrD,MAAM,WAAW,YAAY;IAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CAAE;AAerD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAkB3D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAehD;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,GAAG,UAAU;IACrD,OAAO,EAAE,CAAC,CAAC;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AA6BD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAUhD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAUlF;AA8BD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,EAChC,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI,EAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,MAAM,EAAE,CAUV;AA+ID;;;;;;GAMG;AACH,wBAAgB,4CAA4C,CAC1D,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EACvB,aAAa,GAAE,OAAe,GAC7B,UAAU,GAAG,IAAI,CA4BnB;AAsBD
|
|
1
|
+
{"version":3,"file":"cms.d.ts","sourceRoot":"","sources":["../../src/lib/cms.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/cms.js
CHANGED
|
@@ -299,6 +299,22 @@ function getCMSContentBySlugForLocaleFromDir(slug, contentDir, locale) {
|
|
|
299
299
|
}
|
|
300
300
|
/**
|
|
301
301
|
* Get content by slug for a specific locale
|
|
302
|
+
*
|
|
303
|
+
* Automatically detects preview slugs (containing userUid/GUID pattern) and enables
|
|
304
|
+
* draft content access without requiring explicit configuration.
|
|
305
|
+
*
|
|
306
|
+
* @param slug - Content slug (e.g., 'home' or 'home-550e8400-e29b-41d4-a716-446655440000')
|
|
307
|
+
* @param locale - Optional locale code
|
|
308
|
+
* @param includeDrafts - Whether to include draft content (default: false)
|
|
309
|
+
* @returns Content object or null if not found/not published
|
|
310
|
+
*
|
|
311
|
+
* @example
|
|
312
|
+
* // Normal slug - requires publishedAt
|
|
313
|
+
* getCMSContentBySlugForLocale('home', 'en')
|
|
314
|
+
*
|
|
315
|
+
* @example
|
|
316
|
+
* // Preview slug - automatically enables draft access
|
|
317
|
+
* getCMSContentBySlugForLocale('home-550e8400-e29b-41d4-a716-446655440000', 'en')
|
|
302
318
|
*/
|
|
303
319
|
export function getCMSContentBySlugForLocale(slug, locale, includeDrafts = false) {
|
|
304
320
|
const config = getLeadCMSConfig();
|
|
@@ -307,6 +323,24 @@ export function getCMSContentBySlugForLocale(slug, locale, includeDrafts = false
|
|
|
307
323
|
console.warn('[LeadCMS] No contentDir configured. Please set up your LeadCMS configuration.');
|
|
308
324
|
return null;
|
|
309
325
|
}
|
|
326
|
+
// Detect preview slug (contains GUID pattern) and automatically enable draft access
|
|
327
|
+
const userUid = extractUserUidFromSlug(slug);
|
|
328
|
+
if (userUid) {
|
|
329
|
+
// Preview slug detected - extract base slug and use draft support
|
|
330
|
+
// Remove the GUID suffix to get the base slug by finding the last dash before the GUID
|
|
331
|
+
// Use case-insensitive search since GUID might be uppercase in the slug but normalized to lowercase in userUid
|
|
332
|
+
const guidPattern = new RegExp(`-${userUid.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')}$`, 'i');
|
|
333
|
+
const baseSlug = slug.replace(guidPattern, '');
|
|
334
|
+
// Try to get user-specific draft first, then fall back to base content
|
|
335
|
+
// Always enable includeDrafts for preview mode to allow draft content access
|
|
336
|
+
const content = getCMSContentBySlugForLocaleWithDraftSupport(baseSlug, locale || config.defaultLanguage, userUid, true);
|
|
337
|
+
// If content was found, update the slug to match the requested preview slug
|
|
338
|
+
if (content) {
|
|
339
|
+
content.slug = slug;
|
|
340
|
+
}
|
|
341
|
+
return content;
|
|
342
|
+
}
|
|
343
|
+
// Normal slug - apply standard draft filtering
|
|
310
344
|
const content = getCMSContentBySlugForLocaleFromDir(slug, contentDir, locale);
|
|
311
345
|
// Filter out drafts by default unless explicitly requested
|
|
312
346
|
if (content && !includeDrafts && isContentDraft(content)) {
|
|
@@ -396,7 +430,8 @@ export function extractUserUidFromSlug(slug) {
|
|
|
396
430
|
// GUID pattern: 8-4-4-4-12 hexadecimal characters with a preceding dash
|
|
397
431
|
const draftSlugPattern = /-([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/i;
|
|
398
432
|
const match = slug.match(draftSlugPattern);
|
|
399
|
-
|
|
433
|
+
// Normalize GUID to lowercase for consistent file system lookups across platforms
|
|
434
|
+
return match ? match[1].toLowerCase() : null;
|
|
400
435
|
}
|
|
401
436
|
export function getAllContentSlugs(contentTypes, includeDrafts = false) {
|
|
402
437
|
const config = getLeadCMSConfig();
|