@se-studio/contentful-cms 2.6.1 → 2.7.0

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 (96) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/commands/asset.d.ts.map +1 -1
  3. package/dist/commands/asset.js +9 -5
  4. package/dist/commands/asset.js.map +1 -1
  5. package/dist/commands/create-from-json.d.ts.map +1 -1
  6. package/dist/commands/create-from-json.js +11 -0
  7. package/dist/commands/create-from-json.js.map +1 -1
  8. package/dist/commands/create-taxonomy.d.ts.map +1 -1
  9. package/dist/commands/create-taxonomy.js +5 -3
  10. package/dist/commands/create-taxonomy.js.map +1 -1
  11. package/dist/commands/create.d.ts.map +1 -1
  12. package/dist/commands/create.js +13 -3
  13. package/dist/commands/create.js.map +1 -1
  14. package/dist/commands/nav.d.ts.map +1 -1
  15. package/dist/commands/nav.js +14 -0
  16. package/dist/commands/nav.js.map +1 -1
  17. package/dist/commands/save.d.ts.map +1 -1
  18. package/dist/commands/save.js +13 -0
  19. package/dist/commands/save.js.map +1 -1
  20. package/dist/generated/hosted-guide.d.ts +1 -1
  21. package/dist/generated/hosted-guide.d.ts.map +1 -1
  22. package/dist/generated/hosted-guide.js +1 -1
  23. package/dist/generated/hosted-guide.js.map +1 -1
  24. package/dist/generated/version.d.ts +1 -1
  25. package/dist/generated/version.js +1 -1
  26. package/dist/hosted/index.d.ts +1 -0
  27. package/dist/hosted/index.d.ts.map +1 -1
  28. package/dist/hosted/index.js +1 -0
  29. package/dist/hosted/index.js.map +1 -1
  30. package/dist/hosted/next/redis.d.ts.map +1 -1
  31. package/dist/hosted/next/redis.js +11 -3
  32. package/dist/hosted/next/redis.js.map +1 -1
  33. package/dist/hosted/next/routes/mcp.d.ts.map +1 -1
  34. package/dist/hosted/next/routes/mcp.js +2 -1
  35. package/dist/hosted/next/routes/mcp.js.map +1 -1
  36. package/dist/index/blob.d.ts +5 -0
  37. package/dist/index/blob.d.ts.map +1 -0
  38. package/dist/index/blob.js +15 -0
  39. package/dist/index/blob.js.map +1 -0
  40. package/dist/index/cache-keys.d.ts +9 -0
  41. package/dist/index/cache-keys.d.ts.map +1 -0
  42. package/dist/index/cache-keys.js +13 -0
  43. package/dist/index/cache-keys.js.map +1 -0
  44. package/dist/index/cache-store.d.ts +31 -0
  45. package/dist/index/cache-store.d.ts.map +1 -0
  46. package/dist/index/cache-store.js +17 -0
  47. package/dist/index/cache-store.js.map +1 -0
  48. package/dist/index/distributed-sync-lock.d.ts +3 -0
  49. package/dist/index/distributed-sync-lock.d.ts.map +1 -0
  50. package/dist/index/distributed-sync-lock.js +22 -0
  51. package/dist/index/distributed-sync-lock.js.map +1 -0
  52. package/dist/index/file-index-cache.d.ts +16 -0
  53. package/dist/index/file-index-cache.d.ts.map +1 -0
  54. package/dist/index/file-index-cache.js +103 -0
  55. package/dist/index/file-index-cache.js.map +1 -0
  56. package/dist/index/hydrate.d.ts +4 -0
  57. package/dist/index/hydrate.d.ts.map +1 -0
  58. package/dist/index/hydrate.js +24 -0
  59. package/dist/index/hydrate.js.map +1 -0
  60. package/dist/index/invalidate.d.ts +24 -0
  61. package/dist/index/invalidate.d.ts.map +1 -0
  62. package/dist/index/invalidate.js +60 -0
  63. package/dist/index/invalidate.js.map +1 -0
  64. package/dist/index/patch-index.d.ts +12 -0
  65. package/dist/index/patch-index.d.ts.map +1 -0
  66. package/dist/index/patch-index.js +40 -0
  67. package/dist/index/patch-index.js.map +1 -0
  68. package/dist/index/publish-cache.d.ts +5 -0
  69. package/dist/index/publish-cache.d.ts.map +1 -0
  70. package/dist/index/publish-cache.js +26 -0
  71. package/dist/index/publish-cache.js.map +1 -0
  72. package/dist/index/redis-index-cache.d.ts +24 -0
  73. package/dist/index/redis-index-cache.d.ts.map +1 -0
  74. package/dist/index/redis-index-cache.js +83 -0
  75. package/dist/index/redis-index-cache.js.map +1 -0
  76. package/dist/index/require.d.ts +5 -4
  77. package/dist/index/require.d.ts.map +1 -1
  78. package/dist/index/require.js +17 -6
  79. package/dist/index/require.js.map +1 -1
  80. package/dist/index/run-sync.d.ts +2 -0
  81. package/dist/index/run-sync.d.ts.map +1 -1
  82. package/dist/index/run-sync.js +16 -9
  83. package/dist/index/run-sync.js.map +1 -1
  84. package/dist/index/sync.d.ts +9 -1
  85. package/dist/index/sync.d.ts.map +1 -1
  86. package/dist/index/sync.js +53 -0
  87. package/dist/index/sync.js.map +1 -1
  88. package/dist/runtime/context.d.ts +3 -0
  89. package/dist/runtime/context.d.ts.map +1 -1
  90. package/dist/runtime/context.js.map +1 -1
  91. package/dist/session/session-store.d.ts +2 -1
  92. package/dist/session/session-store.d.ts.map +1 -1
  93. package/docs/help/index-sync.md +9 -3
  94. package/docs/mcp/e2e-test-prompt.md +1 -1
  95. package/docs/mcp/hosted-guide.md +2 -0
  96. package/package.json +1 -1
@@ -1,21 +1,24 @@
1
1
  import { fetchCdaIndexPayload } from '../contentful/cda-sync.js';
2
2
  import { DEFAULT_DELIVERY_KEY_NAME, resolveDeliveryAccessToken, } from '../contentful/delivery-token.js';
3
3
  import { warnMsg } from '../output/print.js';
4
+ import { withDistributedIndexSyncLock } from './distributed-sync-lock.js';
4
5
  import { resolveIndexPreview } from './mode.js';
5
6
  import { ensureIndexDirectory, getIndexDbPath } from './paths.js';
7
+ import { publishIndexCache } from './publish-cache.js';
6
8
  import { getIndexSyncedAt } from './query.js';
7
- import { getIndexSyncReason, mergeIndexFromPayload, rebuildIndexFromPayload, } from './sync.js';
8
- import { withIndexSyncLock } from './sync-lock.js';
9
+ import { getIndexSyncReason, indexSyncModeForReason, mergeIndexFromPayload, rebuildIndexFromPayload, resolveIndexSyncReason, } from './sync.js';
9
10
  import { indexSyncVerbose, isIndexSyncVerbose } from './sync-log.js';
10
- function resolveSyncMode(space, preview, requested) {
11
+ async function resolveSyncMode(space, preview, requested) {
11
12
  if (requested === 'full')
12
13
  return 'full';
13
14
  if (requested === 'incremental')
14
15
  return 'incremental';
15
- const reason = getIndexSyncReason(space, preview);
16
- if (reason === 'stale')
17
- return 'incremental';
18
- return 'full';
16
+ const reason = await resolveIndexSyncReason(space, preview);
17
+ const fromReason = indexSyncModeForReason(reason);
18
+ if (fromReason)
19
+ return fromReason;
20
+ const legacyReason = getIndexSyncReason(space, preview);
21
+ return indexSyncModeForReason(legacyReason) ?? 'full';
19
22
  }
20
23
  /**
21
24
  * Fetches CDA/CPA payload and rebuilds or merges into the local SQLite index.
@@ -24,9 +27,10 @@ export async function runContentIndexSync(space, opts = {}) {
24
27
  const preview = resolveIndexPreview(opts.preview);
25
28
  ensureIndexDirectory(space, preview);
26
29
  const dbPath = getIndexDbPath(space, preview);
27
- const mode = resolveSyncMode(space, preview, opts.mode);
30
+ const mode = await resolveSyncMode(space, preview, opts.mode);
28
31
  const verbose = opts.verbose === true || isIndexSyncVerbose();
29
- return withIndexSyncLock(dbPath, async () => {
32
+ const publishCache = opts.publishCache !== false;
33
+ return withDistributedIndexSyncLock(space, preview, dbPath, async () => {
30
34
  if (verbose) {
31
35
  indexSyncVerbose(`Starting ${mode} sync → ${dbPath}${preview ? ' (preview/draft)' : ' (published)'}`);
32
36
  }
@@ -63,6 +67,9 @@ export async function runContentIndexSync(space, opts = {}) {
63
67
  indexSyncVerbose(`Done (${result.syncMode}): ${String(result.assetCount)} assets, ` +
64
68
  `${String(result.mediaCount)} media, ${String(result.referenceCount)} catalog in index`);
65
69
  }
70
+ if (publishCache) {
71
+ await publishIndexCache(space, preview, result);
72
+ }
66
73
  return result;
67
74
  });
68
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-sync.js","sourceRoot":"","sources":["../../src/index/run-sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,GAExB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAiBrE,SAAS,eAAe,CACtB,KAAkB,EAClB,OAAgB,EAChB,SAAyB;IAEzB,IAAI,SAAS,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,SAAS,KAAK,aAAa;QAAE,OAAO,aAAa,CAAC;IAEtD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,aAAa,CAAC;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAkB,EAClB,OAAmC,EAAE;IAErC,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAExD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,kBAAkB,EAAE,CAAC;IAE9D,OAAO,iBAAiB,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,gBAAgB,CACd,YAAY,IAAI,WAAW,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,EAAE,CACpF,CAAC;QACJ,CAAC;QAED,IAAI,OAAO;YAAE,gBAAgB,CAAC,6BAA6B,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACtE,IAAI,OAAO,EAAE,CAAC;YACZ,gBAAgB,CACd,iBAAiB,QAAQ,CAAC,MAAM,EAAE;gBAChC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC9D,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAC/D,OAAO,CACL,qCAAqC,yBAAyB,mBAAmB;gBAC/E,qFAAqF,CACxF,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAChB,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE;YAC/E,YAAY;YACZ,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,CAAC;YACZ,gBAAgB,CACd,mBAAmB,IAAI,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW;gBACnE,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAC7F,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,OAAO;YACP,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,OAAO;SACR,CAAC;QAEF,MAAM,MAAM,GACV,IAAI,KAAK,aAAa,IAAI,YAAY;YACpC,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC;YAC3C,CAAC,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAElD,IAAI,OAAO,EAAE,CAAC;YACZ,gBAAgB,CACd,SAAS,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW;gBAChE,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAC1F,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"run-sync.js","sourceRoot":"","sources":["../../src/index/run-sync.ts"],"names":[],"mappings":"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"}
@@ -15,16 +15,24 @@ export interface SyncIndexResult {
15
15
  /** `full` replaced all rows; `incremental` merged updates since last sync. */
16
16
  syncMode: 'full' | 'incremental';
17
17
  }
18
- export type IndexSyncReason = 'missing' | 'schema' | 'stale' | 'current';
18
+ export type IndexSyncReason = 'missing' | 'schema' | 'stale' | 'invalidated-full' | 'invalidated-incremental' | 'current';
19
+ export type IndexSyncMode = 'full' | 'incremental';
20
+ export declare function indexSyncModeForReason(reason: IndexSyncReason): IndexSyncMode | null;
19
21
  export declare function rebuildIndexFromPayload(space: SpaceConfig, options: SyncIndexOptions): SyncIndexResult;
20
22
  /** Merges CDA rows into an existing index (upsert). Used for stale refresh with same schema. */
21
23
  export declare function mergeIndexFromPayload(space: SpaceConfig, options: SyncIndexOptions): SyncIndexResult;
22
24
  /** Upsert a single asset row after CMA upload (optional dedup freshness). */
23
25
  export declare function upsertAssetRow(space: SpaceConfig, asset: CdaAssetRecord, preview?: boolean): void;
26
+ /** Removes a catalog row after a committed delete. */
27
+ export declare function deleteReferenceRow(space: SpaceConfig, entryId: string, preview?: boolean): void;
28
+ /** Removes an asset row after a committed delete. */
29
+ export declare function deleteAssetRow(space: SpaceConfig, assetId: string, preview?: boolean): void;
24
30
  /** Upsert a single reference row after taxonomy/template create. */
25
31
  export declare function upsertReferenceRow(space: SpaceConfig, reference: CdaReferenceRecord, preview?: boolean): void;
26
32
  export declare function getStoredSchemaVersion(space: SpaceConfig, preview?: boolean): number | null;
27
33
  export declare function getIndexSyncReason(space: SpaceConfig, preview?: boolean): IndexSyncReason;
34
+ /** Resolves sync reason including shared invalidation markers (Redis or file). */
35
+ export declare function resolveIndexSyncReason(space: SpaceConfig, preview?: boolean): Promise<IndexSyncReason>;
28
36
  /** True when the index must be synced (missing, schema mismatch, or older than 24h). */
29
37
  export declare function indexNeedsRebuild(space: SpaceConfig, preview?: boolean): boolean;
30
38
  export declare function readIndexStatus(space: SpaceConfig, preview?: boolean): {
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/index/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EAEd,kBAAkB,EAClB,cAAc,EACf,MAAM,2BAA2B,CAAC;AAOnC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;CAClC;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAmIzE,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,gBAAgB,GACxB,eAAe,CA4BjB;AAED,gGAAgG;AAChG,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,gBAAgB,GACxB,eAAe,CAyBjB;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAC5B,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,OAA+B,GACvC,IAAI,CA6BN;AASD,oEAAoE;AACpE,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,kBAAkB,EAC7B,OAAO,GAAE,OAA+B,GACvC,IAAI,CAQN;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAU3F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,eAAe,CAWzF;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAEhF;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,OAAO,GAChB;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;CAChB,CAoCA;AAED,eAAO,MAAM,cAAc,QAAsB,CAAC;AAElD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,OAAO,CAI3E"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/index/sync.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,24 @@
1
1
  import { hashDeliveryToken } from '../contentful/delivery-token.js';
2
+ import { indexCacheKeyFromSpace } from './cache-keys.js';
3
+ import { getIndexCacheStore } from './cache-store.js';
2
4
  import { getMeta, openIndexDatabase, setMeta } from './db.js';
3
5
  import { DEFAULT_INDEX_PREVIEW, resolveIndexPreview } from './mode.js';
4
6
  import { ensureIndexDirectory, getIndexDbPath, indexExists } from './paths.js';
7
+ import { getIndexSyncedAt } from './query.js';
5
8
  import { SCHEMA_VERSION } from './schema.js';
9
+ export function indexSyncModeForReason(reason) {
10
+ switch (reason) {
11
+ case 'missing':
12
+ case 'schema':
13
+ case 'invalidated-full':
14
+ return 'full';
15
+ case 'stale':
16
+ case 'invalidated-incremental':
17
+ return 'incremental';
18
+ case 'current':
19
+ return null;
20
+ }
21
+ }
6
22
  function clearTables(db) {
7
23
  db.exec('DELETE FROM assets; DELETE FROM media; DELETE FROM reference_entries;');
8
24
  }
@@ -157,6 +173,26 @@ function refreshReferenceCountMeta(db) {
157
173
  const row = db.prepare(`SELECT COUNT(*) AS count FROM reference_entries`).get();
158
174
  setMeta(db, 'referenceCount', String(row.count));
159
175
  }
176
+ /** Removes a catalog row after a committed delete. */
177
+ export function deleteReferenceRow(space, entryId, preview = DEFAULT_INDEX_PREVIEW) {
178
+ const dbPath = getIndexDbPath(space, preview);
179
+ if (!indexExists(space, preview))
180
+ return;
181
+ const db = openIndexDatabase(dbPath);
182
+ db.prepare('DELETE FROM reference_entries WHERE id = ?').run(entryId);
183
+ refreshReferenceCountMeta(db);
184
+ db.close();
185
+ }
186
+ /** Removes an asset row after a committed delete. */
187
+ export function deleteAssetRow(space, assetId, preview = DEFAULT_INDEX_PREVIEW) {
188
+ const dbPath = getIndexDbPath(space, preview);
189
+ if (!indexExists(space, preview))
190
+ return;
191
+ const db = openIndexDatabase(dbPath);
192
+ db.prepare('DELETE FROM assets WHERE id = ?').run(assetId);
193
+ db.prepare('DELETE FROM media WHERE assetId = ?').run(assetId);
194
+ db.close();
195
+ }
160
196
  /** Upsert a single reference row after taxonomy/template create. */
161
197
  export function upsertReferenceRow(space, reference, preview = DEFAULT_INDEX_PREVIEW) {
162
198
  const dbPath = getIndexDbPath(space, preview);
@@ -191,6 +227,23 @@ export function getIndexSyncReason(space, preview) {
191
227
  return 'stale';
192
228
  return 'current';
193
229
  }
230
+ /** Resolves sync reason including shared invalidation markers (Redis or file). */
231
+ export async function resolveIndexSyncReason(space, preview) {
232
+ const base = getIndexSyncReason(space, preview);
233
+ if (base !== 'current')
234
+ return base;
235
+ const usePreview = resolveIndexPreview(preview);
236
+ const inv = await getIndexCacheStore().getInvalidation(indexCacheKeyFromSpace(space, usePreview));
237
+ if (!inv)
238
+ return 'current';
239
+ const syncedAt = getIndexSyncedAt(space, usePreview);
240
+ if (!syncedAt)
241
+ return 'current';
242
+ if (Date.parse(inv.invalidatedAt) > Date.parse(syncedAt)) {
243
+ return inv.mode === 'full' ? 'invalidated-full' : 'invalidated-incremental';
244
+ }
245
+ return 'current';
246
+ }
194
247
  /** True when the index must be synced (missing, schema mismatch, or older than 24h). */
195
248
  export function indexNeedsRebuild(space, preview) {
196
249
  return getIndexSyncReason(space, preview) !== 'current';
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/index/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/index/sync.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { AsyncLocalStorage } from 'node:async_hooks';
2
2
  import type { CmsEditConfig } from '../config/types.js';
3
+ import type { IndexCacheStore } from '../index/cache-store.js';
3
4
  import type { SessionStore } from '../session/session-store.js';
4
5
  export interface ContentfulUserIdentity {
5
6
  userId: string;
@@ -10,6 +11,8 @@ export interface CmsEditRuntimeContext {
10
11
  config?: CmsEditConfig;
11
12
  /** Session persistence backend (filesystem default when omitted). */
12
13
  sessionStore?: SessionStore;
14
+ /** Shared content index cache (Redis on hosted; file fallback locally). */
15
+ indexCacheStore?: IndexCacheStore;
13
16
  /** Contentful user for session key isolation in hosted mode. */
14
17
  user?: ContentfulUserIdentity;
15
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,qEAAqE;IACrE,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gEAAgE;IAChE,IAAI,CAAC,EAAE,sBAAsB,CAAC;CAC/B;AAED,eAAO,MAAM,cAAc,0CAAiD,CAAC;AAE7E,wBAAgB,iBAAiB,IAAI,qBAAqB,GAAG,SAAS,CAErE;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,OAAO,EAAE,qBAAqB,EAC9B,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEhB"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,qEAAqE;IACrE,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,gEAAgE;IAChE,IAAI,CAAC,EAAE,sBAAsB,CAAC;CAC/B;AAED,eAAO,MAAM,cAAc,0CAAiD,CAAC;AAE7E,wBAAgB,iBAAiB,IAAI,qBAAqB,GAAG,SAAS,CAErE;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,OAAO,EAAE,qBAAqB,EAC9B,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAkBrD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,iBAAiB,EAAyB,CAAC;AAE7E,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAA8B,EAC9B,EAAwB;IAExB,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAqBrD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,iBAAiB,EAAyB,CAAC;AAE7E,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAA8B,EAC9B,EAAwB;IAExB,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC"}
@@ -10,7 +10,8 @@ export interface RedisClient {
10
10
  get(key: string): Promise<unknown>;
11
11
  set(key: string, value: string, options?: {
12
12
  ex?: number;
13
- }): Promise<void>;
13
+ nx?: boolean;
14
+ }): Promise<boolean | void>;
14
15
  del(key: string): Promise<void>;
15
16
  keys(pattern: string): Promise<string[]>;
16
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/session/session-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,IAAI,CACF,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,uFAAuF;IACvF,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC1C;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAIR;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAElE"}
1
+ {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/session/session-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,IAAI,CACF,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,uFAAuF;IACvF,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAClG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC1C;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAIR;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAElE"}
@@ -82,16 +82,22 @@ Commands that depend on the index call **`ensureContentIndex`** internally. You
82
82
 
83
83
  | Condition | Auto-sync behaviour |
84
84
  |-----------|---------------------|
85
- | Index missing | **Full** rebuild |
85
+ | Index missing | **Hydrate** from shared cache blob if valid, else **full** rebuild |
86
86
  | Schema version outdated (e.g. v2 → v3) | **Full** rebuild |
87
+ | Committed write invalidated index (incremental) | **Incremental** upsert on next index command |
88
+ | Committed write invalidated index (full — slug change or catalog delete) | **Full** rebuild on next index command |
87
89
  | Last sync older than **24 hours** | **Incremental** upsert (`sys.updatedAt[gte]` last `syncedAt`) |
88
90
  | Index fresh | No sync |
89
91
 
90
92
  Manual `cms-edit index sync` always performs a **full** rebuild.
91
93
 
92
- **Incremental limitations:** Only rows changed since the last sync are fetched. Entries deleted in Contentful may remain in the index until the next full `index sync`. Duplicate slug/label/cmsLabel rows in the index cause lookup commands to fail with an explicit error (fix in Contentful, then full sync).
94
+ **Invalidation (lazy, no thrashing):** `save`, `create page|article|…`, `asset upload`, and similar **committed** writes mark the index dirty (Redis on hosted MCP; `invalidation.json` locally). They do **not** sync immediately. The next `list`, `open`, `asset search`, etc. refreshes the index. In-session `set` / `rtf` edits do **not** invalidate.
93
95
 
94
- **Single writer:** Only one cms-edit process syncs a given database at a time (file lock beside `media.db`). If another sync is in progress, the command **fails immediately** (exit code 1) with the lock path and holder pid/start time. Stale locks (>30 min or dead pid) are removed automatically.
96
+ **Shared cache (hosted MCP):** After sync, the SQLite file is gzipped into Redis (~sub-MB for typical spaces). Cold serverless instances restore from Redis instead of re-fetching all assets from the Preview API.
97
+
98
+ **Incremental limitations:** Only rows changed since the last sync are fetched. Entries deleted in Contentful may remain in the index until the next **full** invalidation/sync. Duplicate slug/label/cmsLabel rows in the index cause lookup commands to fail with an explicit error (fix in Contentful, then full sync).
99
+
100
+ **Single writer:** File lock beside `media.db` plus a shared Redis lock on hosted MCP. If another sync is in progress, the command **fails immediately** (exit code 1). Stale file locks (>30 min or dead pid) are removed automatically.
95
101
 
96
102
  ## Preview / delivery API token
97
103
 
@@ -67,7 +67,7 @@ Every E2E prompt should cover these phases (trim for smoke tests):
67
67
  |-------|---------|-------------------|
68
68
  | **0** Connector | version, health, guide, help | Expected version range |
69
69
  | **1** Customer resources | tasks-index, capabilities, routing, indexes | Confirm routing bullets |
70
- | **2** Discovery | index status, list, resolve, search | Article/tag types if enabled |
70
+ | **2** Discovery | index status, list, resolve, search | `index status` may show not built on a cold hosted instance before any sync; re-check after `list` or `open`. Article/tag types if enabled |
71
71
  | **3** Peek | Tree without session | Fallback slug if `/about` missing |
72
72
  | **4** Session | open → snapshot → read → diff | Homepage slug from routing |
73
73
  | **5** Schema | `schema colours`, `schema types`, `schema fields` | Any site-specific content types |
@@ -274,6 +274,8 @@ Then open: `["peek", "--article-slug", "<slug>"]` or `["open", "--id", "<entry-i
274
274
 
275
275
  After upgrading cms-edit, run `["index", "sync"]` once so the local index includes article `date` values (schema v4).
276
276
 
277
+ **Index freshness on hosted MCP:** The catalog index is shared via Redis (gzipped SQLite blob). `index status` on a cold instance may show **not built** until `list`, `open`, or another index command runs — that is normal. Committed writes (`save`, `create page`, `asset upload`, …) mark the index dirty; the next discovery command refreshes it. In-session `set` edits do not trigger a sync.
278
+
277
279
  ## Command reference (cms_edit args)
278
280
 
279
281
  **Discovery:** `list --type <type>`, `search <query>`, `schema <contentType>`, `index sync`, `index status`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/contentful-cms",
3
- "version": "2.6.1",
3
+ "version": "2.7.0",
4
4
  "description": "CLI tool for AI agents to read and edit Contentful draft content without publish permissions",
5
5
  "repository": {
6
6
  "type": "git",