@verdant-web/common 1.11.0 → 1.12.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 (159) hide show
  1. package/dist/cjs/EventSubscriber.d.ts +17 -17
  2. package/dist/cjs/EventSubscriber.js +66 -66
  3. package/dist/cjs/baseline.d.ts +5 -5
  4. package/dist/cjs/baseline.js +2 -2
  5. package/dist/cjs/batching.d.ts +41 -41
  6. package/dist/cjs/batching.js +88 -88
  7. package/dist/cjs/files.d.ts +19 -19
  8. package/dist/cjs/files.js +18 -18
  9. package/dist/cjs/index.d.ts +18 -18
  10. package/dist/cjs/index.js +35 -35
  11. package/dist/cjs/indexes.d.ts +14 -14
  12. package/dist/cjs/indexes.js +115 -115
  13. package/dist/cjs/indexes.test.d.ts +1 -1
  14. package/dist/cjs/indexes.test.js +127 -127
  15. package/dist/cjs/migration.d.ts +98 -98
  16. package/dist/cjs/migration.js +127 -127
  17. package/dist/cjs/oids.d.ts +85 -87
  18. package/dist/cjs/oids.js +363 -374
  19. package/dist/cjs/oids.js.map +1 -1
  20. package/dist/cjs/oids.test.d.ts +1 -1
  21. package/dist/cjs/oids.test.js +269 -251
  22. package/dist/cjs/oids.test.js.map +1 -1
  23. package/dist/cjs/operation.d.ts +139 -139
  24. package/dist/cjs/operation.js +532 -532
  25. package/dist/cjs/operation.js.map +1 -1
  26. package/dist/cjs/operation.test.d.ts +1 -1
  27. package/dist/cjs/operation.test.js +505 -505
  28. package/dist/cjs/operation.test.js.map +1 -1
  29. package/dist/cjs/patch.d.ts +26 -26
  30. package/dist/cjs/patch.js +226 -226
  31. package/dist/cjs/patch.js.map +1 -1
  32. package/dist/cjs/presence.d.ts +27 -27
  33. package/dist/cjs/presence.js +2 -2
  34. package/dist/cjs/protocol.d.ts +145 -145
  35. package/dist/cjs/protocol.js +3 -3
  36. package/dist/cjs/refs.d.ts +5 -5
  37. package/dist/cjs/refs.js +21 -21
  38. package/dist/cjs/replica.d.ts +28 -28
  39. package/dist/cjs/replica.js +28 -28
  40. package/dist/cjs/schema/defaults.d.ts +4 -4
  41. package/dist/cjs/schema/defaults.js +71 -71
  42. package/dist/cjs/schema/defaults.test.d.ts +1 -1
  43. package/dist/cjs/schema/defaults.test.js +20 -20
  44. package/dist/cjs/schema/defaults.test.js.map +1 -1
  45. package/dist/cjs/schema/index.d.ts +8 -8
  46. package/dist/cjs/schema/index.js +28 -28
  47. package/dist/cjs/schema/indexFilters.d.ts +6 -6
  48. package/dist/cjs/schema/indexFilters.js +30 -30
  49. package/dist/cjs/schema/types/collection.d.ts +51 -51
  50. package/dist/cjs/schema/types/collection.js +2 -2
  51. package/dist/cjs/schema/types/compounds.d.ts +12 -12
  52. package/dist/cjs/schema/types/compounds.js +2 -2
  53. package/dist/cjs/schema/types/fields.d.ts +59 -59
  54. package/dist/cjs/schema/types/fields.js +2 -2
  55. package/dist/cjs/schema/types/filters.d.ts +29 -29
  56. package/dist/cjs/schema/types/filters.js +2 -2
  57. package/dist/cjs/schema/types/shapes.d.ts +21 -21
  58. package/dist/cjs/schema/types/shapes.js +2 -2
  59. package/dist/cjs/schema/types/synthetics.d.ts +28 -28
  60. package/dist/cjs/schema/types/synthetics.js +2 -2
  61. package/dist/cjs/schema/types.d.ts +18 -18
  62. package/dist/cjs/schema/types.js +22 -22
  63. package/dist/cjs/timestamp.d.ts +48 -48
  64. package/dist/cjs/timestamp.js +243 -243
  65. package/dist/cjs/timestamp.test.d.ts +1 -1
  66. package/dist/cjs/timestamp.test.js +93 -93
  67. package/dist/cjs/undo.d.ts +3 -3
  68. package/dist/cjs/undo.js +198 -198
  69. package/dist/cjs/utils.d.ts +15 -15
  70. package/dist/cjs/utils.js +127 -127
  71. package/dist/cjs/utils.test.d.ts +1 -1
  72. package/dist/cjs/utils.test.js +36 -36
  73. package/dist/esm/EventSubscriber.d.ts +17 -17
  74. package/dist/esm/EventSubscriber.js +62 -62
  75. package/dist/esm/baseline.d.ts +5 -5
  76. package/dist/esm/baseline.js +1 -1
  77. package/dist/esm/batching.d.ts +41 -41
  78. package/dist/esm/batching.js +83 -83
  79. package/dist/esm/files.d.ts +19 -19
  80. package/dist/esm/files.js +12 -12
  81. package/dist/esm/index.d.ts +18 -18
  82. package/dist/esm/index.js +15 -15
  83. package/dist/esm/indexes.d.ts +14 -14
  84. package/dist/esm/indexes.js +105 -105
  85. package/dist/esm/indexes.test.d.ts +1 -1
  86. package/dist/esm/indexes.test.js +125 -125
  87. package/dist/esm/migration.d.ts +98 -98
  88. package/dist/esm/migration.js +121 -121
  89. package/dist/esm/oids.d.ts +85 -87
  90. package/dist/esm/oids.js +336 -347
  91. package/dist/esm/oids.js.map +1 -1
  92. package/dist/esm/oids.test.d.ts +1 -1
  93. package/dist/esm/oids.test.js +267 -249
  94. package/dist/esm/oids.test.js.map +1 -1
  95. package/dist/esm/operation.d.ts +139 -139
  96. package/dist/esm/operation.js +517 -517
  97. package/dist/esm/operation.js.map +1 -1
  98. package/dist/esm/operation.test.d.ts +1 -1
  99. package/dist/esm/operation.test.js +503 -503
  100. package/dist/esm/operation.test.js.map +1 -1
  101. package/dist/esm/patch.d.ts +26 -26
  102. package/dist/esm/patch.js +222 -222
  103. package/dist/esm/patch.js.map +1 -1
  104. package/dist/esm/presence.d.ts +27 -27
  105. package/dist/esm/presence.js +1 -1
  106. package/dist/esm/protocol.d.ts +145 -145
  107. package/dist/esm/protocol.js +2 -2
  108. package/dist/esm/refs.d.ts +5 -5
  109. package/dist/esm/refs.js +16 -16
  110. package/dist/esm/replica.d.ts +28 -28
  111. package/dist/esm/replica.js +25 -25
  112. package/dist/esm/schema/defaults.d.ts +4 -4
  113. package/dist/esm/schema/defaults.js +65 -65
  114. package/dist/esm/schema/defaults.test.d.ts +1 -1
  115. package/dist/esm/schema/defaults.test.js +18 -18
  116. package/dist/esm/schema/defaults.test.js.map +1 -1
  117. package/dist/esm/schema/index.d.ts +8 -8
  118. package/dist/esm/schema/index.js +9 -9
  119. package/dist/esm/schema/indexFilters.d.ts +6 -6
  120. package/dist/esm/schema/indexFilters.js +22 -22
  121. package/dist/esm/schema/types/collection.d.ts +51 -51
  122. package/dist/esm/schema/types/collection.js +1 -1
  123. package/dist/esm/schema/types/compounds.d.ts +12 -12
  124. package/dist/esm/schema/types/compounds.js +1 -1
  125. package/dist/esm/schema/types/fields.d.ts +59 -59
  126. package/dist/esm/schema/types/fields.js +1 -1
  127. package/dist/esm/schema/types/filters.d.ts +29 -29
  128. package/dist/esm/schema/types/filters.js +1 -1
  129. package/dist/esm/schema/types/shapes.d.ts +21 -21
  130. package/dist/esm/schema/types/shapes.js +1 -1
  131. package/dist/esm/schema/types/synthetics.d.ts +28 -28
  132. package/dist/esm/schema/types/synthetics.js +1 -1
  133. package/dist/esm/schema/types.d.ts +18 -18
  134. package/dist/esm/schema/types.js +6 -6
  135. package/dist/esm/timestamp.d.ts +48 -48
  136. package/dist/esm/timestamp.js +228 -228
  137. package/dist/esm/timestamp.test.d.ts +1 -1
  138. package/dist/esm/timestamp.test.js +91 -91
  139. package/dist/esm/undo.d.ts +3 -3
  140. package/dist/esm/undo.js +194 -194
  141. package/dist/esm/utils.d.ts +15 -15
  142. package/dist/esm/utils.js +113 -113
  143. package/dist/esm/utils.test.d.ts +1 -1
  144. package/dist/esm/utils.test.js +34 -34
  145. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  146. package/dist/tsconfig.tsbuildinfo +1 -1
  147. package/package.json +1 -1
  148. package/src/oids.test.ts +62 -51
  149. package/src/oids.ts +7 -26
  150. package/src/operation.test.ts +32 -40
  151. package/src/operation.ts +4 -16
  152. package/src/patch.ts +5 -15
  153. package/src/schema/defaults.test.ts +1 -1
  154. package/dist/cjs/files.test.d.ts +0 -1
  155. package/dist/cjs/files.test.js +0 -81
  156. package/dist/cjs/files.test.js.map +0 -1
  157. package/dist/esm/files.test.d.ts +0 -1
  158. package/dist/esm/files.test.js +0 -79
  159. package/dist/esm/files.test.js.map +0 -1
@@ -28,7 +28,7 @@ describe('creating diff patch operations', () => {
28
28
  assignOid(from, 'test/a');
29
29
  const to = { foo: 'bar', baz: 'pop' };
30
30
  assignOid(to, 'test/a');
31
- const ops = diffToPatches(from, to, createClock(), []);
31
+ const ops = diffToPatches(from, to, createClock());
32
32
  expect(ops).toMatchInlineSnapshot(`
33
33
  [
34
34
  {
@@ -70,7 +70,7 @@ describe('creating diff patch operations', () => {
70
70
  },
71
71
  'test/a',
72
72
  );
73
- const patches = diffToPatches(from, to, createClock(), []);
73
+ const patches = diffToPatches(from, to, createClock());
74
74
  expect(patches).toMatchInlineSnapshot(`
75
75
  [
76
76
  {
@@ -118,7 +118,7 @@ describe('creating diff patch operations', () => {
118
118
  };
119
119
  assignOid(to, 'test/a');
120
120
  assignOid(to.baz, 'test/a:1');
121
- const patches = diffToPatches(from, to, createClock(), []);
121
+ const patches = diffToPatches(from, to, createClock());
122
122
  expect(patches).toMatchInlineSnapshot(`
123
123
  [
124
124
  {
@@ -166,7 +166,7 @@ describe('creating diff patch operations', () => {
166
166
  };
167
167
  assignOid(to, 'test/a');
168
168
  assignOid(to.baz, 'test/a:0');
169
- const patches = diffToPatches(from, to, createClock(), []);
169
+ const patches = diffToPatches(from, to, createClock());
170
170
  expect(patches).toEqual([]);
171
171
  });
172
172
  it('patches sub-objects with same identity', () => {
@@ -182,7 +182,7 @@ describe('creating diff patch operations', () => {
182
182
  };
183
183
  assignOid(to, 'test/a');
184
184
  assignOid(to.baz, 'test/a:0');
185
- const patches = diffToPatches(from, to, createClock(), []);
185
+ const patches = diffToPatches(from, to, createClock());
186
186
  expect(patches).toMatchInlineSnapshot(`
187
187
  [
188
188
  {
@@ -208,18 +208,10 @@ describe('creating diff patch operations', () => {
208
208
  foo: 'bip',
209
209
  };
210
210
  assignOid(to, 'test/a');
211
- const patches = diffToPatches(
212
- from,
213
- to,
214
- createClock(),
215
- [],
216
- undefined,
217
- [],
218
- {
219
- defaultUndefined: true,
220
- mergeUnknownObjects: true,
221
- },
222
- );
211
+ const patches = diffToPatches(from, to, createClock(), undefined, [], {
212
+ defaultUndefined: true,
213
+ mergeUnknownObjects: true,
214
+ });
223
215
  expect(patches).toMatchInlineSnapshot(`
224
216
  [
225
217
  {
@@ -303,7 +295,7 @@ describe('creating diff patch operations', () => {
303
295
  assignOid(to.baz, 'test/a:3');
304
296
  assignOid(to.baz[0], 'test/a:4');
305
297
  assignOid(to.baz[1], 'test/a:5');
306
- expect(diffToPatches(from, to, createClock(), [])).toMatchInlineSnapshot(`
298
+ expect(diffToPatches(from, to, createClock())).toMatchInlineSnapshot(`
307
299
  [
308
300
  {
309
301
  "data": {
@@ -400,7 +392,7 @@ describe('creating diff patch operations', () => {
400
392
  ],
401
393
  };
402
394
  expect(
403
- diffToPatches(from, to, createClock(), [], createClock(5), [], {
395
+ diffToPatches(from, to, createClock(), createClock(5), [], {
404
396
  mergeUnknownObjects: true,
405
397
  }),
406
398
  ).toMatchInlineSnapshot(`
@@ -411,7 +403,7 @@ describe('creating diff patch operations', () => {
411
403
  "index": 2,
412
404
  "op": "list-delete",
413
405
  },
414
- "oid": "test/a.foo.bar:1",
406
+ "oid": "test/a:1",
415
407
  "timestamp": "0",
416
408
  },
417
409
  {
@@ -421,7 +413,7 @@ describe('creating diff patch operations', () => {
421
413
  0,
422
414
  ],
423
415
  },
424
- "oid": "test/a.foo.bop:5",
416
+ "oid": "test/a:5",
425
417
  "timestamp": "1",
426
418
  },
427
419
  {
@@ -430,10 +422,10 @@ describe('creating diff patch operations', () => {
430
422
  "op": "set",
431
423
  "value": {
432
424
  "@@type": "ref",
433
- "id": "test/a.foo.bop:5",
425
+ "id": "test/a:5",
434
426
  },
435
427
  },
436
- "oid": "test/a.foo:0",
428
+ "oid": "test/a:0",
437
429
  "timestamp": "2",
438
430
  },
439
431
  {
@@ -442,7 +434,7 @@ describe('creating diff patch operations', () => {
442
434
  "op": "set",
443
435
  "value": false,
444
436
  },
445
- "oid": "test/a.baz.#:3",
437
+ "oid": "test/a:3",
446
438
  "timestamp": "3",
447
439
  },
448
440
  {
@@ -452,7 +444,7 @@ describe('creating diff patch operations', () => {
452
444
  "corge": false,
453
445
  },
454
446
  },
455
- "oid": "test/a.baz.#:6",
447
+ "oid": "test/a:6",
456
448
  "timestamp": "4",
457
449
  },
458
450
  {
@@ -461,10 +453,10 @@ describe('creating diff patch operations', () => {
461
453
  "op": "set",
462
454
  "value": {
463
455
  "@@type": "ref",
464
- "id": "test/a.baz.#:6",
456
+ "id": "test/a:6",
465
457
  },
466
458
  },
467
- "oid": "test/a.baz:2",
459
+ "oid": "test/a:2",
468
460
  "timestamp": "5",
469
461
  },
470
462
  ]
@@ -488,7 +480,7 @@ describe('creating diff patch operations', () => {
488
480
  bar: [createFileRef('def456')],
489
481
  };
490
482
  expect(
491
- diffToPatches(from, to, createClock(), [], createClock(5), [], {
483
+ diffToPatches(from, to, createClock(), createClock(5), [], {
492
484
  mergeUnknownObjects: true,
493
485
  }),
494
486
  ).toMatchInlineSnapshot(`
@@ -502,7 +494,7 @@ describe('creating diff patch operations', () => {
502
494
  "id": "abc456",
503
495
  },
504
496
  },
505
- "oid": "test/a.foo:0",
497
+ "oid": "test/a:0",
506
498
  "timestamp": "0",
507
499
  },
508
500
  {
@@ -511,7 +503,7 @@ describe('creating diff patch operations', () => {
511
503
  "index": 1,
512
504
  "op": "list-delete",
513
505
  },
514
- "oid": "test/a.bar:1",
506
+ "oid": "test/a:1",
515
507
  "timestamp": "1",
516
508
  },
517
509
  ]
@@ -730,7 +722,7 @@ describe('creating patches from initial state', () => {
730
722
  "bar": "baz",
731
723
  },
732
724
  },
733
- "oid": "test/a.foo:0",
725
+ "oid": "test/a:0",
734
726
  "timestamp": "0",
735
727
  },
736
728
  {
@@ -740,7 +732,7 @@ describe('creating patches from initial state', () => {
740
732
  "corge": "grault",
741
733
  },
742
734
  },
743
- "oid": "test/a.qux.#:2",
735
+ "oid": "test/a:2",
744
736
  "timestamp": "1",
745
737
  },
746
738
  {
@@ -750,7 +742,7 @@ describe('creating patches from initial state', () => {
750
742
  "oof": 1,
751
743
  },
752
744
  },
753
- "oid": "test/a.qux.#.bin:4",
745
+ "oid": "test/a:4",
754
746
  "timestamp": "2",
755
747
  },
756
748
  {
@@ -759,11 +751,11 @@ describe('creating patches from initial state', () => {
759
751
  "value": {
760
752
  "bin": {
761
753
  "@@type": "ref",
762
- "id": "test/a.qux.#.bin:4",
754
+ "id": "test/a:4",
763
755
  },
764
756
  },
765
757
  },
766
- "oid": "test/a.qux.#:3",
758
+ "oid": "test/a:3",
767
759
  "timestamp": "3",
768
760
  },
769
761
  {
@@ -772,15 +764,15 @@ describe('creating patches from initial state', () => {
772
764
  "value": [
773
765
  {
774
766
  "@@type": "ref",
775
- "id": "test/a.qux.#:2",
767
+ "id": "test/a:2",
776
768
  },
777
769
  {
778
770
  "@@type": "ref",
779
- "id": "test/a.qux.#:3",
771
+ "id": "test/a:3",
780
772
  },
781
773
  ],
782
774
  },
783
- "oid": "test/a.qux:1",
775
+ "oid": "test/a:1",
784
776
  "timestamp": "4",
785
777
  },
786
778
  {
@@ -789,11 +781,11 @@ describe('creating patches from initial state', () => {
789
781
  "value": {
790
782
  "foo": {
791
783
  "@@type": "ref",
792
- "id": "test/a.foo:0",
784
+ "id": "test/a:0",
793
785
  },
794
786
  "qux": {
795
787
  "@@type": "ref",
796
- "id": "test/a.qux:1",
788
+ "id": "test/a:1",
797
789
  },
798
790
  },
799
791
  },
package/src/operation.ts CHANGED
@@ -4,20 +4,17 @@ import {
4
4
  assignOid,
5
5
  assignOidsToAllSubObjects,
6
6
  createRef,
7
- decomposeOid,
8
7
  ensureOid,
9
8
  getOid,
10
9
  getOidRoot,
11
10
  isOidKey,
12
- KeyPath,
13
11
  maybeGetOid,
14
12
  normalize,
15
13
  ObjectIdentifier,
16
- OID_KEY,
17
14
  removeOid,
18
15
  } from './oids.js';
19
16
  import { compareRefs, isRef } from './refs.js';
20
- import { isObject, assert, cloneDeep, findLastIndex } from './utils.js';
17
+ import { assert, cloneDeep, findLastIndex, isObject } from './utils.js';
21
18
 
22
19
  // export type ObjectIdentifier<
23
20
  // CollectionName extends string = string,
@@ -161,7 +158,6 @@ export function diffToPatches<T extends { [key: string]: any } | any[]>(
161
158
  from: T,
162
159
  to: T,
163
160
  getNow: () => string,
164
- keyPath: KeyPath,
165
161
  createSubId?: () => string,
166
162
  patches: Operation[] = [],
167
163
  options: {
@@ -198,7 +194,7 @@ export function diffToPatches<T extends { [key: string]: any } | any[]>(
198
194
  const oldValueOid = maybeGetOid(oldValue);
199
195
  let valueOid;
200
196
  if (!options.mergeUnknownObjects) {
201
- valueOid = ensureOid(value, oid, key, createSubId);
197
+ valueOid = ensureOid(value, oid, createSubId);
202
198
  } else {
203
199
  // if merge unknown objects is requested, we copy the previous value's oid
204
200
  // to any mirrored new value if it doesn't have one assigned already.
@@ -207,7 +203,7 @@ export function diffToPatches<T extends { [key: string]: any } | any[]>(
207
203
  assignOid(value, oldValueOid);
208
204
  valueOid = oldValueOid;
209
205
  } else {
210
- valueOid = ensureOid(value, oid, key, createSubId);
206
+ valueOid = ensureOid(value, oid, createSubId);
211
207
  }
212
208
  }
213
209
 
@@ -239,15 +235,7 @@ export function diffToPatches<T extends { [key: string]: any } | any[]>(
239
235
  } else {
240
236
  // third case: OIDs are the same, meaning the identity is the same,
241
237
  // and we must diff the objects
242
- diffToPatches(
243
- oldValue,
244
- value,
245
- getNow,
246
- [...keyPath, key],
247
- createSubId,
248
- patches,
249
- options,
250
- );
238
+ diffToPatches(oldValue, value, getNow, createSubId, patches, options);
251
239
  }
252
240
  }
253
241
  }
package/src/patch.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * High-level patch creation for use with complex nested objects.
3
3
  */
4
4
 
5
- import { createRef, createSubOid, KeyPath, ObjectIdentifier } from './oids.js';
5
+ import { createRef, createSubOid, ObjectIdentifier } from './oids.js';
6
6
  import {
7
7
  diffToPatches,
8
8
  initialToPatches,
@@ -22,18 +22,9 @@ export class PatchCreator {
22
22
  createDiff = (
23
23
  from: any,
24
24
  to: any,
25
- keyPath: KeyPath,
26
25
  options: { mergeUnknownObjects?: boolean; defaultUndefined?: boolean } = {},
27
26
  ) => {
28
- return diffToPatches(
29
- from,
30
- to,
31
- this.getNow,
32
- keyPath,
33
- this.createSubId,
34
- [],
35
- options,
36
- );
27
+ return diffToPatches(from, to, this.getNow, this.createSubId, [], options);
37
28
  };
38
29
 
39
30
  createInitialize = (obj: any, oid: ObjectIdentifier) => {
@@ -44,7 +35,6 @@ export class PatchCreator {
44
35
  oid: ObjectIdentifier,
45
36
  key: PropertyName,
46
37
  value: any,
47
- keyPath: KeyPath,
48
38
  ): Operation[] => {
49
39
  // incoming value must be normalized. if it's not a primitive, it and all sub-objects
50
40
  // must be created
@@ -61,7 +51,7 @@ export class PatchCreator {
61
51
  },
62
52
  ];
63
53
  } else {
64
- const itemOid = createSubOid(oid, key, this.createSubId);
54
+ const itemOid = createSubOid(oid, this.createSubId);
65
55
  return [
66
56
  // since we're setting a complex nested object, we can initialize it wholesale.
67
57
  // no diffing to do.
@@ -106,7 +96,7 @@ export class PatchCreator {
106
96
  },
107
97
  ];
108
98
  } else {
109
- const itemOid = createSubOid(oid, 0, this.createSubId);
99
+ const itemOid = createSubOid(oid, this.createSubId);
110
100
  return [
111
101
  ...initialToPatches(value, itemOid, this.getNow),
112
102
  {
@@ -165,7 +155,7 @@ export class PatchCreator {
165
155
  },
166
156
  ];
167
157
  } else {
168
- const itemOid = createSubOid(oid, index, this.createSubId);
158
+ const itemOid = createSubOid(oid, this.createSubId);
169
159
  return [
170
160
  ...initialToPatches(value, itemOid, this.getNow),
171
161
  {
@@ -12,7 +12,7 @@ describe('getting field defaults', () => {
12
12
  },
13
13
  } as const;
14
14
  const first = getFieldDefault(field);
15
- assignOid(first, createOid('test', '1', []));
15
+ assignOid(first, createOid('test', '1'));
16
16
  const second = getFieldDefault(field);
17
17
  expect(maybeGetOid(second)).toBe(undefined);
18
18
  });
@@ -1 +0,0 @@
1
- export {};
@@ -1,81 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const files_js_1 = require("./files.js");
5
- function makeFile() {
6
- return new File([''], 'test.txt', { type: 'text/plain' });
7
- }
8
- (0, vitest_1.describe)('processing files in a value', () => {
9
- (0, vitest_1.it)('replaces a single file with a reference', () => {
10
- const file = makeFile();
11
- const list = [];
12
- const result = (0, files_js_1.processValueFiles)(file, list.push.bind(list));
13
- (0, vitest_1.expect)(result).toEqual({
14
- '@@type': 'file',
15
- id: vitest_1.expect.stringContaining(''),
16
- });
17
- (0, vitest_1.expect)(list).toEqual([
18
- {
19
- id: vitest_1.expect.stringContaining(''),
20
- blob: file,
21
- url: null,
22
- remote: false,
23
- name: 'test.txt',
24
- type: 'text/plain',
25
- },
26
- ]);
27
- });
28
- (0, vitest_1.it)('replaces a list of files with references', () => {
29
- const file1 = makeFile();
30
- const file2 = makeFile();
31
- const list = [];
32
- const result = (0, files_js_1.processValueFiles)([file1, file2], list.push.bind(list));
33
- (0, vitest_1.expect)(result).toEqual([
34
- { '@@type': 'file', id: vitest_1.expect.stringContaining('') },
35
- { '@@type': 'file', id: vitest_1.expect.stringContaining('') },
36
- ]);
37
- (0, vitest_1.expect)(list).toEqual([
38
- {
39
- id: vitest_1.expect.stringContaining(''),
40
- blob: file1,
41
- url: null,
42
- remote: false,
43
- name: 'test.txt',
44
- type: 'text/plain',
45
- },
46
- {
47
- id: vitest_1.expect.stringContaining(''),
48
- blob: file2,
49
- url: null,
50
- remote: false,
51
- name: 'test.txt',
52
- type: 'text/plain',
53
- },
54
- ]);
55
- (0, vitest_1.expect)(result[0].id).not.toEqual(result[1].id);
56
- });
57
- (0, vitest_1.it)('replaces nested files with references', () => {
58
- const file = makeFile();
59
- const list = [];
60
- const result = (0, files_js_1.processValueFiles)({ a: { b: file } }, list.push.bind(list));
61
- (0, vitest_1.expect)(result).toEqual({
62
- a: {
63
- b: {
64
- '@@type': 'file',
65
- id: vitest_1.expect.stringContaining(''),
66
- },
67
- },
68
- });
69
- (0, vitest_1.expect)(list).toEqual([
70
- {
71
- id: vitest_1.expect.stringContaining(''),
72
- blob: file,
73
- url: null,
74
- remote: false,
75
- name: 'test.txt',
76
- type: 'text/plain',
77
- },
78
- ]);
79
- });
80
- });
81
- //# sourceMappingURL=files.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"files.test.js","sourceRoot":"","sources":["../../src/files.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,79 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { processValueFiles } from './files.js';
3
- function makeFile() {
4
- return new File([''], 'test.txt', { type: 'text/plain' });
5
- }
6
- describe('processing files in a value', () => {
7
- it('replaces a single file with a reference', () => {
8
- const file = makeFile();
9
- const list = [];
10
- const result = processValueFiles(file, list.push.bind(list));
11
- expect(result).toEqual({
12
- '@@type': 'file',
13
- id: expect.stringContaining(''),
14
- });
15
- expect(list).toEqual([
16
- {
17
- id: expect.stringContaining(''),
18
- blob: file,
19
- url: null,
20
- remote: false,
21
- name: 'test.txt',
22
- type: 'text/plain',
23
- },
24
- ]);
25
- });
26
- it('replaces a list of files with references', () => {
27
- const file1 = makeFile();
28
- const file2 = makeFile();
29
- const list = [];
30
- const result = processValueFiles([file1, file2], list.push.bind(list));
31
- expect(result).toEqual([
32
- { '@@type': 'file', id: expect.stringContaining('') },
33
- { '@@type': 'file', id: expect.stringContaining('') },
34
- ]);
35
- expect(list).toEqual([
36
- {
37
- id: expect.stringContaining(''),
38
- blob: file1,
39
- url: null,
40
- remote: false,
41
- name: 'test.txt',
42
- type: 'text/plain',
43
- },
44
- {
45
- id: expect.stringContaining(''),
46
- blob: file2,
47
- url: null,
48
- remote: false,
49
- name: 'test.txt',
50
- type: 'text/plain',
51
- },
52
- ]);
53
- expect(result[0].id).not.toEqual(result[1].id);
54
- });
55
- it('replaces nested files with references', () => {
56
- const file = makeFile();
57
- const list = [];
58
- const result = processValueFiles({ a: { b: file } }, list.push.bind(list));
59
- expect(result).toEqual({
60
- a: {
61
- b: {
62
- '@@type': 'file',
63
- id: expect.stringContaining(''),
64
- },
65
- },
66
- });
67
- expect(list).toEqual([
68
- {
69
- id: expect.stringContaining(''),
70
- blob: file,
71
- url: null,
72
- remote: false,
73
- name: 'test.txt',
74
- type: 'text/plain',
75
- },
76
- ]);
77
- });
78
- });
79
- //# sourceMappingURL=files.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"files.test.js","sourceRoot":"","sources":["../../src/files.test.ts"],"names":[],"mappings":"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"}