document-drive 4.1.0-dev.59 → 4.1.0-dev.60

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 (89) hide show
  1. package/dist/src/drive-document-model/gen/drive/creators.js +1 -1
  2. package/dist/src/drive-document-model/gen/drive/creators.js.map +1 -1
  3. package/dist/src/drive-document-model/gen/node/creators.d.ts +1 -2
  4. package/dist/src/drive-document-model/gen/node/creators.d.ts.map +1 -1
  5. package/dist/src/drive-document-model/gen/node/creators.js +1 -1
  6. package/dist/src/drive-document-model/gen/node/creators.js.map +1 -1
  7. package/dist/src/drive-document-model/gen/ph-factories.js +1 -1
  8. package/dist/src/drive-document-model/gen/ph-factories.js.map +1 -1
  9. package/dist/src/drive-document-model/gen/reducer.js +1 -1
  10. package/dist/src/drive-document-model/gen/reducer.js.map +1 -1
  11. package/dist/src/drive-document-model/gen/utils.js +1 -1
  12. package/dist/src/drive-document-model/gen/utils.js.map +1 -1
  13. package/dist/src/drive-document-model/module.d.ts.map +1 -1
  14. package/dist/src/drive-document-model/module.js +2 -1
  15. package/dist/src/drive-document-model/module.js.map +1 -1
  16. package/dist/src/drive-document-model/src/tests/actions.test.js +1 -1
  17. package/dist/src/drive-document-model/src/tests/actions.test.js.map +1 -1
  18. package/dist/src/processors/processor-manager.js +1 -1
  19. package/dist/src/processors/processor-manager.js.map +1 -1
  20. package/dist/src/queue/event.js +1 -1
  21. package/dist/src/queue/event.js.map +1 -1
  22. package/dist/src/server/base-server.d.ts +4 -1
  23. package/dist/src/server/base-server.d.ts.map +1 -1
  24. package/dist/src/server/base-server.js +218 -5
  25. package/dist/src/server/base-server.js.map +1 -1
  26. package/dist/src/server/builder.d.ts.map +1 -1
  27. package/dist/src/server/builder.js +7 -1
  28. package/dist/src/server/builder.js.map +1 -1
  29. package/dist/src/server/listener/transmitter/pull-responder.js +2 -2
  30. package/dist/src/server/listener/transmitter/pull-responder.js.map +1 -1
  31. package/dist/src/server/sync-manager.js +1 -1
  32. package/dist/src/server/sync-manager.js.map +1 -1
  33. package/dist/src/server/types.d.ts +3 -0
  34. package/dist/src/server/types.d.ts.map +1 -1
  35. package/dist/src/storage/prisma/prisma.d.ts +1 -1
  36. package/dist/src/storage/prisma/prisma.d.ts.map +1 -1
  37. package/dist/src/storage/prisma/prisma.js +1 -4
  38. package/dist/src/storage/prisma/prisma.js.map +1 -1
  39. package/dist/src/utils/gql-transformations.d.ts +20 -2
  40. package/dist/src/utils/gql-transformations.d.ts.map +1 -1
  41. package/dist/src/utils/gql-transformations.js.map +1 -1
  42. package/dist/src/utils/graphql.d.ts.map +1 -1
  43. package/dist/src/utils/graphql.js +0 -1
  44. package/dist/src/utils/graphql.js.map +1 -1
  45. package/dist/src/utils/types.d.ts +1 -12
  46. package/dist/src/utils/types.d.ts.map +1 -1
  47. package/dist/test/benchmarks/processOperations.bench.js +2 -1
  48. package/dist/test/benchmarks/processOperations.bench.js.map +1 -1
  49. package/dist/test/benchmarks/queue.bench.js +2 -1
  50. package/dist/test/benchmarks/queue.bench.js.map +1 -1
  51. package/dist/test/cache.test.js +2 -1
  52. package/dist/test/cache.test.js.map +1 -1
  53. package/dist/test/default-remote-drives.test.js +2 -1
  54. package/dist/test/default-remote-drives.test.js.map +1 -1
  55. package/dist/test/drive-operations.test.js +2 -1
  56. package/dist/test/drive-operations.test.js.map +1 -1
  57. package/dist/test/dual-action-create.test.d.ts +2 -0
  58. package/dist/test/dual-action-create.test.d.ts.map +1 -0
  59. package/dist/test/dual-action-create.test.js +199 -0
  60. package/dist/test/dual-action-create.test.js.map +1 -0
  61. package/dist/test/dual-action-migration.test.d.ts +2 -0
  62. package/dist/test/dual-action-migration.test.d.ts.map +1 -0
  63. package/dist/test/dual-action-migration.test.js +344 -0
  64. package/dist/test/dual-action-migration.test.js.map +1 -0
  65. package/dist/test/internal-listener.test.js +2 -1
  66. package/dist/test/internal-listener.test.js.map +1 -1
  67. package/dist/test/queue.test.js +2 -1
  68. package/dist/test/queue.test.js.map +1 -1
  69. package/dist/test/read-mode.test.js +2 -1
  70. package/dist/test/read-mode.test.js.map +1 -1
  71. package/dist/test/server/driveOperationsConflictResolution.test.js +0 -2
  72. package/dist/test/server/driveOperationsConflictResolution.test.js.map +1 -1
  73. package/dist/test/server/processOperations.test.js +3 -2
  74. package/dist/test/server/processOperations.test.js.map +1 -1
  75. package/dist/test/server.test.js +2 -1
  76. package/dist/test/server.test.js.map +1 -1
  77. package/dist/test/signature-migration.test.js +3 -3
  78. package/dist/test/signature-migration.test.js.map +1 -1
  79. package/dist/test/storage.test.js +2 -1
  80. package/dist/test/storage.test.js.map +1 -1
  81. package/dist/test/switchboard-push-listener.test.js +2 -1
  82. package/dist/test/switchboard-push-listener.test.js.map +1 -1
  83. package/dist/test/sync-manager.test.js +2 -1
  84. package/dist/test/sync-manager.test.js.map +1 -1
  85. package/dist/test/utils.d.ts.map +1 -1
  86. package/dist/test/utils.js +7 -1
  87. package/dist/test/utils.js.map +1 -1
  88. package/dist/tsconfig.tsbuildinfo +1 -1
  89. package/package.json +5 -5
@@ -0,0 +1,199 @@
1
+ import { InMemoryCache, MemoryStorage, ReactorBuilder, baseDocumentModels, } from "document-drive";
2
+ import { documentModelCreateDocument, documentModelDocumentModelModule, } from "document-model";
3
+ import { createPresignedHeader, generateId } from "document-model/core";
4
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
5
+ const documentModels = baseDocumentModels;
6
+ describe("Dual Action Create", () => {
7
+ let storage;
8
+ let cache;
9
+ beforeEach(async () => {
10
+ vi.setSystemTime(new Date("2024-01-01"));
11
+ storage = new MemoryStorage();
12
+ cache = new InMemoryCache();
13
+ });
14
+ afterEach(() => {
15
+ vi.useRealTimers();
16
+ });
17
+ function createDocumentModelWithId(id) {
18
+ return {
19
+ ...documentModelCreateDocument(),
20
+ header: createPresignedHeader(id, documentModelDocumentModelModule.documentModel.global.id),
21
+ };
22
+ }
23
+ describe("with feature flag disabled (legacy behavior)", () => {
24
+ it("creates document without CREATE_DOCUMENT and UPGRADE_DOCUMENT operations", async () => {
25
+ const server = new ReactorBuilder(documentModels)
26
+ .withCache(cache)
27
+ .withStorage(storage)
28
+ .withOptions({
29
+ featureFlags: {
30
+ enableDualActionCreate: false,
31
+ },
32
+ })
33
+ .build();
34
+ await server.initialize();
35
+ const documentId = generateId();
36
+ const document = await server.addDocument(createDocumentModelWithId(documentId));
37
+ expect(document).toBeDefined();
38
+ expect(document.header.id).toBe(documentId);
39
+ // Legacy behavior: no operations on new document
40
+ const operations = [
41
+ ...document.operations.global,
42
+ ...document.operations.local,
43
+ ];
44
+ expect(operations.length).toBe(0);
45
+ });
46
+ });
47
+ describe("with feature flag enabled (dual action behavior)", () => {
48
+ it("creates unsigned document with CREATE_DOCUMENT and UPGRADE_DOCUMENT operations", async () => {
49
+ const server = new ReactorBuilder(documentModels)
50
+ .withCache(cache)
51
+ .withStorage(storage)
52
+ .withOptions({
53
+ featureFlags: {
54
+ enableDualActionCreate: true,
55
+ },
56
+ })
57
+ .build();
58
+ await server.initialize();
59
+ const documentId = generateId();
60
+ const document = await server.addDocument(createDocumentModelWithId(documentId));
61
+ expect(document).toBeDefined();
62
+ expect(document.header.id).toBe(documentId);
63
+ // New behavior: should have CREATE_DOCUMENT and UPGRADE_DOCUMENT operations
64
+ const operations = [
65
+ ...document.operations.global,
66
+ ...document.operations.local,
67
+ ];
68
+ expect(operations.length).toBe(2);
69
+ // Check CREATE_DOCUMENT operation
70
+ const createOp = operations[0];
71
+ expect(createOp).toBeDefined();
72
+ expect(createOp.action.type).toBe("CREATE_DOCUMENT");
73
+ expect(createOp.action.input).toMatchObject({
74
+ model: documentModelDocumentModelModule.documentModel.global.id,
75
+ version: "0.0.0",
76
+ documentId,
77
+ });
78
+ expect(createOp.action.input.signing).toBeUndefined();
79
+ // Check UPGRADE_DOCUMENT operation
80
+ const upgradeOp = operations[1];
81
+ expect(upgradeOp).toBeDefined();
82
+ expect(upgradeOp.action.type).toBe("UPGRADE_DOCUMENT");
83
+ expect(upgradeOp.action.input).toMatchObject({
84
+ model: documentModelDocumentModelModule.documentModel.global.id,
85
+ fromVersion: "0.0.0",
86
+ toVersion: "0.1.0", // hardcoded for now
87
+ documentId,
88
+ });
89
+ expect(upgradeOp.action.input.initialState).toBeDefined();
90
+ });
91
+ it("creates document with custom initial state in UPGRADE_DOCUMENT", async () => {
92
+ const server = new ReactorBuilder(documentModels)
93
+ .withCache(cache)
94
+ .withStorage(storage)
95
+ .withOptions({
96
+ featureFlags: {
97
+ enableDualActionCreate: true,
98
+ },
99
+ })
100
+ .build();
101
+ await server.initialize();
102
+ const documentId = generateId();
103
+ const customState = {
104
+ ...documentModelDocumentModelModule.utils.createState(),
105
+ global: {
106
+ ...documentModelDocumentModelModule.utils.createState().global,
107
+ name: "Custom Document Name",
108
+ },
109
+ };
110
+ const document = await server.addDocument({
111
+ ...createDocumentModelWithId(documentId),
112
+ state: customState,
113
+ });
114
+ expect(document).toBeDefined();
115
+ expect(document.state.global.name).toBe("Custom Document Name");
116
+ // Check UPGRADE_DOCUMENT contains the custom state
117
+ const operations = [
118
+ ...document.operations.global,
119
+ ...document.operations.local,
120
+ ];
121
+ const upgradeOp = operations[1];
122
+ expect(upgradeOp.action.type).toBe("UPGRADE_DOCUMENT");
123
+ const initialState = upgradeOp.action.input.initialState;
124
+ expect(initialState).toBeDefined();
125
+ expect(initialState.global.name).toBe("Custom Document Name");
126
+ });
127
+ it("should have hashes on CREATE and UPGRADE operations", async () => {
128
+ const storage = new MemoryStorage();
129
+ const server = new ReactorBuilder(baseDocumentModels)
130
+ .withStorage(storage)
131
+ .withOptions({ featureFlags: { enableDualActionCreate: true } })
132
+ .build();
133
+ await server.initialize();
134
+ const docId = generateId();
135
+ const doc = {
136
+ ...documentModelCreateDocument(),
137
+ header: createPresignedHeader(docId, documentModelDocumentModelModule.documentModel.global.id),
138
+ };
139
+ const created = await server.addDocument(doc);
140
+ expect(created.operations.global.length).toBe(2);
141
+ expect(created.operations.global[0].action.type).toBe("CREATE_DOCUMENT");
142
+ expect(created.operations.global[0].hash).toBeDefined();
143
+ expect(created.operations.global[0].hash.length).toBeGreaterThan(0);
144
+ expect(created.operations.global[1].action.type).toBe("UPGRADE_DOCUMENT");
145
+ expect(created.operations.global[1].hash).toBeDefined();
146
+ expect(created.operations.global[1].hash.length).toBeGreaterThan(0);
147
+ });
148
+ it("operations are persisted in storage", async () => {
149
+ const server = new ReactorBuilder(documentModels)
150
+ .withCache(cache)
151
+ .withStorage(storage)
152
+ .withOptions({
153
+ featureFlags: {
154
+ enableDualActionCreate: true,
155
+ },
156
+ })
157
+ .build();
158
+ await server.initialize();
159
+ const documentId = generateId();
160
+ await server.addDocument(createDocumentModelWithId(documentId));
161
+ // Verify operations were stored by retrieving the document
162
+ const retrieved = await server.getDocument(documentId);
163
+ const storedOperations = [
164
+ ...retrieved.operations.global,
165
+ ...retrieved.operations.local,
166
+ ];
167
+ expect(storedOperations.length).toBe(2);
168
+ // Verify operations are in correct order
169
+ expect(storedOperations[0].action.type).toBe("CREATE_DOCUMENT");
170
+ expect(storedOperations[1].action.type).toBe("UPGRADE_DOCUMENT");
171
+ });
172
+ it("document can be retrieved and has correct operations", async () => {
173
+ const server = new ReactorBuilder(documentModels)
174
+ .withCache(cache)
175
+ .withStorage(storage)
176
+ .withOptions({
177
+ featureFlags: {
178
+ enableDualActionCreate: true,
179
+ },
180
+ })
181
+ .build();
182
+ await server.initialize();
183
+ const documentId = generateId();
184
+ await server.addDocument(createDocumentModelWithId(documentId));
185
+ // Retrieve the document
186
+ const retrieved = await server.getDocument(documentId);
187
+ expect(retrieved).toBeDefined();
188
+ expect(retrieved.header.id).toBe(documentId);
189
+ const operations = [
190
+ ...retrieved.operations.global,
191
+ ...retrieved.operations.local,
192
+ ];
193
+ expect(operations.length).toBe(2);
194
+ expect(operations[0].action.type).toBe("CREATE_DOCUMENT");
195
+ expect(operations[1].action.type).toBe("UPGRADE_DOCUMENT");
196
+ });
197
+ });
198
+ });
199
+ //# sourceMappingURL=dual-action-create.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dual-action-create.test.js","sourceRoot":"","sources":["../../test/dual-action-create.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dual-action-migration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dual-action-migration.test.d.ts","sourceRoot":"","sources":["../../test/dual-action-migration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,344 @@
1
+ import { DocumentAlreadyExistsError, InMemoryCache, MemoryStorage, ReactorBuilder, baseDocumentModels, driveCreateDocument, } from "document-drive";
2
+ import { documentModelCreateDocument, documentModelDocumentModelModule, } from "document-model";
3
+ import { createPresignedHeader, generateId } from "document-model/core";
4
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
5
+ const documentModels = baseDocumentModels;
6
+ describe("Dual Action Migration Tests", () => {
7
+ let storage;
8
+ let cache;
9
+ beforeEach(async () => {
10
+ vi.setSystemTime(new Date("2024-01-01"));
11
+ storage = new MemoryStorage();
12
+ cache = new InMemoryCache();
13
+ });
14
+ afterEach(() => {
15
+ vi.useRealTimers();
16
+ });
17
+ function createDocumentModelWithId(id) {
18
+ return {
19
+ ...documentModelCreateDocument(),
20
+ header: createPresignedHeader(id, documentModelDocumentModelModule.documentModel.global.id),
21
+ };
22
+ }
23
+ describe("CRITICAL: Cross-reactor document migration", () => {
24
+ it("should retrieve legacy document (no operations) in dual-action reactor without adding operations", async () => {
25
+ // Create server with flag OFF
26
+ const legacyServer = new ReactorBuilder(documentModels)
27
+ .withCache(cache)
28
+ .withStorage(storage)
29
+ .withOptions({
30
+ featureFlags: {
31
+ enableDualActionCreate: false,
32
+ },
33
+ })
34
+ .build();
35
+ await legacyServer.initialize();
36
+ const documentId = generateId();
37
+ const created = await legacyServer.addDocument(createDocumentModelWithId(documentId));
38
+ // Verify no operations on legacy document
39
+ expect(created.operations.global.length).toBe(0);
40
+ expect(created.operations.local.length).toBe(0);
41
+ // Create new server with flag ON, sharing same storage
42
+ const dualActionServer = new ReactorBuilder(documentModels)
43
+ .withCache(new InMemoryCache()) // New cache
44
+ .withStorage(storage) // SAME storage
45
+ .withOptions({
46
+ featureFlags: {
47
+ enableDualActionCreate: true,
48
+ },
49
+ })
50
+ .build();
51
+ await dualActionServer.initialize();
52
+ // Retrieve existing document with new server
53
+ const retrieved = await dualActionServer.getDocument(documentId);
54
+ // CRITICAL: Should NOT add CREATE/UPGRADE operations retroactively
55
+ expect(retrieved.operations.global.length).toBe(0);
56
+ expect(retrieved.operations.local.length).toBe(0);
57
+ expect(retrieved.state).toEqual(created.state);
58
+ });
59
+ it("should prevent duplicate creation when document already exists in storage", async () => {
60
+ // Create document with flag OFF
61
+ const legacyServer = new ReactorBuilder(documentModels)
62
+ .withCache(cache)
63
+ .withStorage(storage)
64
+ .withOptions({
65
+ featureFlags: {
66
+ enableDualActionCreate: false,
67
+ },
68
+ })
69
+ .build();
70
+ await legacyServer.initialize();
71
+ const documentId = generateId();
72
+ await legacyServer.addDocument(createDocumentModelWithId(documentId));
73
+ // Try to create same document with flag ON
74
+ const dualActionServer = new ReactorBuilder(documentModels)
75
+ .withCache(new InMemoryCache())
76
+ .withStorage(storage)
77
+ .withOptions({
78
+ featureFlags: {
79
+ enableDualActionCreate: true,
80
+ },
81
+ })
82
+ .build();
83
+ await dualActionServer.initialize();
84
+ // Should throw error BEFORE creating operations
85
+ await expect(dualActionServer.addDocument(createDocumentModelWithId(documentId))).rejects.toThrow(DocumentAlreadyExistsError);
86
+ // Verify no operations were added
87
+ const retrieved = await storage.get(documentId);
88
+ expect(retrieved.operations.global.length).toBe(0);
89
+ });
90
+ it("should handle dual-action document in legacy reactor", async () => {
91
+ // Create document with flag ON
92
+ const dualActionServer = new ReactorBuilder(documentModels)
93
+ .withCache(cache)
94
+ .withStorage(storage)
95
+ .withOptions({
96
+ featureFlags: {
97
+ enableDualActionCreate: true,
98
+ },
99
+ })
100
+ .build();
101
+ await dualActionServer.initialize();
102
+ const documentId = generateId();
103
+ const created = await dualActionServer.addDocument(createDocumentModelWithId(documentId));
104
+ // Verify operations exist
105
+ expect(created.operations.global.length).toBe(2);
106
+ expect(created.operations.global[0].action.type).toBe("CREATE_DOCUMENT");
107
+ expect(created.operations.global[1].action.type).toBe("UPGRADE_DOCUMENT");
108
+ // Retrieve with legacy server
109
+ const legacyServer = new ReactorBuilder(documentModels)
110
+ .withCache(new InMemoryCache())
111
+ .withStorage(storage)
112
+ .withOptions({
113
+ featureFlags: {
114
+ enableDualActionCreate: false,
115
+ },
116
+ })
117
+ .build();
118
+ await legacyServer.initialize();
119
+ // Should retrieve successfully
120
+ const retrieved = await legacyServer.getDocument(documentId);
121
+ expect(retrieved).toBeDefined();
122
+ // Operations should be preserved in storage
123
+ expect(retrieved.operations.global.length).toBe(2);
124
+ // State should match
125
+ expect(retrieved.state).toEqual(created.state);
126
+ });
127
+ it("should not add operations when passing document object with existing operations", async () => {
128
+ // Create a document object that already has operations (e.g., from another source)
129
+ const documentId = generateId();
130
+ const document = createDocumentModelWithId(documentId);
131
+ // Manually add an operation to simulate a document from external source
132
+ document.operations.global.push({
133
+ index: 0,
134
+ skip: 0,
135
+ hash: "existing-hash",
136
+ timestampUtcMs: new Date().toISOString(),
137
+ action: {
138
+ id: "action-1",
139
+ type: "SOME_OPERATION",
140
+ timestampUtcMs: new Date().toISOString(),
141
+ input: {},
142
+ scope: "global",
143
+ },
144
+ });
145
+ const server = new ReactorBuilder(documentModels)
146
+ .withCache(cache)
147
+ .withStorage(storage)
148
+ .withOptions({
149
+ featureFlags: {
150
+ enableDualActionCreate: true,
151
+ },
152
+ })
153
+ .build();
154
+ await server.initialize();
155
+ // Pass document with existing operations
156
+ const created = await server.addDocument(document);
157
+ // Should NOT add CREATE/UPGRADE operations since existingOperations.length > 0
158
+ expect(created.operations.global.length).toBe(1);
159
+ expect(created.operations.global[0].action.type).toBe("SOME_OPERATION");
160
+ });
161
+ it("should handle document migration across multiple reactor restarts", async () => {
162
+ const documentId = generateId();
163
+ // Step 1: Create with legacy reactor
164
+ const server1 = new ReactorBuilder(documentModels)
165
+ .withCache(new InMemoryCache())
166
+ .withStorage(storage)
167
+ .withOptions({
168
+ featureFlags: {
169
+ enableDualActionCreate: false,
170
+ },
171
+ })
172
+ .build();
173
+ await server1.initialize();
174
+ await server1.addDocument(createDocumentModelWithId(documentId));
175
+ // Step 2: Retrieve with dual-action reactor
176
+ const server2 = new ReactorBuilder(documentModels)
177
+ .withCache(new InMemoryCache())
178
+ .withStorage(storage)
179
+ .withOptions({
180
+ featureFlags: {
181
+ enableDualActionCreate: true,
182
+ },
183
+ })
184
+ .build();
185
+ await server2.initialize();
186
+ const retrieved1 = await server2.getDocument(documentId);
187
+ expect(retrieved1.operations.global.length).toBe(0);
188
+ // Step 3: Retrieve again with legacy reactor
189
+ const server3 = new ReactorBuilder(documentModels)
190
+ .withCache(new InMemoryCache())
191
+ .withStorage(storage)
192
+ .withOptions({
193
+ featureFlags: {
194
+ enableDualActionCreate: false,
195
+ },
196
+ })
197
+ .build();
198
+ await server3.initialize();
199
+ const retrieved2 = await server3.getDocument(documentId);
200
+ expect(retrieved2.operations.global.length).toBe(0);
201
+ // All states should be identical
202
+ expect(retrieved1.state).toEqual(retrieved2.state);
203
+ });
204
+ it("should handle drive with mix of legacy and dual-action documents", async () => {
205
+ const driveId = generateId();
206
+ // Create drive with legacy server
207
+ const legacyServer = new ReactorBuilder(documentModels)
208
+ .withCache(new InMemoryCache())
209
+ .withStorage(storage)
210
+ .withOptions({
211
+ featureFlags: {
212
+ enableDualActionCreate: false,
213
+ },
214
+ })
215
+ .build();
216
+ await legacyServer.initialize();
217
+ const drive = driveCreateDocument();
218
+ drive.header.id = driveId;
219
+ await legacyServer.addDocument(drive);
220
+ const doc1Id = generateId();
221
+ await legacyServer.addDocument(createDocumentModelWithId(doc1Id));
222
+ // Switch to dual-action server
223
+ const dualActionServer = new ReactorBuilder(documentModels)
224
+ .withCache(new InMemoryCache())
225
+ .withStorage(storage)
226
+ .withOptions({
227
+ featureFlags: {
228
+ enableDualActionCreate: true,
229
+ },
230
+ })
231
+ .build();
232
+ await dualActionServer.initialize();
233
+ const doc2Id = generateId();
234
+ await dualActionServer.addDocument(createDocumentModelWithId(doc2Id));
235
+ // Retrieve both documents
236
+ const doc1 = await dualActionServer.getDocument(doc1Id);
237
+ const doc2 = await dualActionServer.getDocument(doc2Id);
238
+ // doc1 should have no operations (legacy)
239
+ expect(doc1.operations.global.length).toBe(0);
240
+ // doc2 should have CREATE + UPGRADE (dual-action)
241
+ expect(doc2.operations.global.length).toBe(2);
242
+ expect(doc2.operations.global[0].action.type).toBe("CREATE_DOCUMENT");
243
+ expect(doc2.operations.global[1].action.type).toBe("UPGRADE_DOCUMENT");
244
+ });
245
+ it("should handle document with only partial dual-action operations", async () => {
246
+ // Simulate a corrupted/partial document with only CREATE_DOCUMENT
247
+ const documentId = generateId();
248
+ const document = createDocumentModelWithId(documentId);
249
+ // Add only CREATE_DOCUMENT operation (missing UPGRADE_DOCUMENT)
250
+ document.operations.global.push({
251
+ index: 0,
252
+ skip: 0,
253
+ hash: "create-hash",
254
+ timestampUtcMs: new Date().toISOString(),
255
+ action: {
256
+ id: `${documentId}-create`,
257
+ type: "CREATE_DOCUMENT",
258
+ timestampUtcMs: new Date().toISOString(),
259
+ input: {
260
+ model: documentModelDocumentModelModule.documentModel.global.id,
261
+ version: "0.0.0",
262
+ documentId,
263
+ },
264
+ scope: "global",
265
+ },
266
+ });
267
+ const server = new ReactorBuilder(documentModels)
268
+ .withCache(cache)
269
+ .withStorage(storage)
270
+ .withOptions({
271
+ featureFlags: {
272
+ enableDualActionCreate: true,
273
+ },
274
+ })
275
+ .build();
276
+ await server.initialize();
277
+ // This tests edge case: document with partial operations
278
+ const created = await server.addDocument(document);
279
+ // Should not add additional operations since existingOperations.length > 0
280
+ expect(created.operations.global.length).toBe(1);
281
+ expect(created.operations.global[0].action.type).toBe("CREATE_DOCUMENT");
282
+ // Should be retrievable (even if only partial)
283
+ const retrieved = await server.getDocument(documentId);
284
+ expect(retrieved).toBeDefined();
285
+ });
286
+ it("should not create duplicate operations on document re-import", async () => {
287
+ const server = new ReactorBuilder(documentModels)
288
+ .withCache(cache)
289
+ .withStorage(storage)
290
+ .withOptions({
291
+ featureFlags: {
292
+ enableDualActionCreate: true,
293
+ },
294
+ })
295
+ .build();
296
+ await server.initialize();
297
+ const documentId = generateId();
298
+ const doc1 = await server.addDocument(createDocumentModelWithId(documentId));
299
+ // Export document
300
+ const exported = { ...doc1 };
301
+ // Try to re-import (should fail with DocumentAlreadyExistsError)
302
+ await expect(server.addDocument(exported)).rejects.toThrow(DocumentAlreadyExistsError);
303
+ // Verify no duplicate operations
304
+ const final = await server.getDocument(documentId);
305
+ expect(final.operations.global.length).toBe(2); // Still just CREATE + UPGRADE
306
+ });
307
+ });
308
+ describe("Document type consistency across reactors", () => {
309
+ it("should handle DocumentDrive migration from legacy to dual-action", async () => {
310
+ const driveId = generateId();
311
+ // Create drive with legacy server
312
+ const legacyServer = new ReactorBuilder(documentModels)
313
+ .withCache(new InMemoryCache())
314
+ .withStorage(storage)
315
+ .withOptions({
316
+ featureFlags: {
317
+ enableDualActionCreate: false,
318
+ },
319
+ })
320
+ .build();
321
+ await legacyServer.initialize();
322
+ const drive = driveCreateDocument();
323
+ drive.header.id = driveId;
324
+ const created = await legacyServer.addDocument(drive);
325
+ expect(created.operations.global.length).toBe(0);
326
+ // Retrieve with dual-action server
327
+ const dualActionServer = new ReactorBuilder(documentModels)
328
+ .withCache(new InMemoryCache())
329
+ .withStorage(storage)
330
+ .withOptions({
331
+ featureFlags: {
332
+ enableDualActionCreate: true,
333
+ },
334
+ })
335
+ .build();
336
+ await dualActionServer.initialize();
337
+ const retrieved = await dualActionServer.getDrive(driveId);
338
+ // Should not add operations retroactively
339
+ expect(retrieved.operations.global.length).toBe(0);
340
+ expect(retrieved.state.global.name).toBe(created.state.global.name);
341
+ });
342
+ });
343
+ });
344
+ //# sourceMappingURL=dual-action-migration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dual-action-migration.test.js","sourceRoot":"","sources":["../../test/dual-action-migration.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { addFile, driveDocumentModelModule, expectUTCTimestamp, expectUUID, InternalTransmitter, ReactorBuilder, } from "document-drive";
2
- import { createPresignedHeader, documentModelCreateDocument, documentModelDocumentModelModule, generateId, setModelName, } from "document-model";
2
+ import { documentModelCreateDocument, documentModelDocumentModelModule, setModelName, } from "document-model";
3
+ import { createPresignedHeader, generateId } from "document-model/core";
3
4
  import { beforeEach, describe, expect, test, vi, vitest } from "vitest";
4
5
  describe("Internal Listener", () => {
5
6
  const documentModels = [
@@ -1 +1 @@
1
- {"version":3,"file":"internal-listener.test.js","sourceRoot":"","sources":["../../test/internal-listener.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal-listener.test.js","sourceRoot":"","sources":["../../test/internal-listener.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { EventQueueManager, InMemoryCache, MemoryStorage, ReactorBuilder, addFile, addFolder, addListener, buildOperation, buildOperations, deleteNode, driveDocumentModelModule, driveDocumentReducer, } from "document-drive";
2
- import { createPresignedHeader, documentModelCreateDocument, documentModelDocumentModelModule, generateId, setModelName, } from "document-model";
2
+ import { documentModelCreateDocument, documentModelDocumentModelModule, setModelName, } from "document-model";
3
+ import { createPresignedHeader, generateId } from "document-model/core";
3
4
  import { setTimeout } from "node:timers/promises";
4
5
  import { describe, it } from "vitest";
5
6
  const REDIS_TLS_URL = process.env.REDIS_TLS_URL || "redis://localhost:6379";