@fluidframework/merge-tree 2.4.0-297385 → 2.4.0-299374

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/dist/client.d.ts.map +1 -1
  2. package/dist/client.js +3 -3
  3. package/dist/client.js.map +1 -1
  4. package/dist/collections/list.d.ts +1 -0
  5. package/dist/collections/list.d.ts.map +1 -1
  6. package/dist/collections/list.js +4 -1
  7. package/dist/collections/list.js.map +1 -1
  8. package/dist/mergeTree.d.ts +2 -2
  9. package/dist/mergeTree.d.ts.map +1 -1
  10. package/dist/mergeTree.js +8 -8
  11. package/dist/mergeTree.js.map +1 -1
  12. package/dist/test/beastTest.spec.d.ts.map +1 -1
  13. package/dist/test/beastTest.spec.js +3 -3
  14. package/dist/test/beastTest.spec.js.map +1 -1
  15. package/dist/test/client.applyMsg.spec.js +76 -0
  16. package/dist/test/client.applyMsg.spec.js.map +1 -1
  17. package/dist/test/client.conflictFarm.spec.js +17 -4
  18. package/dist/test/client.conflictFarm.spec.js.map +1 -1
  19. package/dist/test/mergeTree.insertingWalk.spec.js +2 -2
  20. package/dist/test/mergeTree.insertingWalk.spec.js.map +1 -1
  21. package/dist/test/mergeTreeOperationRunner.d.ts +1 -0
  22. package/dist/test/mergeTreeOperationRunner.d.ts.map +1 -1
  23. package/dist/test/mergeTreeOperationRunner.js +22 -1
  24. package/dist/test/mergeTreeOperationRunner.js.map +1 -1
  25. package/dist/test/obliterate.partialLength.spec.js +0 -4
  26. package/dist/test/obliterate.partialLength.spec.js.map +1 -1
  27. package/dist/test/obliterate.spec.js +0 -6
  28. package/dist/test/obliterate.spec.js.map +1 -1
  29. package/dist/test/testUtils.d.ts +2 -3
  30. package/dist/test/testUtils.d.ts.map +1 -1
  31. package/dist/test/testUtils.js +4 -4
  32. package/dist/test/testUtils.js.map +1 -1
  33. package/lib/client.d.ts.map +1 -1
  34. package/lib/client.js +3 -3
  35. package/lib/client.js.map +1 -1
  36. package/lib/collections/list.d.ts +1 -0
  37. package/lib/collections/list.d.ts.map +1 -1
  38. package/lib/collections/list.js +4 -1
  39. package/lib/collections/list.js.map +1 -1
  40. package/lib/mergeTree.d.ts +2 -2
  41. package/lib/mergeTree.d.ts.map +1 -1
  42. package/lib/mergeTree.js +8 -8
  43. package/lib/mergeTree.js.map +1 -1
  44. package/lib/test/beastTest.spec.d.ts.map +1 -1
  45. package/lib/test/beastTest.spec.js +3 -3
  46. package/lib/test/beastTest.spec.js.map +1 -1
  47. package/lib/test/client.applyMsg.spec.js +76 -0
  48. package/lib/test/client.applyMsg.spec.js.map +1 -1
  49. package/lib/test/client.conflictFarm.spec.js +18 -5
  50. package/lib/test/client.conflictFarm.spec.js.map +1 -1
  51. package/lib/test/mergeTree.insertingWalk.spec.js +2 -2
  52. package/lib/test/mergeTree.insertingWalk.spec.js.map +1 -1
  53. package/lib/test/mergeTreeOperationRunner.d.ts +1 -0
  54. package/lib/test/mergeTreeOperationRunner.d.ts.map +1 -1
  55. package/lib/test/mergeTreeOperationRunner.js +20 -0
  56. package/lib/test/mergeTreeOperationRunner.js.map +1 -1
  57. package/lib/test/obliterate.partialLength.spec.js +0 -4
  58. package/lib/test/obliterate.partialLength.spec.js.map +1 -1
  59. package/lib/test/obliterate.spec.js +0 -6
  60. package/lib/test/obliterate.spec.js.map +1 -1
  61. package/lib/test/testUtils.d.ts +2 -3
  62. package/lib/test/testUtils.d.ts.map +1 -1
  63. package/lib/test/testUtils.js +4 -4
  64. package/lib/test/testUtils.js.map +1 -1
  65. package/package.json +18 -19
  66. package/src/client.ts +0 -3
  67. package/src/collections/list.ts +6 -0
  68. package/src/mergeTree.ts +3 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/merge-tree",
3
- "version": "2.4.0-297385",
3
+ "version": "2.4.0-299374",
4
4
  "description": "Merge tree",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -79,30 +79,30 @@
79
79
  "temp-directory": "nyc/.nyc_output"
80
80
  },
81
81
  "dependencies": {
82
- "@fluid-internal/client-utils": "2.4.0-297385",
83
- "@fluidframework/container-definitions": "2.4.0-297385",
84
- "@fluidframework/core-interfaces": "2.4.0-297385",
85
- "@fluidframework/core-utils": "2.4.0-297385",
86
- "@fluidframework/datastore-definitions": "2.4.0-297385",
87
- "@fluidframework/driver-definitions": "2.4.0-297385",
88
- "@fluidframework/runtime-definitions": "2.4.0-297385",
89
- "@fluidframework/runtime-utils": "2.4.0-297385",
90
- "@fluidframework/shared-object-base": "2.4.0-297385",
91
- "@fluidframework/telemetry-utils": "2.4.0-297385"
82
+ "@fluid-internal/client-utils": "2.4.0-299374",
83
+ "@fluidframework/container-definitions": "2.4.0-299374",
84
+ "@fluidframework/core-interfaces": "2.4.0-299374",
85
+ "@fluidframework/core-utils": "2.4.0-299374",
86
+ "@fluidframework/datastore-definitions": "2.4.0-299374",
87
+ "@fluidframework/driver-definitions": "2.4.0-299374",
88
+ "@fluidframework/runtime-definitions": "2.4.0-299374",
89
+ "@fluidframework/runtime-utils": "2.4.0-299374",
90
+ "@fluidframework/shared-object-base": "2.4.0-299374",
91
+ "@fluidframework/telemetry-utils": "2.4.0-299374"
92
92
  },
93
93
  "devDependencies": {
94
94
  "@arethetypeswrong/cli": "^0.15.2",
95
95
  "@biomejs/biome": "~1.8.3",
96
- "@fluid-internal/mocha-test-setup": "2.4.0-297385",
97
- "@fluid-private/stochastic-test-utils": "2.4.0-297385",
98
- "@fluid-private/test-pairwise-generator": "2.4.0-297385",
96
+ "@fluid-internal/mocha-test-setup": "2.4.0-299374",
97
+ "@fluid-private/stochastic-test-utils": "2.4.0-299374",
98
+ "@fluid-private/test-pairwise-generator": "2.4.0-299374",
99
99
  "@fluid-tools/benchmark": "^0.50.0",
100
- "@fluid-tools/build-cli": "^0.46.0",
100
+ "@fluid-tools/build-cli": "^0.48.0",
101
101
  "@fluidframework/build-common": "^2.0.3",
102
- "@fluidframework/build-tools": "^0.46.0",
102
+ "@fluidframework/build-tools": "^0.48.0",
103
103
  "@fluidframework/eslint-config-fluid": "^5.4.0",
104
104
  "@fluidframework/merge-tree-previous": "npm:@fluidframework/merge-tree@~2.3.0",
105
- "@fluidframework/test-runtime-utils": "2.4.0-297385",
105
+ "@fluidframework/test-runtime-utils": "2.4.0-299374",
106
106
  "@microsoft/api-extractor": "7.47.8",
107
107
  "@types/diff": "^3.5.1",
108
108
  "@types/mocha": "^9.1.1",
@@ -114,7 +114,6 @@
114
114
  "diff": "^3.5.0",
115
115
  "eslint": "~8.55.0",
116
116
  "mocha": "^10.2.0",
117
- "mocha-json-output-reporter": "^2.0.1",
118
117
  "mocha-multi-reporters": "^1.5.1",
119
118
  "moment": "^2.21.0",
120
119
  "prettier": "~3.0.3",
@@ -186,7 +185,7 @@
186
185
  "test:mocha:cjs": "mocha --recursive \"dist/test/**/*.spec.*js\" --exit",
187
186
  "test:mocha:esm": "mocha --recursive \"lib/test/**/*.spec.*js\" --exit",
188
187
  "test:mocha:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha",
189
- "test:stress": "cross-env FUZZ_STRESS_RUN=1 FUZZ_TEST_COUNT=1 npm run test:mocha",
188
+ "test:stress": "cross-env FUZZ_STRESS_RUN=1 FUZZ_TEST_COUNT=normal npm run test:mocha",
190
189
  "tsc": "fluid-tsc commonjs --project ./tsconfig.cjs.json && copyfiles -f ../../../common/build/build-common/src/cjs/package.json ./dist",
191
190
  "typetests:gen": "flub generate typetests --dir . -v",
192
191
  "typetests:prepare": "flub typetests --dir . --reset --previous --normalize"
package/src/client.ts CHANGED
@@ -501,7 +501,6 @@ export class Client extends TypedEventEmitter<IClientEvents> {
501
501
  clientArgs.referenceSequenceNumber,
502
502
  clientArgs.clientId,
503
503
  clientArgs.sequenceNumber,
504
- false,
505
504
  opArgs,
506
505
  );
507
506
  } else {
@@ -516,7 +515,6 @@ export class Client extends TypedEventEmitter<IClientEvents> {
516
515
  clientArgs.referenceSequenceNumber,
517
516
  clientArgs.clientId,
518
517
  clientArgs.sequenceNumber,
519
- false,
520
518
  opArgs,
521
519
  );
522
520
  }
@@ -541,7 +539,6 @@ export class Client extends TypedEventEmitter<IClientEvents> {
541
539
  clientArgs.referenceSequenceNumber,
542
540
  clientArgs.clientId,
543
541
  clientArgs.sequenceNumber,
544
- false,
545
542
  opArgs,
546
543
  );
547
544
  }
@@ -87,6 +87,12 @@ export class DoublyLinkedList<T>
87
87
  // try to match array signature and semantics where possible
88
88
  Pick<ListNode<T>[], "pop" | "shift" | "length" | "includes">
89
89
  {
90
+ constructor(values?: Iterable<T>) {
91
+ if (values !== undefined) {
92
+ this.push(...values);
93
+ }
94
+ }
95
+
90
96
  find(
91
97
  predicate: (value: ListNode<T>, obj: DoublyLinkedList<T>) => unknown,
92
98
  ): ListNode<T> | undefined {
package/src/mergeTree.ts CHANGED
@@ -1487,7 +1487,6 @@ export class MergeTree {
1487
1487
  _pos: number,
1488
1488
  context: InsertContext,
1489
1489
  // Keeping this function within the scope of blockInsert for readability.
1490
- // eslint-disable-next-line unicorn/consistent-function-scoping
1491
1490
  ): ISegmentChanges => {
1492
1491
  const segmentChanges: ISegmentChanges = {};
1493
1492
  if (segment) {
@@ -1932,7 +1931,6 @@ export class MergeTree {
1932
1931
  refSeq: number,
1933
1932
  clientId: number,
1934
1933
  seq: number,
1935
- overwrite: boolean = false,
1936
1934
  opArgs: IMergeTreeDeltaOpArgs,
1937
1935
  ): void {
1938
1936
  const startPos = start.side === Side.Before ? start.pos : start.pos + 1;
@@ -1941,7 +1939,7 @@ export class MergeTree {
1941
1939
  this.ensureIntervalBoundary(startPos, refSeq, clientId);
1942
1940
  this.ensureIntervalBoundary(endPos, refSeq, clientId);
1943
1941
 
1944
- let _overwrite = overwrite;
1942
+ let _overwrite = false;
1945
1943
  const localOverlapWithRefs: ISegmentLeaf[] = [];
1946
1944
  const movedSegments: IMergeTreeSegmentDelta[] = [];
1947
1945
  const localSeq =
@@ -2138,7 +2136,6 @@ export class MergeTree {
2138
2136
  refSeq: number,
2139
2137
  clientId: number,
2140
2138
  seq: number,
2141
- overwrite: boolean = false,
2142
2139
  opArgs: IMergeTreeDeltaOpArgs,
2143
2140
  ): void {
2144
2141
  errorIfOptionNotTrue(this.options, "mergeTreeEnableObliterate");
@@ -2147,7 +2144,7 @@ export class MergeTree {
2147
2144
  typeof start === "object" && typeof end === "object",
2148
2145
  "Start and end must be of type InteriorSequencePlace if mergeTreeEnableSidedObliterate is enabled.",
2149
2146
  );
2150
- this.obliterateRangeSided(start, end, refSeq, clientId, seq, overwrite, opArgs);
2147
+ this.obliterateRangeSided(start, end, refSeq, clientId, seq, opArgs);
2151
2148
  } else {
2152
2149
  assert(
2153
2150
  typeof start === "number" && typeof end === "number",
@@ -2159,7 +2156,6 @@ export class MergeTree {
2159
2156
  refSeq,
2160
2157
  clientId,
2161
2158
  seq,
2162
- overwrite,
2163
2159
  opArgs,
2164
2160
  );
2165
2161
  }
@@ -2171,10 +2167,9 @@ export class MergeTree {
2171
2167
  refSeq: number,
2172
2168
  clientId: number,
2173
2169
  seq: number,
2174
- overwrite = false,
2175
2170
  opArgs: IMergeTreeDeltaOpArgs,
2176
2171
  ): void {
2177
- let _overwrite = overwrite;
2172
+ let _overwrite = false;
2178
2173
  this.ensureIntervalBoundary(start, refSeq, clientId);
2179
2174
  this.ensureIntervalBoundary(end, refSeq, clientId);
2180
2175
  // eslint-disable-next-line import/no-deprecated
@@ -2354,7 +2349,6 @@ export class MergeTree {
2354
2349
  UniversalSequenceNumber,
2355
2350
  this.collabWindow.clientId,
2356
2351
  UniversalSequenceNumber,
2357
- false,
2358
2352
  { op: removeOp },
2359
2353
  );
2360
2354
  } /* op.type === MergeTreeDeltaType.ANNOTATE */ else {