@laboverwire/stitch 0.4.1 → 0.5.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 (68) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +8 -5
  3. package/dist/index.d.ts +1 -8
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +0 -7
  6. package/dist/index.js.map +1 -1
  7. package/dist/internal-list-apply.js.map +1 -1
  8. package/dist/react/context.js.map +1 -1
  9. package/dist/react/hooks/useChildCounts.js.map +1 -1
  10. package/dist/react/hooks/useConnectionStatus.js.map +1 -1
  11. package/dist/react/hooks/useEntitySnapshot.js.map +1 -1
  12. package/dist/react/hooks/useRootEntityList.js.map +1 -1
  13. package/dist/react/hooks/useScopedEntities.js.map +1 -1
  14. package/dist/react/hooks/useSyncScope.js.map +1 -1
  15. package/dist/react/hooks/useTopLevelEntities.js.map +1 -1
  16. package/dist/react/index.js.map +1 -1
  17. package/dist/react/provider.d.ts +2 -2
  18. package/dist/react/provider.d.ts.map +1 -1
  19. package/dist/react/provider.js.map +1 -1
  20. package/dist/store.d.ts +2 -2
  21. package/dist/store.d.ts.map +1 -1
  22. package/dist/store.js +190 -724
  23. package/dist/store.js.map +1 -1
  24. package/dist/types.d.ts +23 -161
  25. package/dist/types.d.ts.map +1 -1
  26. package/dist/types.js +1 -6
  27. package/dist/types.js.map +1 -1
  28. package/dist/vue/StitchAuth.js.map +1 -1
  29. package/dist/vue/StoreRoot.js.map +1 -1
  30. package/dist/vue/composables/useChildCounts.js.map +1 -1
  31. package/dist/vue/composables/useConnectionStatus.js.map +1 -1
  32. package/dist/vue/composables/useEntitySnapshot.js.map +1 -1
  33. package/dist/vue/composables/useRootEntityList.js.map +1 -1
  34. package/dist/vue/composables/useScopedEntities.js.map +1 -1
  35. package/dist/vue/composables/useStore.js.map +1 -1
  36. package/dist/vue/composables/useSyncScope.js.map +1 -1
  37. package/dist/vue/composables/useTopLevelEntities.js.map +1 -1
  38. package/dist/vue/index.js.map +1 -1
  39. package/dist/vue/injection-key.js.map +1 -1
  40. package/package.json +17 -8
  41. package/dist/internal-utils.d.ts +0 -3
  42. package/dist/internal-utils.d.ts.map +0 -1
  43. package/dist/internal-utils.js +0 -15
  44. package/dist/internal-utils.js.map +0 -1
  45. package/dist/internal-wasm-error.d.ts +0 -9
  46. package/dist/internal-wasm-error.d.ts.map +0 -1
  47. package/dist/internal-wasm-error.js +0 -48
  48. package/dist/internal-wasm-error.js.map +0 -1
  49. package/dist/memory-store.d.ts +0 -3
  50. package/dist/memory-store.d.ts.map +0 -1
  51. package/dist/memory-store.js +0 -572
  52. package/dist/memory-store.js.map +0 -1
  53. package/dist/offline-queue.d.ts +0 -6
  54. package/dist/offline-queue.d.ts.map +0 -1
  55. package/dist/offline-queue.js +0 -361
  56. package/dist/offline-queue.js.map +0 -1
  57. package/dist/persistence-layer.d.ts +0 -7
  58. package/dist/persistence-layer.d.ts.map +0 -1
  59. package/dist/persistence-layer.js +0 -409
  60. package/dist/persistence-layer.js.map +0 -1
  61. package/dist/remote-sync-layer.d.ts +0 -8
  62. package/dist/remote-sync-layer.d.ts.map +0 -1
  63. package/dist/remote-sync-layer.js +0 -439
  64. package/dist/remote-sync-layer.js.map +0 -1
  65. package/dist/sync-engine.d.ts +0 -3
  66. package/dist/sync-engine.d.ts.map +0 -1
  67. package/dist/sync-engine.js +0 -643
  68. package/dist/sync-engine.js.map +0 -1
@@ -1,361 +0,0 @@
1
- import { OwnershipError } from "./types.js";
2
- import { isTransientSyncError } from "./internal-utils.js";
3
- function consolidateMutations(records) {
4
- const grouped = new Map();
5
- for (const r of records) {
6
- const key = `${r.entity}:${r.entityId}`;
7
- const entry = {
8
- recordId: r.id,
9
- op: r.op,
10
- data: r.data || null,
11
- entity: r.entity,
12
- entityId: r.entityId,
13
- scopeId: r.scopeId,
14
- createdAt: r.createdAt || 0,
15
- };
16
- const arr = grouped.get(key);
17
- if (arr) {
18
- arr.push(entry);
19
- }
20
- else {
21
- grouped.set(key, [entry]);
22
- }
23
- }
24
- const result = [];
25
- for (const [, entries] of grouped) {
26
- entries.sort((a, b) => a.createdAt - b.createdAt);
27
- const recordIds = entries.map((e) => e.recordId);
28
- const minCreatedAt = entries[0].createdAt;
29
- const hasInsert = entries.some((e) => e.op === 'insert');
30
- const hasDelete = entries.some((e) => e.op === 'delete');
31
- const { entity, entityId, scopeId } = entries[0];
32
- if (hasInsert && hasDelete) {
33
- result.push({
34
- op: 'delete',
35
- entity,
36
- id: entityId,
37
- scopeId,
38
- data: null,
39
- recordIds,
40
- minCreatedAt,
41
- });
42
- continue;
43
- }
44
- if (hasInsert) {
45
- const insertEntry = entries.find((e) => e.op === 'insert');
46
- const mergedData = insertEntry.data ? { ...insertEntry.data } : {};
47
- for (const e of entries) {
48
- if (e !== insertEntry && e.data) {
49
- Object.assign(mergedData, e.data);
50
- }
51
- }
52
- result.push({
53
- op: 'insert',
54
- entity,
55
- id: entityId,
56
- scopeId,
57
- data: mergedData,
58
- recordIds,
59
- minCreatedAt,
60
- });
61
- continue;
62
- }
63
- if (hasDelete) {
64
- result.push({
65
- op: 'delete',
66
- entity,
67
- id: entityId,
68
- scopeId,
69
- data: null,
70
- recordIds,
71
- minCreatedAt,
72
- });
73
- continue;
74
- }
75
- const mergedData = {};
76
- for (const e of entries) {
77
- if (e.data)
78
- Object.assign(mergedData, e.data);
79
- }
80
- result.push({
81
- op: 'update',
82
- entity,
83
- id: entityId,
84
- scopeId,
85
- data: Object.keys(mergedData).length > 0 ? mergedData : null,
86
- recordIds,
87
- minCreatedAt,
88
- });
89
- }
90
- const opPriority = { insert: 0, update: 1, delete: 2 };
91
- result.sort((a, b) => {
92
- if (a.minCreatedAt !== b.minCreatedAt)
93
- return a.minCreatedAt - b.minCreatedAt;
94
- return (opPriority[a.op] ?? 1) - (opPriority[b.op] ?? 1);
95
- });
96
- return result;
97
- }
98
- async function flushConsolidated(consolidated, sender, removeRecords, rootEntity) {
99
- for (const mutation of consolidated) {
100
- const { op, entity, id, scopeId, data, recordIds } = mutation;
101
- try {
102
- switch (op) {
103
- case 'insert':
104
- if (data) {
105
- await sender.syncCreate(entity, scopeId, data);
106
- }
107
- break;
108
- case 'update':
109
- if (data) {
110
- await sender.syncUpdate(entity, scopeId, id, data);
111
- }
112
- break;
113
- case 'delete':
114
- await sender.syncDelete(entity, scopeId, id);
115
- break;
116
- }
117
- await removeRecords(recordIds);
118
- }
119
- catch (err) {
120
- const isNotFound = err instanceof Error && /not found/i.test(err.message);
121
- const isConflict = err instanceof Error && /already exists|conflict|duplicate/i.test(err.message);
122
- if (isNotFound && op === 'update' && entity === rootEntity) {
123
- try {
124
- await sender.deleteEntity(entity, id);
125
- }
126
- catch {
127
- // already gone
128
- }
129
- await removeRecords(recordIds);
130
- }
131
- else if (isNotFound && op === 'update') {
132
- try {
133
- const full = await sender.readEntity(entity, id);
134
- await sender.syncCreate(entity, scopeId, full);
135
- await removeRecords(recordIds);
136
- }
137
- catch (upsertErr) {
138
- if (!isTransientSyncError(upsertErr)) {
139
- console.error(`[OfflineQueue] Failed to upsert ${entity} during flush:`, upsertErr);
140
- await removeRecords(recordIds);
141
- }
142
- }
143
- }
144
- else if (isNotFound && op === 'delete') {
145
- await removeRecords(recordIds);
146
- }
147
- else if (isConflict && op === 'insert') {
148
- if (data) {
149
- try {
150
- await sender.syncUpdate(entity, scopeId, id, data);
151
- await removeRecords(recordIds);
152
- }
153
- catch (updateErr) {
154
- if (updateErr instanceof OwnershipError) {
155
- await removeRecords(recordIds);
156
- }
157
- else if (!isTransientSyncError(updateErr)) {
158
- console.error(`[OfflineQueue] Failed to update-on-conflict ${entity} during flush:`, updateErr);
159
- }
160
- }
161
- }
162
- else {
163
- await removeRecords(recordIds);
164
- }
165
- }
166
- else if (err instanceof OwnershipError) {
167
- await removeRecords(recordIds);
168
- }
169
- else if (isTransientSyncError(err)) {
170
- // leave for next flush cycle
171
- }
172
- else {
173
- console.error('[OfflineQueue] Failed to flush mutation:', err);
174
- }
175
- }
176
- }
177
- }
178
- class PersistentOfflineQueue {
179
- persistence;
180
- rootEntity;
181
- authenticatedUser = null;
182
- flushing = false;
183
- constructor(persistence, rootEntity) {
184
- this.persistence = persistence;
185
- this.rootEntity = rootEntity;
186
- }
187
- setAuthenticatedUser(userId) {
188
- this.authenticatedUser = userId;
189
- }
190
- async queue(mutation) {
191
- if (!this.authenticatedUser)
192
- return;
193
- try {
194
- const record = {
195
- id: crypto.randomUUID(),
196
- op: mutation.op,
197
- entity: mutation.entity,
198
- entityId: mutation.id,
199
- scopeId: mutation.scopeId,
200
- userId: this.authenticatedUser,
201
- createdAt: Date.now(),
202
- };
203
- if (mutation.data !== null) {
204
- record.data = mutation.data;
205
- }
206
- await this.persistence.create('pending_sync', record);
207
- }
208
- catch (err) {
209
- console.error('[PersistentOfflineQueue] Failed to persist pending mutation:', err);
210
- }
211
- }
212
- async remove(entity, entityId, scopeId, op) {
213
- try {
214
- const filters = [
215
- { field: 'entity', op: 'eq', value: entity },
216
- { field: 'entityId', op: 'eq', value: entityId },
217
- { field: 'scopeId', op: 'eq', value: scopeId },
218
- { field: 'op', op: 'eq', value: op },
219
- ];
220
- if (this.authenticatedUser) {
221
- filters.push({ field: 'userId', op: 'eq', value: this.authenticatedUser });
222
- }
223
- const records = await this.persistence.list('pending_sync', { filters });
224
- for (const record of records) {
225
- await this.persistence.delete('pending_sync', record.id);
226
- }
227
- }
228
- catch (err) {
229
- console.error('[PersistentOfflineQueue] Failed to remove pending mutation:', err);
230
- }
231
- }
232
- async flush(sender) {
233
- if (this.flushing || !this.authenticatedUser)
234
- return;
235
- this.flushing = true;
236
- try {
237
- const pendingRecords = await this.persistence.list('pending_sync', {
238
- filters: [{ field: 'userId', op: 'eq', value: this.authenticatedUser }],
239
- });
240
- if (pendingRecords.length === 0)
241
- return;
242
- const consolidated = consolidateMutations(pendingRecords);
243
- const removeRecords = async (ids) => {
244
- for (const id of ids) {
245
- try {
246
- await this.persistence.delete('pending_sync', id);
247
- }
248
- catch {
249
- // already cleaned up
250
- }
251
- }
252
- };
253
- await flushConsolidated(consolidated, sender, removeRecords, this.rootEntity);
254
- }
255
- finally {
256
- this.flushing = false;
257
- }
258
- }
259
- async clear() {
260
- if (!this.authenticatedUser)
261
- return;
262
- const records = await this.persistence.list('pending_sync', {
263
- filters: [{ field: 'userId', op: 'eq', value: this.authenticatedUser }],
264
- });
265
- for (const record of records) {
266
- try {
267
- await this.persistence.delete('pending_sync', record.id);
268
- }
269
- catch { }
270
- }
271
- }
272
- async getPendingForScope(scopeId) {
273
- const filters = [
274
- { field: 'scopeId', op: 'eq', value: scopeId },
275
- ];
276
- if (this.authenticatedUser) {
277
- filters.push({ field: 'userId', op: 'eq', value: this.authenticatedUser });
278
- }
279
- const records = await this.persistence.list('pending_sync', { filters });
280
- return records.map((r) => ({
281
- op: r.op,
282
- entity: r.entity,
283
- id: r.entityId,
284
- scopeId: r.scopeId,
285
- data: r.data || null,
286
- }));
287
- }
288
- async hasPendingInsert(entity, entityId) {
289
- const records = await this.persistence.list('pending_sync', {
290
- filters: [
291
- { field: 'entity', op: 'eq', value: entity },
292
- { field: 'entityId', op: 'eq', value: entityId },
293
- { field: 'op', op: 'eq', value: 'insert' },
294
- ],
295
- });
296
- return records.length > 0;
297
- }
298
- }
299
- class InMemoryOfflineQueue {
300
- pending = [];
301
- rootEntity;
302
- flushing = false;
303
- constructor(rootEntity) {
304
- this.rootEntity = rootEntity;
305
- }
306
- async queue(mutation) {
307
- this.pending.push({
308
- ...mutation,
309
- recordId: crypto.randomUUID(),
310
- createdAt: Date.now(),
311
- });
312
- }
313
- async remove(entity, entityId, scopeId, op) {
314
- this.pending = this.pending.filter((p) => !(p.entity === entity && p.id === entityId && p.scopeId === scopeId && p.op === op));
315
- }
316
- async flush(sender) {
317
- if (this.flushing || this.pending.length === 0)
318
- return;
319
- this.flushing = true;
320
- try {
321
- const records = this.pending.map((p) => ({
322
- id: p.recordId,
323
- op: p.op,
324
- entity: p.entity,
325
- entityId: p.id,
326
- scopeId: p.scopeId,
327
- data: p.data,
328
- createdAt: p.createdAt,
329
- }));
330
- const consolidated = consolidateMutations(records);
331
- const flushedIds = new Set();
332
- const removeRecords = async (ids) => {
333
- for (const id of ids)
334
- flushedIds.add(id);
335
- };
336
- await flushConsolidated(consolidated, sender, removeRecords, this.rootEntity);
337
- this.pending = this.pending.filter((p) => !flushedIds.has(p.recordId));
338
- }
339
- finally {
340
- this.flushing = false;
341
- }
342
- }
343
- async clear() {
344
- this.pending = [];
345
- }
346
- async getPendingForScope(scopeId) {
347
- return this.pending
348
- .filter((p) => p.scopeId === scopeId)
349
- .map((p) => ({ op: p.op, entity: p.entity, id: p.id, scopeId: p.scopeId, data: p.data }));
350
- }
351
- async hasPendingInsert(entity, entityId) {
352
- return this.pending.some((p) => p.entity === entity && p.id === entityId && p.op === 'insert');
353
- }
354
- }
355
- export function createPersistentOfflineQueue(persistence, rootEntity) {
356
- return new PersistentOfflineQueue(persistence, rootEntity);
357
- }
358
- export function createInMemoryOfflineQueue(rootEntity) {
359
- return new InMemoryOfflineQueue(rootEntity);
360
- }
361
- //# sourceMappingURL=offline-queue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"offline-queue.js","sourceRoot":"","sources":["../src/offline-queue.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { StoreConfig, PersistenceLayer } from './types.ts';
2
- export declare function createPersistenceLayer(config: StoreConfig): PersistenceLayer & {
3
- notifyCorruption(): void;
4
- setSuppressNotifications(suppress: boolean): void;
5
- notifyAllEntitySubscribers(): void;
6
- };
7
- //# sourceMappingURL=persistence-layer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persistence-layer.d.ts","sourceRoot":"","sources":["../src/persistence-layer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAoalF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,gBAAgB,GAAG;IAC9E,gBAAgB,IAAI,IAAI,CAAC;IACzB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD,0BAA0B,IAAI,IAAI,CAAC;CACpC,CAEA"}