canopycms 0.0.54 → 0.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/dist/api/assets.d.ts +14 -2
  2. package/dist/api/assets.d.ts.map +1 -1
  3. package/dist/api/assets.js +14 -3
  4. package/dist/api/assets.js.map +1 -1
  5. package/dist/api/branch-status.d.ts.map +1 -1
  6. package/dist/api/branch-status.js +8 -2
  7. package/dist/api/branch-status.js.map +1 -1
  8. package/dist/api/client.d.ts +2 -2
  9. package/dist/api/client.d.ts.map +1 -1
  10. package/dist/api/client.js +29 -14
  11. package/dist/api/client.js.map +1 -1
  12. package/dist/api/content.d.ts +2 -2
  13. package/dist/api/content.d.ts.map +1 -1
  14. package/dist/api/content.js +160 -26
  15. package/dist/api/content.js.map +1 -1
  16. package/dist/api/entries.d.ts.map +1 -1
  17. package/dist/api/entries.js +8 -4
  18. package/dist/api/entries.js.map +1 -1
  19. package/dist/api/github-sync.d.ts.map +1 -1
  20. package/dist/api/github-sync.js +45 -7
  21. package/dist/api/github-sync.js.map +1 -1
  22. package/dist/api/groups.d.ts.map +1 -1
  23. package/dist/api/groups.js +15 -5
  24. package/dist/api/groups.js.map +1 -1
  25. package/dist/api/permissions.d.ts +6 -6
  26. package/dist/api/permissions.d.ts.map +1 -1
  27. package/dist/api/permissions.js +24 -9
  28. package/dist/api/permissions.js.map +1 -1
  29. package/dist/api/request-body-hash.d.ts +33 -0
  30. package/dist/api/request-body-hash.d.ts.map +1 -0
  31. package/dist/api/request-body-hash.js +43 -0
  32. package/dist/api/request-body-hash.js.map +1 -0
  33. package/dist/api/resolve-references.d.ts.map +1 -1
  34. package/dist/api/resolve-references.js +8 -1
  35. package/dist/api/resolve-references.js.map +1 -1
  36. package/dist/api/schema.js +9 -9
  37. package/dist/api/schema.js.map +1 -1
  38. package/dist/api/settings-helpers.d.ts +14 -1
  39. package/dist/api/settings-helpers.d.ts.map +1 -1
  40. package/dist/api/settings-helpers.js +11 -2
  41. package/dist/api/settings-helpers.js.map +1 -1
  42. package/dist/api/types.d.ts +10 -0
  43. package/dist/api/types.d.ts.map +1 -1
  44. package/dist/auth/caching-auth-plugin.d.ts +8 -1
  45. package/dist/auth/caching-auth-plugin.d.ts.map +1 -1
  46. package/dist/auth/caching-auth-plugin.js +6 -1
  47. package/dist/auth/caching-auth-plugin.js.map +1 -1
  48. package/dist/auth/index.d.ts +1 -0
  49. package/dist/auth/index.d.ts.map +1 -1
  50. package/dist/auth/index.js +1 -0
  51. package/dist/auth/index.js.map +1 -1
  52. package/dist/auth/plugin.d.ts +35 -0
  53. package/dist/auth/plugin.d.ts.map +1 -1
  54. package/dist/auth/plugin.js +27 -1
  55. package/dist/auth/plugin.js.map +1 -1
  56. package/dist/authorization/helpers.d.ts +16 -0
  57. package/dist/authorization/helpers.d.ts.map +1 -1
  58. package/dist/authorization/helpers.js +18 -0
  59. package/dist/authorization/helpers.js.map +1 -1
  60. package/dist/authorization/index.d.ts +1 -1
  61. package/dist/authorization/index.d.ts.map +1 -1
  62. package/dist/authorization/index.js +1 -1
  63. package/dist/authorization/index.js.map +1 -1
  64. package/dist/build/generate-ai-content.d.ts.map +1 -1
  65. package/dist/build/generate-ai-content.js +7 -0
  66. package/dist/build/generate-ai-content.js.map +1 -1
  67. package/dist/cli/cli.d.ts.map +1 -1
  68. package/dist/cli/cli.js +2 -1
  69. package/dist/cli/cli.js.map +1 -1
  70. package/dist/cli/generate-ai-content.js +1150 -355
  71. package/dist/cli/init.d.ts +1 -1
  72. package/dist/cli/init.d.ts.map +1 -1
  73. package/dist/cli/init.js +40 -13
  74. package/dist/cli/init.js.map +1 -1
  75. package/dist/cli/sync.d.ts.map +1 -1
  76. package/dist/cli/sync.js +88 -60
  77. package/dist/cli/sync.js.map +1 -1
  78. package/dist/cli/template-files/canopy.ts.template +2 -1
  79. package/dist/cli/template-files/edit-page.tsx.template +8 -1
  80. package/dist/cli/template-files/middleware.ts.template +18 -0
  81. package/dist/cli/templates.d.ts.map +1 -1
  82. package/dist/cli/templates.js +19 -4
  83. package/dist/cli/templates.js.map +1 -1
  84. package/dist/config/helpers.d.ts +9 -1
  85. package/dist/config/helpers.d.ts.map +1 -1
  86. package/dist/config/helpers.js +33 -75
  87. package/dist/config/helpers.js.map +1 -1
  88. package/dist/config/schemas/config.d.ts +8 -24
  89. package/dist/config/schemas/config.d.ts.map +1 -1
  90. package/dist/config/schemas/config.js +12 -5
  91. package/dist/config/schemas/config.js.map +1 -1
  92. package/dist/config/schemas/media.d.ts +1 -10
  93. package/dist/config/schemas/media.d.ts.map +1 -1
  94. package/dist/config/schemas/media.js +8 -6
  95. package/dist/config/schemas/media.js.map +1 -1
  96. package/dist/config/types.d.ts +6 -4
  97. package/dist/config/types.d.ts.map +1 -1
  98. package/dist/config-test.d.ts +5 -3
  99. package/dist/config-test.d.ts.map +1 -1
  100. package/dist/config-test.js +9 -1
  101. package/dist/config-test.js.map +1 -1
  102. package/dist/content-id-index.d.ts +12 -6
  103. package/dist/content-id-index.d.ts.map +1 -1
  104. package/dist/content-id-index.js +12 -6
  105. package/dist/content-id-index.js.map +1 -1
  106. package/dist/content-index-generation.d.ts +30 -0
  107. package/dist/content-index-generation.d.ts.map +1 -0
  108. package/dist/content-index-generation.js +131 -0
  109. package/dist/content-index-generation.js.map +1 -0
  110. package/dist/content-index-registry.d.ts +38 -0
  111. package/dist/content-index-registry.d.ts.map +1 -0
  112. package/dist/content-index-registry.js +53 -0
  113. package/dist/content-index-registry.js.map +1 -0
  114. package/dist/content-listing.d.ts +3 -1
  115. package/dist/content-listing.d.ts.map +1 -1
  116. package/dist/content-listing.js +1 -0
  117. package/dist/content-listing.js.map +1 -1
  118. package/dist/content-store.d.ts +130 -6
  119. package/dist/content-store.d.ts.map +1 -1
  120. package/dist/content-store.js +343 -31
  121. package/dist/content-store.js.map +1 -1
  122. package/dist/editor/Editor.d.ts.map +1 -1
  123. package/dist/editor/Editor.js +27 -19
  124. package/dist/editor/Editor.js.map +1 -1
  125. package/dist/editor/FormRenderer.d.ts +7 -0
  126. package/dist/editor/FormRenderer.d.ts.map +1 -1
  127. package/dist/editor/FormRenderer.js +12 -3
  128. package/dist/editor/FormRenderer.js.map +1 -1
  129. package/dist/editor/components/EditorHeader.d.ts.map +1 -1
  130. package/dist/editor/components/EditorHeader.js +3 -4
  131. package/dist/editor/components/EditorHeader.js.map +1 -1
  132. package/dist/editor/components/EditorSidebar.d.ts.map +1 -1
  133. package/dist/editor/components/EditorSidebar.js +2 -4
  134. package/dist/editor/components/EditorSidebar.js.map +1 -1
  135. package/dist/editor/fields/ReferenceField.d.ts.map +1 -1
  136. package/dist/editor/fields/ReferenceField.js +19 -2
  137. package/dist/editor/fields/ReferenceField.js.map +1 -1
  138. package/dist/editor/group-manager/hooks/useGroupState.d.ts.map +1 -1
  139. package/dist/editor/group-manager/hooks/useGroupState.js +5 -2
  140. package/dist/editor/group-manager/hooks/useGroupState.js.map +1 -1
  141. package/dist/editor/hooks/useDraftManager.d.ts +15 -0
  142. package/dist/editor/hooks/useDraftManager.d.ts.map +1 -1
  143. package/dist/editor/hooks/useDraftManager.js +140 -1
  144. package/dist/editor/hooks/useDraftManager.js.map +1 -1
  145. package/dist/editor/hooks/useEntryManager.d.ts +9 -2
  146. package/dist/editor/hooks/useEntryManager.d.ts.map +1 -1
  147. package/dist/editor/hooks/useEntryManager.js +9 -3
  148. package/dist/editor/hooks/useEntryManager.js.map +1 -1
  149. package/dist/editor/hooks/useSchemaManager.d.ts +34 -10
  150. package/dist/editor/hooks/useSchemaManager.d.ts.map +1 -1
  151. package/dist/editor/hooks/useSchemaManager.js +22 -25
  152. package/dist/editor/hooks/useSchemaManager.js.map +1 -1
  153. package/dist/editor/schema-editor/CollectionEditor.d.ts +6 -5
  154. package/dist/editor/schema-editor/CollectionEditor.d.ts.map +1 -1
  155. package/dist/editor/schema-editor/CollectionEditor.js +37 -12
  156. package/dist/editor/schema-editor/CollectionEditor.js.map +1 -1
  157. package/dist/entry-link-resolver.d.ts.map +1 -1
  158. package/dist/entry-link-resolver.js +5 -0
  159. package/dist/entry-link-resolver.js.map +1 -1
  160. package/dist/git-manager.d.ts +38 -3
  161. package/dist/git-manager.d.ts.map +1 -1
  162. package/dist/git-manager.js +141 -33
  163. package/dist/git-manager.js.map +1 -1
  164. package/dist/github-service.d.ts +69 -3
  165. package/dist/github-service.d.ts.map +1 -1
  166. package/dist/github-service.js +149 -25
  167. package/dist/github-service.js.map +1 -1
  168. package/dist/http/handler.d.ts +1 -1
  169. package/dist/http/handler.d.ts.map +1 -1
  170. package/dist/http/handler.js +36 -7
  171. package/dist/http/handler.js.map +1 -1
  172. package/dist/http/router.d.ts +11 -0
  173. package/dist/http/router.d.ts.map +1 -1
  174. package/dist/http/router.js +80 -16
  175. package/dist/http/router.js.map +1 -1
  176. package/dist/paths/validation.d.ts.map +1 -1
  177. package/dist/paths/validation.js +12 -0
  178. package/dist/paths/validation.js.map +1 -1
  179. package/dist/schema/schema-store.d.ts +9 -0
  180. package/dist/schema/schema-store.d.ts.map +1 -1
  181. package/dist/schema/schema-store.js +57 -8
  182. package/dist/schema/schema-store.js.map +1 -1
  183. package/dist/services.d.ts +1 -0
  184. package/dist/services.d.ts.map +1 -1
  185. package/dist/services.js +9 -2
  186. package/dist/services.js.map +1 -1
  187. package/dist/static/index.d.ts +32 -0
  188. package/dist/static/index.d.ts.map +1 -1
  189. package/dist/static/index.js +90 -0
  190. package/dist/static/index.js.map +1 -1
  191. package/dist/sync-core.d.ts.map +1 -1
  192. package/dist/sync-core.js +22 -9
  193. package/dist/sync-core.js.map +1 -1
  194. package/dist/user.d.ts +0 -18
  195. package/dist/user.d.ts.map +1 -1
  196. package/dist/user.js +7 -22
  197. package/dist/user.js.map +1 -1
  198. package/dist/utils/error.d.ts +8 -0
  199. package/dist/utils/error.d.ts.map +1 -1
  200. package/dist/utils/error.js +35 -7
  201. package/dist/utils/error.js.map +1 -1
  202. package/dist/validation/deletion-checker.d.ts.map +1 -1
  203. package/dist/validation/deletion-checker.js +6 -5
  204. package/dist/validation/deletion-checker.js.map +1 -1
  205. package/dist/validation/entry-validator.d.ts +67 -0
  206. package/dist/validation/entry-validator.d.ts.map +1 -0
  207. package/dist/validation/entry-validator.js +277 -0
  208. package/dist/validation/entry-validator.js.map +1 -0
  209. package/dist/validation/field-traversal.d.ts +23 -1
  210. package/dist/validation/field-traversal.d.ts.map +1 -1
  211. package/dist/validation/field-traversal.js +29 -9
  212. package/dist/validation/field-traversal.js.map +1 -1
  213. package/dist/worker/cms-worker.d.ts +70 -6
  214. package/dist/worker/cms-worker.d.ts.map +1 -1
  215. package/dist/worker/cms-worker.js +199 -93
  216. package/dist/worker/cms-worker.js.map +1 -1
  217. package/package.json +2 -2
  218. package/dist/editor/components/EditorContext.d.ts +0 -35
  219. package/dist/editor/components/EditorContext.d.ts.map +0 -1
  220. package/dist/editor/components/EditorContext.js +0 -19
  221. package/dist/editor/components/EditorContext.js.map +0 -1
  222. package/dist/editor/env.d.ts +0 -5
  223. package/dist/editor/env.d.ts.map +0 -1
  224. package/dist/editor/env.js +0 -5
  225. package/dist/editor/env.js.map +0 -1
@@ -6,8 +6,11 @@ import { atomicWriteFile } from './utils/atomic-write.js';
6
6
  import { withLock } from './utils/async-mutex.js';
7
7
  import { findBodyFieldName } from './utils/body-field.js';
8
8
  import { ContentIdIndex, extractIdFromFilename, extractSlugFromFilename, extractEntryTypeFromFilename, resolveCollectionPath, } from './content-id-index.js';
9
+ import { registerContentIndexForInvalidation } from './content-index-registry.js';
10
+ import { bumpContentIndexGeneration, readContentIndexGeneration } from './content-index-generation.js';
9
11
  import { generateId } from './id.js';
10
12
  import { isNodeError } from './utils/error.js';
13
+ import { filePathExists } from './utils/fs.js';
11
14
  import { asRecord, getFormatExtension } from './utils/format.js';
12
15
  import { normalizeFilesystemPath, } from './paths/index.js';
13
16
  export class ContentStoreError extends Error {
@@ -30,7 +33,7 @@ export class ContentConflictError extends Error {
30
33
  * Get the default entry type from a collection's entries array.
31
34
  * Returns the entry marked as default, or the first one, or undefined if no entries.
32
35
  */
33
- function getDefaultEntryType(entries) {
36
+ export function getDefaultEntryType(entries) {
34
37
  if (!entries || entries.length === 0)
35
38
  return undefined;
36
39
  return entries.find((e) => e.default) || entries[0];
@@ -47,24 +50,182 @@ function validateSlug(slug) {
47
50
  throw new ContentStoreError('Slugs cannot contain backslashes. Use nested collections instead.', 'VALIDATION');
48
51
  }
49
52
  }
53
+ const DEFAULT_INDEX_FRESHNESS_INTERVAL_MS = 1000;
54
+ /**
55
+ * At most one suspicious-lookup forced rescan per store per this window, so
56
+ * genuinely dangling IDs cannot trigger a full tree scan on every lookup.
57
+ */
58
+ const FORCED_REFRESH_MIN_INTERVAL_MS = 5000;
59
+ /** Internal sentinel: a lookup result that suggests this store's index is stale. */
60
+ const STALE_LOOKUP = Symbol('stale-index-lookup');
50
61
  export class ContentStore {
51
- constructor(root, flatSchema) {
52
- this.indexLoaded = false;
62
+ constructor(root, flatSchema, options = {}) {
63
+ /** Bumped by invalidateIndex(); when it differs from loadedIndexGeneration the index is stale. */
64
+ this.indexGeneration = 0;
65
+ this.loadedIndexGeneration = -1;
66
+ /**
67
+ * On-disk generation token (content-index-generation.ts) the current index
68
+ * was built against. undefined = never captured; null = marker absent at
69
+ * build time. Assigned only by the rebuild path and by guarded self-adoption
70
+ * after this store's own mutations.
71
+ */
72
+ this.loadedDiskGeneration = undefined;
73
+ this.lastDiskProbeMs = 0;
74
+ this.lastForcedRefreshMs = 0;
75
+ /** In-flight index build, shared by concurrent idIndex() callers so scans never interleave. */
76
+ this.indexBuild = null;
53
77
  this.root = path.resolve(root);
78
+ this.indexFreshnessIntervalMs =
79
+ options.indexFreshnessIntervalMs ?? DEFAULT_INDEX_FRESHNESS_INTERVAL_MS;
54
80
  this.schemaIndex = new Map(flatSchema.map((item) => [item.logicalPath, item]));
55
81
  this._idIndex = new ContentIdIndex(this.root);
82
+ registerContentIndexForInvalidation(this.root, this);
83
+ }
84
+ /**
85
+ * Mark the ID index stale so the next idIndex() access rebuilds it from disk.
86
+ *
87
+ * Called (via content-index-registry) after in-process operations that change the
88
+ * working tree underneath this store — git checkout/merge/rebase, the worker's
89
+ * rebase loop, and sync-core's content replacement. Without this, ID→path lookups
90
+ * keep resolving to pre-mutation paths and saves can target moved/deleted files.
91
+ *
92
+ * Cheap: only bumps a generation counter; the rebuild happens lazily.
93
+ */
94
+ invalidateIndex() {
95
+ this.indexGeneration++;
56
96
  }
57
97
  /**
58
- * Get the ID index, ensuring it's loaded first.
59
- * This getter automatically loads the index on first access.
98
+ * Get the ID index, ensuring it's loaded and current first.
99
+ * Loads lazily on first access and rebuilds after invalidateIndex(); repeated
100
+ * accesses with no intervening invalidation reuse the already-built index,
101
+ * except for a throttled probe of the on-disk generation marker that detects
102
+ * mutations made by OTHER processes sharing this root (e.g. on EFS).
60
103
  */
61
104
  async idIndex() {
62
- if (!this.indexLoaded) {
63
- await this._idIndex.buildFromFilenames('content');
64
- this.indexLoaded = true;
105
+ // Cross-process freshness probe: when the in-memory generations already
106
+ // match, cheaply check whether another process bumped the on-disk marker
107
+ // since this index was built. Skipped while a rebuild is due anyway — the
108
+ // rebuild below captures the marker itself.
109
+ if (this.loadedIndexGeneration === this.indexGeneration && this.shouldProbeDiskGeneration()) {
110
+ const diskToken = await readContentIndexGeneration(this.root);
111
+ if (diskToken !== this.loadedDiskGeneration) {
112
+ this.indexGeneration++;
113
+ }
114
+ }
115
+ while (this.loadedIndexGeneration !== this.indexGeneration) {
116
+ if (this.indexBuild) {
117
+ // Another caller is already rebuilding — wait, then re-check freshness.
118
+ await this.indexBuild;
119
+ continue;
120
+ }
121
+ const generation = this.indexGeneration;
122
+ const build = (async () => {
123
+ // Capture the marker BEFORE scanning: a bump landing mid-scan then
124
+ // differs from the token recorded below, forcing a rebuild on the
125
+ // next probe instead of being silently missed.
126
+ const diskToken = await readContentIndexGeneration(this.root);
127
+ // Build into a fresh instance and swap, instead of clearing in place:
128
+ // in-flight callers hold the previous reference across awaits and must
129
+ // keep seeing a consistent (if outdated) snapshot, never a half-built one.
130
+ const fresh = new ContentIdIndex(this.root);
131
+ await fresh.buildFromFilenames('content');
132
+ return { diskToken, fresh };
133
+ })();
134
+ this.indexBuild = build;
135
+ let result;
136
+ try {
137
+ result = await build;
138
+ }
139
+ finally {
140
+ this.indexBuild = null;
141
+ }
142
+ // Swap and record in one synchronous continuation (only the rebuild path
143
+ // assigns these; waiters above never do), so callers resuming after us
144
+ // observe a consistent index/generation/token triple. If invalidateIndex()
145
+ // ran mid-build the generations won't match and we rebuild.
146
+ this._idIndex = result.fresh;
147
+ this.loadedIndexGeneration = generation;
148
+ this.loadedDiskGeneration = result.diskToken;
149
+ // The build just captured a fresh token — it counts as a probe.
150
+ this.lastDiskProbeMs = Date.now();
65
151
  }
66
152
  return this._idIndex;
67
153
  }
154
+ /**
155
+ * Throttle for the on-disk marker probe. Stamps the clock synchronously
156
+ * before the caller's readFile so concurrent idIndex() callers don't
157
+ * double-probe (and double-rebuild) on the same token change.
158
+ */
159
+ shouldProbeDiskGeneration() {
160
+ const now = Date.now();
161
+ if (now - this.lastDiskProbeMs < this.indexFreshnessIntervalMs)
162
+ return false;
163
+ this.lastDiskProbeMs = now;
164
+ return true;
165
+ }
166
+ /**
167
+ * After one of this store's own successful mutations: publish the change to
168
+ * other processes (bump the on-disk marker) and adopt the written token,
169
+ * since the in-memory index was already updated incrementally — avoiding a
170
+ * pointless self-rescan on the next probe. Adoption is skipped unless the
171
+ * index is quiescent and `updatedIndex` is still the live instance: if a
172
+ * rebuild raced with the mutation, its scan may predate our file change, so
173
+ * we leave the recorded token older and let the next probe observe our bump
174
+ * and trigger the healing rebuild.
175
+ */
176
+ async recordOwnMutation(updatedIndex) {
177
+ const token = await bumpContentIndexGeneration(this.root);
178
+ if (token !== null &&
179
+ this.indexBuild === null &&
180
+ this.loadedIndexGeneration === this.indexGeneration &&
181
+ this._idIndex === updatedIndex) {
182
+ this.loadedDiskGeneration = token;
183
+ }
184
+ }
185
+ /**
186
+ * Backstop for the residual staleness windows of the cross-process marker
187
+ * (NFS attribute caching, probe throttle, self-adoption — see
188
+ * content-index-generation.ts): force one rebuild in response to a
189
+ * suspicious lookup (an ID miss, or an index hit whose file is gone), but
190
+ * throttle how often a caller can force one. Time-boxed so genuinely
191
+ * dangling IDs cost at most one rescan per window. Returns true if a
192
+ * refresh was performed by THIS call; callers that lose the throttle race
193
+ * still benefit — idIndex() dedupes concurrent builds, so a caller that won
194
+ * the race rebuilds the index for everyone, and callers should still retry
195
+ * their lookup against the live index regardless of this return value.
196
+ */
197
+ async refreshIndexForSuspiciousLookup() {
198
+ const now = Date.now();
199
+ if (now - this.lastForcedRefreshMs < FORCED_REFRESH_MIN_INTERVAL_MS)
200
+ return false;
201
+ this.lastForcedRefreshMs = now;
202
+ this.invalidateIndex();
203
+ await this.idIndex();
204
+ return true;
205
+ }
206
+ /**
207
+ * Find the file in `dir` whose filename embeds `id`.
208
+ * Returns its root-relative path, or null if no such file (or no such dir).
209
+ */
210
+ async findEntryPathById(dir, id) {
211
+ let entries;
212
+ try {
213
+ entries = await fs.readdir(dir, { withFileTypes: true });
214
+ }
215
+ catch (err) {
216
+ if (isNodeError(err) && err.code === 'ENOENT')
217
+ return null;
218
+ throw err;
219
+ }
220
+ for (const entry of entries) {
221
+ if (entry.isDirectory())
222
+ continue;
223
+ if (extractIdFromFilename(entry.name) === id) {
224
+ return path.relative(this.root, path.join(dir, entry.name));
225
+ }
226
+ }
227
+ return null;
228
+ }
68
229
  /**
69
230
  * Get all schema items for iteration.
70
231
  * Used internally by ReferenceResolver for path matching.
@@ -316,7 +477,8 @@ export class ContentStore {
316
477
  return doc;
317
478
  }
318
479
  async write(collectionPath, slug = '', input, entryTypeName, existingId) {
319
- const idIndex = await this.idIndex();
480
+ // Warm the index outside the lock (a full scan must not hold the entry lock)
481
+ await this.idIndex();
320
482
  const schemaItem = this.assertSchemaItem(collectionPath);
321
483
  // Determine expected format and fields (validation — outside lock so errors are immediate)
322
484
  let expectedFormat;
@@ -369,6 +531,34 @@ export class ContentStore {
369
531
  }
370
532
  }
371
533
  }
534
+ // Existence guard (cross-process): the caller asserts this entry already
535
+ // exists (existingId), so if no file is at the path we are about to
536
+ // write, this store's index may be stale — another process may have
537
+ // renamed the entry. Recreating a renamed entry's old path would leave
538
+ // two files with the same embedded ID and poison every subsequent index
539
+ // rebuild (ID collision). The directory listing is authoritative on this
540
+ // host: if the ID's actual on-disk location differs from what our index
541
+ // believes, fail with a conflict so the caller reloads fresh state.
542
+ // (An intentional slug-change save passes: the index and the directory
543
+ // agree on the entry's current — old-slug — path. External deletes also
544
+ // pass: the ID is nowhere on disk, so recreating is last-writer-wins.)
545
+ //
546
+ // indexedRelPath reads the LIVE index synchronously — NOT idIndex() —
547
+ // because idIndex() would run a full rescan while holding the entry
548
+ // lock if invalidateIndex() fired between the pre-lock warm-up above
549
+ // and here. The live index may then be stale, but staleness only errs
550
+ // toward throwing ContentConflictError: actualRelPath comes from the
551
+ // fresh in-lock directory scan just below (ground truth), so a stale
552
+ // indexedRelPath can only turn agree->disagree (spurious conflict,
553
+ // which the caller already handles by reloading), never
554
+ // disagree->agree. Fail-closed, never fail-open.
555
+ if (existingId && !(await filePathExists(absolutePath))) {
556
+ const actualRelPath = await this.findEntryPathById(path.dirname(absolutePath), existingId);
557
+ const indexedRelPath = this._idIndex.findById(existingId)?.relativePath ?? null;
558
+ if (actualRelPath !== null && actualRelPath !== indexedRelPath) {
559
+ throw new ContentConflictError();
560
+ }
561
+ }
372
562
  // Serialize content string
373
563
  let content;
374
564
  if (input.format === 'json') {
@@ -381,22 +571,23 @@ export class ContentStore {
381
571
  content = matter.stringify(input.body, input.data ?? {});
382
572
  }
383
573
  await atomicWriteFile(absolutePath, content);
384
- // Update the ID index after a successful write
574
+ // Update the ID index after a successful write. Look up and mutate the
575
+ // LIVE index in one synchronous window (no awaits in between): a
576
+ // concurrent rebuild may have swapped in a fresh instance since the
577
+ // pre-write snapshot, and updates must land where future lookups go.
578
+ const liveIndex = this._idIndex;
579
+ let staleOldAbsPath = null;
385
580
  if (id) {
386
- const existing = idIndex.findById(id);
581
+ const existing = liveIndex.findById(id);
387
582
  if (existing) {
388
583
  if (existing.relativePath !== relativePath) {
389
- // Slug changed — delete the orphaned file at the old path before updating the index
390
- const oldAbsPath = path.join(this.root, existing.relativePath);
391
- await fs.unlink(oldAbsPath).catch((err) => {
392
- if (!isNodeError(err) || err.code !== 'ENOENT')
393
- throw err;
394
- });
395
- idIndex.updatePath(existing.id, relativePath);
584
+ // Slug changed — remember the orphaned old path to delete below
585
+ staleOldAbsPath = path.join(this.root, existing.relativePath);
586
+ liveIndex.updatePath(existing.id, relativePath);
396
587
  }
397
588
  }
398
589
  else {
399
- idIndex.add({
590
+ liveIndex.add({
400
591
  type: 'entry',
401
592
  relativePath,
402
593
  collection: collectionPath,
@@ -404,6 +595,13 @@ export class ContentStore {
404
595
  });
405
596
  }
406
597
  }
598
+ if (staleOldAbsPath) {
599
+ await fs.unlink(staleOldAbsPath).catch((err) => {
600
+ if (!isNodeError(err) || err.code !== 'ENOENT')
601
+ throw err;
602
+ });
603
+ }
604
+ await this.recordOwnMutation(liveIndex);
407
605
  const afterStat = await fs.stat(absolutePath);
408
606
  const base = {
409
607
  collection: schemaItem.logicalPath,
@@ -430,13 +628,37 @@ export class ContentStore {
430
628
  /**
431
629
  * Read an entry by its ID (UUID).
432
630
  * Returns null if the ID doesn't exist or points to a collection.
631
+ *
632
+ * Suspicious results (ID missing from the index, or an index hit whose file
633
+ * is gone) trigger one forced index refresh and a retry — self-healing for
634
+ * mutations by other processes inside the marker's residual windows.
433
635
  */
434
636
  async readById(id) {
637
+ const first = await this.readByIdOnce(id);
638
+ if (first !== STALE_LOOKUP)
639
+ return first;
640
+ if (!(await this.refreshIndexForSuspiciousLookup()))
641
+ return null;
642
+ const second = await this.readByIdOnce(id);
643
+ return second === STALE_LOOKUP ? null : second;
644
+ }
645
+ async readByIdOnce(id) {
435
646
  const idIndex = await this.idIndex();
436
647
  const location = idIndex.findById(id);
437
- if (!location || location.type !== 'entry')
648
+ if (!location)
649
+ return STALE_LOOKUP;
650
+ if (location.type !== 'entry')
438
651
  return null;
439
- return this.read(location.collection, location.slug);
652
+ try {
653
+ return await this.read(location.collection, location.slug);
654
+ }
655
+ catch (err) {
656
+ // Index hit but the file is gone — the typical symptom of an external
657
+ // rename/delete this store hasn't observed yet.
658
+ if (isNodeError(err) && err.code === 'ENOENT')
659
+ return STALE_LOOKUP;
660
+ throw err;
661
+ }
440
662
  }
441
663
  /**
442
664
  * Get the ID for an entry given its collection and slug.
@@ -447,22 +669,79 @@ export class ContentStore {
447
669
  const { relativePath } = await this.buildPaths(this.assertCollection(collectionPath), slug);
448
670
  return idIndex.findByPath(relativePath);
449
671
  }
672
+ /**
673
+ * Check whether a document already exists on disk for this collection+slug.
674
+ * Used by the write boundary to distinguish creates from edits (create
675
+ * scaffolds and maxItems enforcement).
676
+ */
677
+ async documentExists(collectionPath, slug = '') {
678
+ const schemaItem = this.assertSchemaItem(collectionPath);
679
+ const { absolutePath } = await this.buildPaths(schemaItem, slug);
680
+ try {
681
+ await fs.access(absolutePath);
682
+ return true;
683
+ }
684
+ catch (err) {
685
+ if (isNodeError(err) && err.code === 'ENOENT')
686
+ return false;
687
+ throw err;
688
+ }
689
+ }
690
+ /**
691
+ * Resolve the actual on-disk entry type of an existing collection entry, by
692
+ * inspecting its filename directly. Entry filenames embed their type
693
+ * (`{type}.{slug}.{id}.{ext}`) and it is immutable after creation — see the
694
+ * existing-file lookup in buildPaths(), which this mirrors. Returns
695
+ * undefined if no entry exists yet at this slug.
696
+ *
697
+ * Used at the API write boundary (api/content.ts) to validate an existing
698
+ * entry's payload against ITS real schema rather than a caller-supplied (or
699
+ * omitted/spoofed) `entryType` param — ContentStore.write() preserves the
700
+ * on-disk type regardless of what's requested, so validation must agree
701
+ * with what will actually be written (post-review M2).
702
+ *
703
+ * Cheap: one buildPaths() resolution plus a stat, no file content is read —
704
+ * same cost class as documentExists().
705
+ */
706
+ async getExistingEntryType(collectionPath, slug = '') {
707
+ const schemaItem = this.assertCollection(collectionPath);
708
+ const { absolutePath, entryTypeName } = await this.buildPaths(schemaItem, slug);
709
+ return (await filePathExists(absolutePath)) ? entryTypeName : undefined;
710
+ }
711
+ /**
712
+ * Count existing entries of a given entry type in a collection, by filename
713
+ * (entry filenames embed their type: `{type}.{slug}.{id}.{ext}`). Used to
714
+ * enforce `EntryTypeConfig.maxItems` server-side at the create boundary.
715
+ */
716
+ async countEntriesOfType(collectionPath, entryTypeName) {
717
+ this.assertCollection(collectionPath);
718
+ const collectionRoot = await resolveCollectionPath(this.root, collectionPath);
719
+ if (!collectionRoot)
720
+ return 0;
721
+ const entries = await fs
722
+ .readdir(collectionRoot, { withFileTypes: true })
723
+ .catch(() => []);
724
+ return entries.filter((entry) => !entry.isDirectory() && extractEntryTypeFromFilename(entry.name) === entryTypeName).length;
725
+ }
450
726
  /**
451
727
  * Delete an entry and remove it from the index.
452
728
  */
453
729
  async delete(collectionPath, slug) {
454
- const idIndex = await this.idIndex();
730
+ // Warm the index outside the lock (a full scan must not hold the entry lock)
731
+ await this.idIndex();
455
732
  const collection = this.assertCollection(collectionPath);
456
733
  const { absolutePath, relativePath } = await this.buildPaths(collection, slug);
457
734
  return withLock(absolutePath, async () => {
458
- // Get ID before deleting
459
- const id = idIndex.findByPath(relativePath);
460
735
  // Delete file
461
736
  await fs.unlink(absolutePath);
462
- // Remove from index
737
+ // Remove from the LIVE index — lookup and mutation in one synchronous
738
+ // window, since a concurrent rebuild may swap instances across awaits.
739
+ const liveIndex = this._idIndex;
740
+ const id = liveIndex.findByPath(relativePath);
463
741
  if (id) {
464
- idIndex.remove(id);
742
+ liveIndex.remove(id);
465
743
  }
744
+ await this.recordOwnMutation(liveIndex);
466
745
  });
467
746
  }
468
747
  /**
@@ -476,7 +755,8 @@ export class ContentStore {
476
755
  * @throws ContentStoreError if entry doesn't exist, new slug conflicts, or validation fails
477
756
  */
478
757
  async renameEntry(collectionPath, currentSlug, newSlug) {
479
- const idIndex = await this.idIndex();
758
+ // Warm the index outside the lock (a full scan must not hold the entry lock)
759
+ await this.idIndex();
480
760
  const collection = this.assertCollection(collectionPath);
481
761
  // Validate new slug format (Slug branded type guarantees lowercase alphanumeric+hyphens via parseSlug)
482
762
  validateSlug(newSlug);
@@ -552,12 +832,15 @@ export class ContentStore {
552
832
  throw err;
553
833
  }
554
834
  await fs.unlink(currentPath);
555
- // Update the ID index
835
+ // Update the LIVE index — lookup and mutation in one synchronous window,
836
+ // since a concurrent rebuild may swap instances across awaits.
556
837
  const newRelativePath = path.relative(this.root, newPath);
557
- const entryId = idIndex.findByPath(currentRelPath);
838
+ const liveIndex = this._idIndex;
839
+ const entryId = liveIndex.findByPath(currentRelPath);
558
840
  if (entryId) {
559
- idIndex.updatePath(entryId, newRelativePath);
841
+ liveIndex.updatePath(entryId, newRelativePath);
560
842
  }
843
+ await this.recordOwnMutation(liveIndex);
561
844
  // Return new logical path
562
845
  return { newPath: `${collectionPath}/${safeNewSlug}` };
563
846
  });
@@ -671,11 +954,36 @@ export class ContentStore {
671
954
  * Resolve a single reference ID to full entry data.
672
955
  * Returns null if the reference is invalid or missing.
673
956
  * Includes id, slug, and collection fields for debugging.
957
+ *
958
+ * Suspicious results (ID missing from the index, or an index hit whose file
959
+ * is gone) trigger one forced index refresh and a retry — self-healing for
960
+ * mutations by other processes inside the marker's residual windows. The
961
+ * forced refresh itself is throttled (see refreshIndexForSuspiciousLookup),
962
+ * but the retry against the live index always runs regardless of whether
963
+ * this call won the throttle race: when a `list: true` reference array is
964
+ * resolved via Promise.all, every miss shares the same stale snapshot, and
965
+ * idIndex() dedupes concurrent builds — so a sibling call that wins the
966
+ * throttle and rebuilds heals every other miss in the same batch, not just
967
+ * the first.
674
968
  */
675
969
  async resolveSingleReference(id, idIndex) {
970
+ const first = await this.resolveSingleReferenceOnce(id, idIndex);
971
+ if (first !== STALE_LOOKUP)
972
+ return first;
973
+ // Force a rebuild (throttled). Even when this caller loses the throttle,
974
+ // retry against the live index: a sibling lookup in the same batch may have
975
+ // won it and invalidated/rebuilt (idIndex() dedupes in-flight builds), so
976
+ // every miss in a Promise.all batch heals, not just the first.
977
+ await this.refreshIndexForSuspiciousLookup();
978
+ const second = await this.resolveSingleReferenceOnce(id, await this.idIndex());
979
+ return second === STALE_LOOKUP ? null : second;
980
+ }
981
+ async resolveSingleReferenceOnce(id, idIndex) {
676
982
  try {
677
983
  const location = idIndex.findById(id);
678
- if (!location || location.type !== 'entry' || !location.collection || !location.slug) {
984
+ if (!location)
985
+ return STALE_LOOKUP;
986
+ if (location.type !== 'entry' || !location.collection || !location.slug) {
679
987
  return null;
680
988
  }
681
989
  // Read the referenced entry WITHOUT resolving its references (prevent infinite loops)
@@ -690,6 +998,10 @@ export class ContentStore {
690
998
  };
691
999
  }
692
1000
  catch (error) {
1001
+ // Index hit but the file is gone — the typical symptom of an external
1002
+ // rename/delete this store hasn't observed yet.
1003
+ if (isNodeError(error) && error.code === 'ENOENT')
1004
+ return STALE_LOOKUP;
693
1005
  console.error(`Failed to resolve reference ${id}:`, error);
694
1006
  return null;
695
1007
  }
@@ -1 +1 @@
1
- {"version":3,"file":"content-store.js","sourceRoot":"","sources":["../src/content-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-store.js","sourceRoot":"","sources":["../src/content-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["../../src/editor/Editor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["../../src/editor/Editor.tsx"],"names":[],"mappings":"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"}