canopycms 0.0.56 → 0.0.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/json-to-markdown.js +74 -3
- package/dist/ai/json-to-markdown.js.map +1 -1
- package/dist/api/__test__/mock-client.d.ts +9 -5
- package/dist/api/__test__/mock-client.d.ts.map +1 -1
- package/dist/api/__test__/mock-client.js +15 -7
- package/dist/api/__test__/mock-client.js.map +1 -1
- package/dist/api/assets.d.ts +100 -36
- package/dist/api/assets.d.ts.map +1 -1
- package/dist/api/assets.js +338 -51
- package/dist/api/assets.js.map +1 -1
- package/dist/api/branch.d.ts +6 -0
- package/dist/api/branch.d.ts.map +1 -1
- package/dist/api/branch.js +63 -19
- package/dist/api/branch.js.map +1 -1
- package/dist/api/client.d.ts +16 -5
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +24 -6
- package/dist/api/client.js.map +1 -1
- package/dist/api/content.d.ts +2 -2
- package/dist/api/entries.d.ts +4 -4
- package/dist/api/entries.d.ts.map +1 -1
- package/dist/api/entries.js +10 -2
- package/dist/api/entries.js.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/route-builder.d.ts +9 -0
- package/dist/api/route-builder.d.ts.map +1 -1
- package/dist/api/route-builder.js +1 -0
- package/dist/api/route-builder.js.map +1 -1
- package/dist/api/schema.d.ts +4 -4
- package/dist/api/types.d.ts +11 -1
- package/dist/api/types.d.ts.map +1 -1
- package/dist/assets/asset-prefixes.d.ts +31 -0
- package/dist/assets/asset-prefixes.d.ts.map +1 -0
- package/dist/assets/asset-prefixes.js +20 -0
- package/dist/assets/asset-prefixes.js.map +1 -0
- package/dist/assets/asset-src.d.ts +23 -0
- package/dist/assets/asset-src.d.ts.map +1 -0
- package/dist/assets/asset-src.js +28 -0
- package/dist/assets/asset-src.js.map +1 -0
- package/dist/assets/asset-url.d.ts +35 -0
- package/dist/assets/asset-url.d.ts.map +1 -0
- package/dist/assets/asset-url.js +77 -0
- package/dist/assets/asset-url.js.map +1 -0
- package/dist/assets/factory.d.ts +18 -0
- package/dist/assets/factory.d.ts.map +1 -0
- package/dist/assets/factory.js +42 -0
- package/dist/assets/factory.js.map +1 -0
- package/dist/assets/finalize.d.ts +36 -0
- package/dist/assets/finalize.d.ts.map +1 -0
- package/dist/assets/finalize.js +72 -0
- package/dist/assets/finalize.js.map +1 -0
- package/dist/assets/index.d.ts +20 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/assets/index.js +19 -0
- package/dist/assets/index.js.map +1 -0
- package/dist/assets/keys.d.ts +56 -0
- package/dist/assets/keys.d.ts.map +1 -0
- package/dist/assets/keys.js +88 -0
- package/dist/assets/keys.js.map +1 -0
- package/dist/assets/pipeline.d.ts +50 -0
- package/dist/assets/pipeline.d.ts.map +1 -0
- package/dist/assets/pipeline.js +202 -0
- package/dist/assets/pipeline.js.map +1 -0
- package/dist/assets/store-local.d.ts +84 -0
- package/dist/assets/store-local.d.ts.map +1 -0
- package/dist/assets/store-local.js +254 -0
- package/dist/assets/store-local.js.map +1 -0
- package/dist/assets/store-s3.d.ts +71 -0
- package/dist/assets/store-s3.d.ts.map +1 -0
- package/dist/assets/store-s3.js +183 -0
- package/dist/assets/store-s3.js.map +1 -0
- package/dist/assets/svg-sanitizer.d.ts +37 -0
- package/dist/assets/svg-sanitizer.d.ts.map +1 -0
- package/dist/assets/svg-sanitizer.js +222 -0
- package/dist/assets/svg-sanitizer.js.map +1 -0
- package/dist/assets/transform-directives.d.ts +97 -0
- package/dist/assets/transform-directives.d.ts.map +1 -0
- package/dist/assets/transform-directives.js +267 -0
- package/dist/assets/transform-directives.js.map +1 -0
- package/dist/assets/transform.d.ts +51 -0
- package/dist/assets/transform.d.ts.map +1 -0
- package/dist/assets/transform.js +190 -0
- package/dist/assets/transform.js.map +1 -0
- package/dist/assets/types.d.ts +82 -0
- package/dist/assets/types.d.ts.map +1 -0
- package/dist/assets/types.js +10 -0
- package/dist/assets/types.js.map +1 -0
- package/dist/authorization/groups/schema.d.ts +2 -2
- package/dist/authorization/permissions/schema.d.ts +2 -2
- package/dist/branch-metadata.d.ts +71 -6
- package/dist/branch-metadata.d.ts.map +1 -1
- package/dist/branch-metadata.js +132 -116
- package/dist/branch-metadata.js.map +1 -1
- package/dist/branch-registry.d.ts +78 -9
- package/dist/branch-registry.d.ts.map +1 -1
- package/dist/branch-registry.js +155 -29
- package/dist/branch-registry.js.map +1 -1
- package/dist/branch-schema-cache.d.ts +126 -11
- package/dist/branch-schema-cache.d.ts.map +1 -1
- package/dist/branch-schema-cache.js +208 -58
- package/dist/branch-schema-cache.js.map +1 -1
- package/dist/cli/generate-ai-content.js +1993 -1506
- package/dist/cli/init.js +16 -4
- package/dist/cli/migrate.d.ts.map +1 -1
- package/dist/cli/migrate.js +25 -0
- package/dist/cli/migrate.js.map +1 -1
- package/dist/cli/sync.js +5 -5
- package/dist/cli/sync.js.map +1 -1
- package/dist/comment-store.d.ts +45 -15
- package/dist/comment-store.d.ts.map +1 -1
- package/dist/comment-store.js +80 -101
- package/dist/comment-store.js.map +1 -1
- package/dist/config/helpers.d.ts.map +1 -1
- package/dist/config/helpers.js +2 -1
- package/dist/config/helpers.js.map +1 -1
- package/dist/config/index.d.ts +2 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/schemas/config.d.ts +10 -0
- package/dist/config/schemas/config.d.ts.map +1 -1
- package/dist/config/schemas/field.d.ts +38 -3
- package/dist/config/schemas/field.d.ts.map +1 -1
- package/dist/config/schemas/field.js +18 -0
- package/dist/config/schemas/field.js.map +1 -1
- package/dist/config/schemas/media.d.ts +8 -0
- package/dist/config/schemas/media.d.ts.map +1 -1
- package/dist/config/schemas/media.js +9 -0
- package/dist/config/schemas/media.js.map +1 -1
- package/dist/config/types.d.ts +43 -3
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +4 -1
- package/dist/config/types.js.map +1 -1
- package/dist/content-index-generation.d.ts +40 -4
- package/dist/content-index-generation.d.ts.map +1 -1
- package/dist/content-index-generation.js +70 -73
- package/dist/content-index-generation.js.map +1 -1
- package/dist/content-store.d.ts +63 -0
- package/dist/content-store.d.ts.map +1 -1
- package/dist/content-store.js +421 -194
- package/dist/content-store.js.map +1 -1
- package/dist/editor/CanopyEditor.d.ts.map +1 -1
- package/dist/editor/CanopyEditor.js +1 -1
- package/dist/editor/CanopyEditor.js.map +1 -1
- package/dist/editor/Editor.d.ts +2 -0
- package/dist/editor/Editor.d.ts.map +1 -1
- package/dist/editor/Editor.js +82 -80
- package/dist/editor/Editor.js.map +1 -1
- package/dist/editor/FormRenderer.d.ts.map +1 -1
- package/dist/editor/FormRenderer.js +9 -0
- package/dist/editor/FormRenderer.js.map +1 -1
- package/dist/editor/components/EditorSidebar.d.ts +6 -1
- package/dist/editor/components/EditorSidebar.d.ts.map +1 -1
- package/dist/editor/components/EditorSidebar.js +4 -3
- package/dist/editor/components/EditorSidebar.js.map +1 -1
- package/dist/editor/context/AssetContext.d.ts +25 -0
- package/dist/editor/context/AssetContext.d.ts.map +1 -0
- package/dist/editor/context/AssetContext.js +26 -0
- package/dist/editor/context/AssetContext.js.map +1 -0
- package/dist/editor/context/index.d.ts +1 -0
- package/dist/editor/context/index.d.ts.map +1 -1
- package/dist/editor/context/index.js +1 -0
- package/dist/editor/context/index.js.map +1 -1
- package/dist/editor/fields/ImageField.d.ts +22 -0
- package/dist/editor/fields/ImageField.d.ts.map +1 -0
- package/dist/editor/fields/ImageField.js +100 -0
- package/dist/editor/fields/ImageField.js.map +1 -0
- package/dist/editor/fields/MarkdownField.d.ts.map +1 -1
- package/dist/editor/fields/MarkdownField.js +30 -4
- package/dist/editor/fields/MarkdownField.js.map +1 -1
- package/dist/editor/fields/MdxImageDialog.d.ts +16 -0
- package/dist/editor/fields/MdxImageDialog.d.ts.map +1 -0
- package/dist/editor/fields/MdxImageDialog.js +73 -0
- package/dist/editor/fields/MdxImageDialog.js.map +1 -0
- package/dist/editor/media/AssetCard.d.ts +21 -0
- package/dist/editor/media/AssetCard.d.ts.map +1 -0
- package/dist/editor/media/AssetCard.js +41 -0
- package/dist/editor/media/AssetCard.js.map +1 -0
- package/dist/editor/media/CropStep.d.ts +26 -0
- package/dist/editor/media/CropStep.d.ts.map +1 -0
- package/dist/editor/media/CropStep.js +38 -0
- package/dist/editor/media/CropStep.js.map +1 -0
- package/dist/editor/media/MediaLibrary.d.ts +22 -0
- package/dist/editor/media/MediaLibrary.d.ts.map +1 -0
- package/dist/editor/media/MediaLibrary.js +17 -0
- package/dist/editor/media/MediaLibrary.js.map +1 -0
- package/dist/editor/media/MediaLibraryBody.d.ts +17 -0
- package/dist/editor/media/MediaLibraryBody.d.ts.map +1 -0
- package/dist/editor/media/MediaLibraryBody.js +133 -0
- package/dist/editor/media/MediaLibraryBody.js.map +1 -0
- package/dist/editor/media/crop-math.d.ts +37 -0
- package/dist/editor/media/crop-math.d.ts.map +1 -0
- package/dist/editor/media/crop-math.js +62 -0
- package/dist/editor/media/crop-math.js.map +1 -0
- package/dist/editor/media/upload-asset.d.ts +31 -0
- package/dist/editor/media/upload-asset.d.ts.map +1 -0
- package/dist/editor/media/upload-asset.js +56 -0
- package/dist/editor/media/upload-asset.js.map +1 -0
- package/dist/editor/media/upload-constants.d.ts +27 -0
- package/dist/editor/media/upload-constants.d.ts.map +1 -0
- package/dist/editor/media/upload-constants.js +40 -0
- package/dist/editor/media/upload-constants.js.map +1 -0
- package/dist/editor/media/useAssetUpload.d.ts +19 -0
- package/dist/editor/media/useAssetUpload.d.ts.map +1 -0
- package/dist/editor/media/useAssetUpload.js +53 -0
- package/dist/editor/media/useAssetUpload.js.map +1 -0
- package/dist/editor/media/xhr-upload.d.ts +20 -0
- package/dist/editor/media/xhr-upload.d.ts.map +1 -0
- package/dist/editor/media/xhr-upload.js +42 -0
- package/dist/editor/media/xhr-upload.js.map +1 -0
- package/dist/editor/theme.d.ts +2 -1
- package/dist/editor/theme.d.ts.map +1 -1
- package/dist/editor/theme.js +1 -0
- package/dist/editor/theme.js.map +1 -1
- package/dist/entry-schema.d.ts +19 -0
- package/dist/entry-schema.d.ts.map +1 -1
- package/dist/entry-schema.js.map +1 -1
- package/dist/git-manager.d.ts +15 -10
- package/dist/git-manager.d.ts.map +1 -1
- package/dist/git-manager.js +16 -11
- package/dist/git-manager.js.map +1 -1
- package/dist/http/handler.d.ts +5 -2
- package/dist/http/handler.d.ts.map +1 -1
- package/dist/http/handler.js +13 -4
- package/dist/http/handler.js.map +1 -1
- package/dist/http/index.d.ts +2 -2
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/http/index.js.map +1 -1
- package/dist/http/router.d.ts +14 -1
- package/dist/http/router.d.ts.map +1 -1
- package/dist/http/router.js +4 -1
- package/dist/http/router.js.map +1 -1
- package/dist/http/types.d.ts +40 -0
- package/dist/http/types.d.ts.map +1 -1
- package/dist/http/types.js +9 -0
- package/dist/http/types.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/resource-generation.d.ts +54 -0
- package/dist/resource-generation.d.ts.map +1 -0
- package/dist/resource-generation.js +156 -0
- package/dist/resource-generation.js.map +1 -0
- package/dist/schema/schema-store.d.ts +31 -4
- package/dist/schema/schema-store.d.ts.map +1 -1
- package/dist/schema/schema-store.js +47 -8
- package/dist/schema/schema-store.js.map +1 -1
- package/dist/server.d.ts +45 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +41 -0
- package/dist/server.js.map +1 -1
- package/dist/sync-core.js +2 -2
- package/dist/sync-core.js.map +1 -1
- package/dist/utils/occ-json-write.d.ts +100 -0
- package/dist/utils/occ-json-write.d.ts.map +1 -0
- package/dist/utils/occ-json-write.js +234 -0
- package/dist/utils/occ-json-write.js.map +1 -0
- package/dist/validation/entry-validator.d.ts.map +1 -1
- package/dist/validation/entry-validator.js +56 -1
- package/dist/validation/entry-validator.js.map +1 -1
- package/dist/worker/cms-worker.d.ts.map +1 -1
- package/dist/worker/cms-worker.js +21 -3
- package/dist/worker/cms-worker.js.map +1 -1
- package/package.json +13 -1
- package/dist/asset-store.d.ts +0 -32
- package/dist/asset-store.d.ts.map +0 -1
- package/dist/asset-store.js +0 -85
- package/dist/asset-store.js.map +0 -1
package/dist/cli/init.js
CHANGED
|
@@ -22,11 +22,11 @@ var init_types = __esm({
|
|
|
22
22
|
"rich-text",
|
|
23
23
|
"markdown",
|
|
24
24
|
"mdx",
|
|
25
|
-
"image",
|
|
26
25
|
"code"
|
|
27
26
|
];
|
|
28
27
|
fieldTypes = [
|
|
29
28
|
...primitiveFieldTypes,
|
|
29
|
+
"image",
|
|
30
30
|
"select",
|
|
31
31
|
"reference",
|
|
32
32
|
"object",
|
|
@@ -38,7 +38,7 @@ var init_types = __esm({
|
|
|
38
38
|
|
|
39
39
|
// dist/config/schemas/field.js
|
|
40
40
|
import { z } from "zod";
|
|
41
|
-
var fieldBaseSchema, selectOptionSchema, referenceOptionSchema, primitiveFieldSchema, selectFieldSchema, referenceFieldSchema, fieldHolder, blockSchema, blockFieldSchema, objectFieldSchema, inlineGroupFieldSchema, customFieldSchema, knownFieldSchema, fieldSchema;
|
|
41
|
+
var fieldBaseSchema, selectOptionSchema, referenceOptionSchema, primitiveFieldSchema, ASPECT_RATIO_RE, imageFieldSchema, selectFieldSchema, referenceFieldSchema, fieldHolder, blockSchema, blockFieldSchema, objectFieldSchema, inlineGroupFieldSchema, customFieldSchema, knownFieldSchema, fieldSchema;
|
|
42
42
|
var init_field = __esm({
|
|
43
43
|
"dist/config/schemas/field.js"() {
|
|
44
44
|
"use strict";
|
|
@@ -69,6 +69,12 @@ var init_field = __esm({
|
|
|
69
69
|
primitiveFieldSchema = fieldBaseSchema.extend({
|
|
70
70
|
type: z.enum(primitiveFieldTypes)
|
|
71
71
|
});
|
|
72
|
+
ASPECT_RATIO_RE = /^[1-9][0-9]*:[1-9][0-9]*$/;
|
|
73
|
+
imageFieldSchema = fieldBaseSchema.extend({
|
|
74
|
+
type: z.literal("image"),
|
|
75
|
+
aspect: z.string().regex(ASPECT_RATIO_RE, 'aspect must be "W:H" with positive integers (e.g. "16:9")').optional(),
|
|
76
|
+
altOptional: z.boolean().optional()
|
|
77
|
+
});
|
|
72
78
|
selectFieldSchema = fieldBaseSchema.extend({
|
|
73
79
|
type: z.literal("select"),
|
|
74
80
|
options: z.array(selectOptionSchema).min(1)
|
|
@@ -111,6 +117,7 @@ var init_field = __esm({
|
|
|
111
117
|
primitiveFieldSchema,
|
|
112
118
|
selectFieldSchema,
|
|
113
119
|
referenceFieldSchema,
|
|
120
|
+
imageFieldSchema,
|
|
114
121
|
objectFieldSchema,
|
|
115
122
|
blockFieldSchema,
|
|
116
123
|
inlineGroupFieldSchema
|
|
@@ -161,16 +168,21 @@ var mediaSchema;
|
|
|
161
168
|
var init_media = __esm({
|
|
162
169
|
"dist/config/schemas/media.js"() {
|
|
163
170
|
"use strict";
|
|
171
|
+
init_collection();
|
|
164
172
|
mediaSchema = z3.discriminatedUnion("adapter", [
|
|
165
173
|
z3.object({
|
|
166
174
|
adapter: z3.literal("local"),
|
|
167
|
-
publicBaseUrl: z3.string().url().optional()
|
|
175
|
+
publicBaseUrl: z3.string().url().optional(),
|
|
176
|
+
/** Root directory for local asset storage. Defaults to the caller's dev-assets dir. */
|
|
177
|
+
directory: relativePathSchema.optional()
|
|
168
178
|
}),
|
|
169
179
|
z3.object({
|
|
170
180
|
adapter: z3.literal("s3"),
|
|
171
181
|
bucket: z3.string().min(1),
|
|
172
182
|
region: z3.string().min(1),
|
|
173
|
-
publicBaseUrl: z3.string().url().optional()
|
|
183
|
+
publicBaseUrl: z3.string().url().optional(),
|
|
184
|
+
/** Max upload size in bytes for presigned direct uploads. Defaults to 50 MiB. */
|
|
185
|
+
maxUploadBytes: z3.number().int().positive().optional()
|
|
174
186
|
}),
|
|
175
187
|
z3.object({
|
|
176
188
|
adapter: z3.literal("lfs"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAeH,eAAO,MAAM,eAAe,wCAAyC,CAAA;AACrE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5D,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,mCAAmC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,yEAAyE;AACzE,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAMD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOhD;AA4GD,yEAAyE;AACzE,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAiJnF"}
|
package/dist/cli/migrate.js
CHANGED
|
@@ -21,6 +21,8 @@ import { parseSlug } from '../paths/index.js';
|
|
|
21
21
|
import { filePathExists } from '../utils/fs.js';
|
|
22
22
|
import { loadCollectionMetaFiles } from '../schema/index.js';
|
|
23
23
|
import { getErrorMessage } from '../utils/error.js';
|
|
24
|
+
import { BranchMetadataFileManager } from '../branch-metadata.js';
|
|
25
|
+
import { invalidateBranchContentCaches } from '../content-index-generation.js';
|
|
24
26
|
export const MIGRATE_FORMATS = ['md', 'mdx', 'json', 'yaml'];
|
|
25
27
|
/** Migration precondition failure — thrown so the CLI exits non-zero. */
|
|
26
28
|
export class MigrateError extends Error {
|
|
@@ -220,6 +222,29 @@ export async function migrate(options) {
|
|
|
220
222
|
}
|
|
221
223
|
}
|
|
222
224
|
p.log.success(`Applied ${ops.length} operation(s).`);
|
|
225
|
+
// migrate's target (`projectDir`, resolved by walking up from cwd to the
|
|
226
|
+
// nearest canopycms.config.ts — see cli/project-root.ts) is USUALLY the
|
|
227
|
+
// developer's live source repo, not a branch clone: migrate is meant to run
|
|
228
|
+
// once, before any branch workspace has ever been created, converting a
|
|
229
|
+
// plain content tree into CanopyCMS conventions. In that (common) case
|
|
230
|
+
// there is no cached schema/content-index to invalidate, and bumping the
|
|
231
|
+
// markers there would be a no-op nobody reads — no consumer treats the
|
|
232
|
+
// live project root as a cached branchRoot outside build/static mode, which
|
|
233
|
+
// skips the disk cache entirely — and would risk violating the
|
|
234
|
+
// never-write-.canopy-meta-at-the-project-root invariant documented on
|
|
235
|
+
// BranchSchemaCache.
|
|
236
|
+
//
|
|
237
|
+
// But projectDir CAN resolve to an actual branch clone workspace if the CLI
|
|
238
|
+
// happens to be invoked with cwd inside one: branch clones are full git
|
|
239
|
+
// clones (see GitManager.cloneRepo), so they carry their own
|
|
240
|
+
// canopycms.config.ts and satisfy findProjectRoot just as well as the true
|
|
241
|
+
// project root. Guard on that directly — a branch clone always has
|
|
242
|
+
// .canopy-meta/branch.json (BranchMetadataFileManager), the live project
|
|
243
|
+
// root never does — rather than assuming based on how migrate is "usually"
|
|
244
|
+
// invoked.
|
|
245
|
+
if (await BranchMetadataFileManager.loadOnly(projectDir)) {
|
|
246
|
+
await invalidateBranchContentCaches(projectDir);
|
|
247
|
+
}
|
|
223
248
|
// Sanity-check the result: all .collection.json files must parse
|
|
224
249
|
try {
|
|
225
250
|
const result = await loadCollectionMetaFiles(contentDir);
|
package/dist/cli/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/sync.js
CHANGED
|
@@ -18,7 +18,7 @@ import { simpleGit } from 'simple-git';
|
|
|
18
18
|
import * as p from '@clack/prompts';
|
|
19
19
|
import { filePathExists } from '../utils/fs.js';
|
|
20
20
|
import { assertWithinDir, copyDir, listFilesRecursive, pushContentToWorkspace, safeReplaceDir, SYNC_BASE_TAG, } from '../sync-core.js';
|
|
21
|
-
import {
|
|
21
|
+
import { invalidateBranchContentCaches } from '../content-index-generation.js';
|
|
22
22
|
import { ensureGitExcludePattern } from '../git-manager.js';
|
|
23
23
|
import { operatingStrategy } from '../operating-mode/index.js';
|
|
24
24
|
/**
|
|
@@ -143,7 +143,7 @@ async function syncPush(options) {
|
|
|
143
143
|
await wsGit.merge(['--abort']);
|
|
144
144
|
// The abort rewrote the clone's working tree — tell ContentStore ID
|
|
145
145
|
// indexes (the dev server is a separate process; on-disk marker).
|
|
146
|
-
await
|
|
146
|
+
await invalidateBranchContentCaches(branchPath);
|
|
147
147
|
p.log.success('Merge aborted. Workspace restored to pre-merge state.');
|
|
148
148
|
}
|
|
149
149
|
}
|
|
@@ -328,7 +328,7 @@ async function syncBoth(options) {
|
|
|
328
328
|
await wsGit.merge(['--abort']);
|
|
329
329
|
// The abort rewrote the clone's working tree — tell ContentStore ID
|
|
330
330
|
// indexes (the dev server is a separate process; on-disk marker).
|
|
331
|
-
await
|
|
331
|
+
await invalidateBranchContentCaches(branchPath);
|
|
332
332
|
p.log.success('Merge aborted. Workspace restored to pre-merge state.');
|
|
333
333
|
}
|
|
334
334
|
}
|
|
@@ -428,7 +428,7 @@ async function syncBoth(options) {
|
|
|
428
428
|
return { pushed: incomingStatus.files.length, pulled: pullResult.fileCount };
|
|
429
429
|
}
|
|
430
430
|
finally {
|
|
431
|
-
await
|
|
431
|
+
await invalidateBranchContentCaches(branchPath);
|
|
432
432
|
}
|
|
433
433
|
}
|
|
434
434
|
/**
|
|
@@ -452,7 +452,7 @@ async function syncAbort(options) {
|
|
|
452
452
|
await wsGit.merge(['--abort']);
|
|
453
453
|
// The abort rewrote the clone's working tree — tell ContentStore ID indexes
|
|
454
454
|
// (the dev server is a separate process; on-disk marker).
|
|
455
|
-
await
|
|
455
|
+
await invalidateBranchContentCaches(branchPath);
|
|
456
456
|
p.log.success(`Merge aborted in branch workspace "${branchName}". Workspace restored to pre-merge state.`);
|
|
457
457
|
}
|
|
458
458
|
/**
|
package/dist/cli/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/cli/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/cli/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/comment-store.d.ts
CHANGED
|
@@ -35,32 +35,62 @@ export interface CommentsFile {
|
|
|
35
35
|
* Manages comment storage for a branch workspace.
|
|
36
36
|
* Comments are stored in .canopy-meta/comments.json and are NOT committed to git.
|
|
37
37
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
38
|
+
* Mutators are protected by three layers, outermost to innermost:
|
|
39
|
+
*
|
|
40
|
+
* 1. {@link withLock} - an in-process FIFO mutex keyed by the resolved file
|
|
41
|
+
* path. Serializes concurrent mutators on the SAME process/host
|
|
42
|
+
* deterministically, so racing `resolveThread`/`deleteThread`/`addComment`
|
|
43
|
+
* calls against the same store (or two store instances pointed at the
|
|
44
|
+
* same branch) never race each other's load-modify-write cycle.
|
|
45
|
+
* 2. {@link withOccFileLock} - a server-enforced, cross-process/cross-host
|
|
46
|
+
* lock (proper-lockfile, mkdir-based). This is the actual fix for lost
|
|
47
|
+
* comments across two warm Lambda containers on EFS, where rename-based
|
|
48
|
+
* OCC verification alone is unreliable (see guarantee doc on
|
|
49
|
+
* `utils/occ-json-write.ts`).
|
|
50
|
+
* 3. {@link withOccRetry} around {@link writeOccJsonFile} - version/writeId
|
|
51
|
+
* based optimistic concurrency control. With layers 1-2 in place this is
|
|
52
|
+
* now a defense-in-depth backstop only (e.g. a stale process from a
|
|
53
|
+
* rolling deploy writing without the lock), not the primary safety
|
|
54
|
+
* mechanism.
|
|
55
|
+
*
|
|
56
|
+
* See `utils/occ-json-write.ts` for full guarantee documentation of layers 2-3.
|
|
40
57
|
*/
|
|
41
58
|
export declare class CommentStore {
|
|
42
|
-
private filePath;
|
|
43
|
-
private
|
|
44
|
-
constructor(branchRoot: string
|
|
59
|
+
private readonly filePath;
|
|
60
|
+
private readonly settleMs;
|
|
61
|
+
constructor(branchRoot: string, options?: {
|
|
62
|
+
settleMs?: number;
|
|
63
|
+
});
|
|
45
64
|
/**
|
|
46
|
-
* Load comments file
|
|
65
|
+
* Load comments file for read-only access.
|
|
47
66
|
*/
|
|
48
67
|
load(): Promise<CommentsFile>;
|
|
49
68
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
69
|
+
* Load comments file along with the version observed at load time. Used by
|
|
70
|
+
* mutators, which need the version as a LOCAL value threaded through their
|
|
71
|
+
* load-modify-write cycle rather than shared mutable instance state (so
|
|
72
|
+
* concurrent mutate cycles on the same instance never clobber each other's
|
|
73
|
+
* expected version).
|
|
74
|
+
*/
|
|
75
|
+
private loadWithVersion;
|
|
76
|
+
/**
|
|
77
|
+
* Write comments file via the shared OCC helper.
|
|
52
78
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
79
|
+
* Throws the helper's raw {@link OccWriteConflictError} so the surrounding
|
|
80
|
+
* {@link withOccRetry} in withMutation() recognizes and retries it;
|
|
81
|
+
* translation to the public `CommentStoreConflictError` contract happens at
|
|
82
|
+
* the withMutation() boundary, after retries are exhausted.
|
|
55
83
|
*
|
|
56
|
-
*
|
|
84
|
+
* Note: comment-store historically wrote without a trailing newline;
|
|
85
|
+
* `writeOccJsonFile`'s default (`trailingNewline: false`) preserves that.
|
|
57
86
|
*/
|
|
58
|
-
private
|
|
87
|
+
private writeData;
|
|
59
88
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
89
|
+
* Run a mutate cycle (load -> modify -> write) under the full lock +
|
|
90
|
+
* OCC-retry stack described in the class doc comment. A conflict that
|
|
91
|
+
* survives every retry surfaces as the public `CommentStoreConflictError`.
|
|
62
92
|
*/
|
|
63
|
-
private
|
|
93
|
+
private withMutation;
|
|
64
94
|
addComment(options: {
|
|
65
95
|
userId: string;
|
|
66
96
|
text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment-store.d.ts","sourceRoot":"","sources":["../src/comment-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"comment-store.d.ts","sourceRoot":"","sources":["../src/comment-store.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;;CAKnD;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEtD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CAEb;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAGhB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;gBAEjC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAO/D;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAKnC;;;;;;OAMG;YACW,eAAe;IAoB7B;;;;;;;;;;OAUG;YACW,SAAS;IAWvB;;;;OAIG;YACW,YAAY;IAoBpB,UAAU,CAAC,OAAO,EAAE;QACxB,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,WAAW,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAsC9C,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAejE,WAAW,CAAC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAW9E,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAK1D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYtD;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAOzF;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAOrE;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;CAMnD"}
|
package/dist/comment-store.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { randomUUID } from 'node:crypto';
|
|
4
|
+
import { withLock } from './utils/async-mutex.js';
|
|
5
|
+
import { writeOccJsonFile, withOccRetry, withOccFileLock, OccWriteConflictError, } from './utils/occ-json-write.js';
|
|
4
6
|
/**
|
|
5
7
|
* Error thrown when a concurrent modification is detected.
|
|
6
8
|
* Operations that encounter this error will automatically retry.
|
|
@@ -15,129 +17,108 @@ export class CommentStoreConflictError extends Error {
|
|
|
15
17
|
* Manages comment storage for a branch workspace.
|
|
16
18
|
* Comments are stored in .canopy-meta/comments.json and are NOT committed to git.
|
|
17
19
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
+
* Mutators are protected by three layers, outermost to innermost:
|
|
21
|
+
*
|
|
22
|
+
* 1. {@link withLock} - an in-process FIFO mutex keyed by the resolved file
|
|
23
|
+
* path. Serializes concurrent mutators on the SAME process/host
|
|
24
|
+
* deterministically, so racing `resolveThread`/`deleteThread`/`addComment`
|
|
25
|
+
* calls against the same store (or two store instances pointed at the
|
|
26
|
+
* same branch) never race each other's load-modify-write cycle.
|
|
27
|
+
* 2. {@link withOccFileLock} - a server-enforced, cross-process/cross-host
|
|
28
|
+
* lock (proper-lockfile, mkdir-based). This is the actual fix for lost
|
|
29
|
+
* comments across two warm Lambda containers on EFS, where rename-based
|
|
30
|
+
* OCC verification alone is unreliable (see guarantee doc on
|
|
31
|
+
* `utils/occ-json-write.ts`).
|
|
32
|
+
* 3. {@link withOccRetry} around {@link writeOccJsonFile} - version/writeId
|
|
33
|
+
* based optimistic concurrency control. With layers 1-2 in place this is
|
|
34
|
+
* now a defense-in-depth backstop only (e.g. a stale process from a
|
|
35
|
+
* rolling deploy writing without the lock), not the primary safety
|
|
36
|
+
* mechanism.
|
|
37
|
+
*
|
|
38
|
+
* See `utils/occ-json-write.ts` for full guarantee documentation of layers 2-3.
|
|
20
39
|
*/
|
|
21
40
|
export class CommentStore {
|
|
22
|
-
constructor(branchRoot) {
|
|
23
|
-
|
|
24
|
-
|
|
41
|
+
constructor(branchRoot, options) {
|
|
42
|
+
// Resolve so two differently-spelled paths to the same branch root map
|
|
43
|
+
// to the same in-process lock key (see withLock).
|
|
44
|
+
this.filePath = path.join(path.resolve(branchRoot), '.canopy-meta', 'comments.json');
|
|
45
|
+
this.settleMs = options?.settleMs;
|
|
25
46
|
}
|
|
26
47
|
/**
|
|
27
|
-
* Load comments file
|
|
48
|
+
* Load comments file for read-only access.
|
|
28
49
|
*/
|
|
29
50
|
async load() {
|
|
51
|
+
const { data } = await this.loadWithVersion();
|
|
52
|
+
return data;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Load comments file along with the version observed at load time. Used by
|
|
56
|
+
* mutators, which need the version as a LOCAL value threaded through their
|
|
57
|
+
* load-modify-write cycle rather than shared mutable instance state (so
|
|
58
|
+
* concurrent mutate cycles on the same instance never clobber each other's
|
|
59
|
+
* expected version).
|
|
60
|
+
*/
|
|
61
|
+
async loadWithVersion() {
|
|
30
62
|
try {
|
|
31
63
|
const content = await fs.readFile(this.filePath, 'utf-8');
|
|
32
|
-
const
|
|
64
|
+
const parsed = JSON.parse(content);
|
|
33
65
|
// Backward compat: treat missing version as 0
|
|
34
|
-
|
|
35
|
-
return { ...
|
|
66
|
+
const version = parsed.version ?? 0;
|
|
67
|
+
return { data: { ...parsed, version }, version };
|
|
36
68
|
}
|
|
37
69
|
catch {
|
|
38
70
|
// File doesn't exist yet, return empty structure
|
|
39
|
-
this.loadedVersion = null;
|
|
40
71
|
return {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
72
|
+
data: {
|
|
73
|
+
schemaVersion: 1,
|
|
74
|
+
version: 0,
|
|
75
|
+
threads: {},
|
|
76
|
+
},
|
|
77
|
+
version: null,
|
|
44
78
|
};
|
|
45
79
|
}
|
|
46
80
|
}
|
|
47
81
|
/**
|
|
48
|
-
*
|
|
49
|
-
* Uses atomic temp-file write to prevent corruption.
|
|
82
|
+
* Write comments file via the shared OCC helper.
|
|
50
83
|
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
84
|
+
* Throws the helper's raw {@link OccWriteConflictError} so the surrounding
|
|
85
|
+
* {@link withOccRetry} in withMutation() recognizes and retries it;
|
|
86
|
+
* translation to the public `CommentStoreConflictError` contract happens at
|
|
87
|
+
* the withMutation() boundary, after retries are exhausted.
|
|
53
88
|
*
|
|
54
|
-
*
|
|
89
|
+
* Note: comment-store historically wrote without a trailing newline;
|
|
90
|
+
* `writeOccJsonFile`'s default (`trailingNewline: false`) preserves that.
|
|
55
91
|
*/
|
|
56
|
-
async
|
|
57
|
-
await
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const writeId = randomUUID();
|
|
62
|
-
const newData = { ...data, version: newVersion, writeId };
|
|
63
|
-
const content = JSON.stringify(newData, null, 2);
|
|
64
|
-
const tempPath = `${this.filePath}.${Date.now()}.${Math.random().toString(36).slice(2)}.tmp`;
|
|
65
|
-
if (expectedVersion === null) {
|
|
66
|
-
// New file case: use exclusive create flag to prevent race
|
|
67
|
-
// If file already exists, this will throw EEXIST
|
|
68
|
-
try {
|
|
69
|
-
await fs.writeFile(this.filePath, content, { flag: 'wx' });
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
catch (err) {
|
|
73
|
-
if (err.code === 'EEXIST') {
|
|
74
|
-
// File was created by another process, conflict
|
|
75
|
-
throw new CommentStoreConflictError();
|
|
76
|
-
}
|
|
77
|
-
throw err;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
// Existing file case: write to temp, atomic rename, then verify we won
|
|
81
|
-
await fs.writeFile(tempPath, content, 'utf-8');
|
|
82
|
-
try {
|
|
83
|
-
// First check: verify expected version before rename
|
|
84
|
-
let currentVersion = null;
|
|
85
|
-
try {
|
|
86
|
-
const current = JSON.parse(await fs.readFile(this.filePath, 'utf-8'));
|
|
87
|
-
currentVersion = current.version ?? 0;
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
currentVersion = null;
|
|
91
|
-
}
|
|
92
|
-
if (currentVersion !== expectedVersion) {
|
|
93
|
-
throw new CommentStoreConflictError();
|
|
94
|
-
}
|
|
95
|
-
// Atomic rename
|
|
96
|
-
await fs.rename(tempPath, this.filePath);
|
|
97
|
-
// Post-write verification with settling delay
|
|
98
|
-
// Wait to let concurrent renames complete on shared filesystems (EFS/NFS), then verify our writeId
|
|
99
|
-
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
100
|
-
const afterWrite = JSON.parse(await fs.readFile(this.filePath, 'utf-8'));
|
|
101
|
-
if (afterWrite.writeId !== writeId) {
|
|
102
|
-
// Another process won the race - our write was overwritten
|
|
103
|
-
throw new CommentStoreConflictError();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
catch (err) {
|
|
107
|
-
// Clean up temp file on any error (may already be renamed away)
|
|
108
|
-
await fs.unlink(tempPath).catch(() => { });
|
|
109
|
-
throw err;
|
|
110
|
-
}
|
|
92
|
+
async writeData(data, expectedVersion) {
|
|
93
|
+
await writeOccJsonFile(this.filePath, { ...data }, {
|
|
94
|
+
expectedVersion,
|
|
95
|
+
settleMs: this.settleMs,
|
|
96
|
+
});
|
|
111
97
|
}
|
|
112
98
|
/**
|
|
113
|
-
*
|
|
114
|
-
*
|
|
99
|
+
* Run a mutate cycle (load -> modify -> write) under the full lock +
|
|
100
|
+
* OCC-retry stack described in the class doc comment. A conflict that
|
|
101
|
+
* survives every retry surfaces as the public `CommentStoreConflictError`.
|
|
115
102
|
*/
|
|
116
|
-
async
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
const jitter = Math.random() * baseDelay;
|
|
127
|
-
await new Promise((resolve) => setTimeout(resolve, baseDelay + jitter));
|
|
128
|
-
continue;
|
|
129
|
-
}
|
|
130
|
-
throw err;
|
|
103
|
+
async withMutation(operation) {
|
|
104
|
+
try {
|
|
105
|
+
return await withLock(this.filePath, () => withOccFileLock(this.filePath, () => withOccRetry(async () => {
|
|
106
|
+
const { data, version } = await this.loadWithVersion();
|
|
107
|
+
return operation(data, version);
|
|
108
|
+
})));
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
if (err instanceof OccWriteConflictError) {
|
|
112
|
+
throw new CommentStoreConflictError();
|
|
131
113
|
}
|
|
114
|
+
throw err;
|
|
132
115
|
}
|
|
133
|
-
throw new Error('Unreachable');
|
|
134
116
|
}
|
|
135
117
|
async addComment(options) {
|
|
136
|
-
// Generate IDs outside
|
|
118
|
+
// Generate IDs outside the mutation so they stay stable across retries
|
|
137
119
|
const threadId = options.threadId || randomUUID();
|
|
138
120
|
const commentId = randomUUID();
|
|
139
|
-
return this.
|
|
140
|
-
const data = await this.load();
|
|
121
|
+
return this.withMutation(async (data, version) => {
|
|
141
122
|
const timestamp = new Date().toISOString();
|
|
142
123
|
const comment = {
|
|
143
124
|
id: commentId,
|
|
@@ -163,20 +144,19 @@ export class CommentStore {
|
|
|
163
144
|
// Add to existing thread
|
|
164
145
|
data.threads[threadId].comments.push(comment);
|
|
165
146
|
}
|
|
166
|
-
await this.
|
|
147
|
+
await this.writeData(data, version);
|
|
167
148
|
return { threadId, commentId };
|
|
168
149
|
});
|
|
169
150
|
}
|
|
170
151
|
async resolveThread(threadId, userId) {
|
|
171
|
-
return this.
|
|
172
|
-
const data = await this.load();
|
|
152
|
+
return this.withMutation(async (data, version) => {
|
|
173
153
|
if (!data.threads[threadId]) {
|
|
174
154
|
return false;
|
|
175
155
|
}
|
|
176
156
|
data.threads[threadId].resolved = true;
|
|
177
157
|
data.threads[threadId].resolvedBy = userId;
|
|
178
158
|
data.threads[threadId].resolvedAt = new Date().toISOString();
|
|
179
|
-
await this.
|
|
159
|
+
await this.writeData(data, version);
|
|
180
160
|
return true;
|
|
181
161
|
});
|
|
182
162
|
}
|
|
@@ -193,13 +173,12 @@ export class CommentStore {
|
|
|
193
173
|
return data.threads[threadId] || null;
|
|
194
174
|
}
|
|
195
175
|
async deleteThread(threadId) {
|
|
196
|
-
return this.
|
|
197
|
-
const data = await this.load();
|
|
176
|
+
return this.withMutation(async (data, version) => {
|
|
198
177
|
if (!data.threads[threadId]) {
|
|
199
178
|
return false;
|
|
200
179
|
}
|
|
201
180
|
delete data.threads[threadId];
|
|
202
|
-
await this.
|
|
181
|
+
await this.writeData(data, version);
|
|
203
182
|
return true;
|
|
204
183
|
});
|
|
205
184
|
}
|