canopycms 0.0.55 → 0.0.57
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/api/branch.d.ts +6 -0
- package/dist/api/branch.d.ts.map +1 -1
- package/dist/api/branch.js +63 -19
- package/dist/api/branch.js.map +1 -1
- package/dist/api/content.d.ts +2 -2
- package/dist/api/entries.d.ts.map +1 -1
- package/dist/api/entries.js +10 -2
- package/dist/api/entries.js.map +1 -1
- package/dist/api/github-sync.d.ts.map +1 -1
- package/dist/api/github-sync.js +28 -7
- package/dist/api/github-sync.js.map +1 -1
- package/dist/auth/caching-auth-plugin.d.ts +8 -1
- package/dist/auth/caching-auth-plugin.d.ts.map +1 -1
- package/dist/auth/caching-auth-plugin.js +6 -1
- package/dist/auth/caching-auth-plugin.js.map +1 -1
- package/dist/auth/plugin.d.ts +19 -10
- package/dist/auth/plugin.d.ts.map +1 -1
- package/dist/auth/plugin.js +12 -10
- package/dist/auth/plugin.js.map +1 -1
- package/dist/branch-metadata.d.ts +71 -6
- package/dist/branch-metadata.d.ts.map +1 -1
- package/dist/branch-metadata.js +132 -116
- package/dist/branch-metadata.js.map +1 -1
- package/dist/branch-registry.d.ts +78 -9
- package/dist/branch-registry.d.ts.map +1 -1
- package/dist/branch-registry.js +155 -29
- package/dist/branch-registry.js.map +1 -1
- package/dist/branch-schema-cache.d.ts +126 -11
- package/dist/branch-schema-cache.d.ts.map +1 -1
- package/dist/branch-schema-cache.js +208 -58
- package/dist/branch-schema-cache.js.map +1 -1
- package/dist/build/generate-ai-content.d.ts.map +1 -1
- package/dist/build/generate-ai-content.js +7 -0
- package/dist/build/generate-ai-content.js.map +1 -1
- package/dist/cli/generate-ai-content.js +2358 -1556
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +16 -8
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/migrate.d.ts.map +1 -1
- package/dist/cli/migrate.js +25 -0
- package/dist/cli/migrate.js.map +1 -1
- package/dist/cli/sync.js +5 -5
- package/dist/cli/sync.js.map +1 -1
- package/dist/cli/templates.d.ts.map +1 -1
- package/dist/cli/templates.js +6 -3
- package/dist/cli/templates.js.map +1 -1
- package/dist/comment-store.d.ts +45 -15
- package/dist/comment-store.d.ts.map +1 -1
- package/dist/comment-store.js +80 -101
- package/dist/comment-store.js.map +1 -1
- package/dist/config/helpers.d.ts.map +1 -1
- package/dist/config/helpers.js +3 -0
- package/dist/config/helpers.js.map +1 -1
- package/dist/config/schemas/config.d.ts +3 -4
- package/dist/config/schemas/config.d.ts.map +1 -1
- package/dist/config/schemas/config.js +6 -3
- package/dist/config/schemas/config.js.map +1 -1
- package/dist/config/types.d.ts +6 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config-test.d.ts +5 -3
- package/dist/config-test.d.ts.map +1 -1
- package/dist/config-test.js +9 -1
- package/dist/config-test.js.map +1 -1
- package/dist/content-index-generation.d.ts +40 -4
- package/dist/content-index-generation.d.ts.map +1 -1
- package/dist/content-index-generation.js +70 -73
- package/dist/content-index-generation.js.map +1 -1
- package/dist/content-listing.d.ts +3 -1
- package/dist/content-listing.d.ts.map +1 -1
- package/dist/content-listing.js +1 -0
- package/dist/content-listing.js.map +1 -1
- package/dist/content-store.d.ts +63 -0
- package/dist/content-store.d.ts.map +1 -1
- package/dist/content-store.js +421 -184
- package/dist/content-store.js.map +1 -1
- package/dist/editor/Editor.d.ts.map +1 -1
- package/dist/editor/Editor.js +19 -15
- package/dist/editor/Editor.js.map +1 -1
- package/dist/editor/hooks/useDraftManager.d.ts +7 -0
- package/dist/editor/hooks/useDraftManager.d.ts.map +1 -1
- package/dist/editor/hooks/useDraftManager.js +69 -31
- package/dist/editor/hooks/useDraftManager.js.map +1 -1
- package/dist/editor/hooks/useSchemaManager.d.ts +34 -10
- package/dist/editor/hooks/useSchemaManager.d.ts.map +1 -1
- package/dist/editor/hooks/useSchemaManager.js +20 -24
- package/dist/editor/hooks/useSchemaManager.js.map +1 -1
- package/dist/editor/schema-editor/CollectionEditor.d.ts +6 -5
- package/dist/editor/schema-editor/CollectionEditor.d.ts.map +1 -1
- package/dist/editor/schema-editor/CollectionEditor.js +9 -4
- package/dist/editor/schema-editor/CollectionEditor.js.map +1 -1
- package/dist/git-manager.d.ts +15 -10
- package/dist/git-manager.d.ts.map +1 -1
- package/dist/git-manager.js +16 -11
- package/dist/git-manager.js.map +1 -1
- package/dist/github-service.d.ts +63 -7
- package/dist/github-service.d.ts.map +1 -1
- package/dist/github-service.js +147 -39
- package/dist/github-service.js.map +1 -1
- package/dist/resource-generation.d.ts +54 -0
- package/dist/resource-generation.d.ts.map +1 -0
- package/dist/resource-generation.js +156 -0
- package/dist/resource-generation.js.map +1 -0
- package/dist/schema/schema-store.d.ts +29 -2
- package/dist/schema/schema-store.d.ts.map +1 -1
- package/dist/schema/schema-store.js +47 -8
- package/dist/schema/schema-store.js.map +1 -1
- package/dist/services.js +4 -0
- package/dist/services.js.map +1 -1
- package/dist/static/index.d.ts +32 -0
- package/dist/static/index.d.ts.map +1 -1
- package/dist/static/index.js +90 -0
- package/dist/static/index.js.map +1 -1
- package/dist/sync-core.js +2 -2
- package/dist/sync-core.js.map +1 -1
- package/dist/utils/occ-json-write.d.ts +100 -0
- package/dist/utils/occ-json-write.d.ts.map +1 -0
- package/dist/utils/occ-json-write.js +234 -0
- package/dist/utils/occ-json-write.js.map +1 -0
- package/dist/worker/cms-worker.d.ts +6 -3
- package/dist/worker/cms-worker.d.ts.map +1 -1
- package/dist/worker/cms-worker.js +42 -41
- package/dist/worker/cms-worker.js.map +1 -1
- package/package.json +2 -1
package/dist/comment-store.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { randomUUID } from 'node:crypto';
|
|
4
|
+
import { withLock } from './utils/async-mutex.js';
|
|
5
|
+
import { writeOccJsonFile, withOccRetry, withOccFileLock, OccWriteConflictError, } from './utils/occ-json-write.js';
|
|
4
6
|
/**
|
|
5
7
|
* Error thrown when a concurrent modification is detected.
|
|
6
8
|
* Operations that encounter this error will automatically retry.
|
|
@@ -15,129 +17,108 @@ export class CommentStoreConflictError extends Error {
|
|
|
15
17
|
* Manages comment storage for a branch workspace.
|
|
16
18
|
* Comments are stored in .canopy-meta/comments.json and are NOT committed to git.
|
|
17
19
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
+
* Mutators are protected by three layers, outermost to innermost:
|
|
21
|
+
*
|
|
22
|
+
* 1. {@link withLock} - an in-process FIFO mutex keyed by the resolved file
|
|
23
|
+
* path. Serializes concurrent mutators on the SAME process/host
|
|
24
|
+
* deterministically, so racing `resolveThread`/`deleteThread`/`addComment`
|
|
25
|
+
* calls against the same store (or two store instances pointed at the
|
|
26
|
+
* same branch) never race each other's load-modify-write cycle.
|
|
27
|
+
* 2. {@link withOccFileLock} - a server-enforced, cross-process/cross-host
|
|
28
|
+
* lock (proper-lockfile, mkdir-based). This is the actual fix for lost
|
|
29
|
+
* comments across two warm Lambda containers on EFS, where rename-based
|
|
30
|
+
* OCC verification alone is unreliable (see guarantee doc on
|
|
31
|
+
* `utils/occ-json-write.ts`).
|
|
32
|
+
* 3. {@link withOccRetry} around {@link writeOccJsonFile} - version/writeId
|
|
33
|
+
* based optimistic concurrency control. With layers 1-2 in place this is
|
|
34
|
+
* now a defense-in-depth backstop only (e.g. a stale process from a
|
|
35
|
+
* rolling deploy writing without the lock), not the primary safety
|
|
36
|
+
* mechanism.
|
|
37
|
+
*
|
|
38
|
+
* See `utils/occ-json-write.ts` for full guarantee documentation of layers 2-3.
|
|
20
39
|
*/
|
|
21
40
|
export class CommentStore {
|
|
22
|
-
constructor(branchRoot) {
|
|
23
|
-
|
|
24
|
-
|
|
41
|
+
constructor(branchRoot, options) {
|
|
42
|
+
// Resolve so two differently-spelled paths to the same branch root map
|
|
43
|
+
// to the same in-process lock key (see withLock).
|
|
44
|
+
this.filePath = path.join(path.resolve(branchRoot), '.canopy-meta', 'comments.json');
|
|
45
|
+
this.settleMs = options?.settleMs;
|
|
25
46
|
}
|
|
26
47
|
/**
|
|
27
|
-
* Load comments file
|
|
48
|
+
* Load comments file for read-only access.
|
|
28
49
|
*/
|
|
29
50
|
async load() {
|
|
51
|
+
const { data } = await this.loadWithVersion();
|
|
52
|
+
return data;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Load comments file along with the version observed at load time. Used by
|
|
56
|
+
* mutators, which need the version as a LOCAL value threaded through their
|
|
57
|
+
* load-modify-write cycle rather than shared mutable instance state (so
|
|
58
|
+
* concurrent mutate cycles on the same instance never clobber each other's
|
|
59
|
+
* expected version).
|
|
60
|
+
*/
|
|
61
|
+
async loadWithVersion() {
|
|
30
62
|
try {
|
|
31
63
|
const content = await fs.readFile(this.filePath, 'utf-8');
|
|
32
|
-
const
|
|
64
|
+
const parsed = JSON.parse(content);
|
|
33
65
|
// Backward compat: treat missing version as 0
|
|
34
|
-
|
|
35
|
-
return { ...
|
|
66
|
+
const version = parsed.version ?? 0;
|
|
67
|
+
return { data: { ...parsed, version }, version };
|
|
36
68
|
}
|
|
37
69
|
catch {
|
|
38
70
|
// File doesn't exist yet, return empty structure
|
|
39
|
-
this.loadedVersion = null;
|
|
40
71
|
return {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
72
|
+
data: {
|
|
73
|
+
schemaVersion: 1,
|
|
74
|
+
version: 0,
|
|
75
|
+
threads: {},
|
|
76
|
+
},
|
|
77
|
+
version: null,
|
|
44
78
|
};
|
|
45
79
|
}
|
|
46
80
|
}
|
|
47
81
|
/**
|
|
48
|
-
*
|
|
49
|
-
* Uses atomic temp-file write to prevent corruption.
|
|
82
|
+
* Write comments file via the shared OCC helper.
|
|
50
83
|
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
84
|
+
* Throws the helper's raw {@link OccWriteConflictError} so the surrounding
|
|
85
|
+
* {@link withOccRetry} in withMutation() recognizes and retries it;
|
|
86
|
+
* translation to the public `CommentStoreConflictError` contract happens at
|
|
87
|
+
* the withMutation() boundary, after retries are exhausted.
|
|
53
88
|
*
|
|
54
|
-
*
|
|
89
|
+
* Note: comment-store historically wrote without a trailing newline;
|
|
90
|
+
* `writeOccJsonFile`'s default (`trailingNewline: false`) preserves that.
|
|
55
91
|
*/
|
|
56
|
-
async
|
|
57
|
-
await
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const writeId = randomUUID();
|
|
62
|
-
const newData = { ...data, version: newVersion, writeId };
|
|
63
|
-
const content = JSON.stringify(newData, null, 2);
|
|
64
|
-
const tempPath = `${this.filePath}.${Date.now()}.${Math.random().toString(36).slice(2)}.tmp`;
|
|
65
|
-
if (expectedVersion === null) {
|
|
66
|
-
// New file case: use exclusive create flag to prevent race
|
|
67
|
-
// If file already exists, this will throw EEXIST
|
|
68
|
-
try {
|
|
69
|
-
await fs.writeFile(this.filePath, content, { flag: 'wx' });
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
catch (err) {
|
|
73
|
-
if (err.code === 'EEXIST') {
|
|
74
|
-
// File was created by another process, conflict
|
|
75
|
-
throw new CommentStoreConflictError();
|
|
76
|
-
}
|
|
77
|
-
throw err;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
// Existing file case: write to temp, atomic rename, then verify we won
|
|
81
|
-
await fs.writeFile(tempPath, content, 'utf-8');
|
|
82
|
-
try {
|
|
83
|
-
// First check: verify expected version before rename
|
|
84
|
-
let currentVersion = null;
|
|
85
|
-
try {
|
|
86
|
-
const current = JSON.parse(await fs.readFile(this.filePath, 'utf-8'));
|
|
87
|
-
currentVersion = current.version ?? 0;
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
currentVersion = null;
|
|
91
|
-
}
|
|
92
|
-
if (currentVersion !== expectedVersion) {
|
|
93
|
-
throw new CommentStoreConflictError();
|
|
94
|
-
}
|
|
95
|
-
// Atomic rename
|
|
96
|
-
await fs.rename(tempPath, this.filePath);
|
|
97
|
-
// Post-write verification with settling delay
|
|
98
|
-
// Wait to let concurrent renames complete on shared filesystems (EFS/NFS), then verify our writeId
|
|
99
|
-
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
100
|
-
const afterWrite = JSON.parse(await fs.readFile(this.filePath, 'utf-8'));
|
|
101
|
-
if (afterWrite.writeId !== writeId) {
|
|
102
|
-
// Another process won the race - our write was overwritten
|
|
103
|
-
throw new CommentStoreConflictError();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
catch (err) {
|
|
107
|
-
// Clean up temp file on any error (may already be renamed away)
|
|
108
|
-
await fs.unlink(tempPath).catch(() => { });
|
|
109
|
-
throw err;
|
|
110
|
-
}
|
|
92
|
+
async writeData(data, expectedVersion) {
|
|
93
|
+
await writeOccJsonFile(this.filePath, { ...data }, {
|
|
94
|
+
expectedVersion,
|
|
95
|
+
settleMs: this.settleMs,
|
|
96
|
+
});
|
|
111
97
|
}
|
|
112
98
|
/**
|
|
113
|
-
*
|
|
114
|
-
*
|
|
99
|
+
* Run a mutate cycle (load -> modify -> write) under the full lock +
|
|
100
|
+
* OCC-retry stack described in the class doc comment. A conflict that
|
|
101
|
+
* survives every retry surfaces as the public `CommentStoreConflictError`.
|
|
115
102
|
*/
|
|
116
|
-
async
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
const jitter = Math.random() * baseDelay;
|
|
127
|
-
await new Promise((resolve) => setTimeout(resolve, baseDelay + jitter));
|
|
128
|
-
continue;
|
|
129
|
-
}
|
|
130
|
-
throw err;
|
|
103
|
+
async withMutation(operation) {
|
|
104
|
+
try {
|
|
105
|
+
return await withLock(this.filePath, () => withOccFileLock(this.filePath, () => withOccRetry(async () => {
|
|
106
|
+
const { data, version } = await this.loadWithVersion();
|
|
107
|
+
return operation(data, version);
|
|
108
|
+
})));
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
if (err instanceof OccWriteConflictError) {
|
|
112
|
+
throw new CommentStoreConflictError();
|
|
131
113
|
}
|
|
114
|
+
throw err;
|
|
132
115
|
}
|
|
133
|
-
throw new Error('Unreachable');
|
|
134
116
|
}
|
|
135
117
|
async addComment(options) {
|
|
136
|
-
// Generate IDs outside
|
|
118
|
+
// Generate IDs outside the mutation so they stay stable across retries
|
|
137
119
|
const threadId = options.threadId || randomUUID();
|
|
138
120
|
const commentId = randomUUID();
|
|
139
|
-
return this.
|
|
140
|
-
const data = await this.load();
|
|
121
|
+
return this.withMutation(async (data, version) => {
|
|
141
122
|
const timestamp = new Date().toISOString();
|
|
142
123
|
const comment = {
|
|
143
124
|
id: commentId,
|
|
@@ -163,20 +144,19 @@ export class CommentStore {
|
|
|
163
144
|
// Add to existing thread
|
|
164
145
|
data.threads[threadId].comments.push(comment);
|
|
165
146
|
}
|
|
166
|
-
await this.
|
|
147
|
+
await this.writeData(data, version);
|
|
167
148
|
return { threadId, commentId };
|
|
168
149
|
});
|
|
169
150
|
}
|
|
170
151
|
async resolveThread(threadId, userId) {
|
|
171
|
-
return this.
|
|
172
|
-
const data = await this.load();
|
|
152
|
+
return this.withMutation(async (data, version) => {
|
|
173
153
|
if (!data.threads[threadId]) {
|
|
174
154
|
return false;
|
|
175
155
|
}
|
|
176
156
|
data.threads[threadId].resolved = true;
|
|
177
157
|
data.threads[threadId].resolvedBy = userId;
|
|
178
158
|
data.threads[threadId].resolvedAt = new Date().toISOString();
|
|
179
|
-
await this.
|
|
159
|
+
await this.writeData(data, version);
|
|
180
160
|
return true;
|
|
181
161
|
});
|
|
182
162
|
}
|
|
@@ -193,13 +173,12 @@ export class CommentStore {
|
|
|
193
173
|
return data.threads[threadId] || null;
|
|
194
174
|
}
|
|
195
175
|
async deleteThread(threadId) {
|
|
196
|
-
return this.
|
|
197
|
-
const data = await this.load();
|
|
176
|
+
return this.withMutation(async (data, version) => {
|
|
198
177
|
if (!data.threads[threadId]) {
|
|
199
178
|
return false;
|
|
200
179
|
}
|
|
201
180
|
delete data.threads[threadId];
|
|
202
|
-
await this.
|
|
181
|
+
await this.writeData(data, version);
|
|
203
182
|
return true;
|
|
204
183
|
});
|
|
205
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment-store.js","sourceRoot":"","sources":["../src/comment-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC;;;GAGG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD;QACE,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACzC,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAA;IACzC,CAAC;CACF;AAmCD
|
|
1
|
+
{"version":3,"file":"comment-store.js","sourceRoot":"","sources":["../src/comment-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/config/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,qBAAqB;;+BASrD,gBAAgB,KAAG,kBAAkB;EAwBnE;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,mBAAmB,GAAI,GAAG,WAAW,oBAAoB,EAAE,KAAG,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/config/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,qBAAqB;;+BASrD,gBAAgB,KAAG,kBAAkB;EAwBnE;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,mBAAmB,GAAI,GAAG,WAAW,oBAAoB,EAAE,KAAG,YAoB1E,CAAA"}
|
package/dist/config/helpers.js
CHANGED
|
@@ -105,6 +105,9 @@ export const composeCanopyConfig = (...fragments) => {
|
|
|
105
105
|
// clear error rather than a TS/runtime "missing required field" surprise.
|
|
106
106
|
gitBotAuthorName: merged.gitBotAuthorName ?? '',
|
|
107
107
|
gitBotAuthorEmail: merged.gitBotAuthorEmail ?? '',
|
|
108
|
+
// `mode` is intentionally NOT defaulted here (SEC-C1): if no fragment supplies it,
|
|
109
|
+
// this composes with mode omitted and Zod fails validation with a clear
|
|
110
|
+
// "mode: Required"-style error rather than silently falling back to dev semantics.
|
|
108
111
|
});
|
|
109
112
|
};
|
|
110
113
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/config/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAWnD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAiD;IAClF,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAA2B,CAAC,CAAA;IAEnE,OAAO;QACL,2DAA2D;QAC3D,MAAM,EAAE,SAAS;QAEjB,mEAAmE;QACnE,6FAA6F;QAC7F,MAAM,EAAE,CAAC,eAAkC,EAAsB,EAAE;YACjE,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GACvF,SAAS,CAAA;YACX,MAAM,YAAY,GAAuB;gBACvC,iBAAiB;gBACjB,mBAAmB;gBACnB,WAAW;gBACX,MAAM;gBACN,IAAI;gBACJ,YAAY;gBACZ,UAAU,EAAE,EAAE,EAAE,uCAAuC;aACxD,CAAA;YAED,uEAAuE;YACvE,IAAI,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC5B,YAAY,CAAC,MAAM,GAAG;oBACpB,GAAG,YAAY,CAAC,MAAM;oBACtB,GAAG,eAAe,CAAC,MAAM;iBAC1B,CAAA;YACH,CAAC;YAED,OAAO,YAAY,CAAA;QACrB,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,MAAkC,EAClC,GAAM,EACN,KAA8B;IAE9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACrB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,SAAiC,EAAgB,EAAE;IACxF,MAAM,MAAM,GAA+B,EAAE,CAAA;IAE7C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAmC,EAAE,CAAC;YAC1E,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;IAED,OAAO,oBAAoB,CAAC;QAC1B,GAAG,MAAM;QACT,sFAAsF;QACtF,sFAAsF;QACtF,0EAA0E;QAC1E,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE;QAC/C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/config/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAWnD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAiD;IAClF,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAA2B,CAAC,CAAA;IAEnE,OAAO;QACL,2DAA2D;QAC3D,MAAM,EAAE,SAAS;QAEjB,mEAAmE;QACnE,6FAA6F;QAC7F,MAAM,EAAE,CAAC,eAAkC,EAAsB,EAAE;YACjE,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GACvF,SAAS,CAAA;YACX,MAAM,YAAY,GAAuB;gBACvC,iBAAiB;gBACjB,mBAAmB;gBACnB,WAAW;gBACX,MAAM;gBACN,IAAI;gBACJ,YAAY;gBACZ,UAAU,EAAE,EAAE,EAAE,uCAAuC;aACxD,CAAA;YAED,uEAAuE;YACvE,IAAI,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC5B,YAAY,CAAC,MAAM,GAAG;oBACpB,GAAG,YAAY,CAAC,MAAM;oBACtB,GAAG,eAAe,CAAC,MAAM;iBAC1B,CAAA;YACH,CAAC;YAED,OAAO,YAAY,CAAA;QACrB,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,MAAkC,EAClC,GAAM,EACN,KAA8B;IAE9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACrB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,SAAiC,EAAgB,EAAE;IACxF,MAAM,MAAM,GAA+B,EAAE,CAAA;IAE7C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAmC,EAAE,CAAC;YAC1E,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;IAED,OAAO,oBAAoB,CAAC;QAC1B,GAAG,MAAM;QACT,sFAAsF;QACtF,sFAAsF;QACtF,0EAA0E;QAC1E,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE;QAC/C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;QACjD,mFAAmF;QACnF,wEAAwE;QACxE,mFAAmF;KACpF,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -13,7 +13,7 @@ export declare const defaultRemoteUrlSchema: z.ZodString;
|
|
|
13
13
|
export declare const gitBotAuthorNameSchema: z.ZodString;
|
|
14
14
|
export declare const gitBotAuthorEmailSchema: z.ZodString;
|
|
15
15
|
export declare const githubTokenEnvVarSchema: z.ZodDefault<z.ZodString>;
|
|
16
|
-
export declare const operatingModeSchema: z.
|
|
16
|
+
export declare const operatingModeSchema: z.ZodEnum<["prod", "dev"]>;
|
|
17
17
|
export declare const deployedAsSchema: z.ZodDefault<z.ZodEnum<["static", "server"]>>;
|
|
18
18
|
export declare const contentRootSchema: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>>;
|
|
19
19
|
export declare const sourceRootSchema: z.ZodOptional<z.ZodString>;
|
|
@@ -95,7 +95,7 @@ export declare const CanopyConfigSchema: z.ZodObject<{
|
|
|
95
95
|
gitBotAuthorName: z.ZodString;
|
|
96
96
|
gitBotAuthorEmail: z.ZodString;
|
|
97
97
|
githubTokenEnvVar: z.ZodOptional<z.ZodDefault<z.ZodString>>;
|
|
98
|
-
mode: z.
|
|
98
|
+
mode: z.ZodEnum<["prod", "dev"]>;
|
|
99
99
|
deployedAs: z.ZodDefault<z.ZodEnum<["static", "server"]>>;
|
|
100
100
|
settingsBranch: z.ZodOptional<z.ZodString>;
|
|
101
101
|
autoCreateSettingsPR: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -184,6 +184,7 @@ export declare const CanopyConfigSchema: z.ZodObject<{
|
|
|
184
184
|
}, {
|
|
185
185
|
gitBotAuthorName: string;
|
|
186
186
|
gitBotAuthorEmail: string;
|
|
187
|
+
mode: "prod" | "dev";
|
|
187
188
|
dev?: {
|
|
188
189
|
contentSync?: "off" | "warn" | undefined;
|
|
189
190
|
} | undefined;
|
|
@@ -206,7 +207,6 @@ export declare const CanopyConfigSchema: z.ZodObject<{
|
|
|
206
207
|
defaultRemoteName?: string | undefined;
|
|
207
208
|
defaultRemoteUrl?: string | undefined;
|
|
208
209
|
githubTokenEnvVar?: string | undefined;
|
|
209
|
-
mode?: "prod" | "dev" | undefined;
|
|
210
210
|
deployedAs?: "static" | "server" | undefined;
|
|
211
211
|
settingsBranch?: string | undefined;
|
|
212
212
|
autoCreateSettingsPR?: boolean | undefined;
|
|
@@ -238,7 +238,6 @@ export declare const getConfigDefaults: () => {
|
|
|
238
238
|
pathAccess: "allow" | "deny";
|
|
239
239
|
branchAccess: "allow" | "deny";
|
|
240
240
|
contentRoot: string;
|
|
241
|
-
mode: "prod" | "dev";
|
|
242
241
|
githubTokenEnvVar: string;
|
|
243
242
|
deploymentName: string;
|
|
244
243
|
prodWorkspace: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/schemas/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAKjD,eAAO,MAAM,yBAAyB,4CAA4C,CAAA;AAClF,eAAO,MAAM,uBAAuB,4CAA4C,CAAA;AAChF,eAAO,MAAM,uBAAuB,2BAA6B,CAAA;AACjE,eAAO,MAAM,uBAAuB,2BAA+B,CAAA;AACnE,eAAO,MAAM,sBAAsB,aAAoB,CAAA;AACvD,eAAO,MAAM,sBAAsB,aAAoB,CAAA;AACvD,eAAO,MAAM,uBAAuB,aAAqB,CAAA;AACzD,eAAO,MAAM,uBAAuB,2BAAyC,CAAA;AAC7E,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/schemas/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAKjD,eAAO,MAAM,yBAAyB,4CAA4C,CAAA;AAClF,eAAO,MAAM,uBAAuB,4CAA4C,CAAA;AAChF,eAAO,MAAM,uBAAuB,2BAA6B,CAAA;AACjE,eAAO,MAAM,uBAAuB,2BAA+B,CAAA;AACnE,eAAO,MAAM,sBAAsB,aAAoB,CAAA;AACvD,eAAO,MAAM,sBAAsB,aAAoB,CAAA;AACvD,eAAO,MAAM,uBAAuB,aAAqB,CAAA;AACzD,eAAO,MAAM,uBAAuB,2BAAyC,CAAA;AAC7E,eAAO,MAAM,mBAAmB,4BAA0B,CAAA;AAC1D,eAAO,MAAM,gBAAgB,+CAAiD,CAAA;AAC9E,eAAO,MAAM,iBAAiB,qHAAwC,CAAA;AACtE,eAAO,MAAM,gBAAgB,4BAA+B,CAAA;AAC5D,eAAO,MAAM,oBAAoB,2BAA6B,CAAA;AAC9D,eAAO,MAAM,oBAAoB,0CAA0C,CAAA;AAG3E,eAAO,MAAM,eAAe;;;;;;EAE1B,CAAA;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAA;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCpB,CAAA;AAEX;;;GAGG;AACH,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB,uBAAuB,CAAA;AAI1D,eAAO,MAAM,iBAAiB;;;;;;;;;CAS5B,CAAA"}
|
|
@@ -13,7 +13,7 @@ export const defaultRemoteUrlSchema = z.string().min(1);
|
|
|
13
13
|
export const gitBotAuthorNameSchema = z.string().min(1);
|
|
14
14
|
export const gitBotAuthorEmailSchema = z.string().email();
|
|
15
15
|
export const githubTokenEnvVarSchema = z.string().default('GITHUB_BOT_TOKEN');
|
|
16
|
-
export const operatingModeSchema = z.enum(['prod', 'dev'])
|
|
16
|
+
export const operatingModeSchema = z.enum(['prod', 'dev']);
|
|
17
17
|
export const deployedAsSchema = z.enum(['static', 'server']).default('server');
|
|
18
18
|
export const contentRootSchema = relativePathSchema.default('content');
|
|
19
19
|
export const sourceRootSchema = z.string().min(1).optional();
|
|
@@ -55,7 +55,9 @@ export const CanopyConfigSchema = z
|
|
|
55
55
|
gitBotAuthorName: gitBotAuthorNameSchema,
|
|
56
56
|
gitBotAuthorEmail: gitBotAuthorEmailSchema,
|
|
57
57
|
githubTokenEnvVar: githubTokenEnvVarSchema.optional(),
|
|
58
|
-
|
|
58
|
+
// Required by design (follow-up to SEC-C1): a prod deploy that omits `mode` must fail
|
|
59
|
+
// validation loudly rather than silently running header-trusting dev auth semantics.
|
|
60
|
+
mode: operatingModeSchema,
|
|
59
61
|
deployedAs: deployedAsSchema, // Has .default('server'), so always present after validation
|
|
60
62
|
settingsBranch: z.string().optional(),
|
|
61
63
|
autoCreateSettingsPR: z.boolean().optional(),
|
|
@@ -75,13 +77,14 @@ export const CanopyConfigSchema = z
|
|
|
75
77
|
*/
|
|
76
78
|
/** Default workspace path for prod mode (used when CANOPYCMS_WORKSPACE_ROOT is not set) */
|
|
77
79
|
export const DEFAULT_PROD_WORKSPACE = '/mnt/efs/workspace';
|
|
80
|
+
// Note: `mode` has no default by design (SEC-C1) and is intentionally omitted here —
|
|
81
|
+
// operatingModeSchema.parse(undefined) would throw.
|
|
78
82
|
export const getConfigDefaults = () => ({
|
|
79
83
|
baseBranch: defaultBaseBranchSchema.parse(undefined),
|
|
80
84
|
remoteName: defaultRemoteNameSchema.parse(undefined),
|
|
81
85
|
pathAccess: defaultPathAccessSchema.parse(undefined),
|
|
82
86
|
branchAccess: defaultBranchAccessSchema.parse(undefined),
|
|
83
87
|
contentRoot: contentRootSchema.parse(undefined),
|
|
84
|
-
mode: operatingModeSchema.parse(undefined),
|
|
85
88
|
githubTokenEnvVar: githubTokenEnvVarSchema.parse(undefined),
|
|
86
89
|
deploymentName: deploymentNameSchema.parse(undefined),
|
|
87
90
|
prodWorkspace: DEFAULT_PROD_WORKSPACE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/schemas/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,wBAAwB;AACxB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAClF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAChF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AACjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACvD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAC7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/schemas/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -287,7 +287,12 @@ export interface CanopyConfigInput {
|
|
|
287
287
|
gitBotAuthorName: string;
|
|
288
288
|
gitBotAuthorEmail: string;
|
|
289
289
|
githubTokenEnvVar?: string;
|
|
290
|
-
|
|
290
|
+
/**
|
|
291
|
+
* Operating mode: 'prod' or 'dev'. Required — no default (SEC-C1). A prod deploy that
|
|
292
|
+
* omits this would otherwise silently run header-trusting dev auth semantics; the Zod
|
|
293
|
+
* schema fails validation loudly instead.
|
|
294
|
+
*/
|
|
295
|
+
mode: OperatingMode;
|
|
291
296
|
/** How this build is deployed. 'static' = no request context, no auth. Default: 'server'. */
|
|
292
297
|
deployedAs?: DeployedAs;
|
|
293
298
|
settingsBranch?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
package/dist/config-test.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { CanopyConfig, CanopyConfigInput, RootCollectionConfig } from './config';
|
|
2
2
|
import { type CanopyServices, type CreateCanopyServicesOptions } from './services';
|
|
3
|
-
type TestConfigInput = Omit<CanopyConfigInput, 'gitBotAuthorName' | 'gitBotAuthorEmail'> & {
|
|
3
|
+
type TestConfigInput = Omit<CanopyConfigInput, 'gitBotAuthorName' | 'gitBotAuthorEmail' | 'mode'> & {
|
|
4
4
|
schema: RootCollectionConfig;
|
|
5
|
-
} & Partial<Pick<CanopyConfigInput, 'gitBotAuthorName' | 'gitBotAuthorEmail'>>;
|
|
5
|
+
} & Partial<Pick<CanopyConfigInput, 'gitBotAuthorName' | 'gitBotAuthorEmail' | 'mode'>>;
|
|
6
6
|
/**
|
|
7
|
-
* Test-only helper that fills required author fields for
|
|
7
|
+
* Test-only helper that fills required author fields (and defaults `mode` to 'dev') for
|
|
8
|
+
* convenience. The real schema requires `mode` with no default (SEC-C1); this helper
|
|
9
|
+
* intentionally defaults it so existing test configs don't all need `mode: 'dev'` added.
|
|
8
10
|
* Do not use in production code; prefer defineCanopyConfig.
|
|
9
11
|
*/
|
|
10
12
|
export declare const defineCanopyTestConfig: (config: TestConfigInput, overrides?: Partial<CanopyConfigInput>) => CanopyConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-test.d.ts","sourceRoot":"","sources":["../src/config-test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAErF,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,2BAA2B,EACjC,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"config-test.d.ts","sourceRoot":"","sources":["../src/config-test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAErF,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,2BAA2B,EACjC,MAAM,YAAY,CAAA;AAanB,KAAK,eAAe,GAAG,IAAI,CACzB,iBAAiB,EACjB,kBAAkB,GAAG,mBAAmB,GAAG,MAAM,CAClD,GAAG;IACF,MAAM,EAAE,oBAAoB,CAAA;CAC7B,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAAA;AAEvF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,eAAe,EACvB,YAAY,OAAO,CAAC,iBAAiB,CAAC,KACrC,YASF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,eAAe,EACvB,UAAU,2BAA2B,KACpC,OAAO,CAAC,cAAc,CAkBxB,CAAA"}
|
package/dist/config-test.js
CHANGED
|
@@ -4,8 +4,15 @@ const FALLBACK_AUTHOR = {
|
|
|
4
4
|
gitBotAuthorName: 'CanopyCMS Test Bot',
|
|
5
5
|
gitBotAuthorEmail: 'canopycms-test@example.com',
|
|
6
6
|
};
|
|
7
|
+
// mode has no default on the real schema (SEC-C1: a prod deploy that omits it must fail
|
|
8
|
+
// validation loudly). This test-only fallback keeps existing test configs terse by
|
|
9
|
+
// defaulting to 'dev'; production config authoring goes through defineCanopyConfig, which
|
|
10
|
+
// has no such fallback.
|
|
11
|
+
const FALLBACK_MODE = 'dev';
|
|
7
12
|
/**
|
|
8
|
-
* Test-only helper that fills required author fields for
|
|
13
|
+
* Test-only helper that fills required author fields (and defaults `mode` to 'dev') for
|
|
14
|
+
* convenience. The real schema requires `mode` with no default (SEC-C1); this helper
|
|
15
|
+
* intentionally defaults it so existing test configs don't all need `mode: 'dev'` added.
|
|
9
16
|
* Do not use in production code; prefer defineCanopyConfig.
|
|
10
17
|
*/
|
|
11
18
|
export const defineCanopyTestConfig = (config, overrides) => {
|
|
@@ -13,6 +20,7 @@ export const defineCanopyTestConfig = (config, overrides) => {
|
|
|
13
20
|
const { schema: _schema, ...configWithoutSchema } = config;
|
|
14
21
|
return defineCanopyConfig({
|
|
15
22
|
...FALLBACK_AUTHOR,
|
|
23
|
+
mode: FALLBACK_MODE,
|
|
16
24
|
...configWithoutSchema,
|
|
17
25
|
...(overrides ?? {}),
|
|
18
26
|
}).server;
|
package/dist/config-test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-test.js","sourceRoot":"","sources":["../src/config-test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC5D,OAAO,EACL,wBAAwB,GAGzB,MAAM,YAAY,CAAA;AAEnB,MAAM,eAAe,GAAG;IACtB,gBAAgB,EAAE,oBAAoB;IACtC,iBAAiB,EAAE,4BAA4B;CAChD,CAAA;
|
|
1
|
+
{"version":3,"file":"config-test.js","sourceRoot":"","sources":["../src/config-test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC5D,OAAO,EACL,wBAAwB,GAGzB,MAAM,YAAY,CAAA;AAEnB,MAAM,eAAe,GAAG;IACtB,gBAAgB,EAAE,oBAAoB;IACtC,iBAAiB,EAAE,4BAA4B;CAChD,CAAA;AAED,wFAAwF;AACxF,mFAAmF;AACnF,0FAA0F;AAC1F,wBAAwB;AACxB,MAAM,aAAa,GAAG,KAAc,CAAA;AASpC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAuB,EACvB,SAAsC,EACxB,EAAE;IAChB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,mBAAmB,EAAE,GAAG,MAAM,CAAA;IAC1D,OAAO,kBAAkB,CAAC;QACxB,GAAG,eAAe;QAClB,IAAI,EAAE,aAAa;QACnB,GAAG,mBAAmB;QACtB,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;KACrB,CAAC,CAAC,MAAM,CAAA;AACX,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,MAAuB,EACvB,OAAqC,EACZ,EAAE;IAC3B,MAAM,YAAY,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;IAEzE,+DAA+D;IAC/D,MAAM,qBAAqB,GAAG;QAC5B,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU;SACX,CAAC;QACF,UAAU,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;KAC3B,CAAA;IAED,OAAO,wBAAwB,CAAC,YAAY,EAAE;QAC5C,GAAG,OAAO;QACV,iBAAiB,EACf,qBAAoF;KACvF,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -16,10 +16,20 @@ export declare function bumpContentIndexGeneration(root: string): Promise<string
|
|
|
16
16
|
*/
|
|
17
17
|
export declare function readContentIndexGeneration(root: string): Promise<string | null>;
|
|
18
18
|
/**
|
|
19
|
-
* The
|
|
20
|
-
* branch-clone root
|
|
21
|
-
*
|
|
22
|
-
*
|
|
19
|
+
* The designated entry point for a FUTURE content-only bulk mutation site —
|
|
20
|
+
* one that mutates indexed files under a branch-clone root broadly (not
|
|
21
|
+
* through a single known write/delete/rename call) but never touches schema.
|
|
22
|
+
* Bumps the on-disk content-index marker (cross-process), then invalidates
|
|
23
|
+
* in-process registered stores.
|
|
24
|
+
*
|
|
25
|
+
* Currently unused in production: `ContentStore`'s own write()/delete()/
|
|
26
|
+
* renameEntry() bump the marker directly via their `recordOwnMutation()` ->
|
|
27
|
+
* `bumpContentIndexGeneration()` call, not through this wrapper, and every
|
|
28
|
+
* existing bulk-mutation call site (git checkout/merge/rebase, sync, CLI
|
|
29
|
+
* sync, migrate) can touch `.collection.json` as a side effect, so those all
|
|
30
|
+
* use the combined `invalidateBranchContentCaches()` below instead. Kept as
|
|
31
|
+
* the documented, ready-to-use entry point for a future call site that is
|
|
32
|
+
* genuinely content-only.
|
|
23
33
|
*
|
|
24
34
|
* Bump-before-invalidate: the in-process invalidation triggers a rebuild on
|
|
25
35
|
* next access, and that rebuild captures the marker token before scanning —
|
|
@@ -27,4 +37,30 @@ export declare function readContentIndexGeneration(root: string): Promise<string
|
|
|
27
37
|
* pass instead of a redundant second rebuild.
|
|
28
38
|
*/
|
|
29
39
|
export declare function invalidateContentIndexesDurable(root: string): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* The entry point for operations that mutate a branch-clone root's working
|
|
42
|
+
* tree BROADLY rather than through a single known write/delete/rename call:
|
|
43
|
+
* git working-tree ops (checkout/merge/rebase/abort), content sync, CLI sync,
|
|
44
|
+
* and migrate. Such operations can touch `.collection.json` files as a side
|
|
45
|
+
* effect (a rebase can pull in upstream schema changes; a sync can overwrite
|
|
46
|
+
* the whole content directory), so both durable, cross-process caches rooted
|
|
47
|
+
* at `root` need to be told: the ContentId index (content-index-registry.ts)
|
|
48
|
+
* AND the resolved-schema cache (branch-schema-cache.ts).
|
|
49
|
+
*
|
|
50
|
+
* `invalidateContentIndexesDurable` is the designated entry point for a
|
|
51
|
+
* future call site that only ever touches content files, never schema, and
|
|
52
|
+
* needs the durable-invalidation shape but not the extra schema bump.
|
|
53
|
+
* `ContentStore`'s own write/delete/rename paths don't call it either — they
|
|
54
|
+
* bump the content-index marker directly via `recordOwnMutation()` (see
|
|
55
|
+
* content-store.ts), since they already know exactly which mutation just
|
|
56
|
+
* happened and don't need a generic "some indexed files changed" entry point.
|
|
57
|
+
*
|
|
58
|
+
* Both marker bumps are "hint" flavor (bumpResourceGeneration's default,
|
|
59
|
+
* `mustSucceed` not set): callers of this function are typically `finally`
|
|
60
|
+
* blocks in bulk operations (e.g. a git rebase cleanup) that must not start
|
|
61
|
+
* throwing because a marker write failed - log-and-swallow is the existing
|
|
62
|
+
* semantics at those call sites, and a lost bump only degrades to pre-marker
|
|
63
|
+
* staleness behavior plus whatever backstop the consumer implements.
|
|
64
|
+
*/
|
|
65
|
+
export declare function invalidateBranchContentCaches(root: string): Promise<void>;
|
|
30
66
|
//# sourceMappingURL=content-index-generation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-index-generation.d.ts","sourceRoot":"","sources":["../src/content-index-generation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"content-index-generation.d.ts","sourceRoot":"","sources":["../src/content-index-generation.ts"],"names":[],"mappings":"AAuDA,sEAAsE;AACtE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAErF;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGrF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/E"}
|