canopycms 0.0.32 → 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.
Files changed (124) hide show
  1. package/dist/api/__test__/mock-client.d.ts.map +1 -1
  2. package/dist/api/__test__/mock-client.js.map +1 -1
  3. package/dist/api/branch-review.d.ts +1 -10
  4. package/dist/api/branch-review.d.ts.map +1 -1
  5. package/dist/api/branch-review.js +4 -11
  6. package/dist/api/branch-review.js.map +1 -1
  7. package/dist/api/branch-status.d.ts +1 -7
  8. package/dist/api/branch-status.d.ts.map +1 -1
  9. package/dist/api/branch-status.js +1 -8
  10. package/dist/api/branch-status.js.map +1 -1
  11. package/dist/api/branch-withdraw.d.ts.map +1 -1
  12. package/dist/api/branch-withdraw.js +1 -5
  13. package/dist/api/branch-withdraw.js.map +1 -1
  14. package/dist/api/branch.d.ts +1 -11
  15. package/dist/api/branch.d.ts.map +1 -1
  16. package/dist/api/branch.js +1 -4
  17. package/dist/api/branch.js.map +1 -1
  18. package/dist/api/client.d.ts +1 -2
  19. package/dist/api/client.d.ts.map +1 -1
  20. package/dist/api/client.js +2 -2
  21. package/dist/api/client.js.map +1 -1
  22. package/dist/api/comments.d.ts.map +1 -1
  23. package/dist/api/comments.js +2 -5
  24. package/dist/api/comments.js.map +1 -1
  25. package/dist/api/content.d.ts +9 -0
  26. package/dist/api/content.d.ts.map +1 -1
  27. package/dist/api/content.js +20 -3
  28. package/dist/api/content.js.map +1 -1
  29. package/dist/api/groups.js +1 -1
  30. package/dist/api/groups.js.map +1 -1
  31. package/dist/api/permissions.js +1 -1
  32. package/dist/api/permissions.js.map +1 -1
  33. package/dist/api/reference-options.d.ts.map +1 -1
  34. package/dist/api/reference-options.js +12 -1
  35. package/dist/api/reference-options.js.map +1 -1
  36. package/dist/api/resolve-references.d.ts.map +1 -1
  37. package/dist/api/resolve-references.js +5 -0
  38. package/dist/api/resolve-references.js.map +1 -1
  39. package/dist/api/validators.d.ts +15 -0
  40. package/dist/api/validators.d.ts.map +1 -1
  41. package/dist/api/validators.js +7 -0
  42. package/dist/api/validators.js.map +1 -1
  43. package/dist/asset-store.d.ts.map +1 -1
  44. package/dist/asset-store.js +4 -3
  45. package/dist/asset-store.js.map +1 -1
  46. package/dist/branch-metadata.d.ts.map +1 -1
  47. package/dist/branch-metadata.js +13 -23
  48. package/dist/branch-metadata.js.map +1 -1
  49. package/dist/cli/generate-ai-content.js +144 -110
  50. package/dist/cli/init.d.ts.map +1 -1
  51. package/dist/cli/init.js +88 -48
  52. package/dist/cli/init.js.map +1 -1
  53. package/dist/content-store.d.ts +12 -0
  54. package/dist/content-store.d.ts.map +1 -1
  55. package/dist/content-store.js +160 -106
  56. package/dist/content-store.js.map +1 -1
  57. package/dist/editor/Editor.d.ts.map +1 -1
  58. package/dist/editor/Editor.js +3 -3
  59. package/dist/editor/Editor.js.map +1 -1
  60. package/dist/editor/FormRenderer.d.ts.map +1 -1
  61. package/dist/editor/FormRenderer.js +1 -0
  62. package/dist/editor/FormRenderer.js.map +1 -1
  63. package/dist/editor/fields/BlockField.d.ts.map +1 -1
  64. package/dist/editor/fields/BlockField.js +1 -0
  65. package/dist/editor/fields/BlockField.js.map +1 -1
  66. package/dist/editor/fields/MarkdownField.d.ts.map +1 -1
  67. package/dist/editor/fields/MarkdownField.js +1 -0
  68. package/dist/editor/fields/MarkdownField.js.map +1 -1
  69. package/dist/editor/fields/ReferenceField.d.ts.map +1 -1
  70. package/dist/editor/fields/ReferenceField.js +1 -0
  71. package/dist/editor/fields/ReferenceField.js.map +1 -1
  72. package/dist/editor/fields/entry-link/EntryLinkContext.d.ts +0 -6
  73. package/dist/editor/fields/entry-link/EntryLinkContext.d.ts.map +1 -1
  74. package/dist/editor/fields/entry-link/EntryLinkContext.js +1 -0
  75. package/dist/editor/fields/entry-link/EntryLinkContext.js.map +1 -1
  76. package/dist/editor/fields/entry-link/InsertEntryLink.d.ts.map +1 -1
  77. package/dist/editor/fields/entry-link/InsertEntryLink.js +1 -0
  78. package/dist/editor/fields/entry-link/InsertEntryLink.js.map +1 -1
  79. package/dist/editor/hooks/useBranchActions.d.ts +2 -2
  80. package/dist/editor/hooks/useBranchActions.d.ts.map +1 -1
  81. package/dist/editor/hooks/useBranchActions.js +2 -2
  82. package/dist/editor/hooks/useBranchActions.js.map +1 -1
  83. package/dist/editor/hooks/useBranchManager.d.ts.map +1 -1
  84. package/dist/editor/hooks/useBranchManager.js +2 -1
  85. package/dist/editor/hooks/useBranchManager.js.map +1 -1
  86. package/dist/editor/hooks/useDraftManager.d.ts +1 -0
  87. package/dist/editor/hooks/useDraftManager.d.ts.map +1 -1
  88. package/dist/editor/hooks/useDraftManager.js +31 -4
  89. package/dist/editor/hooks/useDraftManager.js.map +1 -1
  90. package/dist/editor/hooks/useEntryManager.d.ts +5 -0
  91. package/dist/editor/hooks/useEntryManager.d.ts.map +1 -1
  92. package/dist/editor/hooks/useEntryManager.js +29 -2
  93. package/dist/editor/hooks/useEntryManager.js.map +1 -1
  94. package/dist/editor/hooks/useUserContext.d.ts.map +1 -1
  95. package/dist/editor/hooks/useUserContext.js +1 -0
  96. package/dist/editor/hooks/useUserContext.js.map +1 -1
  97. package/dist/schema/meta-loader.d.ts.map +1 -1
  98. package/dist/schema/meta-loader.js +2 -0
  99. package/dist/schema/meta-loader.js.map +1 -1
  100. package/dist/schema/schema-store.d.ts.map +1 -1
  101. package/dist/schema/schema-store.js +3 -2
  102. package/dist/schema/schema-store.js.map +1 -1
  103. package/dist/task-queue/task-queue.d.ts.map +1 -1
  104. package/dist/task-queue/task-queue.js +23 -21
  105. package/dist/task-queue/task-queue.js.map +1 -1
  106. package/dist/utils/async-mutex.d.ts +2 -0
  107. package/dist/utils/async-mutex.d.ts.map +1 -0
  108. package/dist/utils/async-mutex.js +28 -0
  109. package/dist/utils/async-mutex.js.map +1 -0
  110. package/dist/utils/atomic-write.d.ts +2 -2
  111. package/dist/utils/atomic-write.d.ts.map +1 -1
  112. package/dist/utils/atomic-write.js +2 -2
  113. package/dist/utils/atomic-write.js.map +1 -1
  114. package/dist/validation/deletion-checker.d.ts.map +1 -1
  115. package/dist/validation/deletion-checker.js +13 -17
  116. package/dist/validation/deletion-checker.js.map +1 -1
  117. package/dist/validation/field-traversal.d.ts.map +1 -1
  118. package/dist/validation/field-traversal.js +12 -2
  119. package/dist/validation/field-traversal.js.map +1 -1
  120. package/package.json +1 -1
  121. package/dist/settings-branch-utils.d.ts +0 -21
  122. package/dist/settings-branch-utils.d.ts.map +0 -1
  123. package/dist/settings-branch-utils.js +0 -33
  124. package/dist/settings-branch-utils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"content-store.d.ts","sourceRoot":"","sources":["../src/content-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-store.d.ts","sourceRoot":"","sources":["../src/content-store.ts"],"names":[],"mappings":"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"}
@@ -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":"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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"}
@@ -90,7 +90,7 @@ export const Editor = ({ entries, title, subtitle, siteTitle = title, siteSubtit
90
90
  // Use collections from API (falls back to props if not loaded yet)
91
91
  const activeCollections = collectionsFromApi.length > 0 ? collectionsFromApi : collections;
92
92
  // 3. Draft manager (depends on branchNameState, selectedPath from useEntryManager)
93
- const { drafts, setDrafts, setLoadedValues, effectiveValue, modifiedCount, editedFiles, handleSave, handleDiscardDrafts, handleDiscardFileDraft, handleReload, isSelectedDirty, } = useDraftManager({
93
+ const { drafts, setDrafts, setLoadedValues, effectiveValue, modifiedCount, editedFiles, handleSave, handleDiscardDrafts, handleDiscardFileDraft, handleReload, isSelectedDirty, isAnyDirty, } = useDraftManager({
94
94
  branchName: branchNameState,
95
95
  selectedPath,
96
96
  currentEntry,
@@ -100,11 +100,11 @@ export const Editor = ({ entries, title, subtitle, siteTitle = title, siteSubtit
100
100
  saveEntry,
101
101
  setBusy: setEntriesLoading,
102
102
  });
103
- // 4. Branch actions (depends on isSelectedDirty, setBranchName)
103
+ // 4. Branch actions (depends on isAnyDirty, setBranchName)
104
104
  const { handleBranchChange, handleCreateBranch } = useBranchActions({
105
105
  branchName: branchNameState,
106
106
  setBranchName,
107
- isSelectedDirty,
107
+ isAnyDirty,
108
108
  onReloadBranches: () => loadBranches(),
109
109
  });
110
110
  // 5. Comment system (depends on branchNameState)