@fluid-experimental/property-changeset 2.0.0-internal.3.0.5 → 2.0.0-internal.3.1.1

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 (113) hide show
  1. package/README.md +1 -0
  2. package/dist/changeset.d.ts +2 -2
  3. package/dist/changeset.d.ts.map +1 -1
  4. package/dist/changeset.js +61 -45
  5. package/dist/changeset.js.map +1 -1
  6. package/dist/changeset_operations/array.d.ts +6 -6
  7. package/dist/changeset_operations/array.d.ts.map +1 -1
  8. package/dist/changeset_operations/array.js +87 -56
  9. package/dist/changeset_operations/array.js.map +1 -1
  10. package/dist/changeset_operations/arrayChangesetIterator.d.ts.map +1 -1
  11. package/dist/changeset_operations/arrayChangesetIterator.js +43 -41
  12. package/dist/changeset_operations/arrayChangesetIterator.js.map +1 -1
  13. package/dist/changeset_operations/changesetConflictTypes.d.ts.map +1 -1
  14. package/dist/changeset_operations/changesetConflictTypes.js.map +1 -1
  15. package/dist/changeset_operations/indexedCollection.d.ts.map +1 -1
  16. package/dist/changeset_operations/indexedCollection.js +76 -44
  17. package/dist/changeset_operations/indexedCollection.js.map +1 -1
  18. package/dist/changeset_operations/isEmptyChangeset.d.ts.map +1 -1
  19. package/dist/changeset_operations/isEmptyChangeset.js +2 -1
  20. package/dist/changeset_operations/isEmptyChangeset.js.map +1 -1
  21. package/dist/changeset_operations/operationTypes.d.ts.map +1 -1
  22. package/dist/changeset_operations/operationTypes.js.map +1 -1
  23. package/dist/helpers/typeidHelper.d.ts +10 -10
  24. package/dist/helpers/typeidHelper.d.ts.map +1 -1
  25. package/dist/helpers/typeidHelper.js +19 -17
  26. package/dist/helpers/typeidHelper.js.map +1 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/isReservedKeyword.d.ts.map +1 -1
  30. package/dist/isReservedKeyword.js.map +1 -1
  31. package/dist/pathHelper.d.ts.map +1 -1
  32. package/dist/pathHelper.js +16 -10
  33. package/dist/pathHelper.js.map +1 -1
  34. package/dist/rebase.d.ts.map +1 -1
  35. package/dist/rebase.js +20 -13
  36. package/dist/rebase.js.map +1 -1
  37. package/dist/templateSchema.d.ts.map +1 -1
  38. package/dist/templateSchema.js +10 -11
  39. package/dist/templateSchema.js.map +1 -1
  40. package/dist/templateValidator.d.ts.map +1 -1
  41. package/dist/templateValidator.js +135 -102
  42. package/dist/templateValidator.js.map +1 -1
  43. package/dist/test/array.spec.js +141 -343
  44. package/dist/test/array.spec.js.map +1 -1
  45. package/dist/test/pathHelper.spec.js +299 -166
  46. package/dist/test/pathHelper.spec.js.map +1 -1
  47. package/dist/test/reversibleCs.spec.js.map +1 -1
  48. package/dist/test/schemaValidator.js +3 -1
  49. package/dist/test/schemaValidator.js.map +1 -1
  50. package/dist/test/schemas/badBothPropertiesAndTypeid.js +8 -8
  51. package/dist/test/schemas/badBothPropertiesAndTypeid.js.map +1 -1
  52. package/dist/test/schemas/badInvalidSemverInTypeid.js +18 -16
  53. package/dist/test/schemas/badInvalidSemverInTypeid.js.map +1 -1
  54. package/dist/test/schemas/badMissingSemverInTypeid.js +18 -16
  55. package/dist/test/schemas/badMissingSemverInTypeid.js.map +1 -1
  56. package/dist/test/schemas/badNestedProperties.js +18 -17
  57. package/dist/test/schemas/badNestedProperties.js.map +1 -1
  58. package/dist/test/schemas/badPrimitiveTypeid.js +9 -8
  59. package/dist/test/schemas/badPrimitiveTypeid.js.map +1 -1
  60. package/dist/test/schemas/badVersionedTypeid.js +19 -17
  61. package/dist/test/schemas/badVersionedTypeid.js.map +1 -1
  62. package/dist/test/schemas/goodColorPalette.js +4 -4
  63. package/dist/test/schemas/goodColorPalette.js.map +1 -1
  64. package/dist/test/schemas/goodDraftAsVersion.js +2 -4
  65. package/dist/test/schemas/goodDraftAsVersion.js.map +1 -1
  66. package/dist/test/schemas/goodPointId.js +18 -16
  67. package/dist/test/schemas/goodPointId.js.map +1 -1
  68. package/dist/test/schemas/goodReferenceAndRegular.js +5 -5
  69. package/dist/test/schemas/goodReferenceAndRegular.js.map +1 -1
  70. package/dist/test/schemas/goodReservedTypes.js +8 -7
  71. package/dist/test/schemas/goodReservedTypes.js.map +1 -1
  72. package/dist/test/schemas/goodUIBorder.js +19 -16
  73. package/dist/test/schemas/goodUIBorder.js.map +1 -1
  74. package/dist/test/tsconfig.tsbuildinfo +1 -1
  75. package/dist/test/validator/templateSyntax.spec.js.map +1 -1
  76. package/dist/test/validator/templateValidator.spec.js +329 -306
  77. package/dist/test/validator/templateValidator.spec.js.map +1 -1
  78. package/dist/test/validator/typeidHelper.spec.js +98 -65
  79. package/dist/test/validator/typeidHelper.spec.js.map +1 -1
  80. package/dist/utils.d.ts +1 -1
  81. package/dist/utils.d.ts.map +1 -1
  82. package/dist/utils.js +149 -95
  83. package/dist/utils.js.map +1 -1
  84. package/dist/validationResultBuilder.d.ts.map +1 -1
  85. package/dist/validationResultBuilder.js.map +1 -1
  86. package/lib/changeset.js +63 -47
  87. package/lib/changeset.js.map +1 -1
  88. package/lib/changeset_operations/array.js +88 -57
  89. package/lib/changeset_operations/array.js.map +1 -1
  90. package/lib/changeset_operations/arrayChangesetIterator.js +43 -41
  91. package/lib/changeset_operations/arrayChangesetIterator.js.map +1 -1
  92. package/lib/changeset_operations/changesetConflictTypes.js.map +1 -1
  93. package/lib/changeset_operations/indexedCollection.js +76 -44
  94. package/lib/changeset_operations/indexedCollection.js.map +1 -1
  95. package/lib/changeset_operations/isEmptyChangeset.js +2 -1
  96. package/lib/changeset_operations/isEmptyChangeset.js.map +1 -1
  97. package/lib/changeset_operations/operationTypes.js.map +1 -1
  98. package/lib/helpers/typeidHelper.js +19 -17
  99. package/lib/helpers/typeidHelper.js.map +1 -1
  100. package/lib/index.js.map +1 -1
  101. package/lib/isReservedKeyword.js.map +1 -1
  102. package/lib/pathHelper.js +17 -11
  103. package/lib/pathHelper.js.map +1 -1
  104. package/lib/rebase.js +20 -13
  105. package/lib/rebase.js.map +1 -1
  106. package/lib/templateSchema.js +10 -11
  107. package/lib/templateSchema.js.map +1 -1
  108. package/lib/templateValidator.js +135 -102
  109. package/lib/templateValidator.js.map +1 -1
  110. package/lib/utils.js +149 -95
  111. package/lib/utils.js.map +1 -1
  112. package/lib/validationResultBuilder.js.map +1 -1
  113. package/package.json +100 -100
@@ -24,7 +24,7 @@ describe("Array Operations", function () {
24
24
  if (type === undefined) {
25
25
  return {
26
26
  String: {
27
- guid: `00000000-0000-0000-0000-${(`000000000000${id}`).substr(-12)}`,
27
+ guid: `00000000-0000-0000-0000-${`000000000000${id}`.substr(-12)}`,
28
28
  },
29
29
  typeid: "test:namedEntry-1.0.0",
30
30
  };
@@ -60,17 +60,11 @@ describe("Array Operations", function () {
60
60
  // as otherwise overlapping ranges would be created in the result, which are not allowed
61
61
  // by the spec
62
62
  const op1 = createArrayCS({
63
- insert: [
64
- [1, generateNamedEntities(3)],
65
- ],
66
- remove: [
67
- [1, generateNamedEntities(1)],
68
- ],
63
+ insert: [[1, generateNamedEntities(3)]],
64
+ remove: [[1, generateNamedEntities(1)]],
69
65
  });
70
66
  const op2 = createArrayCS({
71
- remove: [
72
- [0, generateNamedEntities(2)],
73
- ],
67
+ remove: [[0, generateNamedEntities(2)]],
74
68
  });
75
69
  const result = new changeset_1.ChangeSet(op1);
76
70
  result.applyChangeSet(op2);
@@ -83,17 +77,11 @@ describe("Array Operations", function () {
83
77
  });
84
78
  it("Rebasing with a base changeset containing adjacent removes and inserts", () => {
85
79
  const base = createArrayCS({
86
- insert: [
87
- [1, generateNamedEntities(3)],
88
- ],
89
- remove: [
90
- [0, generateNamedEntities(1)],
91
- ],
80
+ insert: [[1, generateNamedEntities(3)]],
81
+ remove: [[0, generateNamedEntities(1)]],
92
82
  });
93
83
  const rebaseCS = createArrayCS({
94
- insert: [
95
- [0, generateNamedEntities(1)],
96
- ],
84
+ insert: [[0, generateNamedEntities(1)]],
97
85
  });
98
86
  const conflicts = [];
99
87
  const CS = new changeset_1.ChangeSet(base);
@@ -105,22 +93,17 @@ describe("Array Operations", function () {
105
93
  // the rebase this way. The CS above could have been generated by a combination of a
106
94
  // I(1,3) followed by a R(0,1). If the rebase CS would have been rebased separately
107
95
  // with respect to those two CS, it would have remained a I(0,3).
108
- (0, chai_1.expect)(rebaseCS.modify["array<test:namedEntry-1.0.0>"].array.insert[0][0]).to.equal(0);
96
+ (0, chai_1.expect)(rebaseCS.modify["array<test:namedEntry-1.0.0>"].array
97
+ .insert[0][0]).to.equal(0);
109
98
  });
110
99
  for (const i of [0, 3]) {
111
100
  it(`Rebasing an insert behind a remove insert base changeset with insert position ${i}`, () => {
112
101
  const base = createArrayCS({
113
- insert: [
114
- [i, generateNamedEntities(3)],
115
- ],
116
- remove: [
117
- [0, generateNamedEntities(3)],
118
- ],
102
+ insert: [[i, generateNamedEntities(3)]],
103
+ remove: [[0, generateNamedEntities(3)]],
119
104
  });
120
105
  const rebaseCS = createArrayCS({
121
- insert: [
122
- [0, generateNamedEntities(1)],
123
- ],
106
+ insert: [[0, generateNamedEntities(1)]],
124
107
  });
125
108
  const originalRebaseCS = (0, fastest_json_copy_1.copy)(rebaseCS);
126
109
  const conflicts = [];
@@ -146,17 +129,11 @@ describe("Array Operations", function () {
146
129
  }
147
130
  it("Inserts should happen at the beginning of a remove range", () => {
148
131
  const op1 = createArrayCS({
149
- insert: [
150
- [1, generateNamedEntities(3)],
151
- ],
152
- remove: [
153
- [1, generateNamedEntities(1)],
154
- ],
132
+ insert: [[1, generateNamedEntities(3)]],
133
+ remove: [[1, generateNamedEntities(1)]],
155
134
  });
156
135
  const op2 = createArrayCS({
157
- insert: [
158
- [4, generateNamedEntities(2)],
159
- ],
136
+ insert: [[4, generateNamedEntities(2)]],
160
137
  });
161
138
  const combinedCS = new changeset_1.ChangeSet(op1);
162
139
  combinedCS.applyChangeSet(op2);
@@ -195,10 +172,7 @@ describe("Array Operations", function () {
195
172
  return deltaChangeSet;
196
173
  }
197
174
  function runTestApplyingReverseAndRebasedChangesetForIndependentModifications(baseInsertPositions, rebasedInsertPositions, baseOperation = "insert", baseCount = 1) {
198
- const createInserts = (positions, count) => positions.map((x) => [
199
- x,
200
- generateNamedEntities(count),
201
- ]);
175
+ const createInserts = (positions, count) => positions.map((x) => [x, generateNamedEntities(count)]);
202
176
  const baseChangeSet = createArrayCS({
203
177
  [baseOperation]: createInserts(baseInsertPositions, baseCount),
204
178
  });
@@ -220,12 +194,8 @@ describe("Array Operations", function () {
220
194
  (0, chai_1.expect)(arrayChangeSet).to.not.have.property(baseOperation === "insert" ? "remove" : "insert");
221
195
  }
222
196
  describe("Rebase test applying the reverse, base and then rebased changeset", () => {
223
- for (const basePositions of [
224
- [0], [1], [2], [5], [13], [0, 2], [0, 5], [0, 5, 13],
225
- ]) {
226
- for (const rebasePositions of [
227
- [0], [1], [5, 9], [5, 9, 12],
228
- ]) {
197
+ for (const basePositions of [[0], [1], [2], [5], [13], [0, 2], [0, 5], [0, 5, 13]]) {
198
+ for (const rebasePositions of [[0], [1], [5, 9], [5, 9, 12]]) {
229
199
  it(`with base positions ${basePositions} and rebase positions ${rebasePositions}`, () => {
230
200
  runTestApplyingReverseAndRebasedChangesetForIndependentModifications(basePositions, rebasePositions);
231
201
  });
@@ -242,7 +212,7 @@ describe("Array Operations", function () {
242
212
  const rebasedCS1 = (0, fastest_json_copy_1.copy)(rebaseChangeSet);
243
213
  for (const baseChangeSet of baseChangesets) {
244
214
  const conflicts = [];
245
- (new changeset_1.ChangeSet(baseChangeSet))._rebaseChangeSet(rebasedCS1, conflicts);
215
+ new changeset_1.ChangeSet(baseChangeSet)._rebaseChangeSet(rebasedCS1, conflicts);
246
216
  validateChangeSet(rebasedCS1);
247
217
  }
248
218
  // Now rebase with respect to the squashed base ChangeSets
@@ -260,7 +230,7 @@ describe("Array Operations", function () {
260
230
  (0, chai_1.expect)(directApplication.getSerializedChangeSet()).to.deep.equal(squashApplication.getSerializedChangeSet());
261
231
  const conflicts2 = [];
262
232
  const rebasedCS2 = (0, fastest_json_copy_1.copy)(rebaseChangeSet);
263
- (new changeset_1.ChangeSet(squashedBaseChangeSets))._rebaseChangeSet(rebasedCS2, conflicts2);
233
+ new changeset_1.ChangeSet(squashedBaseChangeSets)._rebaseChangeSet(rebasedCS2, conflicts2);
264
234
  validateChangeSet(rebasedCS2);
265
235
  (0, chai_1.expect)(rebasedCS1).to.deep.equal(rebasedCS2);
266
236
  return testRebasedApplies((0, fastest_json_copy_1.copy)(rebaseChangeSet), squashedBaseChangeSets, base);
@@ -271,19 +241,13 @@ describe("Array Operations", function () {
271
241
  it(`Position ${insertPosition}`, () => {
272
242
  testRebaseDistributivity([
273
243
  createArrayCS({
274
- insert: [
275
- [1, generateNamedEntities(1)],
276
- ],
244
+ insert: [[1, generateNamedEntities(1)]],
277
245
  }),
278
246
  createArrayCS({
279
- insert: [
280
- [6, generateNamedEntities(1)],
281
- ],
247
+ insert: [[6, generateNamedEntities(1)]],
282
248
  }),
283
249
  createArrayCS({
284
- insert: [
285
- [9, generateNamedEntities(1)],
286
- ],
250
+ insert: [[9, generateNamedEntities(1)]],
287
251
  }),
288
252
  createArrayCS({
289
253
  remove: [
@@ -293,13 +257,9 @@ describe("Array Operations", function () {
293
257
  ],
294
258
  }),
295
259
  ], createArrayCS({
296
- insert: [
297
- [insertPosition, generateNamedEntities(1)],
298
- ],
260
+ insert: [[insertPosition, generateNamedEntities(1)]],
299
261
  }), createArrayCS({
300
- insert: [
301
- [0, generateNamedEntities(10)],
302
- ],
262
+ insert: [[0, generateNamedEntities(10)]],
303
263
  }));
304
264
  });
305
265
  }
@@ -307,87 +267,55 @@ describe("Array Operations", function () {
307
267
  it("Rebasing an insert with respect to a remove + insert", () => {
308
268
  testRebaseDistributivity([
309
269
  createArrayCS({
310
- remove: [
311
- [0, generateNamedEntities(3)],
312
- ],
270
+ remove: [[0, generateNamedEntities(3)]],
313
271
  }),
314
272
  createArrayCS({
315
- insert: [
316
- [0, generateNamedEntities(3)],
317
- ],
273
+ insert: [[0, generateNamedEntities(3)]],
318
274
  }),
319
275
  ], createArrayCS({
320
- insert: [
321
- [0, generateNamedEntities(3)],
322
- ],
276
+ insert: [[0, generateNamedEntities(3)]],
323
277
  }), createArrayCS({
324
- insert: [
325
- [0, generateNamedEntities(10)],
326
- ],
278
+ insert: [[0, generateNamedEntities(10)]],
327
279
  }));
328
280
  testRebaseDistributivity([
329
281
  createArrayCS({
330
- remove: [
331
- [0, generateNamedEntities(3)],
332
- ],
282
+ remove: [[0, generateNamedEntities(3)]],
333
283
  }),
334
284
  createArrayCS({
335
- insert: [
336
- [0, generateNamedEntities(3)],
337
- ],
285
+ insert: [[0, generateNamedEntities(3)]],
338
286
  }),
339
287
  ], createArrayCS({
340
- insert: [
341
- [3, generateNamedEntities(3)],
342
- ],
288
+ insert: [[3, generateNamedEntities(3)]],
343
289
  }), createArrayCS({
344
- insert: [
345
- [0, generateNamedEntities(10)],
346
- ],
290
+ insert: [[0, generateNamedEntities(10)]],
347
291
  }));
348
292
  });
349
293
  it("remove + insert at start of array", () => {
350
294
  testRebaseDistributivity([
351
295
  createArrayCS({
352
- remove: [
353
- [0, generateNamedEntities(3)],
354
- ],
296
+ remove: [[0, generateNamedEntities(3)]],
355
297
  }),
356
298
  createArrayCS({
357
- insert: [
358
- [0, generateNamedEntities(3)],
359
- ],
299
+ insert: [[0, generateNamedEntities(3)]],
360
300
  }),
361
301
  ], createArrayCS({
362
- insert: [
363
- [3, generateNamedEntities(1)],
364
- ],
302
+ insert: [[3, generateNamedEntities(1)]],
365
303
  }), createArrayCS({
366
- insert: [
367
- [0, generateNamedEntities(10)],
368
- ],
304
+ insert: [[0, generateNamedEntities(10)]],
369
305
  }));
370
306
  });
371
307
  it("Rebased remove that cancels out", () => {
372
308
  const deltacS = testRebaseDistributivity([
373
309
  createArrayCS({
374
- remove: [
375
- [0, generateNamedEntities(3)],
376
- ],
310
+ remove: [[0, generateNamedEntities(3)]],
377
311
  }),
378
312
  createArrayCS({
379
- insert: [
380
- [0, generateNamedEntities(3)],
381
- ],
313
+ insert: [[0, generateNamedEntities(3)]],
382
314
  }),
383
315
  ], createArrayCS({
384
- remove: [
385
- [1, generateNamedEntities(2)],
386
- ],
316
+ remove: [[1, generateNamedEntities(2)]],
387
317
  }), createArrayCS({
388
- insert: [
389
- [0, generateNamedEntities(10)],
390
- ],
318
+ insert: [[0, generateNamedEntities(10)]],
391
319
  }));
392
320
  const arrayCS = getArrayCS(deltacS);
393
321
  (0, chai_1.expect)(arrayCS.insert[0][1].length).to.equal(3);
@@ -396,159 +324,101 @@ describe("Array Operations", function () {
396
324
  it("Insert in between two removes 1", () => {
397
325
  testRebaseDistributivity([
398
326
  createArrayCS({
399
- insert: [
400
- [2, generateNamedEntities(1)],
401
- ],
327
+ insert: [[2, generateNamedEntities(1)]],
402
328
  }),
403
329
  createArrayCS({
404
- remove: [
405
- [0, generateNamedEntities(2)],
406
- ],
330
+ remove: [[0, generateNamedEntities(2)]],
407
331
  }),
408
332
  createArrayCS({
409
- remove: [
410
- [1, generateNamedEntities(1)],
411
- ],
333
+ remove: [[1, generateNamedEntities(1)]],
412
334
  }),
413
335
  createArrayCS({
414
- insert: [
415
- [0, generateNamedEntities(2)],
416
- ],
336
+ insert: [[0, generateNamedEntities(2)]],
417
337
  }),
418
338
  ], createArrayCS({
419
- insert: [
420
- [1, generateNamedEntities(1)],
421
- ],
339
+ insert: [[1, generateNamedEntities(1)]],
422
340
  }), createArrayCS({
423
- insert: [
424
- [0, generateNamedEntities(10)],
425
- ],
341
+ insert: [[0, generateNamedEntities(10)]],
426
342
  }));
427
343
  });
428
344
  it("Insert in between two removes 2", () => {
429
345
  testRebaseDistributivity([
430
346
  createArrayCS({
431
- insert: [
432
- [4, generateNamedEntities(1)],
433
- ],
347
+ insert: [[4, generateNamedEntities(1)]],
434
348
  }),
435
349
  createArrayCS({
436
- remove: [
437
- [2, generateNamedEntities(2)],
438
- ],
350
+ remove: [[2, generateNamedEntities(2)]],
439
351
  }),
440
352
  createArrayCS({
441
- remove: [
442
- [3, generateNamedEntities(1)],
443
- ],
353
+ remove: [[3, generateNamedEntities(1)]],
444
354
  }),
445
355
  createArrayCS({
446
- insert: [
447
- [2, generateNamedEntities(2)],
448
- ],
356
+ insert: [[2, generateNamedEntities(2)]],
449
357
  }),
450
358
  ], createArrayCS({
451
- insert: [
452
- [3, generateNamedEntities(1)],
453
- ],
359
+ insert: [[3, generateNamedEntities(1)]],
454
360
  }), createArrayCS({
455
- insert: [
456
- [0, generateNamedEntities(10)],
457
- ],
361
+ insert: [[0, generateNamedEntities(10)]],
458
362
  }));
459
363
  });
460
364
  it("Inserts in between three removes", () => {
461
365
  testRebaseDistributivity([
462
366
  createArrayCS({
463
- insert: [
464
- [4, generateNamedEntities(1)],
465
- ],
367
+ insert: [[4, generateNamedEntities(1)]],
466
368
  }),
467
369
  createArrayCS({
468
- insert: [
469
- [6, generateNamedEntities(1)],
470
- ],
370
+ insert: [[6, generateNamedEntities(1)]],
471
371
  }),
472
372
  createArrayCS({
473
- remove: [
474
- [2, generateNamedEntities(2)],
475
- ],
373
+ remove: [[2, generateNamedEntities(2)]],
476
374
  }),
477
375
  createArrayCS({
478
- remove: [
479
- [3, generateNamedEntities(1)],
480
- ],
376
+ remove: [[3, generateNamedEntities(1)]],
481
377
  }),
482
378
  createArrayCS({
483
- remove: [
484
- [4, generateNamedEntities(1)],
485
- ],
379
+ remove: [[4, generateNamedEntities(1)]],
486
380
  }),
487
381
  createArrayCS({
488
- insert: [
489
- [2, generateNamedEntities(2)],
490
- ],
382
+ insert: [[2, generateNamedEntities(2)]],
491
383
  }),
492
384
  ], createArrayCS({
493
- insert: [
494
- [3, generateNamedEntities(1)],
495
- ],
385
+ insert: [[3, generateNamedEntities(1)]],
496
386
  }), createArrayCS({
497
- insert: [
498
- [0, generateNamedEntities(10)],
499
- ],
387
+ insert: [[0, generateNamedEntities(10)]],
500
388
  }));
501
389
  });
502
390
  it("Adjacent remove with insert at the beginning of the remove range", () => {
503
391
  testRebaseDistributivity([
504
392
  createArrayCS({
505
- remove: [
506
- [1, generateNamedEntities(1)],
507
- ],
393
+ remove: [[1, generateNamedEntities(1)]],
508
394
  }),
509
395
  createArrayCS({
510
- insert: [
511
- [1, generateNamedEntities(2)],
512
- ],
396
+ insert: [[1, generateNamedEntities(2)]],
513
397
  }),
514
398
  ], createArrayCS({
515
- remove: [
516
- [1, generateNamedEntities(1, [3])],
517
- ],
399
+ remove: [[1, generateNamedEntities(1, [3])]],
518
400
  }), createArrayCS({
519
- insert: [
520
- [0, generateNamedEntities(10)],
521
- ],
401
+ insert: [[0, generateNamedEntities(10)]],
522
402
  }));
523
403
  });
524
404
  it("Remove operation that cancels out", () => {
525
405
  testRebaseDistributivity([
526
406
  createArrayCS({
527
- remove: [
528
- [8, generateNamedEntities(2)],
529
- ],
407
+ remove: [[8, generateNamedEntities(2)]],
530
408
  }),
531
409
  createArrayCS({
532
- insert: [
533
- [8, generateNamedEntities(1)],
534
- ],
410
+ insert: [[8, generateNamedEntities(1)]],
535
411
  }),
536
412
  ], createArrayCS({
537
- remove: [
538
- [8, generateNamedEntities(1, [3])],
539
- ],
413
+ remove: [[8, generateNamedEntities(1, [3])]],
540
414
  }), createArrayCS({
541
- insert: [
542
- [0, generateNamedEntities(14)],
543
- ],
415
+ insert: [[0, generateNamedEntities(14)]],
544
416
  }));
545
417
  });
546
418
  it("Remove operation that cancels out 2", () => {
547
419
  testRebaseDistributivity([
548
420
  createArrayCS({
549
- remove: [
550
- [8, generateNamedEntities(3)],
551
- ],
421
+ remove: [[8, generateNamedEntities(3)]],
552
422
  }),
553
423
  createArrayCS({
554
424
  insert: [
@@ -558,30 +428,20 @@ describe("Array Operations", function () {
558
428
  ],
559
429
  }),
560
430
  ], createArrayCS({
561
- remove: [
562
- [8, generateNamedEntities(1, [3])],
563
- ],
431
+ remove: [[8, generateNamedEntities(1, [3])]],
564
432
  }), createArrayCS({
565
- insert: [
566
- [0, generateNamedEntities(14)],
567
- ],
433
+ insert: [[0, generateNamedEntities(14)]],
568
434
  }));
569
435
  });
570
436
  it("Remove operation that cancels out in the middle of a range", () => {
571
437
  testRebaseDistributivity([
572
438
  createArrayCS({
573
- remove: [
574
- [4, generateNamedEntities(1)],
575
- ],
439
+ remove: [[4, generateNamedEntities(1)]],
576
440
  }),
577
441
  ], createArrayCS({
578
- remove: [
579
- [3, generateNamedEntities(3)],
580
- ],
442
+ remove: [[3, generateNamedEntities(3)]],
581
443
  }), createArrayCS({
582
- insert: [
583
- [0, generateNamedEntities(14)],
584
- ],
444
+ insert: [[0, generateNamedEntities(14)]],
585
445
  }));
586
446
  });
587
447
  });
@@ -632,89 +492,65 @@ describe("Array Operations", function () {
632
492
  if (customValidator !== undefined) {
633
493
  customValidator(combinedCS, separateApplysResult, combinedApplyResult);
634
494
  }
635
- (0, chai_1.expect)(separateApplysResult.getSerializedChangeSet())
636
- .to.deep.equal(combinedApplyResult.getSerializedChangeSet());
495
+ (0, chai_1.expect)(separateApplysResult.getSerializedChangeSet()).to.deep.equal(combinedApplyResult.getSerializedChangeSet());
637
496
  }
638
497
  describe("Apply Associativity", () => {
639
498
  it("insert + remove + insert", () => {
640
499
  const initial = createArrayCS({
641
- insert: [
642
- [0, generateNamedEntities(3)],
643
- ],
500
+ insert: [[0, generateNamedEntities(3)]],
644
501
  }, "insert");
645
502
  const ops = [
646
503
  createArrayCS({
647
- insert: [
648
- [2, generateNamedEntities(2)],
649
- ],
504
+ insert: [[2, generateNamedEntities(2)]],
650
505
  }),
651
506
  createArrayCS({
652
- remove: [
653
- [3, generateNamedEntities(2, [1, 3])],
654
- ],
507
+ remove: [[3, generateNamedEntities(2, [1, 3])]],
655
508
  }),
656
509
  createArrayCS({
657
- insert: [
658
- [2, generateNamedEntities(1)],
659
- ],
510
+ insert: [[2, generateNamedEntities(1)]],
660
511
  }),
661
512
  ];
662
513
  testApplyAssociativity(initial, ops);
663
514
  });
664
515
  describe("Inserting into a remove range with deletes on both sides", () => {
665
- for (const additionalInserts of ["", " with insert at the beginning", " with insert at the end"]) {
516
+ for (const additionalInserts of [
517
+ "",
518
+ " with insert at the beginning",
519
+ " with insert at the end",
520
+ ]) {
666
521
  const offset = additionalInserts === " with insert at the beginning" ? 2 : 0;
667
522
  for (const i of (0, range_1.default)(1, 9)) {
668
523
  it(`at position ${i + offset}${additionalInserts}`, () => {
669
524
  const initial = createArrayCS({
670
- insert: [
671
- [0, generateNamedEntities(10, undefined, "number")],
672
- ],
525
+ insert: [[0, generateNamedEntities(10, undefined, "number")]],
673
526
  }, "insert", "array<Float64>");
674
527
  let initialInserts = [];
675
528
  let finalInserts = [];
676
529
  if (additionalInserts === " with insert at the beginning") {
677
- initialInserts = [
678
- [0, generateNamedEntities(2, undefined, "number")],
679
- ];
530
+ initialInserts = [[0, generateNamedEntities(2, undefined, "number")]];
680
531
  }
681
532
  if (additionalInserts === " with insert at the end") {
682
- finalInserts = [
683
- [10, generateNamedEntities(2, undefined, "number")],
684
- ];
533
+ finalInserts = [[10, generateNamedEntities(2, undefined, "number")]];
685
534
  }
686
- const ops = [createArrayCS({
535
+ const ops = [
536
+ createArrayCS({
687
537
  insert: [
688
- ...initialInserts, [
689
- 2,
690
- generateNamedEntities(2, undefined, "number"),
691
- ],
692
- [
693
- 7,
694
- generateNamedEntities(3, undefined, "number"),
695
- ],
538
+ ...initialInserts,
539
+ [2, generateNamedEntities(2, undefined, "number")],
540
+ [7, generateNamedEntities(3, undefined, "number")],
696
541
  ...finalInserts,
697
542
  ],
698
- remove: [
699
- [
700
- 2,
701
- generateNamedEntities(5, undefined, "number"),
702
- ],
703
- ],
543
+ remove: [[2, generateNamedEntities(5, undefined, "number")]],
704
544
  }, undefined, "array<Float64>"),
705
545
  createArrayCS({
706
546
  insert: [
707
- [
708
- i + offset,
709
- generateNamedEntities(2, undefined, "number"),
710
- ],
547
+ [i + offset, generateNamedEntities(2, undefined, "number")],
711
548
  ],
712
549
  }, undefined, "array<Float64>"),
713
550
  ];
714
551
  testApplyAssociativity(initial, ops, (combinedCS) => {
715
552
  const arrayCS = getArrayCS(combinedCS);
716
- (0, chai_1.expect)(arrayCS.insert.length).to.equal((i >= 2 && i < 8 ? 2 : 3) +
717
- (additionalInserts !== "" ? 1 : 0));
553
+ (0, chai_1.expect)(arrayCS.insert.length).to.equal((i >= 2 && i < 8 ? 2 : 3) + (additionalInserts !== "" ? 1 : 0));
718
554
  const insertOffset = additionalInserts == " with insert at the beginning" ? 1 : 0;
719
555
  if (i >= 2 && i <= 4) {
720
556
  (0, chai_1.expect)(arrayCS.insert[0 + insertOffset][1].length).to.equal(4);
@@ -731,11 +567,10 @@ describe("Array Operations", function () {
731
567
  });
732
568
  it("remove overlapping insert and remove ranges", () => {
733
569
  const initial = createArrayCS({
734
- insert: [
735
- [0, generateNamedEntities(10, undefined, "number")],
736
- ],
570
+ insert: [[0, generateNamedEntities(10, undefined, "number")]],
737
571
  }, "insert", "array<Float64>");
738
- const ops = [createArrayCS({
572
+ const ops = [
573
+ createArrayCS({
739
574
  insert: [
740
575
  [0, generateNamedEntities(1, undefined, "number")],
741
576
  [1, generateNamedEntities(1, undefined, "number")],
@@ -748,46 +583,35 @@ describe("Array Operations", function () {
748
583
  ],
749
584
  }, undefined, "array<Float64>"),
750
585
  createArrayCS({
751
- remove: [
752
- [
753
- 0,
754
- generateNamedEntities(2, undefined, "number"),
755
- ],
756
- ],
586
+ remove: [[0, generateNamedEntities(2, undefined, "number")]],
757
587
  }, undefined, "array<Float64>"),
758
588
  ];
759
589
  testApplyAssociativity(initial, ops);
760
590
  });
761
591
  it("Overlapping remove / insert", () => {
762
592
  const initial = createArrayCS({
763
- insert: [
764
- [0, generateNamedEntities(10, undefined, "number")],
765
- ],
593
+ insert: [[0, generateNamedEntities(10, undefined, "number")]],
766
594
  }, "insert", "array<Float64>");
767
- const ops = [createArrayCS({
595
+ const ops = [
596
+ createArrayCS({
768
597
  insert: [
769
598
  [0, generateNamedEntities(2, undefined, "number")],
770
599
  [4, generateNamedEntities(2, undefined, "number")],
771
600
  ],
772
- remove: [
773
- [4, generateNamedEntities(5, undefined, "number")],
774
- ],
601
+ remove: [[4, generateNamedEntities(5, undefined, "number")]],
775
602
  }, undefined, "array<Float64>"),
776
603
  createArrayCS({
777
- remove: [
778
- [4, generateNamedEntities(2, undefined, "number")],
779
- ],
604
+ remove: [[4, generateNamedEntities(2, undefined, "number")]],
780
605
  }, undefined, "array<Float64>"),
781
606
  ];
782
607
  testApplyAssociativity(initial, ops);
783
608
  });
784
609
  it("Removing multiple inserts and removes", () => {
785
610
  const initial = createArrayCS({
786
- insert: [
787
- [0, generateNamedEntities(10, undefined, "number")],
788
- ],
611
+ insert: [[0, generateNamedEntities(10, undefined, "number")]],
789
612
  }, "insert", "array<Float64>");
790
- const ops = [createArrayCS({
613
+ const ops = [
614
+ createArrayCS({
791
615
  insert: [
792
616
  [1, generateNamedEntities(2, undefined, "number")],
793
617
  [4, generateNamedEntities(4, undefined, "number")],
@@ -799,20 +623,17 @@ describe("Array Operations", function () {
799
623
  ],
800
624
  }, undefined, "array<Float64>"),
801
625
  createArrayCS({
802
- remove: [
803
- [0, generateNamedEntities(6, undefined, "number")],
804
- ],
626
+ remove: [[0, generateNamedEntities(6, undefined, "number")]],
805
627
  }, undefined, "array<Float64>"),
806
628
  ];
807
629
  testApplyAssociativity(initial, ops);
808
630
  });
809
631
  it("Removing insert/removes at the end", () => {
810
632
  const initial = createArrayCS({
811
- insert: [
812
- [0, generateNamedEntities(10, undefined, "number")],
813
- ],
633
+ insert: [[0, generateNamedEntities(10, undefined, "number")]],
814
634
  }, "insert", "array<Float64>");
815
- const ops = [createArrayCS({
635
+ const ops = [
636
+ createArrayCS({
816
637
  insert: [
817
638
  [0, generateNamedEntities(2, undefined, "number")],
818
639
  [1, generateNamedEntities(1, undefined, "number")],
@@ -824,75 +645,52 @@ describe("Array Operations", function () {
824
645
  ],
825
646
  }, undefined, "array<Float64>"),
826
647
  createArrayCS({
827
- remove: [
828
- [6, generateNamedEntities(2, undefined, "number")],
829
- ],
648
+ remove: [[6, generateNamedEntities(2, undefined, "number")]],
830
649
  }, undefined, "array<Float64>"),
831
650
  ];
832
651
  testApplyAssociativity(initial, ops);
833
652
  });
834
653
  it("Insert with overlapping remove", () => {
835
654
  const initial = createArrayCS({
836
- insert: [
837
- [0, generateNamedEntities(10)],
838
- ],
655
+ insert: [[0, generateNamedEntities(10)]],
839
656
  }, "insert");
840
- const ops = [createArrayCS({
841
- insert: [
842
- [1, generateNamedEntities(3)],
843
- ],
657
+ const ops = [
658
+ createArrayCS({
659
+ insert: [[1, generateNamedEntities(3)]],
844
660
  }),
845
661
  createArrayCS({
846
- remove: [
847
- [1, generateNamedEntities(1)],
848
- ],
849
- insert: [
850
- [1, generateNamedEntities(3)],
851
- ],
662
+ remove: [[1, generateNamedEntities(1)]],
663
+ insert: [[1, generateNamedEntities(3)]],
852
664
  }),
853
665
  ];
854
666
  testApplyAssociativity(initial, ops);
855
667
  });
856
668
  it("Failed case", () => {
857
669
  const initial = createArrayCS({
858
- insert: [
859
- [0, generateNamedEntities(10)],
860
- ],
670
+ insert: [[0, generateNamedEntities(10)]],
861
671
  }, "insert");
862
- const ops = [createArrayCS({
863
- insert: [
864
- [0, generateNamedEntities(7)],
865
- ],
672
+ const ops = [
673
+ createArrayCS({
674
+ insert: [[0, generateNamedEntities(7)]],
866
675
  }),
867
676
  createArrayCS({
868
- remove: [
869
- [0, generateNamedEntities(1)],
870
- ],
871
- insert: [
872
- [1, generateNamedEntities(2)],
873
- ],
677
+ remove: [[0, generateNamedEntities(1)]],
678
+ insert: [[1, generateNamedEntities(2)]],
874
679
  }),
875
680
  ];
876
681
  testApplyAssociativity(initial, ops);
877
682
  });
878
683
  it("Failed case", () => {
879
684
  const initial = createArrayCS({
880
- insert: [
881
- [0, generateNamedEntities(10)],
882
- ],
685
+ insert: [[0, generateNamedEntities(10)]],
883
686
  }, "insert");
884
- const ops = [createArrayCS({
885
- insert: [
886
- [0, generateNamedEntities(5)],
887
- ],
687
+ const ops = [
688
+ createArrayCS({
689
+ insert: [[0, generateNamedEntities(5)]],
888
690
  }),
889
691
  createArrayCS({
890
- remove: [
891
- [4, generateNamedEntities(1)],
892
- ],
893
- insert: [
894
- [5, generateNamedEntities(3)],
895
- ],
692
+ remove: [[4, generateNamedEntities(1)]],
693
+ insert: [[5, generateNamedEntities(3)]],
896
694
  }),
897
695
  ];
898
696
  testApplyAssociativity(initial, ops);
@@ -921,9 +719,10 @@ describe("Array Operations", function () {
921
719
  insertNames.push(`inside remove range in B (${removeInsideInsertB})`);
922
720
  }
923
721
  let title = "with ";
924
- title += insertNames.length === 0
925
- ? "no inserts"
926
- : `inserts ${insertNames.join(", ")}`;
722
+ title +=
723
+ insertNames.length === 0
724
+ ? "no inserts"
725
+ : `inserts ${insertNames.join(", ")}`;
927
726
  it(title, () => {
928
727
  const insertsA = [];
929
728
  const insertsB = [];
@@ -936,9 +735,7 @@ describe("Array Operations", function () {
936
735
  insertsA.push([5, generateNamedEntities(1)]);
937
736
  offset += 1;
938
737
  }
939
- let removesB = [
940
- [5 + offset, generateNamedEntities(3)],
941
- ];
738
+ let removesB = [[5 + offset, generateNamedEntities(3)]];
942
739
  if (startInsertB) {
943
740
  insertsB.push([0, generateNamedEntities(1)]);
944
741
  }
@@ -947,7 +744,10 @@ describe("Array Operations", function () {
947
744
  }
948
745
  if (removeInsideInsertB) {
949
746
  const removeOffset = removeInsideInsertB === "separate" ? 1 : 0;
950
- insertsB.push([6 + offset + removeOffset, generateNamedEntities(1)]);
747
+ insertsB.push([
748
+ 6 + offset + removeOffset,
749
+ generateNamedEntities(1),
750
+ ]);
951
751
  removesB = [
952
752
  [5 + offset + removeOffset, generateNamedEntities(1)],
953
753
  [6 + offset + removeOffset, generateNamedEntities(1)],
@@ -955,9 +755,7 @@ describe("Array Operations", function () {
955
755
  }
956
756
  const CS1 = createArrayCS({
957
757
  insert: insertsA,
958
- remove: [
959
- [5, generateNamedEntities(3)],
960
- ],
758
+ remove: [[5, generateNamedEntities(3)]],
961
759
  });
962
760
  const CS2 = createArrayCS({
963
761
  insert: insertsB,