canopycms 0.0.33 → 0.0.34

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.
@@ -3,9 +3,11 @@ import path from 'node:path';
3
3
  import matter from 'gray-matter';
4
4
  import { parse as yamlParse, stringify as yamlStringify } from 'yaml';
5
5
  import { atomicWriteFile } from './utils/atomic-write.js';
6
+ import { withLock } from './utils/async-mutex.js';
6
7
  import { findBodyFieldName } from './utils/body-field.js';
7
8
  import { ContentIdIndex, extractIdFromFilename, extractSlugFromFilename, extractEntryTypeFromFilename, resolveCollectionPath, } from './content-id-index.js';
8
9
  import { generateId } from './id.js';
10
+ import { isNodeError } from './utils/error.js';
9
11
  import { asRecord, getFormatExtension } from './utils/format.js';
10
12
  import { normalizeFilesystemPath, } from './paths/index.js';
11
13
  export class ContentStoreError extends Error {
@@ -14,6 +16,16 @@ export class ContentStoreError extends Error {
14
16
  this.code = code;
15
17
  }
16
18
  }
19
+ /**
20
+ * Thrown when `expectedVersion` on a write doesn't match the file's current mtime.
21
+ * Indicates a cross-process concurrent write — the caller should reload and retry.
22
+ */
23
+ export class ContentConflictError extends Error {
24
+ constructor() {
25
+ super('Content was modified by another editor');
26
+ this.name = 'ContentConflictError';
27
+ }
28
+ }
17
29
  /**
18
30
  * Get the default entry type from a collection's entries array.
19
31
  * Returns the entry marked as default, or the first one, or undefined if no entries.
@@ -234,6 +246,12 @@ export class ContentStore {
234
246
  async read(collectionPath, slug = '', options = {}) {
235
247
  const schemaItem = this.assertSchemaItem(collectionPath);
236
248
  const { absolutePath, relativePath, entryTypeName: resolvedEntryTypeName, } = await this.buildPaths(schemaItem, slug);
249
+ // stat BEFORE readFile: conservative version token that can only produce false-positive
250
+ // conflicts, never false-negatives. If a write lands between stat and readFile the client
251
+ // receives newer content but an older token → their next save triggers a 409 (safe).
252
+ // stat-after or parallel stat+read risks the opposite: old content + new token → silent
253
+ // overwrite of a concurrent write (data loss).
254
+ const stat = await fs.stat(absolutePath);
237
255
  const raw = await fs.readFile(absolutePath, 'utf8');
238
256
  let doc;
239
257
  let format;
@@ -294,12 +312,13 @@ export class ContentStore {
294
312
  if (options.resolveReferences !== false) {
295
313
  doc.data = await this.resolveReferencesInData(doc.data, fields);
296
314
  }
315
+ doc.version = stat.mtimeMs;
297
316
  return doc;
298
317
  }
299
318
  async write(collectionPath, slug = '', input, entryTypeName) {
300
319
  const idIndex = await this.idIndex();
301
320
  const schemaItem = this.assertSchemaItem(collectionPath);
302
- // Determine expected format and fields based on entry type
321
+ // Determine expected format and fields (validation outside lock so errors are immediate)
303
322
  let expectedFormat;
304
323
  let fields = [];
305
324
  if (schemaItem.type === 'entry-type') {
@@ -324,68 +343,82 @@ export class ContentStore {
324
343
  if (expectedFormat !== input.format) {
325
344
  throw new ContentStoreError(`Format mismatch: expects ${expectedFormat}, got ${input.format}`, 'VALIDATION');
326
345
  }
346
+ // Resolve paths outside the lock so validation errors surface immediately
327
347
  const { absolutePath, relativePath, id } = await this.buildPaths(schemaItem, slug, {
328
348
  entryTypeName,
329
349
  });
330
- await fs.mkdir(path.dirname(absolutePath), { recursive: true });
331
- // Helper to update the ID index after writing
332
- const updateIdIndex = () => {
333
- if (!id)
334
- return;
335
- const existing = idIndex.findById(id);
336
- if (existing) {
337
- if (existing.relativePath !== relativePath) {
338
- idIndex.updatePath(existing.id, relativePath);
350
+ return withLock(absolutePath, async () => {
351
+ await fs.mkdir(path.dirname(absolutePath), { recursive: true });
352
+ // OCC: if caller supplied a version token, reject stale writes
353
+ if (input.expectedVersion !== undefined) {
354
+ try {
355
+ const existing = await fs.stat(absolutePath);
356
+ if (existing.mtimeMs !== input.expectedVersion) {
357
+ throw new ContentConflictError();
358
+ }
359
+ }
360
+ catch (err) {
361
+ if (err instanceof ContentConflictError)
362
+ throw err;
363
+ if (isNodeError(err) && err.code === 'ENOENT') {
364
+ // File doesn't exist yet — first write, skip version check
365
+ }
366
+ else {
367
+ throw err;
368
+ }
339
369
  }
340
370
  }
371
+ // Serialize content string
372
+ let content;
373
+ if (input.format === 'json') {
374
+ content = `${JSON.stringify(input.data ?? {}, null, 2)}\n`;
375
+ }
376
+ else if (input.format === 'yaml') {
377
+ content = yamlStringify(input.data ?? {});
378
+ }
341
379
  else {
342
- idIndex.add({
343
- type: 'entry',
344
- relativePath,
345
- collection: collectionPath,
346
- slug: slug || undefined,
347
- });
380
+ content = matter.stringify(input.body, input.data ?? {});
348
381
  }
349
- };
350
- if (input.format === 'json') {
351
- const json = JSON.stringify(input.data ?? {}, null, 2);
352
- await atomicWriteFile(absolutePath, `${json}\n`);
353
- updateIdIndex();
354
- return {
382
+ await atomicWriteFile(absolutePath, content);
383
+ // Update the ID index after a successful write
384
+ if (id) {
385
+ const existing = idIndex.findById(id);
386
+ if (existing) {
387
+ if (existing.relativePath !== relativePath) {
388
+ idIndex.updatePath(existing.id, relativePath);
389
+ }
390
+ }
391
+ else {
392
+ idIndex.add({
393
+ type: 'entry',
394
+ relativePath,
395
+ collection: collectionPath,
396
+ slug: slug || undefined,
397
+ });
398
+ }
399
+ }
400
+ const afterStat = await fs.stat(absolutePath);
401
+ const base = {
355
402
  collection: schemaItem.logicalPath,
356
403
  collectionName: schemaItem.name,
357
- format: 'json',
358
- data: input.data ?? {},
359
404
  relativePath,
360
405
  absolutePath,
406
+ version: afterStat.mtimeMs,
361
407
  };
362
- }
363
- if (input.format === 'yaml') {
364
- const yaml = yamlStringify(input.data ?? {});
365
- await atomicWriteFile(absolutePath, yaml);
366
- updateIdIndex();
408
+ if (input.format === 'json') {
409
+ return { ...base, format: 'json', data: input.data ?? {} };
410
+ }
411
+ if (input.format === 'yaml') {
412
+ return { ...base, format: 'yaml', data: input.data ?? {} };
413
+ }
367
414
  return {
368
- collection: schemaItem.logicalPath,
369
- collectionName: schemaItem.name,
370
- format: 'yaml',
415
+ ...base,
416
+ format: input.format,
371
417
  data: input.data ?? {},
372
- relativePath,
373
- absolutePath,
418
+ body: input.body,
419
+ bodyFieldName: findBodyFieldName(fields),
374
420
  };
375
- }
376
- const file = matter.stringify(input.body, input.data ?? {});
377
- await atomicWriteFile(absolutePath, file);
378
- updateIdIndex();
379
- return {
380
- collection: schemaItem.logicalPath,
381
- collectionName: schemaItem.name,
382
- format: input.format,
383
- data: input.data ?? {},
384
- body: input.body,
385
- bodyFieldName: findBodyFieldName(fields),
386
- relativePath,
387
- absolutePath,
388
- };
421
+ });
389
422
  }
390
423
  /**
391
424
  * Read an entry by its ID (UUID).
@@ -414,14 +447,16 @@ export class ContentStore {
414
447
  const idIndex = await this.idIndex();
415
448
  const collection = this.assertCollection(collectionPath);
416
449
  const { absolutePath, relativePath } = await this.buildPaths(collection, slug);
417
- // Get ID before deleting
418
- const id = idIndex.findByPath(relativePath);
419
- // Delete file
420
- await fs.unlink(absolutePath);
421
- // Remove from index
422
- if (id) {
423
- idIndex.remove(id);
424
- }
450
+ return withLock(absolutePath, async () => {
451
+ // Get ID before deleting
452
+ const id = idIndex.findByPath(relativePath);
453
+ // Delete file
454
+ await fs.unlink(absolutePath);
455
+ // Remove from index
456
+ if (id) {
457
+ idIndex.remove(id);
458
+ }
459
+ });
425
460
  }
426
461
  /**
427
462
  * Rename an entry by changing its slug (middle segment of filename).
@@ -442,64 +477,83 @@ export class ContentStore {
442
477
  if (!safeNewSlug) {
443
478
  throw new ContentStoreError('New slug cannot be empty', 'VALIDATION');
444
479
  }
445
- // Get current file path
446
- const { absolutePath: currentPath, relativePath: currentRelPath } = await this.buildPaths(collection, currentSlug);
447
- // Verify current file exists
448
- try {
449
- await fs.access(currentPath);
450
- }
451
- catch {
452
- throw new ContentStoreError(`Entry not found: ${currentSlug}`, 'NOT_FOUND');
453
- }
454
480
  // If slugs are the same, no-op
455
481
  if (currentSlug === safeNewSlug) {
456
482
  return { newPath: `${collectionPath}/${currentSlug}` };
457
483
  }
458
- // Extract entry type name and extension from current filename
459
- const currentFilename = path.basename(currentPath);
460
- const parts = currentFilename.split('.');
461
- if (parts.length < 4) {
462
- throw new ContentStoreError(`Invalid entry filename format: ${currentFilename}`, 'VALIDATION');
463
- }
464
- const entryTypeName = parts[0];
465
- const contentId = parts[parts.length - 2];
466
- const ext = `.${parts[parts.length - 1]}`;
467
- // Build new filename with new slug
468
- const newFilename = `${entryTypeName}.${safeNewSlug}.${contentId}${ext}`;
469
- const parentDir = path.dirname(currentPath);
470
- const newPath = path.join(parentDir, newFilename);
471
- // Check if any file with the new slug already exists (regardless of ID)
472
- // Need to check for pattern: {entryTypeName}.{newSlug}.{any-id}{ext}
473
- try {
474
- const entries = await fs.readdir(parentDir, { withFileTypes: true });
475
- for (const entry of entries) {
476
- if (entry.isDirectory())
477
- continue;
478
- // Extract slug from filename using the same pattern
479
- const existingSlug = extractSlugFromFilename(entry.name, entryTypeName);
480
- if (existingSlug === safeNewSlug) {
481
- throw new ContentStoreError(`Entry with slug "${safeNewSlug}" already exists in collection "${collectionPath}"`, 'VALIDATION');
484
+ // Resolve source path outside the lock so validation errors surface immediately
485
+ const { absolutePath: currentPath, relativePath: currentRelPath } = await this.buildPaths(collection, currentSlug);
486
+ return withLock(currentPath, async () => {
487
+ // Verify source exists (inside lock so we see the current state)
488
+ try {
489
+ await fs.access(currentPath);
490
+ }
491
+ catch {
492
+ throw new ContentStoreError(`Entry not found: ${currentSlug}`, 'NOT_FOUND');
493
+ }
494
+ // Extract entry type name and extension from current filename
495
+ const currentFilename = path.basename(currentPath);
496
+ const parts = currentFilename.split('.');
497
+ if (parts.length < 4) {
498
+ throw new ContentStoreError(`Invalid entry filename format: ${currentFilename}`, 'VALIDATION');
499
+ }
500
+ const entryTypeName = parts[0];
501
+ const contentId = parts[parts.length - 2];
502
+ const ext = `.${parts[parts.length - 1]}`;
503
+ // Build new filename with new slug
504
+ const newFilename = `${entryTypeName}.${safeNewSlug}.${contentId}${ext}`;
505
+ const parentDir = path.dirname(currentPath);
506
+ const newPath = path.join(parentDir, newFilename);
507
+ // Check if any file with the new slug already exists (regardless of ID)
508
+ // This catches same-slug-different-ID conflicts that link() alone cannot prevent
509
+ try {
510
+ const entries = await fs.readdir(parentDir, { withFileTypes: true });
511
+ for (const entry of entries) {
512
+ if (entry.isDirectory())
513
+ continue;
514
+ const existingSlug = extractSlugFromFilename(entry.name, entryTypeName);
515
+ if (existingSlug === safeNewSlug) {
516
+ throw new ContentStoreError(`Entry with slug "${safeNewSlug}" already exists in collection "${collectionPath}"`, 'VALIDATION');
517
+ }
482
518
  }
483
519
  }
484
- }
485
- catch (err) {
486
- // Re-throw ContentStoreError (e.g., "already exists") — ignore filesystem errors
487
- if (err instanceof ContentStoreError) {
520
+ catch (err) {
521
+ if (err instanceof ContentStoreError)
522
+ throw err;
523
+ // Ignore filesystem errors (e.g. ENOENT if parent dir doesn't exist)
524
+ }
525
+ // Use link()+unlink() instead of rename() so a concurrent cross-process rename to the
526
+ // exact same destination path fails with EEXIST rather than silently overwriting.
527
+ //
528
+ // Tradeoff: this is a two-step operation, not a single atomic syscall. If unlink()
529
+ // fails after a successful link() (e.g. a transient EFS error), both the old and new
530
+ // slug files will exist pointing at the same inode. The ID index will reflect the new
531
+ // path, so subsequent reads work, but the orphaned source file will persist until the
532
+ // next rename or deletion of that entry. This is an acceptable tradeoff: the EEXIST
533
+ // protection on link() prevents silent data loss on concurrent renames, and the
534
+ // partial-failure case is detectable and recoverable. See also:
535
+ // .claude/future-tasks/content-store-lock-key.md — when lock keys migrate to content
536
+ // IDs, rename and write on the same entry will be fully serialized, further reducing
537
+ // this window.
538
+ try {
539
+ await fs.link(currentPath, newPath);
540
+ }
541
+ catch (err) {
542
+ if (isNodeError(err) && err.code === 'EEXIST') {
543
+ throw new ContentStoreError(`Entry with slug "${safeNewSlug}" already exists in collection "${collectionPath}"`, 'VALIDATION');
544
+ }
488
545
  throw err;
489
546
  }
490
- // Ignore other errors (e.g., ENOENT if parent dir doesn't exist)
491
- }
492
- // Atomically rename the file
493
- await fs.rename(currentPath, newPath);
494
- // Update the ID index
495
- const newRelativePath = path.relative(this.root, newPath);
496
- const entryId = idIndex.findByPath(currentRelPath);
497
- if (entryId) {
498
- idIndex.updatePath(entryId, newRelativePath);
499
- }
500
- // Return new logical path
501
- const newLogicalPath = `${collectionPath}/${safeNewSlug}`;
502
- return { newPath: newLogicalPath };
547
+ await fs.unlink(currentPath);
548
+ // Update the ID index
549
+ const newRelativePath = path.relative(this.root, newPath);
550
+ const entryId = idIndex.findByPath(currentRelPath);
551
+ if (entryId) {
552
+ idIndex.updatePath(entryId, newRelativePath);
553
+ }
554
+ // Return new logical path
555
+ return { newPath: `${collectionPath}/${safeNewSlug}` };
556
+ });
503
557
  }
504
558
  /**
505
559
  * List all entries in a collection tree (including subcollections).
@@ -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":"useDraftManager.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useDraftManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,WAAW,GAAG,SAAS,CAAA;IACrC,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACrD,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACvE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACjC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAC1E,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACvC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAChF,aAAa,EAAE,SAAS,GAAG,SAAS,CAAA;IACpC,WAAW,EAAE,SAAS,GAAG,SAAS,CAAA;IAClC,cAAc,EAAE,SAAS,GAAG,SAAS,CAAA;IACrC,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxD,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,mBAAmB,EAAE,MAAM,IAAI,CAAA;IAC/B,sBAAsB,EAAE,MAAM,IAAI,CAAA;IAClC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;IAC/C,eAAe,EAAE,MAAM,OAAO,CAAA;IAC9B,UAAU,EAAE,MAAM,OAAO,CAAA;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,CAgOtF"}
1
+ {"version":3,"file":"useDraftManager.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useDraftManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAIhD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,WAAW,GAAG,SAAS,CAAA;IACrC,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACrD,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACvE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACjC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAC1E,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACvC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAChF,aAAa,EAAE,SAAS,GAAG,SAAS,CAAA;IACpC,WAAW,EAAE,SAAS,GAAG,SAAS,CAAA;IAClC,cAAc,EAAE,SAAS,GAAG,SAAS,CAAA;IACrC,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxD,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,mBAAmB,EAAE,MAAM,IAAI,CAAA;IAC/B,sBAAsB,EAAE,MAAM,IAAI,CAAA;IAClC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;IAC/C,eAAe,EAAE,MAAM,OAAO,CAAA;IAC9B,UAAU,EAAE,MAAM,OAAO,CAAA;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,CAmOtF"}
@@ -1,6 +1,7 @@
1
1
  import { useEffect, useMemo, useRef, useState } from 'react';
2
2
  import { notifications } from '@mantine/notifications';
3
3
  import { getNotificationDuration } from '../utils/env.js';
4
+ import { SaveApiError } from './useEntryManager.js';
4
5
  /**
5
6
  * Custom hook for managing draft state (localStorage persistence, save/discard).
6
7
  *
@@ -118,10 +119,13 @@ export function useDraftManager(options) {
118
119
  }
119
120
  catch (err) {
120
121
  console.error(err);
122
+ const isConflict = err instanceof SaveApiError && err.status === 409;
121
123
  notifications.show({
122
- message: 'Save failed',
123
- color: 'red',
124
- autoClose: getNotificationDuration(6000),
124
+ message: isConflict
125
+ ? 'Content was modified by another editor. Reload to see the latest changes.'
126
+ : 'Save failed',
127
+ color: isConflict ? 'yellow' : 'red',
128
+ autoClose: getNotificationDuration(isConflict ? 8000 : 6000),
125
129
  withCloseButton: true,
126
130
  });
127
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useDraftManager.js","sourceRoot":"","sources":["../../../src/editor/hooks/useDraftManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDraftManager.js","sourceRoot":"","sources":["../../../src/editor/hooks/useDraftManager.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  import type { EditorEntry, EditorCollection } from '../Editor';
2
2
  import type { LogicalPath } from '../../paths/types';
3
3
  import type { FormValue } from '../FormRenderer';
4
+ /** Thrown by saveEntry when the API returns a non-200 response. Carries the HTTP status so callers can distinguish conflict (409) from other errors. */
5
+ export declare class SaveApiError extends Error {
6
+ readonly status: number;
7
+ constructor(status: number);
8
+ }
4
9
  export interface UseEntryManagerOptions {
5
10
  initialEntries: EditorEntry[];
6
11
  initialSelectedId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"useEntryManager.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useEntryManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAShD,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,WAAW,EAAE,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,MAAM,GAAG,SAAS,CAAA;IACtE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IAC5C,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,YAAY,EAAE,WAAW,GAAG,SAAS,CAAA;IACrC,aAAa,EAAE,OAAO,CAAA;IACtB,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACzC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAC3D,iBAAiB,EAAE,CAAC,cAAc,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzF,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACrD,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACvE,gBAAgB,EAAE,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;IAEpD,eAAe,EAAE,OAAO,CAAA;IACxB,qBAAqB,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC9C,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,uBAAuB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/E,gBAAgB,EAAE,MAAM,IAAI,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,CAgUtF"}
1
+ {"version":3,"file":"useEntryManager.d.ts","sourceRoot":"","sources":["../../../src/editor/hooks/useEntryManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAShD,wJAAwJ;AACxJ,qBAAa,YAAa,SAAQ,KAAK;aACT,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAI3C;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,WAAW,EAAE,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,MAAM,GAAG,SAAS,CAAA;IACtE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IAC5C,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,YAAY,EAAE,WAAW,GAAG,SAAS,CAAA;IACrC,aAAa,EAAE,OAAO,CAAA;IACtB,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACzC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAC3D,iBAAiB,EAAE,CAAC,cAAc,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzF,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACrD,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACvE,gBAAgB,EAAE,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;IAEpD,eAAe,EAAE,OAAO,CAAA;IACxB,qBAAqB,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC9C,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,uBAAuB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/E,gBAAgB,EAAE,MAAM,IAAI,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,CAgVtF"}
@@ -3,6 +3,14 @@ import { notifications } from '@mantine/notifications';
3
3
  import { buildEntriesFromListResponse, buildWritePayload, normalizeContentPayload, } from '../editor-utils.js';
4
4
  import { isDataOnlyFormat } from '../../utils/format.js';
5
5
  import { useApiClient } from '../context/index.js';
6
+ /** Thrown by saveEntry when the API returns a non-200 response. Carries the HTTP status so callers can distinguish conflict (409) from other errors. */
7
+ export class SaveApiError extends Error {
8
+ constructor(status) {
9
+ super(`Save failed: ${status}`);
10
+ this.status = status;
11
+ this.name = 'SaveApiError';
12
+ }
13
+ }
6
14
  /**
7
15
  * Custom hook for managing editor entries (CRUD operations).
8
16
  *
@@ -41,6 +49,8 @@ export function useEntryManager(options) {
41
49
  const [navigatorOpen, setNavigatorOpen] = useState(false);
42
50
  const isInitialMount = useRef(true);
43
51
  const hasSyncedFromUrl = useRef(false);
52
+ // OCC version tokens keyed by contentId — captured on load, sent on save
53
+ const entryVersionsRef = useRef(new Map());
44
54
  // Entry create modal state
45
55
  const [createModalOpen, setCreateModalOpen] = useState(false);
46
56
  const [createModalCollection, setCreateModalCollection] = useState(null);
@@ -78,6 +88,10 @@ export function useEntryManager(options) {
78
88
  });
79
89
  if (!result.ok)
80
90
  throw new Error(`Load failed: ${result.status}`);
91
+ // Capture OCC version token for next save
92
+ if (entry.contentId && typeof result.data?.version === 'number') {
93
+ entryVersionsRef.current.set(entry.contentId, result.data.version);
94
+ }
81
95
  return normalizeContentPayload(result.data);
82
96
  };
83
97
  const saveEntry = async (entry, value) => {
@@ -93,9 +107,20 @@ export function useEntryManager(options) {
93
107
  };
94
108
  if (entry.entryType)
95
109
  writeParams.entryType = entry.entryType;
96
- const result = await apiClient.content.write(writeParams, payload);
110
+ const expectedVersion = entry.contentId
111
+ ? entryVersionsRef.current.get(entry.contentId)
112
+ : undefined;
113
+ const writeBody = {
114
+ ...payload,
115
+ ...(expectedVersion !== undefined ? { expectedVersion } : {}),
116
+ };
117
+ const result = await apiClient.content.write(writeParams, writeBody);
97
118
  if (!result.ok)
98
- throw new Error(`Save failed: ${result.status}`);
119
+ throw new SaveApiError(result.status);
120
+ // Update stored version token from write response
121
+ if (entry.contentId && typeof result.data?.version === 'number') {
122
+ entryVersionsRef.current.set(entry.contentId, result.data.version);
123
+ }
99
124
  return normalizeContentPayload(result.data);
100
125
  };
101
126
  const refreshEntries = async (branch = options.branchName) => {
@@ -247,6 +272,8 @@ export function useEntryManager(options) {
247
272
  }
248
273
  else {
249
274
  setSelectedPath('');
275
+ // Clear stale OCC version tokens — mtimes differ per branch
276
+ entryVersionsRef.current.clear();
250
277
  }
251
278
  // Refresh entries for new branch
252
279
  options.setBusy(true);