@fluidframework/sequence 1.4.0-121020 → 2.0.0-dev-rc.1.0.0.224419
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.
- package/.eslintrc.js +9 -11
- package/.mocharc.js +12 -0
- package/CHANGELOG.md +449 -0
- package/README.md +364 -183
- package/api-extractor-lint.json +4 -0
- package/api-extractor.json +2 -2
- package/api-report/sequence.api.md +741 -0
- package/dist/{defaultMap.js → defaultMap.cjs} +29 -22
- package/dist/defaultMap.cjs.map +1 -0
- package/dist/defaultMap.d.ts +7 -6
- package/dist/defaultMap.d.ts.map +1 -1
- package/dist/defaultMapInterfaces.cjs +7 -0
- package/dist/defaultMapInterfaces.cjs.map +1 -0
- package/dist/defaultMapInterfaces.d.ts +44 -12
- package/dist/defaultMapInterfaces.d.ts.map +1 -1
- package/dist/index.cjs +60 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +14 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/intervalCollection.cjs +1159 -0
- package/dist/intervalCollection.cjs.map +1 -0
- package/dist/intervalCollection.d.ts +461 -162
- package/dist/intervalCollection.d.ts.map +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.cjs +66 -0
- package/dist/intervalIndex/endpointInRangeIndex.cjs.map +1 -0
- package/dist/intervalIndex/endpointInRangeIndex.d.ts +34 -0
- package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -0
- package/dist/intervalIndex/endpointIndex.cjs +47 -0
- package/dist/intervalIndex/endpointIndex.cjs.map +1 -0
- package/dist/intervalIndex/endpointIndex.d.ts +38 -0
- package/dist/intervalIndex/endpointIndex.d.ts.map +1 -0
- package/dist/intervalIndex/idIntervalIndex.cjs +44 -0
- package/dist/intervalIndex/idIntervalIndex.cjs.map +1 -0
- package/dist/intervalIndex/idIntervalIndex.d.ts +18 -0
- package/dist/intervalIndex/idIntervalIndex.d.ts.map +1 -0
- package/dist/intervalIndex/index.cjs +24 -0
- package/dist/intervalIndex/index.cjs.map +1 -0
- package/dist/intervalIndex/index.d.ts +13 -0
- package/dist/intervalIndex/index.d.ts.map +1 -0
- package/dist/{defaultMapInterfaces.js → intervalIndex/intervalIndex.cjs} +1 -1
- package/dist/intervalIndex/intervalIndex.cjs.map +1 -0
- package/dist/intervalIndex/intervalIndex.d.ts +30 -0
- package/dist/intervalIndex/intervalIndex.d.ts.map +1 -0
- package/dist/intervalIndex/intervalIndexUtils.cjs +22 -0
- package/dist/intervalIndex/intervalIndexUtils.cjs.map +1 -0
- package/dist/intervalIndex/intervalIndexUtils.d.ts +17 -0
- package/dist/intervalIndex/intervalIndexUtils.d.ts.map +1 -0
- package/dist/intervalIndex/overlappingIntervalsIndex.cjs +116 -0
- package/dist/intervalIndex/overlappingIntervalsIndex.cjs.map +1 -0
- package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +44 -0
- package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -0
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.cjs +41 -0
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.cjs.map +1 -0
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +11 -0
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -0
- package/dist/intervalIndex/sequenceIntervalIndexes.cjs +7 -0
- package/dist/intervalIndex/sequenceIntervalIndexes.cjs.map +1 -0
- package/dist/intervalIndex/sequenceIntervalIndexes.d.ts +35 -0
- package/dist/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -0
- package/dist/intervalIndex/startpointInRangeIndex.cjs +66 -0
- package/dist/intervalIndex/startpointInRangeIndex.cjs.map +1 -0
- package/dist/intervalIndex/startpointInRangeIndex.d.ts +34 -0
- package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -0
- package/dist/intervalTree.cjs +80 -0
- package/dist/intervalTree.cjs.map +1 -0
- package/dist/intervalTree.d.ts +24 -0
- package/dist/intervalTree.d.ts.map +1 -0
- package/dist/intervals/index.cjs +23 -0
- package/dist/intervals/index.cjs.map +1 -0
- package/dist/intervals/index.d.ts +8 -0
- package/dist/intervals/index.d.ts.map +1 -0
- package/dist/intervals/interval.cjs +181 -0
- package/dist/intervals/interval.cjs.map +1 -0
- package/dist/intervals/interval.d.ts +84 -0
- package/dist/intervals/interval.d.ts.map +1 -0
- package/dist/intervals/intervalUtils.cjs +83 -0
- package/dist/intervals/intervalUtils.cjs.map +1 -0
- package/dist/intervals/intervalUtils.d.ts +230 -0
- package/dist/intervals/intervalUtils.d.ts.map +1 -0
- package/dist/intervals/sequenceInterval.cjs +378 -0
- package/dist/intervals/sequenceInterval.cjs.map +1 -0
- package/dist/intervals/sequenceInterval.d.ts +137 -0
- package/dist/intervals/sequenceInterval.d.ts.map +1 -0
- package/dist/{localValues.js → localValues.cjs} +1 -1
- package/dist/localValues.cjs.map +1 -0
- package/dist/localValues.d.ts +2 -1
- package/dist/localValues.d.ts.map +1 -1
- package/dist/{packageVersion.js → packageVersion.cjs} +2 -2
- package/dist/packageVersion.cjs.map +1 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/revertibles.cjs +425 -0
- package/dist/revertibles.cjs.map +1 -0
- package/dist/revertibles.d.ts +86 -0
- package/dist/revertibles.d.ts.map +1 -0
- package/dist/sequence-alpha.d.ts +1315 -0
- package/dist/sequence-beta.d.ts +244 -0
- package/dist/sequence-public.d.ts +244 -0
- package/dist/sequence-untrimmed.d.ts +1803 -0
- package/dist/{sequence.js → sequence.cjs} +226 -156
- package/dist/sequence.cjs.map +1 -0
- package/dist/sequence.d.ts +125 -48
- package/dist/sequence.d.ts.map +1 -1
- package/dist/{sequenceDeltaEvent.js → sequenceDeltaEvent.cjs} +18 -8
- package/dist/sequenceDeltaEvent.cjs.map +1 -0
- package/dist/sequenceDeltaEvent.d.ts +24 -7
- package/dist/sequenceDeltaEvent.d.ts.map +1 -1
- package/dist/sequenceFactory.cjs +55 -0
- package/dist/sequenceFactory.cjs.map +1 -0
- package/dist/sequenceFactory.d.ts +3 -89
- package/dist/sequenceFactory.d.ts.map +1 -1
- package/dist/{sharedIntervalCollection.js → sharedIntervalCollection.cjs} +17 -22
- package/dist/sharedIntervalCollection.cjs.map +1 -0
- package/dist/sharedIntervalCollection.d.ts +12 -12
- package/dist/sharedIntervalCollection.d.ts.map +1 -1
- package/dist/{sharedSequence.js → sharedSequence.cjs} +29 -22
- package/dist/sharedSequence.cjs.map +1 -0
- package/dist/sharedSequence.d.ts +14 -2
- package/dist/sharedSequence.d.ts.map +1 -1
- package/dist/sharedString.cjs +286 -0
- package/dist/sharedString.cjs.map +1 -0
- package/dist/sharedString.d.ts +58 -22
- package/dist/sharedString.d.ts.map +1 -1
- package/dist/tsdoc-metadata.json +11 -0
- package/lib/{defaultMap.d.ts → defaultMap.d.mts} +7 -6
- package/lib/defaultMap.d.mts.map +1 -0
- package/lib/{defaultMap.js → defaultMap.mjs} +28 -21
- package/lib/defaultMap.mjs.map +1 -0
- package/lib/{defaultMapInterfaces.d.ts → defaultMapInterfaces.d.mts} +44 -12
- package/lib/defaultMapInterfaces.d.mts.map +1 -0
- package/lib/defaultMapInterfaces.mjs +6 -0
- package/lib/defaultMapInterfaces.mjs.map +1 -0
- package/lib/index.d.mts +17 -0
- package/lib/index.d.mts.map +1 -0
- package/lib/index.mjs +16 -0
- package/lib/index.mjs.map +1 -0
- package/lib/intervalCollection.d.mts +569 -0
- package/lib/intervalCollection.d.mts.map +1 -0
- package/lib/intervalCollection.mjs +1144 -0
- package/lib/intervalCollection.mjs.map +1 -0
- package/lib/intervalIndex/endpointInRangeIndex.d.mts +34 -0
- package/lib/intervalIndex/endpointInRangeIndex.d.mts.map +1 -0
- package/lib/intervalIndex/endpointInRangeIndex.mjs +61 -0
- package/lib/intervalIndex/endpointInRangeIndex.mjs.map +1 -0
- package/lib/intervalIndex/endpointIndex.d.mts +38 -0
- package/lib/intervalIndex/endpointIndex.d.mts.map +1 -0
- package/lib/intervalIndex/endpointIndex.mjs +42 -0
- package/lib/intervalIndex/endpointIndex.mjs.map +1 -0
- package/lib/intervalIndex/idIntervalIndex.d.mts +18 -0
- package/lib/intervalIndex/idIntervalIndex.d.mts.map +1 -0
- package/lib/intervalIndex/idIntervalIndex.mjs +40 -0
- package/lib/intervalIndex/idIntervalIndex.mjs.map +1 -0
- package/lib/intervalIndex/index.d.mts +13 -0
- package/lib/intervalIndex/index.d.mts.map +1 -0
- package/lib/intervalIndex/index.mjs +11 -0
- package/lib/intervalIndex/index.mjs.map +1 -0
- package/lib/intervalIndex/intervalIndex.d.mts +30 -0
- package/lib/intervalIndex/intervalIndex.d.mts.map +1 -0
- package/lib/{defaultMapInterfaces.js → intervalIndex/intervalIndex.mjs} +1 -1
- package/lib/intervalIndex/intervalIndex.mjs.map +1 -0
- package/lib/intervalIndex/intervalIndexUtils.d.mts +17 -0
- package/lib/intervalIndex/intervalIndexUtils.d.mts.map +1 -0
- package/lib/intervalIndex/intervalIndexUtils.mjs +18 -0
- package/lib/intervalIndex/intervalIndexUtils.mjs.map +1 -0
- package/lib/intervalIndex/overlappingIntervalsIndex.d.mts +44 -0
- package/lib/intervalIndex/overlappingIntervalsIndex.d.mts.map +1 -0
- package/lib/intervalIndex/overlappingIntervalsIndex.mjs +111 -0
- package/lib/intervalIndex/overlappingIntervalsIndex.mjs.map +1 -0
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.mts +11 -0
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.mts.map +1 -0
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.mjs +37 -0
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.mjs.map +1 -0
- package/lib/intervalIndex/sequenceIntervalIndexes.d.mts +35 -0
- package/lib/intervalIndex/sequenceIntervalIndexes.d.mts.map +1 -0
- package/lib/intervalIndex/sequenceIntervalIndexes.mjs +6 -0
- package/lib/intervalIndex/sequenceIntervalIndexes.mjs.map +1 -0
- package/lib/intervalIndex/startpointInRangeIndex.d.mts +34 -0
- package/lib/intervalIndex/startpointInRangeIndex.d.mts.map +1 -0
- package/lib/intervalIndex/startpointInRangeIndex.mjs +61 -0
- package/lib/intervalIndex/startpointInRangeIndex.mjs.map +1 -0
- package/lib/intervalTree.d.mts +24 -0
- package/lib/intervalTree.d.mts.map +1 -0
- package/lib/intervalTree.mjs +76 -0
- package/lib/intervalTree.mjs.map +1 -0
- package/lib/intervals/index.d.mts +8 -0
- package/lib/intervals/index.d.mts.map +1 -0
- package/lib/intervals/index.mjs +8 -0
- package/lib/intervals/index.mjs.map +1 -0
- package/lib/intervals/interval.d.mts +84 -0
- package/lib/intervals/interval.d.mts.map +1 -0
- package/lib/intervals/interval.mjs +176 -0
- package/lib/intervals/interval.mjs.map +1 -0
- package/lib/intervals/intervalUtils.d.mts +230 -0
- package/lib/intervals/intervalUtils.d.mts.map +1 -0
- package/lib/intervals/intervalUtils.mjs +77 -0
- package/lib/intervals/intervalUtils.mjs.map +1 -0
- package/lib/intervals/sequenceInterval.d.mts +137 -0
- package/lib/intervals/sequenceInterval.d.mts.map +1 -0
- package/lib/intervals/sequenceInterval.mjs +370 -0
- package/lib/intervals/sequenceInterval.mjs.map +1 -0
- package/lib/{localValues.d.ts → localValues.d.mts} +3 -2
- package/lib/localValues.d.mts.map +1 -0
- package/lib/{localValues.js → localValues.mjs} +2 -2
- package/lib/localValues.mjs.map +1 -0
- package/lib/{packageVersion.d.ts → packageVersion.d.mts} +1 -1
- package/lib/{packageVersion.d.ts.map → packageVersion.d.mts.map} +1 -1
- package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
- package/lib/packageVersion.mjs.map +1 -0
- package/lib/revertibles.d.mts +86 -0
- package/lib/revertibles.d.mts.map +1 -0
- package/lib/revertibles.mjs +416 -0
- package/lib/revertibles.mjs.map +1 -0
- package/lib/sequence-alpha.d.mts +1315 -0
- package/lib/sequence-beta.d.mts +244 -0
- package/lib/sequence-public.d.mts +244 -0
- package/lib/sequence-untrimmed.d.mts +1803 -0
- package/lib/{sequence.d.ts → sequence.d.mts} +127 -50
- package/lib/sequence.d.mts.map +1 -0
- package/lib/{sequence.js → sequence.mjs} +225 -152
- package/lib/sequence.mjs.map +1 -0
- package/lib/{sequenceDeltaEvent.d.ts → sequenceDeltaEvent.d.mts} +24 -7
- package/lib/sequenceDeltaEvent.d.mts.map +1 -0
- package/lib/{sequenceDeltaEvent.js → sequenceDeltaEvent.mjs} +20 -8
- package/lib/sequenceDeltaEvent.mjs.map +1 -0
- package/lib/sequenceFactory.d.mts +22 -0
- package/lib/sequenceFactory.d.mts.map +1 -0
- package/lib/sequenceFactory.mjs +51 -0
- package/lib/sequenceFactory.mjs.map +1 -0
- package/lib/{sharedIntervalCollection.d.ts → sharedIntervalCollection.d.mts} +12 -12
- package/lib/sharedIntervalCollection.d.mts.map +1 -0
- package/lib/{sharedIntervalCollection.js → sharedIntervalCollection.mjs} +16 -21
- package/lib/sharedIntervalCollection.mjs.map +1 -0
- package/lib/{sharedSequence.d.ts → sharedSequence.d.mts} +15 -3
- package/lib/sharedSequence.d.mts.map +1 -0
- package/lib/{sharedSequence.js → sharedSequence.mjs} +30 -23
- package/lib/sharedSequence.mjs.map +1 -0
- package/lib/{sharedString.d.ts → sharedString.d.mts} +60 -24
- package/lib/sharedString.d.mts.map +1 -0
- package/lib/sharedString.mjs +281 -0
- package/lib/sharedString.mjs.map +1 -0
- package/package.json +146 -75
- package/prettier.config.cjs +8 -0
- package/sequence.test-files.tar +0 -0
- package/src/defaultMap.ts +417 -403
- package/src/defaultMapInterfaces.ts +157 -117
- package/src/index.ts +86 -26
- package/src/intervalCollection.ts +2043 -1563
- package/src/intervalIndex/endpointInRangeIndex.ts +116 -0
- package/src/intervalIndex/endpointIndex.ts +91 -0
- package/src/intervalIndex/idIntervalIndex.ts +64 -0
- package/src/intervalIndex/index.ts +25 -0
- package/src/intervalIndex/intervalIndex.ts +32 -0
- package/src/intervalIndex/intervalIndexUtils.ts +27 -0
- package/src/intervalIndex/overlappingIntervalsIndex.ts +187 -0
- package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +80 -0
- package/src/intervalIndex/sequenceIntervalIndexes.ts +34 -0
- package/src/intervalIndex/startpointInRangeIndex.ts +114 -0
- package/src/intervalTree.ts +98 -0
- package/src/intervals/index.ts +25 -0
- package/src/intervals/interval.ts +238 -0
- package/src/intervals/intervalUtils.ts +288 -0
- package/src/intervals/sequenceInterval.ts +616 -0
- package/src/localValues.ts +68 -73
- package/src/packageVersion.ts +1 -1
- package/src/revertibles.ts +693 -0
- package/src/sequence.ts +845 -690
- package/src/sequenceDeltaEvent.ts +164 -131
- package/src/sequenceFactory.ts +58 -214
- package/src/sharedIntervalCollection.ts +161 -152
- package/src/sharedSequence.ts +181 -167
- package/src/sharedString.ts +390 -234
- package/tsc-multi.test.json +10 -0
- package/tsconfig.json +11 -13
- package/.editorconfig +0 -7
- package/.vscode/launch.json +0 -15
- package/dist/defaultMap.js.map +0 -1
- package/dist/defaultMapInterfaces.js.map +0 -1
- package/dist/index.js +0 -44
- package/dist/index.js.map +0 -1
- package/dist/intervalCollection.js +0 -1250
- package/dist/intervalCollection.js.map +0 -1
- package/dist/localValues.js.map +0 -1
- package/dist/packageVersion.js.map +0 -1
- package/dist/sequence.js.map +0 -1
- package/dist/sequenceDeltaEvent.js.map +0 -1
- package/dist/sequenceFactory.js +0 -192
- package/dist/sequenceFactory.js.map +0 -1
- package/dist/sharedIntervalCollection.js.map +0 -1
- package/dist/sharedNumberSequence.d.ts +0 -50
- package/dist/sharedNumberSequence.d.ts.map +0 -1
- package/dist/sharedNumberSequence.js +0 -61
- package/dist/sharedNumberSequence.js.map +0 -1
- package/dist/sharedObjectSequence.d.ts +0 -50
- package/dist/sharedObjectSequence.d.ts.map +0 -1
- package/dist/sharedObjectSequence.js +0 -61
- package/dist/sharedObjectSequence.js.map +0 -1
- package/dist/sharedSequence.js.map +0 -1
- package/dist/sharedString.js +0 -187
- package/dist/sharedString.js.map +0 -1
- package/dist/sparsematrix.d.ts +0 -139
- package/dist/sparsematrix.d.ts.map +0 -1
- package/dist/sparsematrix.js +0 -332
- package/dist/sparsematrix.js.map +0 -1
- package/lib/defaultMap.d.ts.map +0 -1
- package/lib/defaultMap.js.map +0 -1
- package/lib/defaultMapInterfaces.d.ts.map +0 -1
- package/lib/defaultMapInterfaces.js.map +0 -1
- package/lib/index.d.ts +0 -27
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -26
- package/lib/index.js.map +0 -1
- package/lib/intervalCollection.d.ts +0 -270
- package/lib/intervalCollection.d.ts.map +0 -1
- package/lib/intervalCollection.js +0 -1238
- package/lib/intervalCollection.js.map +0 -1
- package/lib/localValues.d.ts.map +0 -1
- package/lib/localValues.js.map +0 -1
- package/lib/packageVersion.js.map +0 -1
- package/lib/sequence.d.ts.map +0 -1
- package/lib/sequence.js.map +0 -1
- package/lib/sequenceDeltaEvent.d.ts.map +0 -1
- package/lib/sequenceDeltaEvent.js.map +0 -1
- package/lib/sequenceFactory.d.ts +0 -108
- package/lib/sequenceFactory.d.ts.map +0 -1
- package/lib/sequenceFactory.js +0 -186
- package/lib/sequenceFactory.js.map +0 -1
- package/lib/sharedIntervalCollection.d.ts.map +0 -1
- package/lib/sharedIntervalCollection.js.map +0 -1
- package/lib/sharedNumberSequence.d.ts +0 -50
- package/lib/sharedNumberSequence.d.ts.map +0 -1
- package/lib/sharedNumberSequence.js +0 -57
- package/lib/sharedNumberSequence.js.map +0 -1
- package/lib/sharedObjectSequence.d.ts +0 -50
- package/lib/sharedObjectSequence.d.ts.map +0 -1
- package/lib/sharedObjectSequence.js +0 -57
- package/lib/sharedObjectSequence.js.map +0 -1
- package/lib/sharedSequence.d.ts.map +0 -1
- package/lib/sharedSequence.js.map +0 -1
- package/lib/sharedString.d.ts.map +0 -1
- package/lib/sharedString.js +0 -183
- package/lib/sharedString.js.map +0 -1
- package/lib/sparsematrix.d.ts +0 -139
- package/lib/sparsematrix.d.ts.map +0 -1
- package/lib/sparsematrix.js +0 -323
- package/lib/sparsematrix.js.map +0 -1
- package/src/sharedNumberSequence.ts +0 -62
- package/src/sharedObjectSequence.ts +0 -62
- package/src/sparsematrix.ts +0 -421
- package/tsconfig.esnext.json +0 -7
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.SharedStringFactory = void 0;
|
|
8
|
+
const merge_tree_1 = require("@fluidframework/merge-tree");
|
|
9
|
+
const packageVersion_1 = require("./packageVersion.cjs");
|
|
10
|
+
const sharedString_1 = require("./sharedString.cjs");
|
|
11
|
+
/**
|
|
12
|
+
* @alpha
|
|
13
|
+
*/
|
|
14
|
+
class SharedStringFactory {
|
|
15
|
+
static segmentFromSpec(spec) {
|
|
16
|
+
const maybeText = merge_tree_1.TextSegment.fromJSONObject(spec);
|
|
17
|
+
if (maybeText) {
|
|
18
|
+
return maybeText;
|
|
19
|
+
}
|
|
20
|
+
const maybeMarker = merge_tree_1.Marker.fromJSONObject(spec);
|
|
21
|
+
if (maybeMarker) {
|
|
22
|
+
return maybeMarker;
|
|
23
|
+
}
|
|
24
|
+
throw new Error(`Unrecognized IJSONObject`);
|
|
25
|
+
}
|
|
26
|
+
get type() {
|
|
27
|
+
return SharedStringFactory.Type;
|
|
28
|
+
}
|
|
29
|
+
get attributes() {
|
|
30
|
+
return SharedStringFactory.Attributes;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* {@inheritDoc @fluidframework/datastore-definitions#IChannelFactory.load}
|
|
34
|
+
*/
|
|
35
|
+
async load(runtime, id, services, attributes) {
|
|
36
|
+
const sharedString = new sharedString_1.SharedString(runtime, id, attributes);
|
|
37
|
+
await sharedString.load(services);
|
|
38
|
+
return sharedString;
|
|
39
|
+
}
|
|
40
|
+
create(document, id) {
|
|
41
|
+
const sharedString = new sharedString_1.SharedString(document, id, this.attributes);
|
|
42
|
+
sharedString.initializeLocal();
|
|
43
|
+
return sharedString;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.SharedStringFactory = SharedStringFactory;
|
|
47
|
+
// TODO rename back to https://graph.microsoft.com/types/mergeTree/string once paparazzi is able to dynamically
|
|
48
|
+
// load code (UPDATE: paparazzi is gone... anything to do here?)
|
|
49
|
+
SharedStringFactory.Type = "https://graph.microsoft.com/types/mergeTree";
|
|
50
|
+
SharedStringFactory.Attributes = {
|
|
51
|
+
type: SharedStringFactory.Type,
|
|
52
|
+
snapshotFormatVersion: "0.1",
|
|
53
|
+
packageVersion: packageVersion_1.pkgVersion,
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=sequenceFactory.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequenceFactory.cjs","sourceRoot":"","sources":["../src/sequenceFactory.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAQH,2DAAiE;AACjE,yDAA8C;AAC9C,qDAAmE;AAEnE;;GAEG;AACH,MAAa,mBAAmB;IAWxB,MAAM,CAAC,eAAe,CAAC,IAAS;QACtC,MAAM,SAAS,GAAG,wBAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,SAAS,EAAE;YACd,OAAO,SAAS,CAAC;SACjB;QAED,MAAM,WAAW,GAAG,mBAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,WAAW,EAAE;YAChB,OAAO,WAAW,CAAC;SACnB;QAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC7C,CAAC;IAED,IAAW,IAAI;QACd,OAAO,mBAAmB,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,mBAAmB,CAAC,UAAU,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI,CAChB,OAA+B,EAC/B,EAAU,EACV,QAA0B,EAC1B,UAA8B;QAE9B,MAAM,YAAY,GAAG,IAAI,2BAAY,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,YAAY,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,QAAgC,EAAE,EAAU;QACzD,MAAM,YAAY,GAAG,IAAI,2BAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACrE,YAAY,CAAC,eAAe,EAAE,CAAC;QAC/B,OAAO,YAAY,CAAC;IACrB,CAAC;;AAnDF,kDAoDC;AAnDA,+GAA+G;AAC/G,gEAAgE;AAClD,wBAAI,GAAG,6CAA6C,CAAC;AAE5C,8BAAU,GAAuB;IACvD,IAAI,EAAE,mBAAmB,CAAC,IAAI;IAC9B,qBAAqB,EAAE,KAAK;IAC5B,cAAc,EAAE,2BAAU;CAC1B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tIChannelAttributes,\n\tIFluidDataStoreRuntime,\n\tIChannelServices,\n\tIChannelFactory,\n} from \"@fluidframework/datastore-definitions\";\nimport { Marker, TextSegment } from \"@fluidframework/merge-tree\";\nimport { pkgVersion } from \"./packageVersion\";\nimport { SharedString, SharedStringSegment } from \"./sharedString\";\n\n/**\n * @alpha\n */\nexport class SharedStringFactory implements IChannelFactory {\n\t// TODO rename back to https://graph.microsoft.com/types/mergeTree/string once paparazzi is able to dynamically\n\t// load code (UPDATE: paparazzi is gone... anything to do here?)\n\tpublic static Type = \"https://graph.microsoft.com/types/mergeTree\";\n\n\tpublic static readonly Attributes: IChannelAttributes = {\n\t\ttype: SharedStringFactory.Type,\n\t\tsnapshotFormatVersion: \"0.1\",\n\t\tpackageVersion: pkgVersion,\n\t};\n\n\tpublic static segmentFromSpec(spec: any): SharedStringSegment {\n\t\tconst maybeText = TextSegment.fromJSONObject(spec);\n\t\tif (maybeText) {\n\t\t\treturn maybeText;\n\t\t}\n\n\t\tconst maybeMarker = Marker.fromJSONObject(spec);\n\t\tif (maybeMarker) {\n\t\t\treturn maybeMarker;\n\t\t}\n\n\t\tthrow new Error(`Unrecognized IJSONObject`);\n\t}\n\n\tpublic get type() {\n\t\treturn SharedStringFactory.Type;\n\t}\n\n\tpublic get attributes() {\n\t\treturn SharedStringFactory.Attributes;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/datastore-definitions#IChannelFactory.load}\n\t */\n\tpublic async load(\n\t\truntime: IFluidDataStoreRuntime,\n\t\tid: string,\n\t\tservices: IChannelServices,\n\t\tattributes: IChannelAttributes,\n\t): Promise<SharedString> {\n\t\tconst sharedString = new SharedString(runtime, id, attributes);\n\t\tawait sharedString.load(services);\n\t\treturn sharedString;\n\t}\n\n\tpublic create(document: IFluidDataStoreRuntime, id: string): SharedString {\n\t\tconst sharedString = new SharedString(document, id, this.attributes);\n\t\tsharedString.initializeLocal();\n\t\treturn sharedString;\n\t}\n}\n"]}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { IChannelAttributes, IFluidDataStoreRuntime, IChannelServices, IChannelFactory } from "@fluidframework/datastore-definitions";
|
|
6
|
-
import { IJSONSegment } from "@fluidframework/merge-tree";
|
|
7
|
-
import { ISharedObject } from "@fluidframework/shared-object-base";
|
|
8
|
-
import { SubSequence } from "./sharedSequence";
|
|
9
6
|
import { SharedString, SharedStringSegment } from "./sharedString";
|
|
7
|
+
/**
|
|
8
|
+
* @alpha
|
|
9
|
+
*/
|
|
10
10
|
export declare class SharedStringFactory implements IChannelFactory {
|
|
11
11
|
static Type: string;
|
|
12
12
|
static readonly Attributes: IChannelAttributes;
|
|
@@ -19,90 +19,4 @@ export declare class SharedStringFactory implements IChannelFactory {
|
|
|
19
19
|
load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, attributes: IChannelAttributes): Promise<SharedString>;
|
|
20
20
|
create(document: IFluidDataStoreRuntime, id: string): SharedString;
|
|
21
21
|
}
|
|
22
|
-
/**
|
|
23
|
-
* @deprecated SharedObjectSequence is not recommended for use and will be removed in an upcoming release.
|
|
24
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
25
|
-
*/
|
|
26
|
-
export declare class SharedObjectSequenceFactory implements IChannelFactory {
|
|
27
|
-
/**
|
|
28
|
-
* @deprecated SharedObjectSequence is not recommended for use and will be removed in an upcoming release.
|
|
29
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
30
|
-
*/
|
|
31
|
-
static Type: string;
|
|
32
|
-
/**
|
|
33
|
-
* @deprecated SharedObjectSequence is not recommended for use and will be removed in an upcoming release.
|
|
34
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
35
|
-
*/
|
|
36
|
-
static readonly Attributes: IChannelAttributes;
|
|
37
|
-
/**
|
|
38
|
-
* @deprecated SharedObjectSequence is not recommended for use and will be removed in an upcoming release.
|
|
39
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
40
|
-
*/
|
|
41
|
-
static segmentFromSpec(segSpec: IJSONSegment): SubSequence<object>;
|
|
42
|
-
/**
|
|
43
|
-
* @deprecated SharedObjectSequence is not recommended for use and will be removed in an upcoming release.
|
|
44
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
45
|
-
*/
|
|
46
|
-
get type(): string;
|
|
47
|
-
/**
|
|
48
|
-
* @deprecated SharedObjectSequence is not recommended for use and will be removed in an upcoming release.
|
|
49
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
50
|
-
*/
|
|
51
|
-
get attributes(): IChannelAttributes;
|
|
52
|
-
/**
|
|
53
|
-
* {@inheritDoc @fluidframework/datastore-definitions#IChannelFactory.load}
|
|
54
|
-
*
|
|
55
|
-
* @deprecated SharedObjectSequence is not recommended for use and will be removed in an upcoming release.
|
|
56
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
57
|
-
*/
|
|
58
|
-
load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, attributes: IChannelAttributes): Promise<ISharedObject>;
|
|
59
|
-
/**
|
|
60
|
-
* @deprecated SharedObjectSequence is not recommended for use and will be removed in an upcoming release.
|
|
61
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
62
|
-
*/
|
|
63
|
-
create(document: IFluidDataStoreRuntime, id: string): ISharedObject;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* @deprecated SharedNumberSequence is not recommended for use and will be removed in an upcoming release.
|
|
67
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
68
|
-
*/
|
|
69
|
-
export declare class SharedNumberSequenceFactory implements IChannelFactory {
|
|
70
|
-
/**
|
|
71
|
-
* @deprecated SharedNumberSequence is not recommended for use and will be removed in an upcoming release.
|
|
72
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
73
|
-
*/
|
|
74
|
-
static Type: string;
|
|
75
|
-
/**
|
|
76
|
-
* @deprecated SharedNumberSequence is not recommended for use and will be removed in an upcoming release.
|
|
77
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
78
|
-
*/
|
|
79
|
-
static readonly Attributes: IChannelAttributes;
|
|
80
|
-
/**
|
|
81
|
-
* @deprecated SharedNumberSequence is not recommended for use and will be removed in an upcoming release.
|
|
82
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
83
|
-
*/
|
|
84
|
-
static segmentFromSpec(segSpec: IJSONSegment): SubSequence<number>;
|
|
85
|
-
/**
|
|
86
|
-
* @deprecated SharedNumberSequence is not recommended for use and will be removed in an upcoming release.
|
|
87
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
88
|
-
*/
|
|
89
|
-
get type(): string;
|
|
90
|
-
/**
|
|
91
|
-
* @deprecated SharedNumberSequence is not recommended for use and will be removed in an upcoming release.
|
|
92
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
93
|
-
*/
|
|
94
|
-
get attributes(): IChannelAttributes;
|
|
95
|
-
/**
|
|
96
|
-
* {@inheritDoc @fluidframework/datastore-definitions#IChannelFactory.load}
|
|
97
|
-
*
|
|
98
|
-
* @deprecated SharedNumberSequence is not recommended for use and will be removed in an upcoming release.
|
|
99
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
100
|
-
*/
|
|
101
|
-
load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, attributes: IChannelAttributes): Promise<ISharedObject>;
|
|
102
|
-
/**
|
|
103
|
-
* @deprecated SharedNumberSequence is not recommended for use and will be removed in an upcoming release.
|
|
104
|
-
* For more info, please see [Github issue 8526](https://github.com/microsoft/FluidFramework/issues/8526)
|
|
105
|
-
*/
|
|
106
|
-
create(document: IFluidDataStoreRuntime, id: string): ISharedObject;
|
|
107
|
-
}
|
|
108
22
|
//# sourceMappingURL=sequenceFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequenceFactory.d.ts","sourceRoot":"","sources":["../src/sequenceFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"sequenceFactory.d.ts","sourceRoot":"","sources":["../src/sequenceFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEnE;;GAEG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IAG1D,OAAc,IAAI,SAAiD;IAEnE,gBAAuB,UAAU,EAAE,kBAAkB,CAInD;WAEY,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,mBAAmB;IAc7D,IAAW,IAAI,WAEd;IAED,IAAW,UAAU,uBAEpB;IAED;;OAEG;IACU,IAAI,CAChB,OAAO,EAAE,sBAAsB,EAC/B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,kBAAkB,GAC5B,OAAO,CAAC,YAAY,CAAC;IAMjB,MAAM,CAAC,QAAQ,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY;CAKzE"}
|
|
@@ -6,16 +6,17 @@
|
|
|
6
6
|
var _a;
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.SharedIntervalCollection = exports.SharedIntervalCollectionFactory = void 0;
|
|
9
|
-
const
|
|
9
|
+
const client_utils_1 = require("@fluid-internal/client-utils");
|
|
10
10
|
const protocol_definitions_1 = require("@fluidframework/protocol-definitions");
|
|
11
11
|
const shared_object_base_1 = require("@fluidframework/shared-object-base");
|
|
12
|
-
const intervalCollection_1 = require("./intervalCollection");
|
|
13
|
-
const defaultMap_1 = require("./defaultMap");
|
|
14
|
-
const packageVersion_1 = require("./packageVersion");
|
|
12
|
+
const intervalCollection_1 = require("./intervalCollection.cjs");
|
|
13
|
+
const defaultMap_1 = require("./defaultMap.cjs");
|
|
14
|
+
const packageVersion_1 = require("./packageVersion.cjs");
|
|
15
15
|
const snapshotFileName = "header";
|
|
16
16
|
/**
|
|
17
|
-
* The factory that defines the SharedIntervalCollection
|
|
18
|
-
* @deprecated
|
|
17
|
+
* The factory that defines the SharedIntervalCollection.
|
|
18
|
+
* @deprecated `SharedIntervalCollection` is not maintained and is planned to be removed.
|
|
19
|
+
* @internal
|
|
19
20
|
*/
|
|
20
21
|
class SharedIntervalCollectionFactory {
|
|
21
22
|
get type() {
|
|
@@ -46,18 +47,10 @@ SharedIntervalCollectionFactory.Attributes = {
|
|
|
46
47
|
packageVersion: packageVersion_1.pkgVersion,
|
|
47
48
|
};
|
|
48
49
|
/**
|
|
49
|
-
* @deprecated
|
|
50
|
+
* @deprecated `SharedIntervalCollection` is not maintained and is planned to be removed.
|
|
51
|
+
* @internal
|
|
50
52
|
*/
|
|
51
53
|
class SharedIntervalCollection extends shared_object_base_1.SharedObject {
|
|
52
|
-
/**
|
|
53
|
-
* Constructs a new shared SharedIntervalCollection. If the object is non-local an id and service interfaces will
|
|
54
|
-
* be provided
|
|
55
|
-
*/
|
|
56
|
-
constructor(id, runtime, attributes) {
|
|
57
|
-
super(id, runtime, attributes, "fluid_sharedIntervalCollection_");
|
|
58
|
-
this[_a] = "SharedIntervalCollection";
|
|
59
|
-
this.intervalCollections = new defaultMap_1.DefaultMap(this.serializer, this.handle, (op, localOpMetadata) => this.submitLocalMessage(op, localOpMetadata), new intervalCollection_1.IntervalCollectionValueType());
|
|
60
|
-
}
|
|
61
54
|
/**
|
|
62
55
|
* Create a SharedIntervalCollection
|
|
63
56
|
*
|
|
@@ -77,11 +70,13 @@ class SharedIntervalCollection extends shared_object_base_1.SharedObject {
|
|
|
77
70
|
return new SharedIntervalCollectionFactory();
|
|
78
71
|
}
|
|
79
72
|
/**
|
|
80
|
-
*
|
|
81
|
-
*
|
|
73
|
+
* Constructs a new shared SharedIntervalCollection. If the object is non-local an id and service interfaces will
|
|
74
|
+
* be provided
|
|
82
75
|
*/
|
|
83
|
-
|
|
84
|
-
|
|
76
|
+
constructor(id, runtime, attributes) {
|
|
77
|
+
super(id, runtime, attributes, "fluid_sharedIntervalCollection_");
|
|
78
|
+
this[_a] = "SharedIntervalCollection";
|
|
79
|
+
this.intervalCollections = new defaultMap_1.DefaultMap(this.serializer, this.handle, (op, localOpMetadata) => this.submitLocalMessage(op, localOpMetadata), new intervalCollection_1.IntervalCollectionValueType(), runtime.options);
|
|
85
80
|
}
|
|
86
81
|
getIntervalCollection(label) {
|
|
87
82
|
const realLabel = this.getIntervalCollectionPath(label);
|
|
@@ -100,7 +95,7 @@ class SharedIntervalCollection extends shared_object_base_1.SharedObject {
|
|
|
100
95
|
*/
|
|
101
96
|
async loadCore(storage) {
|
|
102
97
|
const blob = await storage.readBlob(snapshotFileName);
|
|
103
|
-
const header = (0,
|
|
98
|
+
const header = (0, client_utils_1.bufferToString)(blob, "utf8");
|
|
104
99
|
this.intervalCollections.populate(header);
|
|
105
100
|
}
|
|
106
101
|
processCore(message, local, localOpMetadata) {
|
|
@@ -121,4 +116,4 @@ class SharedIntervalCollection extends shared_object_base_1.SharedObject {
|
|
|
121
116
|
}
|
|
122
117
|
exports.SharedIntervalCollection = SharedIntervalCollection;
|
|
123
118
|
_a = Symbol.toStringTag;
|
|
124
|
-
//# sourceMappingURL=sharedIntervalCollection.
|
|
119
|
+
//# sourceMappingURL=sharedIntervalCollection.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharedIntervalCollection.cjs","sourceRoot":"","sources":["../src/sharedIntervalCollection.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 { bufferToString } from \"@fluid-internal/client-utils\";\nimport {\n\tIChannelAttributes,\n\tIFluidDataStoreRuntime,\n\tIChannelStorageService,\n\tIChannelServices,\n\tIChannelFactory,\n} from \"@fluidframework/datastore-definitions\";\nimport { ISequencedDocumentMessage, MessageType } from \"@fluidframework/protocol-definitions\";\nimport { ISummaryTreeWithStats } from \"@fluidframework/runtime-definitions\";\nimport {\n\tcreateSingleBlobSummary,\n\tIFluidSerializer,\n\tSharedObject,\n} from \"@fluidframework/shared-object-base\";\nimport { Interval, ISerializableInterval } from \"./intervals\";\nimport {\n\tIntervalCollection,\n\tIIntervalCollection,\n\tIntervalCollectionValueType,\n} from \"./intervalCollection\";\nimport { DefaultMap, IMapOperation } from \"./defaultMap\";\nimport { pkgVersion } from \"./packageVersion\";\nimport { IMapMessageLocalMetadata } from \"./defaultMapInterfaces\";\n\nconst snapshotFileName = \"header\";\n\n/**\n * The factory that defines the SharedIntervalCollection.\n * @deprecated `SharedIntervalCollection` is not maintained and is planned to be removed.\n * @internal\n */\nexport class SharedIntervalCollectionFactory implements IChannelFactory {\n\tpublic static readonly Type = \"https://graph.microsoft.com/types/sharedIntervalCollection\";\n\n\tpublic static readonly Attributes: IChannelAttributes = {\n\t\ttype: SharedIntervalCollectionFactory.Type,\n\t\tsnapshotFormatVersion: \"0.1\",\n\t\tpackageVersion: pkgVersion,\n\t};\n\n\tpublic get type() {\n\t\treturn SharedIntervalCollectionFactory.Type;\n\t}\n\n\tpublic get attributes() {\n\t\treturn SharedIntervalCollectionFactory.Attributes;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/datastore-definitions#IChannelFactory.load}\n\t */\n\tpublic async load(\n\t\truntime: IFluidDataStoreRuntime,\n\t\tid: string,\n\t\tservices: IChannelServices,\n\t\tattributes: IChannelAttributes,\n\t): Promise<SharedIntervalCollection> {\n\t\tconst map = new SharedIntervalCollection(id, runtime, attributes);\n\t\tawait map.load(services);\n\n\t\treturn map;\n\t}\n\n\tpublic create(runtime: IFluidDataStoreRuntime, id: string): SharedIntervalCollection {\n\t\tconst map = new SharedIntervalCollection(id, runtime, this.attributes);\n\t\tmap.initializeLocal();\n\n\t\treturn map;\n\t}\n}\n\n/**\n * @alpha\n */\nexport interface ISharedIntervalCollection<TInterval extends ISerializableInterval> {\n\tgetIntervalCollection(label: string): IIntervalCollection<TInterval>;\n}\n\n/**\n * @deprecated `SharedIntervalCollection` is not maintained and is planned to be removed.\n * @internal\n */\nexport class SharedIntervalCollection\n\textends SharedObject\n\timplements ISharedIntervalCollection<Interval>\n{\n\t/**\n\t * Create a SharedIntervalCollection\n\t *\n\t * @param runtime - data store runtime the new shared map belongs to\n\t * @param id - optional name of the shared map\n\t * @returns newly create shared map (but not attached yet)\n\t */\n\tpublic static create(runtime: IFluidDataStoreRuntime, id?: string) {\n\t\treturn runtime.createChannel(\n\t\t\tid,\n\t\t\tSharedIntervalCollectionFactory.Type,\n\t\t) as SharedIntervalCollection;\n\t}\n\n\t/**\n\t * Get a factory for SharedIntervalCollection to register with the data store.\n\t *\n\t * @returns a factory that creates and load SharedIntervalCollection\n\t */\n\tpublic static getFactory(): IChannelFactory {\n\t\treturn new SharedIntervalCollectionFactory();\n\t}\n\n\tpublic readonly [Symbol.toStringTag]: string = \"SharedIntervalCollection\";\n\tprivate readonly intervalCollections: DefaultMap<IntervalCollection<Interval>>;\n\n\t/**\n\t * Constructs a new shared SharedIntervalCollection. If the object is non-local an id and service interfaces will\n\t * be provided\n\t */\n\tconstructor(id: string, runtime: IFluidDataStoreRuntime, attributes: IChannelAttributes) {\n\t\tsuper(id, runtime, attributes, \"fluid_sharedIntervalCollection_\");\n\t\tthis.intervalCollections = new DefaultMap(\n\t\t\tthis.serializer,\n\t\t\tthis.handle,\n\t\t\t(op, localOpMetadata) => this.submitLocalMessage(op, localOpMetadata),\n\t\t\tnew IntervalCollectionValueType(),\n\t\t\truntime.options,\n\t\t);\n\t}\n\n\tpublic getIntervalCollection(label: string): IIntervalCollection<Interval> {\n\t\tconst realLabel = this.getIntervalCollectionPath(label);\n\t\tconst sharedCollection = this.intervalCollections.get(realLabel);\n\t\treturn sharedCollection;\n\t}\n\n\tprotected summarizeCore(serializer: IFluidSerializer): ISummaryTreeWithStats {\n\t\treturn createSingleBlobSummary(\n\t\t\tsnapshotFileName,\n\t\t\tthis.intervalCollections.serialize(serializer),\n\t\t);\n\t}\n\n\tprotected reSubmitCore(content: any, localOpMetadata: unknown) {\n\t\tthis.intervalCollections.tryResubmitMessage(\n\t\t\tcontent,\n\t\t\tlocalOpMetadata as IMapMessageLocalMetadata,\n\t\t);\n\t}\n\n\tprotected onDisconnect() {}\n\n\t/**\n\t * {@inheritDoc @fluidframework/shared-object-base#SharedObject.loadCore}\n\t */\n\tprotected async loadCore(storage: IChannelStorageService) {\n\t\tconst blob = await storage.readBlob(snapshotFileName);\n\t\tconst header = bufferToString(blob, \"utf8\");\n\t\tthis.intervalCollections.populate(header);\n\t}\n\n\tprotected processCore(\n\t\tmessage: ISequencedDocumentMessage,\n\t\tlocal: boolean,\n\t\tlocalOpMetadata: unknown,\n\t) {\n\t\tif (message.type === MessageType.Operation) {\n\t\t\tthis.intervalCollections.tryProcessMessage(\n\t\t\t\tmessage.contents as IMapOperation,\n\t\t\t\tlocal,\n\t\t\t\tmessage,\n\t\t\t\tlocalOpMetadata,\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Creates the full path of the intervalCollection label\n\t * @param label - the incoming label\n\t */\n\tprotected getIntervalCollectionPath(label: string): string {\n\t\treturn label;\n\t}\n\n\tprotected applyStashedOp() {\n\t\tthrow new Error(\"not implemented\");\n\t}\n}\n"]}
|
|
@@ -6,10 +6,12 @@ import { IChannelAttributes, IFluidDataStoreRuntime, IChannelStorageService, ICh
|
|
|
6
6
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
7
7
|
import { ISummaryTreeWithStats } from "@fluidframework/runtime-definitions";
|
|
8
8
|
import { IFluidSerializer, SharedObject } from "@fluidframework/shared-object-base";
|
|
9
|
-
import { Interval,
|
|
9
|
+
import { Interval, ISerializableInterval } from "./intervals";
|
|
10
|
+
import { IIntervalCollection } from "./intervalCollection";
|
|
10
11
|
/**
|
|
11
|
-
* The factory that defines the SharedIntervalCollection
|
|
12
|
-
* @deprecated
|
|
12
|
+
* The factory that defines the SharedIntervalCollection.
|
|
13
|
+
* @deprecated `SharedIntervalCollection` is not maintained and is planned to be removed.
|
|
14
|
+
* @internal
|
|
13
15
|
*/
|
|
14
16
|
export declare class SharedIntervalCollectionFactory implements IChannelFactory {
|
|
15
17
|
static readonly Type = "https://graph.microsoft.com/types/sharedIntervalCollection";
|
|
@@ -22,12 +24,15 @@ export declare class SharedIntervalCollectionFactory implements IChannelFactory
|
|
|
22
24
|
load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, attributes: IChannelAttributes): Promise<SharedIntervalCollection>;
|
|
23
25
|
create(runtime: IFluidDataStoreRuntime, id: string): SharedIntervalCollection;
|
|
24
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* @alpha
|
|
29
|
+
*/
|
|
25
30
|
export interface ISharedIntervalCollection<TInterval extends ISerializableInterval> {
|
|
26
|
-
|
|
27
|
-
getIntervalCollection(label: string): IntervalCollection<TInterval>;
|
|
31
|
+
getIntervalCollection(label: string): IIntervalCollection<TInterval>;
|
|
28
32
|
}
|
|
29
33
|
/**
|
|
30
|
-
* @deprecated
|
|
34
|
+
* @deprecated `SharedIntervalCollection` is not maintained and is planned to be removed.
|
|
35
|
+
* @internal
|
|
31
36
|
*/
|
|
32
37
|
export declare class SharedIntervalCollection extends SharedObject implements ISharedIntervalCollection<Interval> {
|
|
33
38
|
/**
|
|
@@ -51,12 +56,7 @@ export declare class SharedIntervalCollection extends SharedObject implements IS
|
|
|
51
56
|
* be provided
|
|
52
57
|
*/
|
|
53
58
|
constructor(id: string, runtime: IFluidDataStoreRuntime, attributes: IChannelAttributes);
|
|
54
|
-
|
|
55
|
-
* @deprecated - IntervalCollections are created on a first-write wins basis, and concurrent creates
|
|
56
|
-
* are supported. Use `getIntervalCollection` instead.
|
|
57
|
-
*/
|
|
58
|
-
waitIntervalCollection(label: string): Promise<IntervalCollection<Interval>>;
|
|
59
|
-
getIntervalCollection(label: string): IntervalCollection<Interval>;
|
|
59
|
+
getIntervalCollection(label: string): IIntervalCollection<Interval>;
|
|
60
60
|
protected summarizeCore(serializer: IFluidSerializer): ISummaryTreeWithStats;
|
|
61
61
|
protected reSubmitCore(content: any, localOpMetadata: unknown): void;
|
|
62
62
|
protected onDisconnect(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharedIntervalCollection.d.ts","sourceRoot":"","sources":["../src/sharedIntervalCollection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"sharedIntervalCollection.d.ts","sourceRoot":"","sources":["../src/sharedIntervalCollection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAe,MAAM,sCAAsC,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAEN,gBAAgB,EAChB,YAAY,EACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAEN,mBAAmB,EAEnB,MAAM,sBAAsB,CAAC;AAO9B;;;;GAIG;AACH,qBAAa,+BAAgC,YAAW,eAAe;IACtE,gBAAuB,IAAI,gEAAgE;IAE3F,gBAAuB,UAAU,EAAE,kBAAkB,CAInD;IAEF,IAAW,IAAI,WAEd;IAED,IAAW,UAAU,uBAEpB;IAED;;OAEG;IACU,IAAI,CAChB,OAAO,EAAE,sBAAsB,EAC/B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,kBAAkB,GAC5B,OAAO,CAAC,wBAAwB,CAAC;IAO7B,MAAM,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,GAAG,wBAAwB;CAMpF;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB,CAAC,SAAS,SAAS,qBAAqB;IACjF,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;CACrE;AAED;;;GAGG;AACH,qBAAa,wBACZ,SAAQ,YACR,YAAW,yBAAyB,CAAC,QAAQ,CAAC;IAE9C;;;;;;OAMG;WACW,MAAM,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,CAAC,EAAE,MAAM;IAOjE;;;;OAIG;WACW,UAAU,IAAI,eAAe;IAI3C,SAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAA8B;IAC1E,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2C;IAE/E;;;OAGG;gBACS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,kBAAkB;IAWhF,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC;IAM1E,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,gBAAgB,GAAG,qBAAqB;IAO5E,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO;IAO7D,SAAS,CAAC,YAAY;IAEtB;;OAEG;cACa,QAAQ,CAAC,OAAO,EAAE,sBAAsB;IAMxD,SAAS,CAAC,WAAW,CACpB,OAAO,EAAE,yBAAyB,EAClC,KAAK,EAAE,OAAO,EACd,eAAe,EAAE,OAAO;IAYzB;;;OAGG;IACH,SAAS,CAAC,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI1D,SAAS,CAAC,cAAc;CAGxB"}
|
|
@@ -5,16 +5,15 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.SharedSequence = exports.SubSequence = void 0;
|
|
8
|
+
const core_utils_1 = require("@fluidframework/core-utils");
|
|
8
9
|
const merge_tree_1 = require("@fluidframework/merge-tree");
|
|
9
|
-
const sequence_1 = require("./sequence");
|
|
10
|
+
const sequence_1 = require("./sequence.cjs");
|
|
10
11
|
const MaxRun = 128;
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated SubSequence will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
11
16
|
class SubSequence extends merge_tree_1.BaseSegment {
|
|
12
|
-
constructor(items) {
|
|
13
|
-
super();
|
|
14
|
-
this.items = items;
|
|
15
|
-
this.type = SubSequence.typeString;
|
|
16
|
-
this.cachedLength = items.length;
|
|
17
|
-
}
|
|
18
17
|
static is(segment) {
|
|
19
18
|
return segment.type === SubSequence.typeString;
|
|
20
19
|
}
|
|
@@ -28,6 +27,12 @@ class SubSequence extends merge_tree_1.BaseSegment {
|
|
|
28
27
|
}
|
|
29
28
|
return undefined;
|
|
30
29
|
}
|
|
30
|
+
constructor(items) {
|
|
31
|
+
super();
|
|
32
|
+
this.items = items;
|
|
33
|
+
this.type = SubSequence.typeString;
|
|
34
|
+
this.cachedLength = items.length;
|
|
35
|
+
}
|
|
31
36
|
toJSONObject() {
|
|
32
37
|
const obj = { items: this.items };
|
|
33
38
|
super.addSerializedProps(obj);
|
|
@@ -40,21 +45,19 @@ class SubSequence extends merge_tree_1.BaseSegment {
|
|
|
40
45
|
return b;
|
|
41
46
|
}
|
|
42
47
|
canAppend(segment) {
|
|
43
|
-
return SubSequence.is(segment)
|
|
44
|
-
|
|
48
|
+
return (SubSequence.is(segment) &&
|
|
49
|
+
(this.cachedLength <= MaxRun || segment.cachedLength <= MaxRun));
|
|
45
50
|
}
|
|
46
51
|
toString() {
|
|
47
52
|
return this.items.toString();
|
|
48
53
|
}
|
|
49
54
|
append(segment) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
//
|
|
54
|
-
//
|
|
55
|
-
merge_tree_1.LocalReferenceCollection.append(this, segment);
|
|
55
|
+
(0, core_utils_1.assert)(SubSequence.is(segment), 0x448 /* can only append to another run segment */);
|
|
56
|
+
super.append(segment);
|
|
57
|
+
// assert above checks that segment is a SubSequence but not that generic T matches.
|
|
58
|
+
// Since SubSequence is already deprecated, assume that usage is generic T consistent
|
|
59
|
+
// and just cast here to satisfy concat.
|
|
56
60
|
this.items = this.items.concat(segment.items);
|
|
57
|
-
this.cachedLength = this.items.length;
|
|
58
61
|
}
|
|
59
62
|
// TODO: retain removed items for undo
|
|
60
63
|
// returns true if entire run removed
|
|
@@ -69,7 +72,7 @@ class SubSequence extends merge_tree_1.BaseSegment {
|
|
|
69
72
|
}
|
|
70
73
|
this.items = remnantItems;
|
|
71
74
|
this.cachedLength = this.items.length;
|
|
72
|
-
return
|
|
75
|
+
return this.items.length === 0;
|
|
73
76
|
}
|
|
74
77
|
createSplitSegmentAt(pos) {
|
|
75
78
|
if (pos > 0) {
|
|
@@ -83,6 +86,10 @@ class SubSequence extends merge_tree_1.BaseSegment {
|
|
|
83
86
|
}
|
|
84
87
|
exports.SubSequence = SubSequence;
|
|
85
88
|
SubSequence.typeString = "SubSequence";
|
|
89
|
+
/**
|
|
90
|
+
* @deprecated SharedSequence will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
86
93
|
class SharedSequence extends sequence_1.SharedSegmentSequence {
|
|
87
94
|
constructor(document, id, attributes, specToSegment) {
|
|
88
95
|
super(document, id, attributes, specToSegment);
|
|
@@ -98,10 +105,7 @@ class SharedSequence extends sequence_1.SharedSegmentSequence {
|
|
|
98
105
|
if (props) {
|
|
99
106
|
segment.addProperties(props);
|
|
100
107
|
}
|
|
101
|
-
|
|
102
|
-
if (insertOp) {
|
|
103
|
-
this.submitSequenceMessage(insertOp);
|
|
104
|
-
}
|
|
108
|
+
this.client.insertSegmentLocal(pos, segment);
|
|
105
109
|
}
|
|
106
110
|
/**
|
|
107
111
|
* @param start - The inclusive start of the range to remove
|
|
@@ -134,6 +138,9 @@ class SharedSequence extends sequence_1.SharedSegmentSequence {
|
|
|
134
138
|
if (firstSegment === undefined) {
|
|
135
139
|
firstSegment = segment;
|
|
136
140
|
}
|
|
141
|
+
// Condition above checks that segment is a SubSequence but not that
|
|
142
|
+
// generic T matches. Since SubSequence is already deprecated, assume
|
|
143
|
+
// that walk only has SubSequence<T> segments and just cast here.
|
|
137
144
|
items.push(...segment.items);
|
|
138
145
|
}
|
|
139
146
|
return true;
|
|
@@ -153,4 +160,4 @@ class SharedSequence extends sequence_1.SharedSegmentSequence {
|
|
|
153
160
|
}
|
|
154
161
|
}
|
|
155
162
|
exports.SharedSequence = SharedSequence;
|
|
156
|
-
//# sourceMappingURL=sharedSequence.
|
|
163
|
+
//# sourceMappingURL=sharedSequence.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharedSequence.cjs","sourceRoot":"","sources":["../src/sharedSequence.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 { assert } from \"@fluidframework/core-utils\";\nimport { BaseSegment, IJSONSegment, ISegment, PropertySet } from \"@fluidframework/merge-tree\";\nimport {\n\tIChannelAttributes,\n\tIFluidDataStoreRuntime,\n\tSerializable,\n} from \"@fluidframework/datastore-definitions\";\nimport { SharedSegmentSequence } from \"./sequence\";\n\nconst MaxRun = 128;\n\n/**\n * @deprecated IJSONRunSegment will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package\n * @internal\n */\nexport interface IJSONRunSegment<T> extends IJSONSegment {\n\titems: Serializable<T>[];\n}\n\n/**\n * @deprecated SubSequence will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package\n * @internal\n */\nexport class SubSequence<T> extends BaseSegment {\n\tpublic static readonly typeString: string = \"SubSequence\";\n\tpublic static is(segment: ISegment): segment is SubSequence<any> {\n\t\treturn segment.type === SubSequence.typeString;\n\t}\n\tpublic static fromJSONObject<U>(spec: any) {\n\t\tif (spec && typeof spec === \"object\" && \"items\" in spec) {\n\t\t\tconst segment = new SubSequence<U>(spec.items);\n\t\t\tif (spec.props) {\n\t\t\t\tsegment.addProperties(spec.props);\n\t\t\t}\n\t\t\treturn segment;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tpublic readonly type = SubSequence.typeString;\n\n\tconstructor(public items: Serializable<T>[]) {\n\t\tsuper();\n\t\tthis.cachedLength = items.length;\n\t}\n\n\tpublic toJSONObject() {\n\t\tconst obj: IJSONRunSegment<T> = { items: this.items };\n\t\tsuper.addSerializedProps(obj);\n\t\treturn obj;\n\t}\n\n\tpublic clone(start = 0, end?: number) {\n\t\tconst clonedItems = this.items.slice(start, end);\n\t\tconst b = new SubSequence(clonedItems);\n\t\tthis.cloneInto(b);\n\t\treturn b;\n\t}\n\n\tpublic canAppend(segment: ISegment): boolean {\n\t\treturn (\n\t\t\tSubSequence.is(segment) &&\n\t\t\t(this.cachedLength <= MaxRun || segment.cachedLength <= MaxRun)\n\t\t);\n\t}\n\n\tpublic toString() {\n\t\treturn this.items.toString();\n\t}\n\n\tpublic append(segment: ISegment) {\n\t\tassert(SubSequence.is(segment), 0x448 /* can only append to another run segment */);\n\t\tsuper.append(segment);\n\t\t// assert above checks that segment is a SubSequence but not that generic T matches.\n\t\t// Since SubSequence is already deprecated, assume that usage is generic T consistent\n\t\t// and just cast here to satisfy concat.\n\t\tthis.items = this.items.concat((segment as SubSequence<T>).items);\n\t}\n\n\t// TODO: retain removed items for undo\n\t// returns true if entire run removed\n\tpublic removeRange(start: number, end: number) {\n\t\tlet remnantItems: Serializable<T>[] = [];\n\t\tconst len = this.items.length;\n\t\tif (start > 0) {\n\t\t\tremnantItems = remnantItems.concat(this.items.slice(0, start));\n\t\t}\n\t\tif (end < len) {\n\t\t\tremnantItems = remnantItems.concat(this.items.slice(end));\n\t\t}\n\t\tthis.items = remnantItems;\n\t\tthis.cachedLength = this.items.length;\n\t\treturn this.items.length === 0;\n\t}\n\n\tprotected createSplitSegmentAt(pos: number) {\n\t\tif (pos > 0) {\n\t\t\tconst remainingItems = this.items.slice(pos);\n\t\t\tthis.items = this.items.slice(0, pos);\n\t\t\tthis.cachedLength = this.items.length;\n\t\t\tconst leafSegment = new SubSequence(remainingItems);\n\t\t\treturn leafSegment;\n\t\t}\n\t}\n}\n\n/**\n * @deprecated SharedSequence will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package\n * @internal\n */\nexport class SharedSequence<T> extends SharedSegmentSequence<SubSequence<T>> {\n\tconstructor(\n\t\tdocument: IFluidDataStoreRuntime,\n\t\tpublic id: string,\n\t\tattributes: IChannelAttributes,\n\t\tspecToSegment: (spec: IJSONSegment) => ISegment,\n\t) {\n\t\tsuper(document, id, attributes, specToSegment);\n\t}\n\n\t/**\n\t * @param pos - The position to insert the items at.\n\t * @param items - The items to insert.\n\t * @param props - Optional. Properties to set on the inserted items.\n\t */\n\tpublic insert(pos: number, items: Serializable<T>[], props?: PropertySet) {\n\t\tconst segment = new SubSequence<T>(items);\n\t\tif (props) {\n\t\t\tsegment.addProperties(props);\n\t\t}\n\t\tthis.client.insertSegmentLocal(pos, segment);\n\t}\n\n\t/**\n\t * @param start - The inclusive start of the range to remove\n\t * @param end - The exclusive end of the range to remove\n\t */\n\tpublic remove(start: number, end: number) {\n\t\tthis.removeRange(start, end);\n\t}\n\n\t/**\n\t * Returns the total count of items in the sequence\n\t */\n\tpublic getItemCount(): number {\n\t\treturn this.getLength();\n\t}\n\n\t/**\n\t * Gets the items in the specified range\n\t *\n\t * @param start - The inclusive start of the range\n\t * @param end - The exclusive end of the range\n\t */\n\tpublic getItems(start: number, end?: number): Serializable<T>[] {\n\t\tconst items: Serializable<T>[] = [];\n\t\tlet firstSegment: ISegment | undefined;\n\n\t\t// Return if the range is incorrect.\n\t\tif (end !== undefined && end <= start) {\n\t\t\treturn items;\n\t\t}\n\n\t\tthis.walkSegments(\n\t\t\t(segment: ISegment) => {\n\t\t\t\tif (SubSequence.is(segment)) {\n\t\t\t\t\tif (firstSegment === undefined) {\n\t\t\t\t\t\tfirstSegment = segment;\n\t\t\t\t\t}\n\t\t\t\t\t// Condition above checks that segment is a SubSequence but not that\n\t\t\t\t\t// generic T matches. Since SubSequence is already deprecated, assume\n\t\t\t\t\t// that walk only has SubSequence<T> segments and just cast here.\n\t\t\t\t\titems.push(...(segment as SubSequence<T>).items);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tstart,\n\t\t\tend,\n\t\t);\n\n\t\t// The above call to walkSegments adds all the items in the walked\n\t\t// segments. However, we only want items beginning at |start| in\n\t\t// the first segment. Similarly, if |end| is passed in, we only\n\t\t// want items until |end| in the last segment. Remove the rest of\n\t\t// the items.\n\t\tif (firstSegment !== undefined) {\n\t\t\titems.splice(0, start - this.getPosition(firstSegment));\n\t\t}\n\t\tif (end !== undefined) {\n\t\t\titems.splice(end - start);\n\t\t}\n\t\treturn items;\n\t}\n}\n"]}
|
package/dist/sharedSequence.d.ts
CHANGED
|
@@ -5,14 +5,22 @@
|
|
|
5
5
|
import { BaseSegment, IJSONSegment, ISegment, PropertySet } from "@fluidframework/merge-tree";
|
|
6
6
|
import { IChannelAttributes, IFluidDataStoreRuntime, Serializable } from "@fluidframework/datastore-definitions";
|
|
7
7
|
import { SharedSegmentSequence } from "./sequence";
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated IJSONRunSegment will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
8
12
|
export interface IJSONRunSegment<T> extends IJSONSegment {
|
|
9
13
|
items: Serializable<T>[];
|
|
10
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated SubSequence will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
11
19
|
export declare class SubSequence<T> extends BaseSegment {
|
|
12
20
|
items: Serializable<T>[];
|
|
13
21
|
static readonly typeString: string;
|
|
14
22
|
static is(segment: ISegment): segment is SubSequence<any>;
|
|
15
|
-
static fromJSONObject<U>(spec:
|
|
23
|
+
static fromJSONObject<U>(spec: any): SubSequence<U> | undefined;
|
|
16
24
|
readonly type: string;
|
|
17
25
|
constructor(items: Serializable<T>[]);
|
|
18
26
|
toJSONObject(): IJSONRunSegment<T>;
|
|
@@ -21,8 +29,12 @@ export declare class SubSequence<T> extends BaseSegment {
|
|
|
21
29
|
toString(): string;
|
|
22
30
|
append(segment: ISegment): void;
|
|
23
31
|
removeRange(start: number, end: number): boolean;
|
|
24
|
-
protected createSplitSegmentAt(pos: number): SubSequence<T
|
|
32
|
+
protected createSplitSegmentAt(pos: number): SubSequence<T> | undefined;
|
|
25
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* @deprecated SharedSequence will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
26
38
|
export declare class SharedSequence<T> extends SharedSegmentSequence<SubSequence<T>> {
|
|
27
39
|
id: string;
|
|
28
40
|
constructor(document: IFluidDataStoreRuntime, id: string, attributes: IChannelAttributes, specToSegment: (spec: IJSONSegment) => ISegment);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharedSequence.d.ts","sourceRoot":"","sources":["../src/sharedSequence.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"sharedSequence.d.ts","sourceRoot":"","sources":["../src/sharedSequence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAInD;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,CAAE,SAAQ,YAAY;IACvD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,WAAW,CAAC,CAAC,CAAE,SAAQ,WAAW;IAkB3B,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE;IAjB3C,gBAAuB,UAAU,EAAE,MAAM,CAAiB;WAC5C,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC;WAGlD,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG;IAWzC,SAAgB,IAAI,SAA0B;gBAE3B,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE;IAKpC,YAAY;IAMZ,KAAK,CAAC,KAAK,SAAI,EAAE,GAAG,CAAC,EAAE,MAAM;IAO7B,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAOrC,QAAQ;IAIR,MAAM,CAAC,OAAO,EAAE,QAAQ;IAWxB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAc7C,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM;CAS1C;AAED;;;GAGG;AACH,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAGnE,EAAE,EAAE,MAAM;gBADjB,QAAQ,EAAE,sBAAsB,EACzB,EAAE,EAAE,MAAM,EACjB,UAAU,EAAE,kBAAkB,EAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,QAAQ;IAKhD;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,WAAW;IAQxE;;;OAGG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAIxC;;OAEG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;;OAKG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE;CAuC/D"}
|