@fluidframework/merge-tree 2.71.0 → 2.73.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.
@@ -1 +1 @@
1
- {"version":3,"file":"opBuilder.js","sourceRoot":"","sources":["../src/opBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { ISegment, Marker } from \"./mergeTreeNodes.js\";\nimport {\n\ttype IMergeTreeAnnotateMsg,\n\ttype IMergeTreeDeltaOp,\n\t// eslint-disable-next-line import/no-deprecated\n\ttype IMergeTreeGroupMsg,\n\ttype IMergeTreeInsertMsg,\n\t// eslint-disable-next-line import/no-deprecated\n\ttype IMergeTreeObliterateMsg,\n\ttype IMergeTreeRemoveMsg,\n\tMergeTreeDeltaType,\n\ttype AdjustParams,\n\ttype IMergeTreeAnnotateAdjustMsg,\n\ttype IMergeTreeObliterateSidedMsg,\n} from \"./ops.js\";\nimport type { PropertySet, MapLike } from \"./properties.js\";\nimport { normalizePlace, Side, type SequencePlace } from \"./sequencePlace.js\";\n\n/**\n * Creates the op for annotating the markers with the provided properties\n * @param marker - The marker to annotate\n * @param props - The properties to annotate the marker with\n * @returns The annotate op\n *\n * @internal\n */\nexport function createAnnotateMarkerOp(\n\tmarker: Marker,\n\tprops: PropertySet,\n): IMergeTreeAnnotateMsg | undefined {\n\tconst id = marker.getId();\n\tif (!id) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tprops: { ...props },\n\t\trelativePos1: { id, before: true },\n\t\trelativePos2: { id },\n\t\ttype: MergeTreeDeltaType.ANNOTATE,\n\t};\n}\n\n/**\n * Creates the op for annotating the range with the provided properties\n * @param start - The inclusive start position of the range to annotate\n * @param end - The exclusive end position of the range to annotate\n * @param props - The properties to annotate the range with\n * @returns The annotate op\n *\n * @internal\n */\nexport function createAnnotateRangeOp(\n\tstart: number,\n\tend: number,\n\tprops: PropertySet,\n): IMergeTreeAnnotateMsg {\n\treturn {\n\t\tpos1: start,\n\t\tpos2: end,\n\t\tprops: { ...props },\n\t\ttype: MergeTreeDeltaType.ANNOTATE,\n\t};\n}\n\n/**\n * Creates the op for annotating the range with the provided properties\n * @param start - The inclusive start position of the range to annotate\n * @param end - The exclusive end position of the range to annotate\n * @param props - The properties to annotate the range with\n * @returns The annotate op\n *\n * @internal\n */\nexport function createAdjustRangeOp(\n\tstart: number,\n\tend: number,\n\tadjust: MapLike<AdjustParams>,\n): IMergeTreeAnnotateAdjustMsg {\n\treturn {\n\t\tpos1: start,\n\t\tpos2: end,\n\t\tadjust: { ...adjust },\n\t\ttype: MergeTreeDeltaType.ANNOTATE,\n\t};\n}\n\n/**\n * Creates the op to remove a range\n *\n * @param start - The inclusive start of the range to remove\n * @param end - The exclusive end of the range to remove\n *\n * @internal\n */\nexport function createRemoveRangeOp(start: number, end: number): IMergeTreeRemoveMsg {\n\treturn {\n\t\tpos1: start,\n\t\tpos2: end,\n\t\ttype: MergeTreeDeltaType.REMOVE,\n\t};\n}\n\n/**\n * Creates the op to obliterate a range\n *\n * @param start - The inclusive start of the range to obliterate\n * @param end - The exclusive end of the range to obliterate\n *\n * @internal\n */\n// eslint-disable-next-line import/no-deprecated\nexport function createObliterateRangeOp(start: number, end: number): IMergeTreeObliterateMsg {\n\treturn {\n\t\tpos1: start,\n\t\tpos2: end,\n\t\ttype: MergeTreeDeltaType.OBLITERATE,\n\t};\n}\n\n/**\n * Creates the op to obliterate a range\n *\n * @param start - The start of the range to obliterate.\n * If a number is provided, the range will start before that index.\n * @param end - The end of the range to obliterate.\n * If a number is provided, the range will end after that index -1.\n * This preserves the previous behavior of not expanding obliteration ranges at the endpoints\n * for uses which predate the availability of endpoint expansion.\n *\n * @internal\n */\nexport function createObliterateRangeOpSided(\n\tstart: SequencePlace,\n\tend: SequencePlace,\n): IMergeTreeObliterateSidedMsg {\n\tconst startPlace = normalizePlace(start);\n\t// If a number is provided, default to after the previous index.\n\t// This preserves the behavior of obliterate prior to the introduction of endpoint expansion.\n\tconst endPlace =\n\t\ttypeof end === \"number\"\n\t\t\t? { pos: end - 1, side: Side.After } // default to inclusive bounds\n\t\t\t: normalizePlace(end);\n\treturn {\n\t\ttype: MergeTreeDeltaType.OBLITERATE_SIDED,\n\t\tpos1: { pos: startPlace.pos, before: startPlace.side === Side.Before },\n\t\tpos2: { pos: endPlace.pos, before: endPlace.side === Side.Before },\n\t};\n}\n\n/**\n * Creates an op for inserting a segment at the specified position.\n *\n * @param pos - The position to insert the segment at\n * @param segment - The segment to insert\n *\n * @internal\n */\nexport function createInsertSegmentOp(pos: number, segment: ISegment): IMergeTreeInsertMsg {\n\treturn createInsertOp(pos, segment.toJSONObject());\n}\n\n/**\n * Creates the op for inserting a segment from its JSON representation at\n * the specified position.\n *\n * @internal\n */\nexport function createInsertOp(pos: number, segSpec: unknown): IMergeTreeInsertMsg {\n\treturn {\n\t\tpos1: pos,\n\t\tseg: segSpec,\n\t\ttype: MergeTreeDeltaType.INSERT,\n\t};\n}\n\n/**\n * Creates a group op from the provided ops.\n *\n * @param ops - The ops to group\n *\n * @internal\n */\n// eslint-disable-next-line import/no-deprecated\nexport function createGroupOp(...ops: IMergeTreeDeltaOp[]): IMergeTreeGroupMsg {\n\treturn {\n\t\tops,\n\t\ttype: MergeTreeDeltaType.GROUP,\n\t};\n}\n"]}
1
+ {"version":3,"file":"opBuilder.js","sourceRoot":"","sources":["../src/opBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { ISegment, Marker } from \"./mergeTreeNodes.js\";\nimport {\n\ttype IMergeTreeAnnotateMsg,\n\ttype IMergeTreeDeltaOp,\n\t// eslint-disable-next-line import-x/no-deprecated\n\ttype IMergeTreeGroupMsg,\n\ttype IMergeTreeInsertMsg,\n\t// eslint-disable-next-line import-x/no-deprecated\n\ttype IMergeTreeObliterateMsg,\n\ttype IMergeTreeRemoveMsg,\n\tMergeTreeDeltaType,\n\ttype AdjustParams,\n\ttype IMergeTreeAnnotateAdjustMsg,\n\ttype IMergeTreeObliterateSidedMsg,\n} from \"./ops.js\";\nimport type { PropertySet, MapLike } from \"./properties.js\";\nimport { normalizePlace, Side, type SequencePlace } from \"./sequencePlace.js\";\n\n/**\n * Creates the op for annotating the markers with the provided properties\n * @param marker - The marker to annotate\n * @param props - The properties to annotate the marker with\n * @returns The annotate op\n *\n * @internal\n */\nexport function createAnnotateMarkerOp(\n\tmarker: Marker,\n\tprops: PropertySet,\n): IMergeTreeAnnotateMsg | undefined {\n\tconst id = marker.getId();\n\tif (!id) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tprops: { ...props },\n\t\trelativePos1: { id, before: true },\n\t\trelativePos2: { id },\n\t\ttype: MergeTreeDeltaType.ANNOTATE,\n\t};\n}\n\n/**\n * Creates the op for annotating the range with the provided properties\n * @param start - The inclusive start position of the range to annotate\n * @param end - The exclusive end position of the range to annotate\n * @param props - The properties to annotate the range with\n * @returns The annotate op\n *\n * @internal\n */\nexport function createAnnotateRangeOp(\n\tstart: number,\n\tend: number,\n\tprops: PropertySet,\n): IMergeTreeAnnotateMsg {\n\treturn {\n\t\tpos1: start,\n\t\tpos2: end,\n\t\tprops: { ...props },\n\t\ttype: MergeTreeDeltaType.ANNOTATE,\n\t};\n}\n\n/**\n * Creates the op for annotating the range with the provided properties\n * @param start - The inclusive start position of the range to annotate\n * @param end - The exclusive end position of the range to annotate\n * @param props - The properties to annotate the range with\n * @returns The annotate op\n *\n * @internal\n */\nexport function createAdjustRangeOp(\n\tstart: number,\n\tend: number,\n\tadjust: MapLike<AdjustParams>,\n): IMergeTreeAnnotateAdjustMsg {\n\treturn {\n\t\tpos1: start,\n\t\tpos2: end,\n\t\tadjust: { ...adjust },\n\t\ttype: MergeTreeDeltaType.ANNOTATE,\n\t};\n}\n\n/**\n * Creates the op to remove a range\n *\n * @param start - The inclusive start of the range to remove\n * @param end - The exclusive end of the range to remove\n *\n * @internal\n */\nexport function createRemoveRangeOp(start: number, end: number): IMergeTreeRemoveMsg {\n\treturn {\n\t\tpos1: start,\n\t\tpos2: end,\n\t\ttype: MergeTreeDeltaType.REMOVE,\n\t};\n}\n\n/**\n * Creates the op to obliterate a range\n *\n * @param start - The inclusive start of the range to obliterate\n * @param end - The exclusive end of the range to obliterate\n *\n * @internal\n */\n// eslint-disable-next-line import-x/no-deprecated\nexport function createObliterateRangeOp(start: number, end: number): IMergeTreeObliterateMsg {\n\treturn {\n\t\tpos1: start,\n\t\tpos2: end,\n\t\ttype: MergeTreeDeltaType.OBLITERATE,\n\t};\n}\n\n/**\n * Creates the op to obliterate a range\n *\n * @param start - The start of the range to obliterate.\n * If a number is provided, the range will start before that index.\n * @param end - The end of the range to obliterate.\n * If a number is provided, the range will end after that index -1.\n * This preserves the previous behavior of not expanding obliteration ranges at the endpoints\n * for uses which predate the availability of endpoint expansion.\n *\n * @internal\n */\nexport function createObliterateRangeOpSided(\n\tstart: SequencePlace,\n\tend: SequencePlace,\n): IMergeTreeObliterateSidedMsg {\n\tconst startPlace = normalizePlace(start);\n\t// If a number is provided, default to after the previous index.\n\t// This preserves the behavior of obliterate prior to the introduction of endpoint expansion.\n\tconst endPlace =\n\t\ttypeof end === \"number\"\n\t\t\t? { pos: end - 1, side: Side.After } // default to inclusive bounds\n\t\t\t: normalizePlace(end);\n\treturn {\n\t\ttype: MergeTreeDeltaType.OBLITERATE_SIDED,\n\t\tpos1: { pos: startPlace.pos, before: startPlace.side === Side.Before },\n\t\tpos2: { pos: endPlace.pos, before: endPlace.side === Side.Before },\n\t};\n}\n\n/**\n * Creates an op for inserting a segment at the specified position.\n *\n * @param pos - The position to insert the segment at\n * @param segment - The segment to insert\n *\n * @internal\n */\nexport function createInsertSegmentOp(pos: number, segment: ISegment): IMergeTreeInsertMsg {\n\treturn createInsertOp(pos, segment.toJSONObject());\n}\n\n/**\n * Creates the op for inserting a segment from its JSON representation at\n * the specified position.\n *\n * @internal\n */\nexport function createInsertOp(pos: number, segSpec: unknown): IMergeTreeInsertMsg {\n\treturn {\n\t\tpos1: pos,\n\t\tseg: segSpec,\n\t\ttype: MergeTreeDeltaType.INSERT,\n\t};\n}\n\n/**\n * Creates a group op from the provided ops.\n *\n * @param ops - The ops to group\n *\n * @internal\n */\n// eslint-disable-next-line import-x/no-deprecated\nexport function createGroupOp(...ops: IMergeTreeDeltaOp[]): IMergeTreeGroupMsg {\n\treturn {\n\t\tops,\n\t\ttype: MergeTreeDeltaType.GROUP,\n\t};\n}\n"]}
@@ -48,5 +48,20 @@ describe("client.applyMsg", () => {
48
48
  assert.equal(segCount, 2);
49
49
  assert.equal(segLen, 4);
50
50
  });
51
+ it("Walk single multi-character segment", () => {
52
+ client.removeRangeLocal(0, client.getLength());
53
+ client.insertTextLocal(0, "Blocker");
54
+ client.annotateRangeLocal(0, 7, { bold: true });
55
+ let segCount = 0;
56
+ const segLengths = [];
57
+ client.walkSegments((s) => {
58
+ segCount++;
59
+ segLengths.push(s.cachedLength);
60
+ return true;
61
+ }, 0, client.getLength(), undefined, true);
62
+ assert.equal(segCount, 1, `Expected one segment, saw ${segCount} segments`);
63
+ assert.equal(segLengths.length, 1, `Expected one segment length, saw ${segLengths.length} lengths`);
64
+ assert.equal(segLengths[0], 7, `Expected segment length 7, saw ${segLengths[0]}`);
65
+ });
51
66
  });
52
67
  //# sourceMappingURL=client.walkSegments.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.walkSegments.spec.js","sourceRoot":"","sources":["../../src/test/client.walkSegments.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAChC,MAAM,eAAe,GAAG,WAAW,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC;IACrB,MAAM,IAAI,GAAG,OAAO,CAAC;IACrB,IAAI,MAAkB,CAAC;IAEvB,UAAU,CAAC,GAAG,EAAE;QACf,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC1B,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE;YACzB,QAAQ,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,CAAC,YAAY,CAAC;YACzB,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,CAAC,YAAY,CAClB,CAAC,CAAC,EAAE,EAAE;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,CAAC,YAAY,CAAC;YACzB,OAAO,IAAI,CAAC;QACb,CAAC,EACD,IAAI,CAAC,MAAM,GAAG,CAAC,EACf,IAAI,CAAC,MAAM,GAAG,CAAC,CACf,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,CAAC,YAAY,CAClB,CAAC,CAAC,EAAE,EAAE;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,CAAC,YAAY,CAAC;YACzB,OAAO,IAAI,CAAC;QACb,CAAC,EACD,IAAI,CAAC,MAAM,GAAG,CAAC,EACf,IAAI,CAAC,MAAM,GAAG,CAAC,EACf,SAAS,EACT,IAAI,CACJ,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { strict as assert } from \"node:assert\";\n\nimport { TestClient } from \"./testClient.js\";\n\ndescribe(\"client.applyMsg\", () => {\n\tconst localUserLongId = \"localUser\";\n\tconst seg1 = \"hello\";\n\tconst seg2 = \"world\";\n\tlet client: TestClient;\n\n\tbeforeEach(() => {\n\t\tclient = new TestClient();\n\t\tclient.insertTextLocal(client.getLength(), seg1);\n\t\tclient.insertTextLocal(client.getLength(), seg2);\n\t\tclient.startOrUpdateCollaboration(localUserLongId);\n\t});\n\n\tit(\"Walk All Segments\", () => {\n\t\tlet segCount = 0;\n\t\tlet segLen = 0;\n\t\tclient.walkSegments((s) => {\n\t\t\tsegCount++;\n\t\t\tsegLen += s.cachedLength;\n\t\t\treturn true;\n\t\t});\n\t\tassert.equal(segCount, 2);\n\t\tassert.equal(segLen, seg1.length + seg2.length);\n\t});\n\n\tit(\"Walk Segment Range\", () => {\n\t\tlet segCount = 0;\n\t\tlet segLen = 0;\n\t\tclient.walkSegments(\n\t\t\t(s) => {\n\t\t\t\tsegCount++;\n\t\t\t\tsegLen += s.cachedLength;\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tseg1.length - 2,\n\t\t\tseg1.length + 2,\n\t\t);\n\t\tassert.equal(segCount, 2);\n\t\tassert.equal(segLen, seg1.length + seg2.length);\n\t});\n\n\tit(\"Walk Segment Range With Split\", () => {\n\t\tlet segCount = 0;\n\t\tlet segLen = 0;\n\t\tclient.walkSegments(\n\t\t\t(s) => {\n\t\t\t\tsegCount++;\n\t\t\t\tsegLen += s.cachedLength;\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tseg1.length - 2,\n\t\t\tseg1.length + 2,\n\t\t\tundefined,\n\t\t\ttrue,\n\t\t);\n\t\tassert.equal(segCount, 2);\n\t\tassert.equal(segLen, 4);\n\t});\n});\n"]}
1
+ {"version":3,"file":"client.walkSegments.spec.js","sourceRoot":"","sources":["../../src/test/client.walkSegments.spec.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { strict as assert } from \"node:assert\";\n\nimport type { ISegmentInternal } from \"../mergeTreeNodes.js\";\n\nimport { TestClient } from \"./testClient.js\";\n\ndescribe(\"client.applyMsg\", () => {\n\tconst localUserLongId = \"localUser\";\n\tconst seg1 = \"hello\";\n\tconst seg2 = \"world\";\n\tlet client: TestClient;\n\n\tbeforeEach(() => {\n\t\tclient = new TestClient();\n\t\tclient.insertTextLocal(client.getLength(), seg1);\n\t\tclient.insertTextLocal(client.getLength(), seg2);\n\t\tclient.startOrUpdateCollaboration(localUserLongId);\n\t});\n\n\tit(\"Walk All Segments\", () => {\n\t\tlet segCount = 0;\n\t\tlet segLen = 0;\n\t\tclient.walkSegments((s) => {\n\t\t\tsegCount++;\n\t\t\tsegLen += s.cachedLength;\n\t\t\treturn true;\n\t\t});\n\t\tassert.equal(segCount, 2);\n\t\tassert.equal(segLen, seg1.length + seg2.length);\n\t});\n\n\tit(\"Walk Segment Range\", () => {\n\t\tlet segCount = 0;\n\t\tlet segLen = 0;\n\t\tclient.walkSegments(\n\t\t\t(s) => {\n\t\t\t\tsegCount++;\n\t\t\t\tsegLen += s.cachedLength;\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tseg1.length - 2,\n\t\t\tseg1.length + 2,\n\t\t);\n\t\tassert.equal(segCount, 2);\n\t\tassert.equal(segLen, seg1.length + seg2.length);\n\t});\n\n\tit(\"Walk Segment Range With Split\", () => {\n\t\tlet segCount = 0;\n\t\tlet segLen = 0;\n\t\tclient.walkSegments(\n\t\t\t(s) => {\n\t\t\t\tsegCount++;\n\t\t\t\tsegLen += s.cachedLength;\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tseg1.length - 2,\n\t\t\tseg1.length + 2,\n\t\t\tundefined,\n\t\t\ttrue,\n\t\t);\n\t\tassert.equal(segCount, 2);\n\t\tassert.equal(segLen, 4);\n\t});\n\n\tit(\"Walk single multi-character segment\", () => {\n\t\tclient.removeRangeLocal(0, client.getLength());\n\t\tclient.insertTextLocal(0, \"Blocker\");\n\t\tclient.annotateRangeLocal(0, 7, { bold: true });\n\t\tlet segCount = 0;\n\t\tconst segLengths: number[] = [];\n\t\tclient.walkSegments(\n\t\t\t(s: ISegmentInternal) => {\n\t\t\t\tsegCount++;\n\t\t\t\tsegLengths.push(s.cachedLength);\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\t0,\n\t\t\tclient.getLength(),\n\t\t\tundefined,\n\t\t\ttrue,\n\t\t);\n\t\tassert.equal(segCount, 1, `Expected one segment, saw ${segCount} segments`);\n\t\tassert.equal(\n\t\t\tsegLengths.length,\n\t\t\t1,\n\t\t\t`Expected one segment length, saw ${segLengths.length} lengths`,\n\t\t);\n\t\tassert.equal(segLengths[0], 7, `Expected segment length 7, saw ${segLengths[0]}`);\n\t});\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/merge-tree",
3
- "version": "2.71.0",
3
+ "version": "2.73.0",
4
4
  "description": "Merge tree",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -81,30 +81,30 @@
81
81
  "temp-directory": "nyc/.nyc_output"
82
82
  },
83
83
  "dependencies": {
84
- "@fluid-internal/client-utils": "~2.71.0",
85
- "@fluidframework/container-definitions": "~2.71.0",
86
- "@fluidframework/core-interfaces": "~2.71.0",
87
- "@fluidframework/core-utils": "~2.71.0",
88
- "@fluidframework/datastore-definitions": "~2.71.0",
89
- "@fluidframework/driver-definitions": "~2.71.0",
90
- "@fluidframework/runtime-definitions": "~2.71.0",
91
- "@fluidframework/runtime-utils": "~2.71.0",
92
- "@fluidframework/shared-object-base": "~2.71.0",
93
- "@fluidframework/telemetry-utils": "~2.71.0"
84
+ "@fluid-internal/client-utils": "~2.73.0",
85
+ "@fluidframework/container-definitions": "~2.73.0",
86
+ "@fluidframework/core-interfaces": "~2.73.0",
87
+ "@fluidframework/core-utils": "~2.73.0",
88
+ "@fluidframework/datastore-definitions": "~2.73.0",
89
+ "@fluidframework/driver-definitions": "~2.73.0",
90
+ "@fluidframework/runtime-definitions": "~2.73.0",
91
+ "@fluidframework/runtime-utils": "~2.73.0",
92
+ "@fluidframework/shared-object-base": "~2.73.0",
93
+ "@fluidframework/telemetry-utils": "~2.73.0"
94
94
  },
95
95
  "devDependencies": {
96
96
  "@arethetypeswrong/cli": "^0.17.1",
97
97
  "@biomejs/biome": "~1.9.3",
98
- "@fluid-internal/mocha-test-setup": "~2.71.0",
99
- "@fluid-private/stochastic-test-utils": "~2.71.0",
100
- "@fluid-private/test-pairwise-generator": "~2.71.0",
98
+ "@fluid-internal/mocha-test-setup": "~2.73.0",
99
+ "@fluid-private/stochastic-test-utils": "~2.73.0",
100
+ "@fluid-private/test-pairwise-generator": "~2.73.0",
101
101
  "@fluid-tools/benchmark": "^0.51.0",
102
- "@fluid-tools/build-cli": "^0.58.3",
102
+ "@fluid-tools/build-cli": "^0.60.0",
103
103
  "@fluidframework/build-common": "^2.0.3",
104
- "@fluidframework/build-tools": "^0.58.3",
105
- "@fluidframework/eslint-config-fluid": "^7.0.0",
106
- "@fluidframework/merge-tree-previous": "npm:@fluidframework/merge-tree@2.70.0",
107
- "@fluidframework/test-runtime-utils": "~2.71.0",
104
+ "@fluidframework/build-tools": "^0.60.0",
105
+ "@fluidframework/eslint-config-fluid": "~2.73.0",
106
+ "@fluidframework/merge-tree-previous": "npm:@fluidframework/merge-tree@2.71.0",
107
+ "@fluidframework/test-runtime-utils": "~2.73.0",
108
108
  "@microsoft/api-extractor": "7.52.11",
109
109
  "@types/diff": "^3.5.1",
110
110
  "@types/mocha": "^10.0.10",
package/src/client.ts CHANGED
@@ -74,10 +74,10 @@ import {
74
74
  type IJSONSegment,
75
75
  type IMergeTreeAnnotateMsg,
76
76
  type IMergeTreeDeltaOp,
77
- // eslint-disable-next-line import/no-deprecated
77
+ // eslint-disable-next-line import-x/no-deprecated
78
78
  type IMergeTreeGroupMsg,
79
79
  type IMergeTreeInsertMsg,
80
- // eslint-disable-next-line import/no-deprecated
80
+ // eslint-disable-next-line import-x/no-deprecated
81
81
  type IMergeTreeObliterateMsg,
82
82
  type IMergeTreeOp,
83
83
  type IMergeTreeRemoveMsg,
@@ -323,9 +323,9 @@ export class Client extends TypedEventEmitter<IClientEvents> {
323
323
  public obliterateRangeLocal(
324
324
  start: number | InteriorSequencePlace,
325
325
  end: number | InteriorSequencePlace,
326
- // eslint-disable-next-line import/no-deprecated
326
+ // eslint-disable-next-line import-x/no-deprecated
327
327
  ): IMergeTreeObliterateMsg | IMergeTreeObliterateSidedMsg {
328
- // eslint-disable-next-line import/no-deprecated
328
+ // eslint-disable-next-line import-x/no-deprecated
329
329
  let obliterateOp: IMergeTreeObliterateMsg | IMergeTreeObliterateSidedMsg;
330
330
  if (this._mergeTree.options?.mergeTreeEnableSidedObliterate) {
331
331
  obliterateOp = createObliterateRangeOpSided(start, end);
@@ -672,7 +672,7 @@ export class Client extends TypedEventEmitter<IClientEvents> {
672
672
  * @throws LoggingError if the range is invalid
673
673
  */
674
674
  private getValidSidedRange(
675
- // eslint-disable-next-line import/no-deprecated
675
+ // eslint-disable-next-line import-x/no-deprecated
676
676
  op: IMergeTreeObliterateSidedMsg | IMergeTreeObliterateMsg,
677
677
  perspective: Perspective,
678
678
  ): {
@@ -752,7 +752,7 @@ export class Client extends TypedEventEmitter<IClientEvents> {
752
752
  | IMergeTreeAnnotateAdjustMsg
753
753
  | IMergeTreeInsertMsg
754
754
  | IMergeTreeRemoveMsg
755
- // eslint-disable-next-line import/no-deprecated
755
+ // eslint-disable-next-line import-x/no-deprecated
756
756
  | IMergeTreeObliterateMsg,
757
757
  perspective: Perspective,
758
758
  ): IIntegerRange {
@@ -1595,7 +1595,7 @@ export class Client extends TypedEventEmitter<IClientEvents> {
1595
1595
  return loader.initialize(storage);
1596
1596
  }
1597
1597
 
1598
- // eslint-disable-next-line import/no-deprecated
1598
+ // eslint-disable-next-line import-x/no-deprecated
1599
1599
  localTransaction(groupOp: IMergeTreeGroupMsg): void {
1600
1600
  for (const op of groupOp.ops) {
1601
1601
  const opArgs: IMergeTreeDeltaOpArgs = {
@@ -6,7 +6,7 @@
6
6
  import type { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
7
7
 
8
8
  import type { ISegment } from "./mergeTreeNodes.js";
9
- // eslint-disable-next-line import/no-deprecated
9
+ // eslint-disable-next-line import-x/no-deprecated
10
10
  import type { IMergeTreeGroupMsg, IMergeTreeOp, MergeTreeDeltaType } from "./ops.js";
11
11
  import type { PropertySet } from "./properties.js";
12
12
 
@@ -117,7 +117,7 @@ export interface IMergeTreeDeltaOpArgs {
117
117
  * The group op which contains the operation
118
118
  * if there operation is part of a group op.
119
119
  */
120
- // eslint-disable-next-line import/no-deprecated
120
+ // eslint-disable-next-line import-x/no-deprecated
121
121
  readonly groupOp?: IMergeTreeGroupMsg;
122
122
 
123
123
  /**
package/src/opBuilder.ts CHANGED
@@ -7,10 +7,10 @@ import type { ISegment, Marker } from "./mergeTreeNodes.js";
7
7
  import {
8
8
  type IMergeTreeAnnotateMsg,
9
9
  type IMergeTreeDeltaOp,
10
- // eslint-disable-next-line import/no-deprecated
10
+ // eslint-disable-next-line import-x/no-deprecated
11
11
  type IMergeTreeGroupMsg,
12
12
  type IMergeTreeInsertMsg,
13
- // eslint-disable-next-line import/no-deprecated
13
+ // eslint-disable-next-line import-x/no-deprecated
14
14
  type IMergeTreeObliterateMsg,
15
15
  type IMergeTreeRemoveMsg,
16
16
  MergeTreeDeltaType,
@@ -114,7 +114,7 @@ export function createRemoveRangeOp(start: number, end: number): IMergeTreeRemov
114
114
  *
115
115
  * @internal
116
116
  */
117
- // eslint-disable-next-line import/no-deprecated
117
+ // eslint-disable-next-line import-x/no-deprecated
118
118
  export function createObliterateRangeOp(start: number, end: number): IMergeTreeObliterateMsg {
119
119
  return {
120
120
  pos1: start,
@@ -186,7 +186,7 @@ export function createInsertOp(pos: number, segSpec: unknown): IMergeTreeInsertM
186
186
  *
187
187
  * @internal
188
188
  */
189
- // eslint-disable-next-line import/no-deprecated
189
+ // eslint-disable-next-line import-x/no-deprecated
190
190
  export function createGroupOp(...ops: IMergeTreeDeltaOp[]): IMergeTreeGroupMsg {
191
191
  return {
192
192
  ops,