canopycms 0.0.45 → 0.0.47
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/branch-workspace.d.ts.map +1 -1
- package/dist/branch-workspace.js +18 -1
- package/dist/branch-workspace.js.map +1 -1
- package/dist/cli/generate-ai-content.js +87 -53
- package/dist/content-reader.d.ts +4 -1
- package/dist/content-reader.d.ts.map +1 -1
- package/dist/content-reader.js +8 -3
- package/dist/content-reader.js.map +1 -1
- package/dist/context.d.ts +23 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +1 -1
- package/dist/context.js.map +1 -1
- package/dist/git-manager.d.ts.map +1 -1
- package/dist/git-manager.js +21 -4
- package/dist/git-manager.js.map +1 -1
- package/dist/utils/provisioning-lock.d.ts +18 -0
- package/dist/utils/provisioning-lock.d.ts.map +1 -0
- package/dist/utils/provisioning-lock.js +34 -0
- package/dist/utils/provisioning-lock.js.map +1 -0
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-workspace.d.ts","sourceRoot":"","sources":["../src/branch-workspace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"branch-workspace.d.ts","sourceRoot":"","sources":["../src/branch-workspace.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAI5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAWrD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,aAAa,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,YAAY,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,EAAE,YAAY;YAIlB,kBAAkB;IAqE1B,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;CAsC7E;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,MAAM,EAAE,YAAY,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,aAAa,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,YAAY,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgCzB"}
|
package/dist/branch-workspace.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
1
2
|
import { ensureBranchRoot } from './paths/index.js';
|
|
2
3
|
import { getBranchMetadataFileManager, loadBranchContext } from './branch-metadata.js';
|
|
3
4
|
import { isDeployedStatic } from './build-mode.js';
|
|
4
5
|
import { operatingStrategy } from './operating-mode/index.js';
|
|
5
6
|
import { GitManager } from './git-manager.js';
|
|
6
7
|
import { createDebugLogger } from './utils/debug.js';
|
|
8
|
+
import { acquireProvisioningLock } from './utils/provisioning-lock.js';
|
|
7
9
|
const log = createDebugLogger({ prefix: 'BranchWorkspace' });
|
|
8
10
|
// In-memory lock to prevent concurrent workspace initialization
|
|
9
11
|
const workspaceInitLocks = new Map();
|
|
@@ -25,11 +27,18 @@ export class BranchWorkspaceManager {
|
|
|
25
27
|
}
|
|
26
28
|
// Create new lock promise
|
|
27
29
|
const lockPromise = (async () => {
|
|
30
|
+
// The in-memory lock above only serializes within one process. Parallel
|
|
31
|
+
// build workers (separate processes) could otherwise both clone into the
|
|
32
|
+
// same branch workspace ("destination path already exists"), so guard the
|
|
33
|
+
// workspace init with a cross-process lock too. initializeWorkspace is
|
|
34
|
+
// idempotent, so the waiter simply finds the workspace already cloned.
|
|
35
|
+
let releaseLock;
|
|
28
36
|
try {
|
|
29
37
|
log.debug('workspace', 'Ensuring git workspace', {
|
|
30
38
|
branchName: options.branchName,
|
|
31
39
|
mode: options.mode,
|
|
32
40
|
});
|
|
41
|
+
releaseLock = await acquireProvisioningLock(path.dirname(options.branchRoot), `.${path.basename(options.branchRoot)}.init.lock`);
|
|
33
42
|
// Delegate git initialization to GitManager
|
|
34
43
|
await GitManager.initializeWorkspace({
|
|
35
44
|
workspacePath: options.branchRoot,
|
|
@@ -47,7 +56,15 @@ export class BranchWorkspaceManager {
|
|
|
47
56
|
});
|
|
48
57
|
}
|
|
49
58
|
finally {
|
|
50
|
-
//
|
|
59
|
+
// Release the cross-process lock first, then clear the in-memory lock.
|
|
60
|
+
if (releaseLock) {
|
|
61
|
+
try {
|
|
62
|
+
await releaseLock();
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
log.debug('workspace', 'Failed to release workspace-init lock', { err });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
51
68
|
workspaceInitLocks.delete(options.branchRoot);
|
|
52
69
|
}
|
|
53
70
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-workspace.js","sourceRoot":"","sources":["../src/branch-workspace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"branch-workspace.js","sourceRoot":"","sources":["../src/branch-workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,11 @@ var __export = (target, all) => {
|
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
// dist/paths/normalize.js
|
|
12
|
-
function normalizeFilesystemPath(
|
|
13
|
-
return
|
|
12
|
+
function normalizeFilesystemPath(path15) {
|
|
13
|
+
return path15.split(/[\\/]+/).filter(Boolean).join("/");
|
|
14
14
|
}
|
|
15
|
-
function hasTraversalSequence(
|
|
16
|
-
const normalized = normalizeFilesystemPath(
|
|
15
|
+
function hasTraversalSequence(path15) {
|
|
16
|
+
const normalized = normalizeFilesystemPath(path15);
|
|
17
17
|
return normalized.includes("..");
|
|
18
18
|
}
|
|
19
19
|
function createLogicalPath(...segments) {
|
|
@@ -23,14 +23,14 @@ function createLogicalPath(...segments) {
|
|
|
23
23
|
}
|
|
24
24
|
return normalized;
|
|
25
25
|
}
|
|
26
|
-
function trimSlashes(
|
|
26
|
+
function trimSlashes(path15) {
|
|
27
27
|
let start = 0;
|
|
28
|
-
let end =
|
|
29
|
-
while (start < end &&
|
|
28
|
+
let end = path15.length;
|
|
29
|
+
while (start < end && path15[start] === "/")
|
|
30
30
|
start++;
|
|
31
|
-
while (end > start &&
|
|
31
|
+
while (end > start && path15[end - 1] === "/")
|
|
32
32
|
end--;
|
|
33
|
-
return
|
|
33
|
+
return path15.slice(start, end);
|
|
34
34
|
}
|
|
35
35
|
var init_normalize = __esm({
|
|
36
36
|
"dist/paths/normalize.js"() {
|
|
@@ -698,12 +698,12 @@ var init_operating_mode = __esm({
|
|
|
698
698
|
});
|
|
699
699
|
|
|
700
700
|
// dist/cli/generate-ai-content.js
|
|
701
|
-
import
|
|
701
|
+
import path14 from "node:path";
|
|
702
702
|
import { createJiti } from "jiti";
|
|
703
703
|
|
|
704
704
|
// dist/build/generate-ai-content.js
|
|
705
|
-
import
|
|
706
|
-
import
|
|
705
|
+
import fs11 from "node:fs/promises";
|
|
706
|
+
import path13 from "node:path";
|
|
707
707
|
|
|
708
708
|
// dist/content-store.js
|
|
709
709
|
import fs4 from "node:fs/promises";
|
|
@@ -1072,13 +1072,13 @@ function extractIdFromFilename(filename) {
|
|
|
1072
1072
|
return null;
|
|
1073
1073
|
}
|
|
1074
1074
|
async function resolveCollectionPath(root, logicalPath) {
|
|
1075
|
-
const
|
|
1076
|
-
const
|
|
1075
|
+
const fs12 = await import("node:fs/promises");
|
|
1076
|
+
const path15 = await import("node:path");
|
|
1077
1077
|
const segments = logicalPath.split("/").filter(Boolean);
|
|
1078
1078
|
let currentPath = root;
|
|
1079
1079
|
for (const segment of segments) {
|
|
1080
1080
|
try {
|
|
1081
|
-
const entries = await
|
|
1081
|
+
const entries = await fs12.readdir(currentPath, { withFileTypes: true });
|
|
1082
1082
|
const matchingDir = entries.find((entry) => {
|
|
1083
1083
|
if (!entry.isDirectory())
|
|
1084
1084
|
return false;
|
|
@@ -1086,7 +1086,7 @@ async function resolveCollectionPath(root, logicalPath) {
|
|
|
1086
1086
|
return logicalName === segment.toLowerCase();
|
|
1087
1087
|
});
|
|
1088
1088
|
if (matchingDir) {
|
|
1089
|
-
currentPath =
|
|
1089
|
+
currentPath = path15.join(currentPath, matchingDir.name);
|
|
1090
1090
|
} else {
|
|
1091
1091
|
return null;
|
|
1092
1092
|
}
|
|
@@ -1243,11 +1243,11 @@ var ContentStore = class {
|
|
|
1243
1243
|
getSchemaItems() {
|
|
1244
1244
|
return this.schemaIndex.values();
|
|
1245
1245
|
}
|
|
1246
|
-
assertSchemaItem(
|
|
1247
|
-
const normalized = normalizeFilesystemPath(
|
|
1246
|
+
assertSchemaItem(path15) {
|
|
1247
|
+
const normalized = normalizeFilesystemPath(path15);
|
|
1248
1248
|
const item = this.schemaIndex.get(normalized);
|
|
1249
1249
|
if (!item) {
|
|
1250
|
-
throw new ContentStoreError(`Unknown schema item: ${
|
|
1250
|
+
throw new ContentStoreError(`Unknown schema item: ${path15}`, "NO_SCHEMA_ITEM");
|
|
1251
1251
|
}
|
|
1252
1252
|
return item;
|
|
1253
1253
|
}
|
|
@@ -2639,8 +2639,8 @@ function computeEntryUrl(collection, slug, contentRoot) {
|
|
|
2639
2639
|
if (slug && slug !== "index") {
|
|
2640
2640
|
segments.push(slug);
|
|
2641
2641
|
}
|
|
2642
|
-
const
|
|
2643
|
-
return
|
|
2642
|
+
const path15 = segments.length > 0 ? `/${segments.join("/")}` : "/";
|
|
2643
|
+
return path15.toLowerCase();
|
|
2644
2644
|
}
|
|
2645
2645
|
|
|
2646
2646
|
// dist/entry-link-resolver.js
|
|
@@ -2973,6 +2973,9 @@ function matchesBundleFilter(entry, filter, contentRoot) {
|
|
|
2973
2973
|
return true;
|
|
2974
2974
|
}
|
|
2975
2975
|
|
|
2976
|
+
// dist/branch-workspace.js
|
|
2977
|
+
import path12 from "node:path";
|
|
2978
|
+
|
|
2976
2979
|
// dist/branch-metadata.js
|
|
2977
2980
|
import { randomUUID } from "node:crypto";
|
|
2978
2981
|
import fs8 from "node:fs/promises";
|
|
@@ -3277,8 +3280,8 @@ var loadBranchContext = async (options) => {
|
|
|
3277
3280
|
init_operating_mode();
|
|
3278
3281
|
|
|
3279
3282
|
// dist/git-manager.js
|
|
3280
|
-
import
|
|
3281
|
-
import
|
|
3283
|
+
import fs10 from "node:fs/promises";
|
|
3284
|
+
import path11 from "node:path";
|
|
3282
3285
|
import { simpleGit as simpleGit2 } from "simple-git";
|
|
3283
3286
|
|
|
3284
3287
|
// dist/utils/git.js
|
|
@@ -3293,6 +3296,19 @@ async function detectHeadBranch(repoRoot, fallback = "main") {
|
|
|
3293
3296
|
}
|
|
3294
3297
|
}
|
|
3295
3298
|
|
|
3299
|
+
// dist/utils/provisioning-lock.js
|
|
3300
|
+
import fs9 from "node:fs/promises";
|
|
3301
|
+
import path10 from "node:path";
|
|
3302
|
+
import lockfile from "proper-lockfile";
|
|
3303
|
+
async function acquireProvisioningLock(lockTargetDir, lockName) {
|
|
3304
|
+
await fs9.mkdir(lockTargetDir, { recursive: true });
|
|
3305
|
+
return lockfile.lock(lockTargetDir, {
|
|
3306
|
+
lockfilePath: path10.join(lockTargetDir, lockName),
|
|
3307
|
+
retries: { retries: 600, factor: 1, minTimeout: 300, maxTimeout: 800, randomize: true },
|
|
3308
|
+
stale: 3e4
|
|
3309
|
+
});
|
|
3310
|
+
}
|
|
3311
|
+
|
|
3296
3312
|
// dist/git-manager.js
|
|
3297
3313
|
var log2 = createDebugLogger({ prefix: "GitManager" });
|
|
3298
3314
|
var remoteInitLocks = /* @__PURE__ */ new Map();
|
|
@@ -3305,11 +3321,11 @@ var GitConflictError = class extends Error {
|
|
|
3305
3321
|
};
|
|
3306
3322
|
var GitManager = class _GitManager {
|
|
3307
3323
|
constructor(options, gitOptions) {
|
|
3308
|
-
this.repoPath =
|
|
3324
|
+
this.repoPath = path11.resolve(options.repoPath);
|
|
3309
3325
|
this.baseBranch = options.baseBranch ?? "main";
|
|
3310
3326
|
this.remote = options.remote ?? "origin";
|
|
3311
3327
|
this.git = simpleGit2({ baseDir: this.repoPath, ...gitOptions });
|
|
3312
|
-
this.git.env("GIT_CEILING_DIRECTORIES",
|
|
3328
|
+
this.git.env("GIT_CEILING_DIRECTORIES", path11.dirname(this.repoPath));
|
|
3313
3329
|
}
|
|
3314
3330
|
static async cloneRepo(remoteUrl, targetPath, baseBranch = "main") {
|
|
3315
3331
|
log2.debug("git", "Cloning repository", {
|
|
@@ -3340,7 +3356,7 @@ var GitManager = class _GitManager {
|
|
|
3340
3356
|
});
|
|
3341
3357
|
await existingLock;
|
|
3342
3358
|
try {
|
|
3343
|
-
const stat = await
|
|
3359
|
+
const stat = await fs10.stat(options.remotePath);
|
|
3344
3360
|
if (stat.isDirectory()) {
|
|
3345
3361
|
log2.debug("git", "Remote exists after waiting for lock");
|
|
3346
3362
|
return;
|
|
@@ -3352,13 +3368,16 @@ var GitManager = class _GitManager {
|
|
|
3352
3368
|
}
|
|
3353
3369
|
}
|
|
3354
3370
|
const lockPromise = log2.timed("git", "ensureLocalSimulatedRemote", async () => {
|
|
3371
|
+
let releaseLock;
|
|
3355
3372
|
try {
|
|
3356
3373
|
log2.debug("git", "Initializing local simulated remote", {
|
|
3357
3374
|
remotePath: options.remotePath,
|
|
3358
3375
|
baseBranch: options.baseBranch
|
|
3359
3376
|
});
|
|
3377
|
+
const remoteParent = path11.dirname(options.remotePath);
|
|
3378
|
+
releaseLock = await acquireProvisioningLock(remoteParent, ".remote-init.lock");
|
|
3360
3379
|
try {
|
|
3361
|
-
const stat = await
|
|
3380
|
+
const stat = await fs10.stat(options.remotePath);
|
|
3362
3381
|
if (stat.isDirectory()) {
|
|
3363
3382
|
log2.debug("git", "Remote already exists, skipping");
|
|
3364
3383
|
return;
|
|
@@ -3396,7 +3415,6 @@ var GitManager = class _GitManager {
|
|
|
3396
3415
|
throw new Error(`Cannot initialize local simulated remote: base branch '${options.baseBranch}' does not exist locally. Please checkout '${options.baseBranch}' first or provide an explicit remoteUrl.`);
|
|
3397
3416
|
}
|
|
3398
3417
|
log2.debug("git", "Creating bare remote repository");
|
|
3399
|
-
await fs9.mkdir(path10.dirname(options.remotePath), { recursive: true });
|
|
3400
3418
|
await simpleGit2().raw([
|
|
3401
3419
|
"init",
|
|
3402
3420
|
"--bare",
|
|
@@ -3437,6 +3455,13 @@ var GitManager = class _GitManager {
|
|
|
3437
3455
|
}
|
|
3438
3456
|
log2.debug("git", "Remote initialization complete");
|
|
3439
3457
|
} finally {
|
|
3458
|
+
if (releaseLock) {
|
|
3459
|
+
try {
|
|
3460
|
+
await releaseLock();
|
|
3461
|
+
} catch (err) {
|
|
3462
|
+
log2.debug("git", "Failed to release remote-init lock", { err });
|
|
3463
|
+
}
|
|
3464
|
+
}
|
|
3440
3465
|
remoteInitLocks.delete(options.remotePath);
|
|
3441
3466
|
}
|
|
3442
3467
|
});
|
|
@@ -3464,7 +3489,7 @@ var GitManager = class _GitManager {
|
|
|
3464
3489
|
*/
|
|
3465
3490
|
static async validateGitRepoExists(repoPath) {
|
|
3466
3491
|
try {
|
|
3467
|
-
const stat = await
|
|
3492
|
+
const stat = await fs10.stat(path11.join(repoPath, ".git"));
|
|
3468
3493
|
if (!stat.isDirectory()) {
|
|
3469
3494
|
throw new Error(`Expected git repo at ${repoPath}`);
|
|
3470
3495
|
}
|
|
@@ -3502,7 +3527,7 @@ var GitManager = class _GitManager {
|
|
|
3502
3527
|
return process.env[config.envVarName];
|
|
3503
3528
|
if (config.autoDetectRemotePath) {
|
|
3504
3529
|
try {
|
|
3505
|
-
const stat = await
|
|
3530
|
+
const stat = await fs10.stat(config.autoDetectRemotePath);
|
|
3506
3531
|
if (stat.isDirectory()) {
|
|
3507
3532
|
log2.debug("git", "Auto-detected local remote", {
|
|
3508
3533
|
path: config.autoDetectRemotePath
|
|
@@ -3515,8 +3540,8 @@ var GitManager = class _GitManager {
|
|
|
3515
3540
|
if (config.shouldAutoInitLocal) {
|
|
3516
3541
|
const gitRoot = await this.findGitRoot();
|
|
3517
3542
|
const sourceRoot = options.sourceRoot;
|
|
3518
|
-
const sourcePath = sourceRoot ?
|
|
3519
|
-
const localRemotePath =
|
|
3543
|
+
const sourcePath = sourceRoot ? path11.resolve(gitRoot, sourceRoot) : gitRoot;
|
|
3544
|
+
const localRemotePath = path11.join(sourcePath, config.defaultRemotePath);
|
|
3520
3545
|
await this.ensureLocalSimulatedRemote({
|
|
3521
3546
|
remotePath: localRemotePath,
|
|
3522
3547
|
sourcePath: gitRoot,
|
|
@@ -3541,7 +3566,7 @@ var GitManager = class _GitManager {
|
|
|
3541
3566
|
static async initializeWorkspace(options) {
|
|
3542
3567
|
let baseBranch = options.baseBranch;
|
|
3543
3568
|
if (!baseBranch && options.mode === "dev") {
|
|
3544
|
-
const sourceRoot = options.sourceRoot ?
|
|
3569
|
+
const sourceRoot = options.sourceRoot ? path11.resolve(process.cwd(), options.sourceRoot) : process.cwd();
|
|
3545
3570
|
baseBranch = await detectHeadBranch(sourceRoot);
|
|
3546
3571
|
}
|
|
3547
3572
|
baseBranch = baseBranch ?? "main";
|
|
@@ -3549,18 +3574,18 @@ var GitManager = class _GitManager {
|
|
|
3549
3574
|
let repoExists = false;
|
|
3550
3575
|
try {
|
|
3551
3576
|
const checkGit = simpleGit2({ baseDir: options.workspacePath });
|
|
3552
|
-
checkGit.env("GIT_CEILING_DIRECTORIES",
|
|
3577
|
+
checkGit.env("GIT_CEILING_DIRECTORIES", path11.dirname(options.workspacePath));
|
|
3553
3578
|
await checkGit.raw(["rev-parse", "--git-dir"]);
|
|
3554
3579
|
repoExists = true;
|
|
3555
3580
|
} catch {
|
|
3556
|
-
const gitPath =
|
|
3581
|
+
const gitPath = path11.join(options.workspacePath, ".git");
|
|
3557
3582
|
try {
|
|
3558
|
-
const stat = await
|
|
3583
|
+
const stat = await fs10.stat(gitPath);
|
|
3559
3584
|
if (stat.isDirectory()) {
|
|
3560
3585
|
log2.debug("git", "Removing corrupt .git directory", {
|
|
3561
3586
|
workspacePath: options.workspacePath
|
|
3562
3587
|
});
|
|
3563
|
-
await
|
|
3588
|
+
await fs10.rm(gitPath, { recursive: true });
|
|
3564
3589
|
}
|
|
3565
3590
|
} catch (cleanupErr) {
|
|
3566
3591
|
if (!isNotFoundError(cleanupErr))
|
|
@@ -3582,7 +3607,7 @@ var GitManager = class _GitManager {
|
|
|
3582
3607
|
await _GitManager.cloneRepo(remoteUrl, options.workspacePath, baseBranch);
|
|
3583
3608
|
justCloned = true;
|
|
3584
3609
|
const freshGit = simpleGit2({ baseDir: options.workspacePath });
|
|
3585
|
-
freshGit.env("GIT_CEILING_DIRECTORIES",
|
|
3610
|
+
freshGit.env("GIT_CEILING_DIRECTORIES", path11.dirname(options.workspacePath));
|
|
3586
3611
|
await freshGit.addConfig("canopycms.managed", "true");
|
|
3587
3612
|
await freshGit.addConfig("user.name", options.gitBotAuthorName);
|
|
3588
3613
|
await freshGit.addConfig("user.email", options.gitBotAuthorEmail);
|
|
@@ -3798,11 +3823,11 @@ var GitManager = class _GitManager {
|
|
|
3798
3823
|
* This is idempotent - if the pattern already exists, it won't be added again.
|
|
3799
3824
|
*/
|
|
3800
3825
|
async ensureGitExclude(pattern) {
|
|
3801
|
-
const excludePath =
|
|
3802
|
-
await
|
|
3826
|
+
const excludePath = path11.join(this.repoPath, ".git", "info", "exclude");
|
|
3827
|
+
await fs10.mkdir(path11.dirname(excludePath), { recursive: true });
|
|
3803
3828
|
let content = "";
|
|
3804
3829
|
try {
|
|
3805
|
-
content = await
|
|
3830
|
+
content = await fs10.readFile(excludePath, "utf-8");
|
|
3806
3831
|
} catch (err) {
|
|
3807
3832
|
if (!isNotFoundError(err))
|
|
3808
3833
|
throw err;
|
|
@@ -3814,7 +3839,7 @@ var GitManager = class _GitManager {
|
|
|
3814
3839
|
}
|
|
3815
3840
|
const needsLeadingNewline = content.length > 0 && !content.endsWith("\n");
|
|
3816
3841
|
const newContent = content + (needsLeadingNewline ? "\n" : "") + pattern + "\n";
|
|
3817
|
-
await
|
|
3842
|
+
await fs10.writeFile(excludePath, newContent, "utf-8");
|
|
3818
3843
|
log2.debug("git", "Added pattern to .git/info/exclude", { pattern });
|
|
3819
3844
|
}
|
|
3820
3845
|
/**
|
|
@@ -3842,9 +3867,9 @@ var GitManager = class _GitManager {
|
|
|
3842
3867
|
} catch {
|
|
3843
3868
|
}
|
|
3844
3869
|
for (const [filePath, content] of Object.entries(initialFiles)) {
|
|
3845
|
-
const absolutePath =
|
|
3846
|
-
await
|
|
3847
|
-
await
|
|
3870
|
+
const absolutePath = path11.join(this.repoPath, filePath);
|
|
3871
|
+
await fs10.mkdir(path11.dirname(absolutePath), { recursive: true });
|
|
3872
|
+
await fs10.writeFile(absolutePath, content, "utf-8");
|
|
3848
3873
|
await this.git.add(filePath);
|
|
3849
3874
|
}
|
|
3850
3875
|
await this.git.commit("Initialize settings branch", ["--allow-empty"]);
|
|
@@ -3867,11 +3892,13 @@ var BranchWorkspaceManager = class {
|
|
|
3867
3892
|
return;
|
|
3868
3893
|
}
|
|
3869
3894
|
const lockPromise = (async () => {
|
|
3895
|
+
let releaseLock;
|
|
3870
3896
|
try {
|
|
3871
3897
|
log3.debug("workspace", "Ensuring git workspace", {
|
|
3872
3898
|
branchName: options.branchName,
|
|
3873
3899
|
mode: options.mode
|
|
3874
3900
|
});
|
|
3901
|
+
releaseLock = await acquireProvisioningLock(path12.dirname(options.branchRoot), `.${path12.basename(options.branchRoot)}.init.lock`);
|
|
3875
3902
|
await GitManager.initializeWorkspace({
|
|
3876
3903
|
workspacePath: options.branchRoot,
|
|
3877
3904
|
branchName: options.branchName,
|
|
@@ -3887,6 +3914,13 @@ var BranchWorkspaceManager = class {
|
|
|
3887
3914
|
gitExcludePattern: operatingStrategy(options.mode).getGitExcludePattern()
|
|
3888
3915
|
});
|
|
3889
3916
|
} finally {
|
|
3917
|
+
if (releaseLock) {
|
|
3918
|
+
try {
|
|
3919
|
+
await releaseLock();
|
|
3920
|
+
} catch (err) {
|
|
3921
|
+
log3.debug("workspace", "Failed to release workspace-init lock", { err });
|
|
3922
|
+
}
|
|
3923
|
+
}
|
|
3890
3924
|
workspaceInitLocks.delete(options.branchRoot);
|
|
3891
3925
|
}
|
|
3892
3926
|
})();
|
|
@@ -4001,15 +4035,15 @@ async function generateAIContentFiles(options) {
|
|
|
4001
4035
|
config: aiConfig,
|
|
4002
4036
|
entryLinkUrl: config.entryLinkUrl
|
|
4003
4037
|
});
|
|
4004
|
-
const absoluteOutputDir =
|
|
4038
|
+
const absoluteOutputDir = path13.resolve(outputDir) + path13.sep;
|
|
4005
4039
|
let fileCount = 0;
|
|
4006
4040
|
for (const [filePath, content] of result.files) {
|
|
4007
|
-
const absolutePath =
|
|
4041
|
+
const absolutePath = path13.resolve(path13.join(absoluteOutputDir, filePath));
|
|
4008
4042
|
if (!absolutePath.startsWith(absoluteOutputDir)) {
|
|
4009
4043
|
throw new Error(`Path traversal detected in AI content output: ${filePath}`);
|
|
4010
4044
|
}
|
|
4011
|
-
await
|
|
4012
|
-
await
|
|
4045
|
+
await fs11.mkdir(path13.dirname(absolutePath), { recursive: true });
|
|
4046
|
+
await fs11.writeFile(absolutePath, content, "utf-8");
|
|
4013
4047
|
fileCount++;
|
|
4014
4048
|
}
|
|
4015
4049
|
return { fileCount, outputDir: absoluteOutputDir };
|
|
@@ -4020,7 +4054,7 @@ var jiti = createJiti(import.meta.url);
|
|
|
4020
4054
|
async function generateAIContentCLI(options) {
|
|
4021
4055
|
const { projectDir, outputDir = "public/ai", configPath, appDir = "app" } = options;
|
|
4022
4056
|
console.log("\nCanopyCMS generate-ai-content\n");
|
|
4023
|
-
const canopyConfigPath =
|
|
4057
|
+
const canopyConfigPath = path14.join(projectDir, "canopycms.config.ts");
|
|
4024
4058
|
let canopyConfigModule;
|
|
4025
4059
|
try {
|
|
4026
4060
|
canopyConfigModule = await jiti.import(canopyConfigPath);
|
|
@@ -4031,7 +4065,7 @@ async function generateAIContentCLI(options) {
|
|
|
4031
4065
|
}
|
|
4032
4066
|
const configExport = canopyConfigModule.default ?? canopyConfigModule.config ?? canopyConfigModule;
|
|
4033
4067
|
const serverConfig = typeof configExport === "object" && configExport !== null && "server" in configExport ? configExport.server : configExport;
|
|
4034
|
-
const schemasPath =
|
|
4068
|
+
const schemasPath = path14.join(projectDir, appDir, "schemas.ts");
|
|
4035
4069
|
let entrySchemaRegistry = {};
|
|
4036
4070
|
try {
|
|
4037
4071
|
const schemasModule = await jiti.import(schemasPath);
|
|
@@ -4042,7 +4076,7 @@ async function generateAIContentCLI(options) {
|
|
|
4042
4076
|
let aiConfig;
|
|
4043
4077
|
if (configPath) {
|
|
4044
4078
|
try {
|
|
4045
|
-
const aiConfigModule = await jiti.import(
|
|
4079
|
+
const aiConfigModule = await jiti.import(path14.resolve(configPath));
|
|
4046
4080
|
aiConfig = aiConfigModule.aiContentConfig ?? aiConfigModule.default ?? aiConfigModule.config;
|
|
4047
4081
|
} catch (err) {
|
|
4048
4082
|
console.error(`Could not load AI config from ${configPath}`);
|
|
@@ -4059,7 +4093,7 @@ async function generateAIContentCLI(options) {
|
|
|
4059
4093
|
console.error("Make sure canopycms.config.ts uses defineCanopyConfig().");
|
|
4060
4094
|
process.exit(1);
|
|
4061
4095
|
}
|
|
4062
|
-
const resolvedOutput =
|
|
4096
|
+
const resolvedOutput = path14.resolve(projectDir, outputDir);
|
|
4063
4097
|
console.log(` Output: ${resolvedOutput}`);
|
|
4064
4098
|
console.log(` Mode: ${serverConfig.mode ?? "dev"}`);
|
|
4065
4099
|
const result = await generateAIContentFiles({
|
package/dist/content-reader.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type LogicalPath, type Slug } from './paths';
|
|
1
|
+
import { type LogicalPath, type PhysicalPath, type Slug } from './paths';
|
|
2
2
|
import type { CanopyServices } from './services';
|
|
3
3
|
import type { BranchContext } from './types';
|
|
4
4
|
import type { CanopyUser } from './user';
|
|
@@ -26,6 +26,9 @@ export interface ContentReader {
|
|
|
26
26
|
read: <T = unknown>(input: ReadContentInput, message?: string) => Promise<{
|
|
27
27
|
data: T;
|
|
28
28
|
path: string;
|
|
29
|
+
meta: {
|
|
30
|
+
physicalPath: PhysicalPath;
|
|
31
|
+
};
|
|
29
32
|
}>;
|
|
30
33
|
}
|
|
31
34
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-reader.d.ts","sourceRoot":"","sources":["../src/content-reader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"content-reader.d.ts","sourceRoot":"","sources":["../src/content-reader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,IAAI,EAAE,MAAM,SAAS,CAAA;AAG5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAKxC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;CACrE;AAED,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,SAAS,EAAE,WAAW,CAAA;IACtB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gFAAgF;IAChF,IAAI,EAAE,UAAU,CAAA;IAChB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,EAChB,KAAK,EAAE,gBAAgB,EACvB,OAAO,CAAC,EAAE,MAAM,KACb,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE;YAAE,YAAY,EAAE,YAAY,CAAA;SAAE,CAAA;KAAE,CAAC,CAAA;CAC9E;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,oBAAoB,KAAG,aAsMnE,CAAA"}
|
package/dist/content-reader.js
CHANGED
|
@@ -92,9 +92,14 @@ export const createContentReader = (options) => {
|
|
|
92
92
|
const { context, branchRoot, store } = await resolveStore(branchName);
|
|
93
93
|
// Get the path WITHOUT reading the file
|
|
94
94
|
let relativePath;
|
|
95
|
+
// Absolute filesystem path to the entry file. Surfaced on read() / readByUrlPath()
|
|
96
|
+
// for server-side colocated-artifact reads (e.g. a sibling profile.json). Already
|
|
97
|
+
// computed here for permission checks; just carried through.
|
|
98
|
+
let physicalPath;
|
|
95
99
|
try {
|
|
96
100
|
const resolved = await store.resolveDocumentPath(entryPath, slug ?? '');
|
|
97
101
|
relativePath = resolved.relativePath;
|
|
102
|
+
physicalPath = resolved.absolutePath;
|
|
98
103
|
}
|
|
99
104
|
catch (err) {
|
|
100
105
|
const message = err instanceof ContentStoreError ? err.message : 'Invalid content request';
|
|
@@ -128,7 +133,7 @@ export const createContentReader = (options) => {
|
|
|
128
133
|
const doc = await store.read(entryPath, slug ?? '', {
|
|
129
134
|
resolveReferences: input.resolveReferences ?? true,
|
|
130
135
|
});
|
|
131
|
-
return { doc, store };
|
|
136
|
+
return { doc, store, physicalPath };
|
|
132
137
|
}
|
|
133
138
|
catch (err) {
|
|
134
139
|
if (isNotFoundError(err))
|
|
@@ -143,7 +148,7 @@ export const createContentReader = (options) => {
|
|
|
143
148
|
const defaultMessage = `Content not found for ${entryPath}${slug ? `/${slug}` : ''} on branch ${branchName}`;
|
|
144
149
|
throw new ContentStoreError(message ?? defaultMessage, 'NOT_FOUND');
|
|
145
150
|
}
|
|
146
|
-
const { doc, store } = result;
|
|
151
|
+
const { doc, store, physicalPath } = result;
|
|
147
152
|
// For md/mdx format, merge the body into the data so callers get a complete object.
|
|
148
153
|
// The field name comes from the schema's isBody flag (defaults to 'body').
|
|
149
154
|
const docRecord = doc;
|
|
@@ -162,7 +167,7 @@ export const createContentReader = (options) => {
|
|
|
162
167
|
slug,
|
|
163
168
|
branch: branchName,
|
|
164
169
|
});
|
|
165
|
-
return { data, path };
|
|
170
|
+
return { data, path, meta: { physicalPath } };
|
|
166
171
|
};
|
|
167
172
|
return { read };
|
|
168
173
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-reader.js","sourceRoot":"","sources":["../src/content-reader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"content-reader.js","sourceRoot":"","sources":["../src/content-reader.ts"],"names":[],"mappings":"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"}
|
package/dist/context.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CanopyUser } from './user';
|
|
2
2
|
import type { CanopyServices } from './services';
|
|
3
|
+
import { type PhysicalPath } from './paths';
|
|
3
4
|
import { type BuildContentTreeOptions, type ContentTreeNode, type DefaultEntryTypes } from './content-tree';
|
|
4
5
|
import { type ListEntriesOptions, type ListEntriesItem } from './content-listing';
|
|
5
6
|
export interface CanopyContextOptions {
|
|
@@ -36,7 +37,15 @@ export interface CanopyBuildContext {
|
|
|
36
37
|
buildContentTree: <T = unknown, TEntryTypes = DefaultEntryTypes>(options?: BuildContentTreeOptions<T, TEntryTypes>) => Promise<ContentTreeNode<T>[]>;
|
|
37
38
|
/** List all content entries as a flat array. */
|
|
38
39
|
listEntries: <T = Record<string, unknown>>(options?: ListEntriesOptions<T>) => Promise<ListEntriesItem<T>[]>;
|
|
39
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Content reader (auth context applied automatically — admin at build time).
|
|
42
|
+
*
|
|
43
|
+
* `meta.physicalPath` is the absolute filesystem path to the resolved entry file.
|
|
44
|
+
* It is **server-only** — do not serialize it to the client or embed it in public
|
|
45
|
+
* output, as it reveals the deployment's filesystem layout (home dir / EFS mount /
|
|
46
|
+
* branch name). Intended for build-time reads of colocated artifacts, e.g.
|
|
47
|
+
* `fs.readFile(path.join(path.dirname(result.meta.physicalPath), 'profile.json'))`.
|
|
48
|
+
*/
|
|
40
49
|
read: <T = unknown>(input: {
|
|
41
50
|
entryPath: string;
|
|
42
51
|
slug?: string;
|
|
@@ -45,6 +54,9 @@ export interface CanopyBuildContext {
|
|
|
45
54
|
}) => Promise<{
|
|
46
55
|
data: T;
|
|
47
56
|
path: string;
|
|
57
|
+
meta: {
|
|
58
|
+
physicalPath: PhysicalPath;
|
|
59
|
+
};
|
|
48
60
|
}>;
|
|
49
61
|
/**
|
|
50
62
|
* Read content by URL path, resolving the collection/entry split automatically.
|
|
@@ -56,6 +68,11 @@ export interface CanopyBuildContext {
|
|
|
56
68
|
* index entry (use buildContentTree for those) and non-entry/invalid paths such as
|
|
57
69
|
* `/favicon.ico` or Next internals (the slug validator rejects them, treated as a miss).
|
|
58
70
|
*
|
|
71
|
+
* The result's `meta.physicalPath` is the absolute filesystem path to the resolved
|
|
72
|
+
* entry file. It is **server-only** — do not serialize it to the client or embed it
|
|
73
|
+
* in public output, as it reveals the deployment's filesystem layout (home dir / EFS
|
|
74
|
+
* mount / branch name). Intended for build-time reads of colocated artifacts.
|
|
75
|
+
*
|
|
59
76
|
* @example
|
|
60
77
|
* ```ts
|
|
61
78
|
* // URL /docs/guides/getting-started → reads content/docs/guides + slug "getting-started"
|
|
@@ -64,6 +81,8 @@ export interface CanopyBuildContext {
|
|
|
64
81
|
* const result = await canopy.readByUrlPath<DocContent>('/docs/guides/getting-started')
|
|
65
82
|
* if (result) {
|
|
66
83
|
* const { data, path } = result
|
|
84
|
+
* // Read a sibling artifact colocated with the entry (server-only):
|
|
85
|
+
* const profile = path.join(path.dirname(result.meta.physicalPath), 'profile.json')
|
|
67
86
|
* }
|
|
68
87
|
* ```
|
|
69
88
|
*/
|
|
@@ -73,6 +92,9 @@ export interface CanopyBuildContext {
|
|
|
73
92
|
}) => Promise<{
|
|
74
93
|
data: T;
|
|
75
94
|
path: string;
|
|
95
|
+
meta: {
|
|
96
|
+
physicalPath: PhysicalPath;
|
|
97
|
+
};
|
|
76
98
|
} | null>;
|
|
77
99
|
/** Underlying services */
|
|
78
100
|
services: CanopyServices;
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD,OAAO,EAIL,KAAK,YAAY,EAElB,MAAM,SAAS,CAAA;AAGhB,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAA;AAO1B,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAA;IACxB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;CACvC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,gBAAgB,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,WAAW,GAAG,iBAAiB,EAC7D,OAAO,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,WAAW,CAAC,KAC9C,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAElC,gDAAgD;IAChD,WAAW,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAC5B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAElC;;;;;;;;OAQG;IACH,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE;QACzB,SAAS,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAC5B,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE;YAAE,YAAY,EAAE,YAAY,CAAA;SAAE,CAAA;KAAE,CAAC,CAAA;IAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,aAAa,EAAE,CAAC,CAAC,GAAG,OAAO,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,KACvD,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE;YAAE,YAAY,EAAE,YAAY,CAAA;SAAE,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IAEpF,0BAA0B;IAC1B,QAAQ,EAAE,cAAc,CAAA;CACzB;AAED,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD,iCAAiC;IACjC,IAAI,EAAE,UAAU,CAAA;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB;sBAsBlC,OAAO,CAAC,aAAa,CAAC;;EA6HpD"}
|
package/dist/context.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isDeployedStatic, isBuildMode, STATIC_DEPLOY_USER } from './build-mode.js';
|
|
2
2
|
import { createContentReader } from './content-reader.js';
|
|
3
3
|
import { ContentStoreError } from './content-store.js';
|
|
4
|
-
import { createLogicalPath, parseSlug, resolveBranchPaths } from './paths/index.js';
|
|
4
|
+
import { createLogicalPath, parseSlug, resolveBranchPaths, } from './paths/index.js';
|
|
5
5
|
import { resolveUrlPathCandidates } from './url-path-resolver.js';
|
|
6
6
|
import { loadOrCreateBranchContext } from './branch-workspace.js';
|
|
7
7
|
import { buildContentTree as buildContentTreeImpl, } from './content-tree.js';
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-manager.d.ts","sourceRoot":"","sources":["../src/git-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,YAAY,CAAA;AAEnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"git-manager.d.ts","sourceRoot":"","sources":["../src/git-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,YAAY,CAAA;AAEnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAYrD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC,CAAA;AAEjG,qBAAa,gBAAiB,SAAQ,KAAK;aACb,eAAe,EAAE,MAAM,EAAE;gBAAzB,eAAe,EAAE,MAAM,EAAE;CAItD;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,aAAa,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,aAAa,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAA;IAChC,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,CAAA;IACxB,wEAAwE;IACxE,iBAAiB,EAAE,MAAM,CAAA;IACzB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAEnB,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;WAWjE,SAAS,CACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,SAAS,GAClB,OAAO,CAAC,IAAI,CAAC;IAWhB;;;;;;;;;;OAUG;WACU,0BAA0B,CAAC,OAAO,EAAE;QAC/C,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8KjB;;;OAGG;WACU,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAY3C;;;;OAIG;WACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnE;;;;;;;;;;;;;;OAcG;WACU,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgD5F;;;;;;;;;;OAUG;WACU,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAC;IAuHpF,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAW5B,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBzB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBlC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB/B,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpC,YAAY,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBpE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BpD;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/C;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAK9C;;;OAGG;IACG,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/C;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAMjD;;;;;;;;OAQG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BtD;;;;;;;;;;OAUG;IACG,0BAA0B,CAC9B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC;CAmCjB"}
|
package/dist/git-manager.js
CHANGED
|
@@ -4,6 +4,7 @@ import { simpleGit, } from 'simple-git';
|
|
|
4
4
|
import { createDebugLogger } from './utils/debug.js';
|
|
5
5
|
import { isNotFoundError } from './utils/error.js';
|
|
6
6
|
import { detectHeadBranch } from './utils/git.js';
|
|
7
|
+
import { acquireProvisioningLock } from './utils/provisioning-lock.js';
|
|
7
8
|
const log = createDebugLogger({ prefix: 'GitManager' });
|
|
8
9
|
// In-memory lock to prevent concurrent remote.git initialization
|
|
9
10
|
// Maps remotePath -> Promise<void> to serialize access
|
|
@@ -74,12 +75,21 @@ export class GitManager {
|
|
|
74
75
|
}
|
|
75
76
|
// Create new lock promise
|
|
76
77
|
const lockPromise = log.timed('git', 'ensureLocalSimulatedRemote', async () => {
|
|
78
|
+
// The in-memory lock above only serializes within one process; take a
|
|
79
|
+
// cross-process lock too so parallel build workers can't both create the
|
|
80
|
+
// bare remote and race ("cannot mkdir remote.git: File exists"). Released
|
|
81
|
+
// in the finally below.
|
|
82
|
+
let releaseLock;
|
|
77
83
|
try {
|
|
78
84
|
log.debug('git', 'Initializing local simulated remote', {
|
|
79
85
|
remotePath: options.remotePath,
|
|
80
86
|
baseBranch: options.baseBranch,
|
|
81
87
|
});
|
|
82
|
-
//
|
|
88
|
+
// Take the cross-process lock before checking/creating the bare remote.
|
|
89
|
+
const remoteParent = path.dirname(options.remotePath);
|
|
90
|
+
releaseLock = await acquireProvisioningLock(remoteParent, '.remote-init.lock');
|
|
91
|
+
// Check if already exists (idempotent) — another process may have
|
|
92
|
+
// finished provisioning while we waited for the lock.
|
|
83
93
|
try {
|
|
84
94
|
const stat = await fs.stat(options.remotePath);
|
|
85
95
|
if (stat.isDirectory()) {
|
|
@@ -132,9 +142,8 @@ export class GitManager {
|
|
|
132
142
|
throw new Error(`Cannot initialize local simulated remote: base branch '${options.baseBranch}' does not exist locally. ` +
|
|
133
143
|
`Please checkout '${options.baseBranch}' first or provide an explicit remoteUrl.`);
|
|
134
144
|
}
|
|
135
|
-
// Create bare remote
|
|
145
|
+
// Create bare remote (parent dir already ensured above, under the lock)
|
|
136
146
|
log.debug('git', 'Creating bare remote repository');
|
|
137
|
-
await fs.mkdir(path.dirname(options.remotePath), { recursive: true });
|
|
138
147
|
await simpleGit().raw([
|
|
139
148
|
'init',
|
|
140
149
|
'--bare',
|
|
@@ -188,7 +197,15 @@ export class GitManager {
|
|
|
188
197
|
log.debug('git', 'Remote initialization complete');
|
|
189
198
|
}
|
|
190
199
|
finally {
|
|
191
|
-
//
|
|
200
|
+
// Release the cross-process lock first, then clear the in-memory lock.
|
|
201
|
+
if (releaseLock) {
|
|
202
|
+
try {
|
|
203
|
+
await releaseLock();
|
|
204
|
+
}
|
|
205
|
+
catch (err) {
|
|
206
|
+
log.debug('git', 'Failed to release remote-init lock', { err });
|
|
207
|
+
}
|
|
208
|
+
}
|
|
192
209
|
remoteInitLocks.delete(options.remotePath);
|
|
193
210
|
}
|
|
194
211
|
});
|
package/dist/git-manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-manager.js","sourceRoot":"","sources":["../src/git-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git-manager.js","sourceRoot":"","sources":["../src/git-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Acquire a cross-process filesystem lock for content provisioning.
|
|
3
|
+
*
|
|
4
|
+
* In-memory locks only serialize work within a single process. Build tools such
|
|
5
|
+
* as Next.js static generation provision content from parallel worker
|
|
6
|
+
* *processes*, so two processes can otherwise race while creating the same git
|
|
7
|
+
* workspace (e.g. "cannot mkdir remote.git: File exists" or "destination path
|
|
8
|
+
* already exists"). proper-lockfile uses an atomic on-disk lock that holds across
|
|
9
|
+
* processes, so only one provisions a given resource at a time while the others
|
|
10
|
+
* wait and then find it already done.
|
|
11
|
+
*
|
|
12
|
+
* Returns a release function — always call it in a `finally`.
|
|
13
|
+
*
|
|
14
|
+
* @param lockTargetDir directory the lock is anchored on (created if missing)
|
|
15
|
+
* @param lockName name of the on-disk lock marker, created inside lockTargetDir
|
|
16
|
+
*/
|
|
17
|
+
export declare function acquireProvisioningLock(lockTargetDir: string, lockName: string): Promise<() => Promise<void>>;
|
|
18
|
+
//# sourceMappingURL=provisioning-lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provisioning-lock.d.ts","sourceRoot":"","sources":["../../src/utils/provisioning-lock.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAc9B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import lockfile from 'proper-lockfile';
|
|
4
|
+
/**
|
|
5
|
+
* Acquire a cross-process filesystem lock for content provisioning.
|
|
6
|
+
*
|
|
7
|
+
* In-memory locks only serialize work within a single process. Build tools such
|
|
8
|
+
* as Next.js static generation provision content from parallel worker
|
|
9
|
+
* *processes*, so two processes can otherwise race while creating the same git
|
|
10
|
+
* workspace (e.g. "cannot mkdir remote.git: File exists" or "destination path
|
|
11
|
+
* already exists"). proper-lockfile uses an atomic on-disk lock that holds across
|
|
12
|
+
* processes, so only one provisions a given resource at a time while the others
|
|
13
|
+
* wait and then find it already done.
|
|
14
|
+
*
|
|
15
|
+
* Returns a release function — always call it in a `finally`.
|
|
16
|
+
*
|
|
17
|
+
* @param lockTargetDir directory the lock is anchored on (created if missing)
|
|
18
|
+
* @param lockName name of the on-disk lock marker, created inside lockTargetDir
|
|
19
|
+
*/
|
|
20
|
+
export async function acquireProvisioningLock(lockTargetDir, lockName) {
|
|
21
|
+
await fs.mkdir(lockTargetDir, { recursive: true });
|
|
22
|
+
// Generous, jittered retries: many waiters (one per build worker process, each
|
|
23
|
+
// prerendering several pages) may contend, and the holder can take several
|
|
24
|
+
// seconds to init + clone/push. `randomize` de-syncs the herd so a waiter isn't
|
|
25
|
+
// perpetually colliding on the same tick. `stale` stays modest because proper-
|
|
26
|
+
// lockfile auto-refreshes a live holder's lock, so it only expires when a
|
|
27
|
+
// process actually dies.
|
|
28
|
+
return lockfile.lock(lockTargetDir, {
|
|
29
|
+
lockfilePath: path.join(lockTargetDir, lockName),
|
|
30
|
+
retries: { retries: 600, factor: 1, minTimeout: 300, maxTimeout: 800, randomize: true },
|
|
31
|
+
stale: 30_000,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=provisioning-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provisioning-lock.js","sourceRoot":"","sources":["../../src/utils/provisioning-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AAEtC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,QAAgB;IAEhB,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAElD,+EAA+E;IAC/E,2EAA2E;IAC3E,gFAAgF;IAChF,+EAA+E;IAC/E,0EAA0E;IAC1E,yBAAyB;IACzB,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE;QAClC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;QAChD,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;QACvF,KAAK,EAAE,MAAM;KACd,CAAC,CAAA;AACJ,CAAC"}
|
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.47",
|
|
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": {
|
|
@@ -99,6 +99,7 @@
|
|
|
99
99
|
"minimatch": "^9.0.7",
|
|
100
100
|
"minimist": "^1.2.8",
|
|
101
101
|
"pathe": "^1.1.2",
|
|
102
|
+
"proper-lockfile": "^4.1.2",
|
|
102
103
|
"react-icons": "^5.5.0",
|
|
103
104
|
"react-split-pane": "^0.1.92",
|
|
104
105
|
"short-uuid": "^6.0.3",
|
|
@@ -120,6 +121,7 @@
|
|
|
120
121
|
"@testing-library/user-event": "^14.5.2",
|
|
121
122
|
"@types/minimist": "^1.2.5",
|
|
122
123
|
"@types/node": "^22.9.0",
|
|
124
|
+
"@types/proper-lockfile": "^4.1.4",
|
|
123
125
|
"@types/react": "^18.3.12",
|
|
124
126
|
"@types/react-dom": "^18.3.1",
|
|
125
127
|
"@vitejs/plugin-react": "^5.1.0",
|