canopycms 0.0.8 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/resolve-branch.d.ts +2 -1
- package/dist/ai/resolve-branch.d.ts.map +1 -1
- package/dist/ai/resolve-branch.js +4 -2
- package/dist/ai/resolve-branch.js.map +1 -1
- package/dist/cli/generate-ai-content.d.ts.map +1 -1
- package/dist/cli/generate-ai-content.js +18 -4
- package/dist/cli/generate-ai-content.js.map +1 -1
- package/dist/cli/init.js +26 -4
- package/package.json +2 -1
|
@@ -7,7 +7,8 @@ import type { CanopyConfig } from '../config';
|
|
|
7
7
|
* Resolve the branch root directory for reading content.
|
|
8
8
|
*
|
|
9
9
|
* - Dev mode: current working directory (content is in the checkout)
|
|
10
|
-
* -
|
|
10
|
+
* - Static deployment: current working directory (content is in the checkout)
|
|
11
|
+
* - Prod/prod-sim server: load the default base branch context
|
|
11
12
|
*/
|
|
12
13
|
export declare function resolveBranchRoot(config: CanopyConfig): Promise<string>;
|
|
13
14
|
//# sourceMappingURL=resolve-branch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-branch.d.ts","sourceRoot":"","sources":["../../src/ai/resolve-branch.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"resolve-branch.d.ts","sourceRoot":"","sources":["../../src/ai/resolve-branch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB7E"}
|
|
@@ -3,14 +3,16 @@
|
|
|
3
3
|
* Used by both the route handler and build utility.
|
|
4
4
|
*/
|
|
5
5
|
import { loadBranchContext } from '../branch-metadata';
|
|
6
|
+
import { isDeployedStatic } from '../build-mode';
|
|
6
7
|
/**
|
|
7
8
|
* Resolve the branch root directory for reading content.
|
|
8
9
|
*
|
|
9
10
|
* - Dev mode: current working directory (content is in the checkout)
|
|
10
|
-
* -
|
|
11
|
+
* - Static deployment: current working directory (content is in the checkout)
|
|
12
|
+
* - Prod/prod-sim server: load the default base branch context
|
|
11
13
|
*/
|
|
12
14
|
export async function resolveBranchRoot(config) {
|
|
13
|
-
if (config.mode === 'dev') {
|
|
15
|
+
if (config.mode === 'dev' || isDeployedStatic(config)) {
|
|
14
16
|
return process.cwd();
|
|
15
17
|
}
|
|
16
18
|
const baseBranch = config.defaultBaseBranch ?? 'main';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-branch.js","sourceRoot":"","sources":["../../src/ai/resolve-branch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"resolve-branch.js","sourceRoot":"","sources":["../../src/ai/resolve-branch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGhD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAoB;IAC1D,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAA;IACtB,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAA;IACrD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC;QACtC,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC,CAAA;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,sCAAsC,UAAU,KAAK;YACnD,oDAAoD,CACvD,CAAA;IACH,CAAC;IAED,OAAO,OAAO,CAAC,UAAU,CAAA;AAC3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-ai-content.d.ts","sourceRoot":"","sources":["../../src/cli/generate-ai-content.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"generate-ai-content.d.ts","sourceRoot":"","sources":["../../src/cli/generate-ai-content.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,UAAU,2BAA2B;IACnC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAqF9F"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// dist/cli/generate-ai-content.js
|
|
2
2
|
import path11 from "node:path";
|
|
3
|
+
import { createJiti } from "jiti";
|
|
3
4
|
|
|
4
5
|
// dist/build/generate-ai-content.js
|
|
5
6
|
import fs8 from "node:fs/promises";
|
|
@@ -2592,9 +2593,21 @@ var loadBranchContext = async (options) => {
|
|
|
2592
2593
|
};
|
|
2593
2594
|
};
|
|
2594
2595
|
|
|
2596
|
+
// dist/build-mode.js
|
|
2597
|
+
var isDeployedStatic = (config) => {
|
|
2598
|
+
return config.deployedAs === "static";
|
|
2599
|
+
};
|
|
2600
|
+
var STATIC_DEPLOY_USER = Object.freeze({
|
|
2601
|
+
type: "authenticated",
|
|
2602
|
+
userId: "__static_deploy__",
|
|
2603
|
+
groups: ["Admins"],
|
|
2604
|
+
email: "static-deploy@canopycms",
|
|
2605
|
+
name: "Static Deploy"
|
|
2606
|
+
});
|
|
2607
|
+
|
|
2595
2608
|
// dist/ai/resolve-branch.js
|
|
2596
2609
|
async function resolveBranchRoot(config) {
|
|
2597
|
-
if (config.mode === "dev") {
|
|
2610
|
+
if (config.mode === "dev" || isDeployedStatic(config)) {
|
|
2598
2611
|
return process.cwd();
|
|
2599
2612
|
}
|
|
2600
2613
|
const baseBranch = config.defaultBaseBranch ?? "main";
|
|
@@ -2643,13 +2656,14 @@ async function generateAIContentFiles(options) {
|
|
|
2643
2656
|
}
|
|
2644
2657
|
|
|
2645
2658
|
// dist/cli/generate-ai-content.js
|
|
2659
|
+
var jiti = createJiti(import.meta.url);
|
|
2646
2660
|
async function generateAIContentCLI(options) {
|
|
2647
2661
|
const { projectDir, outputDir = "public/ai", configPath, appDir = "app" } = options;
|
|
2648
2662
|
console.log("\nCanopyCMS generate-ai-content\n");
|
|
2649
2663
|
const canopyConfigPath = path11.join(projectDir, "canopycms.config.ts");
|
|
2650
2664
|
let canopyConfigModule;
|
|
2651
2665
|
try {
|
|
2652
|
-
canopyConfigModule = await import(canopyConfigPath);
|
|
2666
|
+
canopyConfigModule = await jiti.import(canopyConfigPath);
|
|
2653
2667
|
} catch (err) {
|
|
2654
2668
|
console.error(`Could not load config from ${canopyConfigPath}`);
|
|
2655
2669
|
console.error(getErrorMessage(err));
|
|
@@ -2660,7 +2674,7 @@ async function generateAIContentCLI(options) {
|
|
|
2660
2674
|
const schemasPath = path11.join(projectDir, appDir, "schemas.ts");
|
|
2661
2675
|
let entrySchemaRegistry = {};
|
|
2662
2676
|
try {
|
|
2663
|
-
const schemasModule = await import(schemasPath);
|
|
2677
|
+
const schemasModule = await jiti.import(schemasPath);
|
|
2664
2678
|
entrySchemaRegistry = schemasModule.entrySchemaRegistry ?? schemasModule;
|
|
2665
2679
|
} catch {
|
|
2666
2680
|
console.warn(` No ${appDir}/schemas.ts found, using empty entry schema registry`);
|
|
@@ -2668,7 +2682,7 @@ async function generateAIContentCLI(options) {
|
|
|
2668
2682
|
let aiConfig;
|
|
2669
2683
|
if (configPath) {
|
|
2670
2684
|
try {
|
|
2671
|
-
const aiConfigModule = await import(path11.resolve(configPath));
|
|
2685
|
+
const aiConfigModule = await jiti.import(path11.resolve(configPath));
|
|
2672
2686
|
aiConfig = aiConfigModule.aiContentConfig ?? aiConfigModule.default ?? aiConfigModule.config;
|
|
2673
2687
|
} catch (err) {
|
|
2674
2688
|
console.error(`Could not load AI config from ${configPath}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-ai-content.js","sourceRoot":"","sources":["../../src/cli/generate-ai-content.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"generate-ai-content.js","sourceRoot":"","sources":["../../src/cli/generate-ai-content.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/init.js
CHANGED
|
@@ -3391,9 +3391,27 @@ var init_branch_metadata = __esm({
|
|
|
3391
3391
|
}
|
|
3392
3392
|
});
|
|
3393
3393
|
|
|
3394
|
+
// dist/build-mode.js
|
|
3395
|
+
var isDeployedStatic, STATIC_DEPLOY_USER;
|
|
3396
|
+
var init_build_mode = __esm({
|
|
3397
|
+
"dist/build-mode.js"() {
|
|
3398
|
+
"use strict";
|
|
3399
|
+
isDeployedStatic = (config) => {
|
|
3400
|
+
return config.deployedAs === "static";
|
|
3401
|
+
};
|
|
3402
|
+
STATIC_DEPLOY_USER = Object.freeze({
|
|
3403
|
+
type: "authenticated",
|
|
3404
|
+
userId: "__static_deploy__",
|
|
3405
|
+
groups: ["Admins"],
|
|
3406
|
+
email: "static-deploy@canopycms",
|
|
3407
|
+
name: "Static Deploy"
|
|
3408
|
+
});
|
|
3409
|
+
}
|
|
3410
|
+
});
|
|
3411
|
+
|
|
3394
3412
|
// dist/ai/resolve-branch.js
|
|
3395
3413
|
async function resolveBranchRoot(config) {
|
|
3396
|
-
if (config.mode === "dev") {
|
|
3414
|
+
if (config.mode === "dev" || isDeployedStatic(config)) {
|
|
3397
3415
|
return process.cwd();
|
|
3398
3416
|
}
|
|
3399
3417
|
const baseBranch = config.defaultBaseBranch ?? "main";
|
|
@@ -3410,6 +3428,7 @@ var init_resolve_branch = __esm({
|
|
|
3410
3428
|
"dist/ai/resolve-branch.js"() {
|
|
3411
3429
|
"use strict";
|
|
3412
3430
|
init_branch_metadata();
|
|
3431
|
+
init_build_mode();
|
|
3413
3432
|
}
|
|
3414
3433
|
});
|
|
3415
3434
|
|
|
@@ -3464,13 +3483,14 @@ __export(generate_ai_content_exports, {
|
|
|
3464
3483
|
generateAIContentCLI: () => generateAIContentCLI
|
|
3465
3484
|
});
|
|
3466
3485
|
import path14 from "node:path";
|
|
3486
|
+
import { createJiti } from "jiti";
|
|
3467
3487
|
async function generateAIContentCLI(options) {
|
|
3468
3488
|
const { projectDir, outputDir = "public/ai", configPath, appDir = "app" } = options;
|
|
3469
3489
|
console.log("\nCanopyCMS generate-ai-content\n");
|
|
3470
3490
|
const canopyConfigPath = path14.join(projectDir, "canopycms.config.ts");
|
|
3471
3491
|
let canopyConfigModule;
|
|
3472
3492
|
try {
|
|
3473
|
-
canopyConfigModule = await import(canopyConfigPath);
|
|
3493
|
+
canopyConfigModule = await jiti.import(canopyConfigPath);
|
|
3474
3494
|
} catch (err) {
|
|
3475
3495
|
console.error(`Could not load config from ${canopyConfigPath}`);
|
|
3476
3496
|
console.error(getErrorMessage(err));
|
|
@@ -3481,7 +3501,7 @@ async function generateAIContentCLI(options) {
|
|
|
3481
3501
|
const schemasPath = path14.join(projectDir, appDir, "schemas.ts");
|
|
3482
3502
|
let entrySchemaRegistry = {};
|
|
3483
3503
|
try {
|
|
3484
|
-
const schemasModule = await import(schemasPath);
|
|
3504
|
+
const schemasModule = await jiti.import(schemasPath);
|
|
3485
3505
|
entrySchemaRegistry = schemasModule.entrySchemaRegistry ?? schemasModule;
|
|
3486
3506
|
} catch {
|
|
3487
3507
|
console.warn(` No ${appDir}/schemas.ts found, using empty entry schema registry`);
|
|
@@ -3489,7 +3509,7 @@ async function generateAIContentCLI(options) {
|
|
|
3489
3509
|
let aiConfig2;
|
|
3490
3510
|
if (configPath) {
|
|
3491
3511
|
try {
|
|
3492
|
-
const aiConfigModule = await import(path14.resolve(configPath));
|
|
3512
|
+
const aiConfigModule = await jiti.import(path14.resolve(configPath));
|
|
3493
3513
|
aiConfig2 = aiConfigModule.aiContentConfig ?? aiConfigModule.default ?? aiConfigModule.config;
|
|
3494
3514
|
} catch (err) {
|
|
3495
3515
|
console.error(`Could not load AI config from ${configPath}`);
|
|
@@ -3520,11 +3540,13 @@ async function generateAIContentCLI(options) {
|
|
|
3520
3540
|
console.log(` Output: ${result.outputDir}
|
|
3521
3541
|
`);
|
|
3522
3542
|
}
|
|
3543
|
+
var jiti;
|
|
3523
3544
|
var init_generate_ai_content2 = __esm({
|
|
3524
3545
|
"dist/cli/generate-ai-content.js"() {
|
|
3525
3546
|
"use strict";
|
|
3526
3547
|
init_generate_ai_content();
|
|
3527
3548
|
init_error();
|
|
3549
|
+
jiti = createJiti(import.meta.url);
|
|
3528
3550
|
}
|
|
3529
3551
|
});
|
|
3530
3552
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"//": "@codemirror/language, @lezer/highlight: workaround — @mdxeditor/editor uses cm6-theme-basic-light which peer-requires these but mdxeditor doesn't declare them as dependencies",
|
|
3
3
|
"name": "canopycms",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.10",
|
|
5
5
|
"description": "CanopyCMS core package: schema-driven content, branch-aware editing, and editor UI for Next.js.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"chokidar": "^4.0.3",
|
|
92
92
|
"chroma-js": "^3.2.0",
|
|
93
93
|
"gray-matter": "^4.0.3",
|
|
94
|
+
"jiti": "^2.6.1",
|
|
94
95
|
"minimatch": "^9.0.5",
|
|
95
96
|
"pathe": "^1.1.2",
|
|
96
97
|
"react-icons": "^5.5.0",
|