@fluidframework/sequence 2.0.0-rc.1.0.4 → 2.0.0-rc.2.0.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.
- package/{.eslintrc.js → .eslintrc.cjs} +4 -1
- package/{.mocharc.js → .mocharc.cjs} +1 -1
- package/CHANGELOG.md +8 -0
- package/README.md +2 -2
- package/{api-extractor-esm.json → api-extractor-cjs.json} +5 -1
- package/api-extractor.json +1 -1
- package/api-report/sequence.api.md +15 -27
- package/dist/defaultMap.d.ts +10 -16
- package/dist/defaultMap.d.ts.map +1 -1
- package/dist/defaultMap.js +73 -70
- package/dist/defaultMap.js.map +1 -1
- package/dist/defaultMapInterfaces.d.ts +1 -8
- package/dist/defaultMapInterfaces.d.ts.map +1 -1
- package/dist/defaultMapInterfaces.js.map +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -42
- package/dist/index.js.map +1 -1
- package/dist/intervalCollection.d.ts +21 -15
- package/dist/intervalCollection.d.ts.map +1 -1
- package/dist/intervalCollection.js +59 -110
- package/dist/intervalCollection.js.map +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.d.ts +3 -3
- package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.js +8 -8
- package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
- package/dist/intervalIndex/endpointIndex.d.ts +3 -3
- package/dist/intervalIndex/endpointIndex.d.ts.map +1 -1
- package/dist/intervalIndex/endpointIndex.js +4 -4
- package/dist/intervalIndex/endpointIndex.js.map +1 -1
- package/dist/intervalIndex/idIntervalIndex.d.ts +2 -2
- package/dist/intervalIndex/idIntervalIndex.d.ts.map +1 -1
- package/dist/intervalIndex/idIntervalIndex.js +2 -2
- package/dist/intervalIndex/idIntervalIndex.js.map +1 -1
- package/dist/intervalIndex/index.d.ts +8 -8
- package/dist/intervalIndex/index.d.ts.map +1 -1
- package/dist/intervalIndex/index.js +16 -16
- package/dist/intervalIndex/index.js.map +1 -1
- package/dist/intervalIndex/intervalIndex.d.ts +1 -1
- package/dist/intervalIndex/intervalIndex.d.ts.map +1 -1
- package/dist/intervalIndex/intervalIndex.js.map +1 -1
- package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +7 -10
- package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
- package/dist/intervalIndex/overlappingIntervalsIndex.js +12 -13
- package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +2 -2
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -1
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +7 -7
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
- package/dist/intervalIndex/sequenceIntervalIndexes.d.ts +2 -2
- package/dist/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
- package/dist/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
- package/dist/intervalIndex/startpointInRangeIndex.d.ts +3 -3
- package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
- package/dist/intervalIndex/startpointInRangeIndex.js +8 -8
- package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
- package/dist/intervalTree.d.ts +1 -1
- package/dist/intervalTree.d.ts.map +1 -1
- package/dist/intervalTree.js.map +1 -1
- package/dist/intervals/index.d.ts +3 -3
- package/dist/intervals/index.d.ts.map +1 -1
- package/dist/intervals/index.js +16 -16
- package/dist/intervals/index.js.map +1 -1
- package/dist/intervals/interval.d.ts +2 -2
- package/dist/intervals/interval.d.ts.map +1 -1
- package/dist/intervals/interval.js +2 -2
- package/dist/intervals/interval.js.map +1 -1
- package/dist/intervals/intervalUtils.d.ts +3 -3
- package/dist/intervals/intervalUtils.d.ts.map +1 -1
- package/dist/intervals/intervalUtils.js +1 -1
- package/dist/intervals/intervalUtils.js.map +1 -1
- package/dist/intervals/sequenceInterval.d.ts +2 -2
- package/dist/intervals/sequenceInterval.d.ts.map +1 -1
- package/dist/intervals/sequenceInterval.js +22 -23
- package/dist/intervals/sequenceInterval.js.map +1 -1
- package/dist/localValues.d.ts +2 -2
- package/dist/localValues.d.ts.map +1 -1
- package/dist/localValues.js.map +1 -1
- package/dist/package.json +3 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/revertibles.d.ts +12 -12
- package/dist/revertibles.d.ts.map +1 -1
- package/dist/revertibles.js +26 -26
- package/dist/revertibles.js.map +1 -1
- package/dist/sequence-alpha.d.ts +172 -13
- package/dist/sequence-beta.d.ts +2 -0
- package/dist/sequence-public.d.ts +2 -0
- package/dist/sequence-untrimmed.d.ts +73 -14
- package/dist/sequence.d.ts +48 -5
- package/dist/sequence.d.ts.map +1 -1
- package/dist/sequence.js +103 -29
- package/dist/sequence.js.map +1 -1
- package/dist/sequenceFactory.d.ts +4 -1
- package/dist/sequenceFactory.d.ts.map +1 -1
- package/dist/sequenceFactory.js +8 -5
- package/dist/sequenceFactory.js.map +1 -1
- package/dist/sharedIntervalCollection.d.ts +2 -2
- package/dist/sharedIntervalCollection.d.ts.map +1 -1
- package/dist/sharedIntervalCollection.js +5 -5
- package/dist/sharedIntervalCollection.js.map +1 -1
- package/dist/sharedSequence.d.ts +1 -1
- package/dist/sharedSequence.d.ts.map +1 -1
- package/dist/sharedSequence.js +2 -2
- package/dist/sharedSequence.js.map +1 -1
- package/dist/sharedString.d.ts +2 -2
- package/dist/sharedString.d.ts.map +1 -1
- package/dist/sharedString.js +6 -6
- package/dist/sharedString.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/lib/{defaultMap.d.mts → defaultMap.d.ts} +11 -17
- package/lib/defaultMap.d.ts.map +1 -0
- package/lib/{defaultMap.mjs → defaultMap.js} +72 -69
- package/lib/defaultMap.js.map +1 -0
- package/lib/{defaultMapInterfaces.d.mts → defaultMapInterfaces.d.ts} +2 -9
- package/lib/defaultMapInterfaces.d.ts.map +1 -0
- package/lib/{defaultMapInterfaces.mjs → defaultMapInterfaces.js} +1 -1
- package/lib/defaultMapInterfaces.js.map +1 -0
- package/lib/{index.d.mts → index.d.ts} +24 -12
- package/lib/index.d.ts.map +1 -0
- package/lib/{index.mjs → index.js} +11 -11
- package/lib/index.js.map +1 -0
- package/lib/{intervalCollection.d.mts → intervalCollection.d.ts} +22 -16
- package/lib/intervalCollection.d.ts.map +1 -0
- package/lib/{intervalCollection.mjs → intervalCollection.js} +23 -74
- package/lib/intervalCollection.js.map +1 -0
- package/lib/intervalIndex/{endpointInRangeIndex.d.mts → endpointInRangeIndex.d.ts} +4 -4
- package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +1 -0
- package/lib/intervalIndex/{endpointInRangeIndex.mjs → endpointInRangeIndex.js} +3 -3
- package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -0
- package/lib/intervalIndex/{endpointIndex.d.mts → endpointIndex.d.ts} +4 -4
- package/lib/intervalIndex/endpointIndex.d.ts.map +1 -0
- package/lib/intervalIndex/{endpointIndex.mjs → endpointIndex.js} +2 -2
- package/lib/intervalIndex/endpointIndex.js.map +1 -0
- package/lib/intervalIndex/{idIntervalIndex.d.mts → idIntervalIndex.d.ts} +3 -3
- package/lib/intervalIndex/idIntervalIndex.d.ts.map +1 -0
- package/lib/intervalIndex/{idIntervalIndex.mjs → idIntervalIndex.js} +2 -2
- package/lib/intervalIndex/idIntervalIndex.js.map +1 -0
- package/lib/intervalIndex/{index.d.mts → index.d.ts} +9 -9
- package/lib/intervalIndex/index.d.ts.map +1 -0
- package/lib/intervalIndex/{index.mjs → index.js} +7 -7
- package/lib/intervalIndex/index.js.map +1 -0
- package/lib/intervalIndex/{intervalIndex.d.mts → intervalIndex.d.ts} +2 -2
- package/lib/intervalIndex/intervalIndex.d.ts.map +1 -0
- package/lib/intervalIndex/{intervalIndex.mjs → intervalIndex.js} +1 -1
- package/lib/intervalIndex/intervalIndex.js.map +1 -0
- package/lib/intervalIndex/{intervalIndexUtils.d.mts → intervalIndexUtils.d.ts} +1 -1
- package/lib/intervalIndex/intervalIndexUtils.d.ts.map +1 -0
- package/lib/intervalIndex/{intervalIndexUtils.mjs → intervalIndexUtils.js} +1 -1
- package/lib/intervalIndex/intervalIndexUtils.js.map +1 -0
- package/lib/intervalIndex/{overlappingIntervalsIndex.d.mts → overlappingIntervalsIndex.d.ts} +8 -11
- package/lib/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -0
- package/lib/intervalIndex/{overlappingIntervalsIndex.mjs → overlappingIntervalsIndex.js} +8 -9
- package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -0
- package/lib/intervalIndex/{overlappingSequenceIntervalsIndex.d.mts → overlappingSequenceIntervalsIndex.d.ts} +3 -3
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -0
- package/lib/intervalIndex/{overlappingSequenceIntervalsIndex.mjs → overlappingSequenceIntervalsIndex.js} +3 -3
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -0
- package/lib/intervalIndex/{sequenceIntervalIndexes.d.mts → sequenceIntervalIndexes.d.ts} +3 -3
- package/lib/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -0
- package/lib/intervalIndex/{sequenceIntervalIndexes.mjs → sequenceIntervalIndexes.js} +1 -1
- package/lib/intervalIndex/sequenceIntervalIndexes.js.map +1 -0
- package/lib/intervalIndex/{startpointInRangeIndex.d.mts → startpointInRangeIndex.d.ts} +4 -4
- package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +1 -0
- package/lib/intervalIndex/{startpointInRangeIndex.mjs → startpointInRangeIndex.js} +3 -3
- package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -0
- package/lib/{intervalTree.d.mts → intervalTree.d.ts} +2 -2
- package/lib/intervalTree.d.ts.map +1 -0
- package/lib/{intervalTree.mjs → intervalTree.js} +1 -1
- package/lib/intervalTree.js.map +1 -0
- package/lib/intervals/{index.d.mts → index.d.ts} +4 -4
- package/lib/intervals/index.d.ts.map +1 -0
- package/lib/intervals/{index.mjs → index.js} +4 -4
- package/lib/intervals/index.js.map +1 -0
- package/lib/intervals/{interval.d.mts → interval.d.ts} +3 -3
- package/lib/intervals/{interval.d.mts.map → interval.d.ts.map} +1 -1
- package/lib/intervals/{interval.mjs → interval.js} +2 -2
- package/lib/intervals/interval.js.map +1 -0
- package/lib/intervals/{intervalUtils.d.mts → intervalUtils.d.ts} +4 -4
- package/lib/intervals/intervalUtils.d.ts.map +1 -0
- package/lib/intervals/{intervalUtils.mjs → intervalUtils.js} +3 -2
- package/lib/intervals/intervalUtils.js.map +1 -0
- package/lib/intervals/{sequenceInterval.d.mts → sequenceInterval.d.ts} +3 -3
- package/lib/intervals/sequenceInterval.d.ts.map +1 -0
- package/lib/intervals/{sequenceInterval.mjs → sequenceInterval.js} +5 -4
- package/lib/intervals/{sequenceInterval.mjs.map → sequenceInterval.js.map} +1 -1
- package/lib/{localValues.d.mts → localValues.d.ts} +3 -3
- package/lib/{localValues.d.mts.map → localValues.d.ts.map} +1 -1
- package/lib/{localValues.mjs → localValues.js} +1 -1
- package/lib/localValues.js.map +1 -0
- package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
- package/lib/packageVersion.d.ts.map +1 -0
- package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
- package/lib/packageVersion.js.map +1 -0
- package/lib/{revertibles.d.mts → revertibles.d.ts} +13 -13
- package/lib/revertibles.d.ts.map +1 -0
- package/lib/{revertibles.mjs → revertibles.js} +11 -10
- package/lib/revertibles.js.map +1 -0
- package/lib/{sequence-alpha.d.mts → sequence-alpha.d.ts} +185 -13
- package/lib/{sequence-public.d.mts → sequence-beta.d.ts} +15 -0
- package/lib/{sequence-beta.d.mts → sequence-public.d.ts} +15 -0
- package/lib/{sequence-untrimmed.d.mts → sequence-untrimmed.d.ts} +86 -14
- package/lib/{sequence.d.mts → sequence.d.ts} +49 -6
- package/lib/sequence.d.ts.map +1 -0
- package/lib/{sequence.mjs → sequence.js} +100 -29
- package/lib/sequence.js.map +1 -0
- package/lib/{sequenceDeltaEvent.d.mts → sequenceDeltaEvent.d.ts} +1 -1
- package/lib/sequenceDeltaEvent.d.ts.map +1 -0
- package/lib/{sequenceDeltaEvent.mjs → sequenceDeltaEvent.js} +1 -1
- package/lib/sequenceDeltaEvent.js.map +1 -0
- package/lib/{sequenceFactory.d.mts → sequenceFactory.d.ts} +5 -2
- package/lib/sequenceFactory.d.ts.map +1 -0
- package/lib/{sequenceFactory.mjs → sequenceFactory.js} +6 -3
- package/lib/sequenceFactory.js.map +1 -0
- package/lib/{sharedIntervalCollection.d.mts → sharedIntervalCollection.d.ts} +3 -3
- package/lib/sharedIntervalCollection.d.ts.map +1 -0
- package/lib/{sharedIntervalCollection.mjs → sharedIntervalCollection.js} +4 -4
- package/lib/sharedIntervalCollection.js.map +1 -0
- package/lib/{sharedSequence.d.mts → sharedSequence.d.ts} +2 -2
- package/lib/sharedSequence.d.ts.map +1 -0
- package/lib/{sharedSequence.mjs → sharedSequence.js} +2 -2
- package/lib/sharedSequence.js.map +1 -0
- package/lib/{sharedString.d.mts → sharedString.d.ts} +3 -3
- package/lib/sharedString.d.ts.map +1 -0
- package/lib/{sharedString.mjs → sharedString.js} +3 -3
- package/lib/sharedString.js.map +1 -0
- package/lib/test/collections.intervalTree.js +73 -0
- package/lib/test/collections.intervalTree.js.map +1 -0
- package/lib/test/createSnapshotFiles.js +15 -0
- package/lib/test/createSnapshotFiles.js.map +1 -0
- package/lib/test/dirname.cjs +16 -0
- package/lib/test/dirname.cjs.map +1 -0
- package/lib/test/endpointInRangeIndex.spec.js +182 -0
- package/lib/test/endpointInRangeIndex.spec.js.map +1 -0
- package/lib/test/fuzz/fuzzUtils.js +250 -0
- package/lib/test/fuzz/fuzzUtils.js.map +1 -0
- package/lib/test/fuzz/intervalCollection.fuzz.spec.js +200 -0
- package/lib/test/fuzz/intervalCollection.fuzz.spec.js.map +1 -0
- package/lib/test/fuzz/intervalRevertibles.fuzz.spec.js +129 -0
- package/lib/test/fuzz/intervalRevertibles.fuzz.spec.js.map +1 -0
- package/lib/test/fuzz/sharedString.fuzz.spec.js +91 -0
- package/lib/test/fuzz/sharedString.fuzz.spec.js.map +1 -0
- package/lib/test/generateSharedStrings.js +138 -0
- package/lib/test/generateSharedStrings.js.map +1 -0
- package/lib/test/intervalCollection.detached.spec.js +126 -0
- package/lib/test/intervalCollection.detached.spec.js.map +1 -0
- package/lib/test/intervalCollection.events.spec.js +491 -0
- package/lib/test/intervalCollection.events.spec.js.map +1 -0
- package/lib/test/intervalCollection.perf.spec.js +88 -0
- package/lib/test/intervalCollection.perf.spec.js.map +1 -0
- package/lib/test/intervalCollection.snapshot.spec.js +171 -0
- package/lib/test/intervalCollection.snapshot.spec.js.map +1 -0
- package/lib/test/intervalCollection.spec.js +1660 -0
- package/lib/test/intervalCollection.spec.js.map +1 -0
- package/lib/test/intervalIndexTestUtils.js +49 -0
- package/lib/test/intervalIndexTestUtils.js.map +1 -0
- package/lib/test/intervalRebasing.spec.js +589 -0
- package/lib/test/intervalRebasing.spec.js.map +1 -0
- package/lib/test/intervalStashedOps.spec.js +142 -0
- package/lib/test/intervalStashedOps.spec.js.map +1 -0
- package/lib/test/intervalTestUtils.js +81 -0
- package/lib/test/intervalTestUtils.js.map +1 -0
- package/lib/test/marshalling.spec.js +55 -0
- package/lib/test/marshalling.spec.js.map +1 -0
- package/lib/test/memory/sharedSequence.spec.js +82 -0
- package/lib/test/memory/sharedSequence.spec.js.map +1 -0
- package/lib/test/memory/sharedString.spec.js +134 -0
- package/lib/test/memory/sharedString.spec.js.map +1 -0
- package/lib/test/overlappingSequenceIntervalsIndex.spec.js +348 -0
- package/lib/test/overlappingSequenceIntervalsIndex.spec.js.map +1 -0
- package/lib/test/partialLoad.spec.js +211 -0
- package/lib/test/partialLoad.spec.js.map +1 -0
- package/lib/test/rebasing.spec.js +81 -0
- package/lib/test/rebasing.spec.js.map +1 -0
- package/lib/test/reentrancy.spec.js +174 -0
- package/lib/test/reentrancy.spec.js.map +1 -0
- package/lib/test/revertibles.spec.js +971 -0
- package/lib/test/revertibles.spec.js.map +1 -0
- package/lib/test/sequenceDeltaEvent.spec.js +2144 -0
- package/lib/test/sequenceDeltaEvent.spec.js.map +1 -0
- package/lib/test/sharedIntervalCollection.spec.js +159 -0
- package/lib/test/sharedIntervalCollection.spec.js.map +1 -0
- package/lib/test/sharedString.spec.js +532 -0
- package/lib/test/sharedString.spec.js.map +1 -0
- package/lib/test/snapshotEmptyProps.spec.js +45 -0
- package/lib/test/snapshotEmptyProps.spec.js.map +1 -0
- package/lib/test/snapshotVersion.spec.js +149 -0
- package/lib/test/snapshotVersion.spec.js.map +1 -0
- package/lib/test/startpointInRangeIndex.spec.js +182 -0
- package/lib/test/startpointInRangeIndex.spec.js.map +1 -0
- package/lib/test/subSequence.spec.js +92 -0
- package/lib/test/subSequence.spec.js.map +1 -0
- package/lib/test/types/validateSequencePrevious.generated.js +162 -0
- package/lib/test/types/validateSequencePrevious.generated.js.map +1 -0
- package/lib/test/v1IntervalCollectionHelpers.js +93 -0
- package/lib/test/v1IntervalCollectionHelpers.js.map +1 -0
- package/package.json +66 -60
- package/src/defaultMap.ts +97 -123
- package/src/defaultMapInterfaces.ts +1 -9
- package/src/index.ts +15 -11
- package/src/intervalCollection.ts +57 -84
- package/src/intervalIndex/endpointInRangeIndex.ts +4 -4
- package/src/intervalIndex/endpointIndex.ts +3 -3
- package/src/intervalIndex/idIntervalIndex.ts +3 -4
- package/src/intervalIndex/index.ts +8 -8
- package/src/intervalIndex/intervalIndex.ts +1 -1
- package/src/intervalIndex/overlappingIntervalsIndex.ts +10 -11
- package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +4 -4
- package/src/intervalIndex/sequenceIntervalIndexes.ts +2 -2
- package/src/intervalIndex/startpointInRangeIndex.ts +4 -4
- package/src/intervalTree.ts +1 -1
- package/src/intervals/index.ts +3 -3
- package/src/intervals/interval.ts +2 -4
- package/src/intervals/intervalUtils.ts +3 -3
- package/src/intervals/sequenceInterval.ts +3 -4
- package/src/localValues.ts +2 -2
- package/src/packageVersion.ts +1 -1
- package/src/revertibles.ts +13 -13
- package/src/sequence.ts +126 -44
- package/src/sequenceFactory.ts +5 -2
- package/src/sharedIntervalCollection.ts +5 -5
- package/src/sharedSequence.ts +1 -1
- package/src/sharedString.ts +2 -2
- package/tsconfig.cjs.json +7 -0
- package/tsconfig.json +2 -5
- package/lib/defaultMap.d.mts.map +0 -1
- package/lib/defaultMap.mjs.map +0 -1
- package/lib/defaultMapInterfaces.d.mts.map +0 -1
- package/lib/defaultMapInterfaces.mjs.map +0 -1
- package/lib/index.d.mts.map +0 -1
- package/lib/index.mjs.map +0 -1
- package/lib/intervalCollection.d.mts.map +0 -1
- package/lib/intervalCollection.mjs.map +0 -1
- package/lib/intervalIndex/endpointInRangeIndex.d.mts.map +0 -1
- package/lib/intervalIndex/endpointInRangeIndex.mjs.map +0 -1
- package/lib/intervalIndex/endpointIndex.d.mts.map +0 -1
- package/lib/intervalIndex/endpointIndex.mjs.map +0 -1
- package/lib/intervalIndex/idIntervalIndex.d.mts.map +0 -1
- package/lib/intervalIndex/idIntervalIndex.mjs.map +0 -1
- package/lib/intervalIndex/index.d.mts.map +0 -1
- package/lib/intervalIndex/index.mjs.map +0 -1
- package/lib/intervalIndex/intervalIndex.d.mts.map +0 -1
- package/lib/intervalIndex/intervalIndex.mjs.map +0 -1
- package/lib/intervalIndex/intervalIndexUtils.d.mts.map +0 -1
- package/lib/intervalIndex/intervalIndexUtils.mjs.map +0 -1
- package/lib/intervalIndex/overlappingIntervalsIndex.d.mts.map +0 -1
- package/lib/intervalIndex/overlappingIntervalsIndex.mjs.map +0 -1
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.mts.map +0 -1
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.mjs.map +0 -1
- package/lib/intervalIndex/sequenceIntervalIndexes.d.mts.map +0 -1
- package/lib/intervalIndex/sequenceIntervalIndexes.mjs.map +0 -1
- package/lib/intervalIndex/startpointInRangeIndex.d.mts.map +0 -1
- package/lib/intervalIndex/startpointInRangeIndex.mjs.map +0 -1
- package/lib/intervalTree.d.mts.map +0 -1
- package/lib/intervalTree.mjs.map +0 -1
- package/lib/intervals/index.d.mts.map +0 -1
- package/lib/intervals/index.mjs.map +0 -1
- package/lib/intervals/interval.mjs.map +0 -1
- package/lib/intervals/intervalUtils.d.mts.map +0 -1
- package/lib/intervals/intervalUtils.mjs.map +0 -1
- package/lib/intervals/sequenceInterval.d.mts.map +0 -1
- package/lib/localValues.mjs.map +0 -1
- package/lib/packageVersion.d.mts.map +0 -1
- package/lib/packageVersion.mjs.map +0 -1
- package/lib/revertibles.d.mts.map +0 -1
- package/lib/revertibles.mjs.map +0 -1
- package/lib/sequence.d.mts.map +0 -1
- package/lib/sequence.mjs.map +0 -1
- package/lib/sequenceDeltaEvent.d.mts.map +0 -1
- package/lib/sequenceDeltaEvent.mjs.map +0 -1
- package/lib/sequenceFactory.d.mts.map +0 -1
- package/lib/sequenceFactory.mjs.map +0 -1
- package/lib/sharedIntervalCollection.d.mts.map +0 -1
- package/lib/sharedIntervalCollection.mjs.map +0 -1
- package/lib/sharedSequence.d.mts.map +0 -1
- package/lib/sharedSequence.mjs.map +0 -1
- package/lib/sharedString.d.mts.map +0 -1
- package/lib/sharedString.mjs.map +0 -1
package/src/index.ts
CHANGED
|
@@ -15,7 +15,11 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @packageDocumentation
|
|
17
17
|
*/
|
|
18
|
-
export {
|
|
18
|
+
export {
|
|
19
|
+
IMapMessageLocalMetadata,
|
|
20
|
+
IValueOpEmitter,
|
|
21
|
+
SequenceOptions,
|
|
22
|
+
} from "./defaultMapInterfaces.js";
|
|
19
23
|
export {
|
|
20
24
|
IInterval,
|
|
21
25
|
Interval,
|
|
@@ -28,7 +32,7 @@ export {
|
|
|
28
32
|
IntervalStickiness,
|
|
29
33
|
IIntervalHelpers,
|
|
30
34
|
sequenceIntervalHelpers,
|
|
31
|
-
} from "./intervals";
|
|
35
|
+
} from "./intervals/index.js";
|
|
32
36
|
export {
|
|
33
37
|
DeserializeCallback,
|
|
34
38
|
IIntervalCollectionEvent,
|
|
@@ -38,7 +42,7 @@ export {
|
|
|
38
42
|
Side,
|
|
39
43
|
InteriorSequencePlace,
|
|
40
44
|
SequencePlace,
|
|
41
|
-
} from "./intervalCollection";
|
|
45
|
+
} from "./intervalCollection.js";
|
|
42
46
|
export {
|
|
43
47
|
IntervalIndex,
|
|
44
48
|
SequenceIntervalIndexes,
|
|
@@ -53,7 +57,7 @@ export {
|
|
|
53
57
|
createIdIntervalIndex,
|
|
54
58
|
IEndpointIndex,
|
|
55
59
|
createEndpointIndex,
|
|
56
|
-
} from "./intervalIndex";
|
|
60
|
+
} from "./intervalIndex/index.js";
|
|
57
61
|
export {
|
|
58
62
|
appendAddIntervalToRevertibles,
|
|
59
63
|
appendChangeIntervalToRevertibles,
|
|
@@ -64,27 +68,27 @@ export {
|
|
|
64
68
|
IntervalRevertible,
|
|
65
69
|
revertSharedStringRevertibles,
|
|
66
70
|
SharedStringRevertible,
|
|
67
|
-
} from "./revertibles";
|
|
68
|
-
export { ISharedSegmentSequenceEvents, SharedSegmentSequence } from "./sequence";
|
|
71
|
+
} from "./revertibles.js";
|
|
72
|
+
export { ISharedSegmentSequenceEvents, SharedSegmentSequence } from "./sequence.js";
|
|
69
73
|
export {
|
|
70
74
|
ISequenceDeltaRange,
|
|
71
75
|
SequenceDeltaEvent,
|
|
72
76
|
SequenceEvent,
|
|
73
77
|
SequenceMaintenanceEvent,
|
|
74
|
-
} from "./sequenceDeltaEvent";
|
|
75
|
-
export { SharedStringFactory } from "./sequenceFactory";
|
|
78
|
+
} from "./sequenceDeltaEvent.js";
|
|
79
|
+
export { SharedStringFactory } from "./sequenceFactory.js";
|
|
76
80
|
export {
|
|
77
81
|
getTextAndMarkers,
|
|
78
82
|
ISharedString,
|
|
79
83
|
SharedString,
|
|
80
84
|
SharedStringSegment,
|
|
81
|
-
} from "./sharedString";
|
|
85
|
+
} from "./sharedString.js";
|
|
82
86
|
export {
|
|
83
87
|
ISharedIntervalCollection,
|
|
84
88
|
SharedIntervalCollection,
|
|
85
89
|
SharedIntervalCollectionFactory,
|
|
86
|
-
} from "./sharedIntervalCollection";
|
|
87
|
-
export { IJSONRunSegment, SharedSequence, SubSequence } from "./sharedSequence";
|
|
90
|
+
} from "./sharedIntervalCollection.js";
|
|
91
|
+
export { IJSONRunSegment, SharedSequence, SubSequence } from "./sharedSequence.js";
|
|
88
92
|
|
|
89
93
|
export {
|
|
90
94
|
ISegment,
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
/* eslint-disable import/no-deprecated */
|
|
8
8
|
|
|
9
9
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
10
|
-
import { assert
|
|
10
|
+
import { assert } from "@fluidframework/core-utils";
|
|
11
11
|
import { IEvent } from "@fluidframework/core-interfaces";
|
|
12
12
|
import {
|
|
13
13
|
addProperties,
|
|
@@ -35,9 +35,8 @@ import {
|
|
|
35
35
|
IValueOpEmitter,
|
|
36
36
|
IValueOperation,
|
|
37
37
|
IValueType,
|
|
38
|
-
IValueTypeOperationValue,
|
|
39
38
|
SequenceOptions,
|
|
40
|
-
} from "./defaultMapInterfaces";
|
|
39
|
+
} from "./defaultMapInterfaces.js";
|
|
41
40
|
import {
|
|
42
41
|
CompressedSerializedInterval,
|
|
43
42
|
IIntervalHelpers,
|
|
@@ -54,8 +53,7 @@ import {
|
|
|
54
53
|
startReferenceSlidingPreference,
|
|
55
54
|
sequenceIntervalHelpers,
|
|
56
55
|
createInterval,
|
|
57
|
-
|
|
58
|
-
} from "./intervals";
|
|
56
|
+
} from "./intervals/index.js";
|
|
59
57
|
import {
|
|
60
58
|
EndpointIndex,
|
|
61
59
|
IEndpointIndex,
|
|
@@ -64,7 +62,7 @@ import {
|
|
|
64
62
|
IntervalIndex,
|
|
65
63
|
OverlappingIntervalsIndex,
|
|
66
64
|
createIdIntervalIndex,
|
|
67
|
-
} from "./intervalIndex";
|
|
65
|
+
} from "./intervalIndex/index.js";
|
|
68
66
|
|
|
69
67
|
/**
|
|
70
68
|
* Defines a position and side relative to a character in a sequence.
|
|
@@ -115,7 +113,7 @@ export enum Side {
|
|
|
115
113
|
After = 1,
|
|
116
114
|
}
|
|
117
115
|
|
|
118
|
-
const reservedIntervalIdKey = "intervalId";
|
|
116
|
+
export const reservedIntervalIdKey = "intervalId";
|
|
119
117
|
|
|
120
118
|
export interface ISerializedIntervalCollectionV2 {
|
|
121
119
|
label: string;
|
|
@@ -198,15 +196,18 @@ export function endpointPosAndSide(
|
|
|
198
196
|
};
|
|
199
197
|
}
|
|
200
198
|
|
|
201
|
-
function toSequencePlace(
|
|
202
|
-
|
|
199
|
+
export function toSequencePlace(
|
|
200
|
+
pos: number | "start" | "end",
|
|
201
|
+
side: Side | undefined,
|
|
202
|
+
): SequencePlace {
|
|
203
|
+
return typeof pos === "number" && side !== undefined ? { pos, side } : pos;
|
|
203
204
|
}
|
|
204
205
|
|
|
205
|
-
function toOptionalSequencePlace(
|
|
206
|
+
export function toOptionalSequencePlace(
|
|
206
207
|
pos: number | "start" | "end" | undefined,
|
|
207
|
-
side: Side
|
|
208
|
+
side: Side | undefined,
|
|
208
209
|
): SequencePlace | undefined {
|
|
209
|
-
return typeof pos === "number" ? { pos, side } : pos;
|
|
210
|
+
return typeof pos === "number" && side !== undefined ? { pos, side } : pos;
|
|
210
211
|
}
|
|
211
212
|
|
|
212
213
|
export function computeStickinessFromSide(
|
|
@@ -580,13 +581,6 @@ export function makeOpsMap<T extends ISerializableInterval>(): Map<
|
|
|
580
581
|
return { rebasedOp, rebasedLocalOpMetadata: localOpMetadata };
|
|
581
582
|
};
|
|
582
583
|
|
|
583
|
-
const applyStashedOp: IValueOperation<IntervalCollection<T>>["applyStashedOp"] = (
|
|
584
|
-
collection,
|
|
585
|
-
op,
|
|
586
|
-
) => {
|
|
587
|
-
return collection.applyStashedOp(op);
|
|
588
|
-
};
|
|
589
|
-
|
|
590
584
|
return new Map<IntervalOpType, IValueOperation<IntervalCollection<T>>>([
|
|
591
585
|
[
|
|
592
586
|
IntervalOpType.ADD,
|
|
@@ -601,7 +595,6 @@ export function makeOpsMap<T extends ISerializableInterval>(): Map<
|
|
|
601
595
|
collection.ackAdd(params, local, op, localOpMetadata);
|
|
602
596
|
},
|
|
603
597
|
rebase,
|
|
604
|
-
applyStashedOp,
|
|
605
598
|
},
|
|
606
599
|
],
|
|
607
600
|
[
|
|
@@ -615,7 +608,6 @@ export function makeOpsMap<T extends ISerializableInterval>(): Map<
|
|
|
615
608
|
// Deletion of intervals is based on id, so requires no rebasing.
|
|
616
609
|
return { rebasedOp: op, rebasedLocalOpMetadata: localOpMetadata };
|
|
617
610
|
},
|
|
618
|
-
applyStashedOp,
|
|
619
611
|
},
|
|
620
612
|
],
|
|
621
613
|
[
|
|
@@ -631,7 +623,6 @@ export function makeOpsMap<T extends ISerializableInterval>(): Map<
|
|
|
631
623
|
collection.ackChange(params, local, op, localOpMetadata);
|
|
632
624
|
},
|
|
633
625
|
rebase,
|
|
634
|
-
applyStashedOp,
|
|
635
626
|
},
|
|
636
627
|
],
|
|
637
628
|
]);
|
|
@@ -734,6 +725,28 @@ export interface IIntervalCollectionEvent<TInterval extends ISerializableInterva
|
|
|
734
725
|
op: ISequencedDocumentMessage | undefined,
|
|
735
726
|
) => void,
|
|
736
727
|
): void;
|
|
728
|
+
/**
|
|
729
|
+
* This event is invoked whenever an interval's endpoints or properties (or both) have changed.
|
|
730
|
+
* `interval` reflects the state of the updated endpoints or properties.
|
|
731
|
+
* `propertyDeltas` is a map-like whose keys contain all values that were changed, and whose
|
|
732
|
+
* values contain all previous values of the property set.
|
|
733
|
+
* This object can be used directly in a call to `changeProperties` to revert the property change if desired.
|
|
734
|
+
* 'previousInterval' contains transient `ReferencePosition`s at the same location as the interval's original
|
|
735
|
+
* endpoints. These references should be used for position information only. In the case of a property change
|
|
736
|
+
* only, this argument should be undefined.
|
|
737
|
+
* `local` reflects whether the change originated locally.
|
|
738
|
+
* `slide` is true if the change is due to sliding on removal of position.
|
|
739
|
+
*/
|
|
740
|
+
(
|
|
741
|
+
event: "changed",
|
|
742
|
+
listener: (
|
|
743
|
+
interval: TInterval,
|
|
744
|
+
propertyDeltas: PropertySet,
|
|
745
|
+
previousInterval: TInterval | undefined,
|
|
746
|
+
local: boolean,
|
|
747
|
+
slide: boolean,
|
|
748
|
+
) => void,
|
|
749
|
+
): void;
|
|
737
750
|
}
|
|
738
751
|
|
|
739
752
|
/**
|
|
@@ -983,7 +996,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
983
996
|
return !!this.localCollection;
|
|
984
997
|
}
|
|
985
998
|
|
|
986
|
-
/** @internal */
|
|
987
999
|
constructor(
|
|
988
1000
|
private readonly helpers: IIntervalHelpers<TInterval>,
|
|
989
1001
|
private readonly requiresClient: boolean,
|
|
@@ -1102,7 +1114,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1102
1114
|
return rebased;
|
|
1103
1115
|
}
|
|
1104
1116
|
|
|
1105
|
-
/** @internal */
|
|
1106
1117
|
public attachGraph(client: Client, label: string) {
|
|
1107
1118
|
if (this.attached) {
|
|
1108
1119
|
throw new LoggingError("Only supports one Sequence attach");
|
|
@@ -1199,10 +1210,12 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1199
1210
|
previousInterval.start.refType = ReferenceType.Transient;
|
|
1200
1211
|
previousInterval.end.refType = ReferenceType.Transient;
|
|
1201
1212
|
this.emit("changeInterval", interval, previousInterval, local, op, slide);
|
|
1213
|
+
this.emit("changed", interval, undefined, previousInterval ?? undefined, local, slide);
|
|
1202
1214
|
previousInterval.start.refType = startRefType;
|
|
1203
1215
|
previousInterval.end.refType = endRefType;
|
|
1204
1216
|
} else {
|
|
1205
1217
|
this.emit("changeInterval", interval, previousInterval, local, op, slide);
|
|
1218
|
+
this.emit("changed", interval, undefined, previousInterval ?? undefined, local, slide);
|
|
1206
1219
|
}
|
|
1207
1220
|
}
|
|
1208
1221
|
|
|
@@ -1280,7 +1293,9 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1280
1293
|
endSide,
|
|
1281
1294
|
};
|
|
1282
1295
|
const localSeq = this.getNextLocalSeq();
|
|
1283
|
-
this.
|
|
1296
|
+
if (this.isCollaborating) {
|
|
1297
|
+
this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
|
|
1298
|
+
}
|
|
1284
1299
|
// Local ops get submitted to the server. Remote ops have the deserializer run.
|
|
1285
1300
|
this.emitter.emit("add", undefined, serializedInterval, { localSeq });
|
|
1286
1301
|
}
|
|
@@ -1393,10 +1408,21 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1393
1408
|
...props,
|
|
1394
1409
|
};
|
|
1395
1410
|
const localSeq = this.getNextLocalSeq();
|
|
1396
|
-
this.
|
|
1411
|
+
if (this.isCollaborating) {
|
|
1412
|
+
this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1397
1415
|
this.emitter.emit("change", undefined, serializedInterval, { localSeq });
|
|
1398
1416
|
if (deltaProps !== undefined) {
|
|
1399
1417
|
this.emit("propertyChanged", interval, deltaProps, true, undefined);
|
|
1418
|
+
this.emit(
|
|
1419
|
+
"changed",
|
|
1420
|
+
newInterval ?? interval,
|
|
1421
|
+
deltaProps,
|
|
1422
|
+
newInterval ? interval : undefined,
|
|
1423
|
+
true,
|
|
1424
|
+
false,
|
|
1425
|
+
);
|
|
1400
1426
|
}
|
|
1401
1427
|
if (newInterval) {
|
|
1402
1428
|
this.addPendingChange(id, serializedInterval);
|
|
@@ -1478,7 +1504,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1478
1504
|
return entries && entries.length !== 0;
|
|
1479
1505
|
}
|
|
1480
1506
|
|
|
1481
|
-
/** @internal */
|
|
1482
1507
|
public ackChange(
|
|
1483
1508
|
serializedInterval: ISerializedInterval,
|
|
1484
1509
|
local: boolean,
|
|
@@ -1538,8 +1563,8 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1538
1563
|
newInterval =
|
|
1539
1564
|
this.localCollection.changeInterval(
|
|
1540
1565
|
interval,
|
|
1541
|
-
toOptionalSequencePlace(start, serializedInterval.startSide),
|
|
1542
|
-
toOptionalSequencePlace(end, serializedInterval.endSide),
|
|
1566
|
+
toOptionalSequencePlace(start, serializedInterval.startSide ?? Side.Before),
|
|
1567
|
+
toOptionalSequencePlace(end, serializedInterval.endSide ?? Side.Before),
|
|
1543
1568
|
op,
|
|
1544
1569
|
) ?? interval;
|
|
1545
1570
|
}
|
|
@@ -1555,6 +1580,7 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1555
1580
|
const changedProperties = Object.keys(newProps).length > 0;
|
|
1556
1581
|
if (changedProperties) {
|
|
1557
1582
|
this.emit("propertyChanged", interval, deltaProps, local, op);
|
|
1583
|
+
this.emit("changed", interval, deltaProps, undefined, local, false);
|
|
1558
1584
|
}
|
|
1559
1585
|
}
|
|
1560
1586
|
}
|
|
@@ -1582,7 +1608,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1582
1608
|
* deleted as a result of rebasing. This can occur if the interval applies
|
|
1583
1609
|
* to a range that no longer exists, and the interval was unable to slide.
|
|
1584
1610
|
*
|
|
1585
|
-
* @internal
|
|
1586
1611
|
*/
|
|
1587
1612
|
public rebaseLocalInterval(
|
|
1588
1613
|
opName: string,
|
|
@@ -1646,8 +1671,8 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1646
1671
|
// updates the local client's state to be consistent with the emitted op.
|
|
1647
1672
|
this.localCollection?.changeInterval(
|
|
1648
1673
|
localInterval,
|
|
1649
|
-
toOptionalSequencePlace(startRebased, startSide),
|
|
1650
|
-
toOptionalSequencePlace(endRebased, endSide),
|
|
1674
|
+
toOptionalSequencePlace(startRebased, startSide ?? Side.Before),
|
|
1675
|
+
toOptionalSequencePlace(endRebased, endSide ?? Side.Before),
|
|
1651
1676
|
undefined,
|
|
1652
1677
|
localSeq,
|
|
1653
1678
|
);
|
|
@@ -1656,53 +1681,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1656
1681
|
return rebased;
|
|
1657
1682
|
}
|
|
1658
1683
|
|
|
1659
|
-
public applyStashedOp(op: IValueTypeOperationValue): IMapMessageLocalMetadata {
|
|
1660
|
-
let interval: TInterval | undefined;
|
|
1661
|
-
let props: PropertySet | undefined;
|
|
1662
|
-
let intervalId: string;
|
|
1663
|
-
switch (op.opName) {
|
|
1664
|
-
case IntervalDeltaOpType.ADD: {
|
|
1665
|
-
assert(op.value.start !== undefined, 0x87a /* start is undefined */);
|
|
1666
|
-
assert(op.value.end !== undefined, 0x87b /* end is undefined */);
|
|
1667
|
-
interval = this.add({
|
|
1668
|
-
start: op.value.start,
|
|
1669
|
-
end: op.value.end,
|
|
1670
|
-
props: op.value.properties,
|
|
1671
|
-
});
|
|
1672
|
-
const metadata = {
|
|
1673
|
-
localSeq: this.getNextLocalSeq(),
|
|
1674
|
-
};
|
|
1675
|
-
if (interval !== undefined) {
|
|
1676
|
-
this.localSeqToSerializedInterval.set(metadata.localSeq, interval.serialize());
|
|
1677
|
-
}
|
|
1678
|
-
return metadata;
|
|
1679
|
-
}
|
|
1680
|
-
case IntervalDeltaOpType.DELETE:
|
|
1681
|
-
this.removeIntervalById(op.value.properties?.intervalId);
|
|
1682
|
-
return {
|
|
1683
|
-
localSeq: this.getNextLocalSeq(),
|
|
1684
|
-
};
|
|
1685
|
-
case IntervalDeltaOpType.CHANGE: {
|
|
1686
|
-
assert(op.value.properties !== undefined, 0x87c /* properties is undefined */);
|
|
1687
|
-
({ intervalId, ...props } = op.value.properties);
|
|
1688
|
-
interval = this.change(intervalId, {
|
|
1689
|
-
start: op.value.start,
|
|
1690
|
-
end: op.value.end,
|
|
1691
|
-
props,
|
|
1692
|
-
});
|
|
1693
|
-
const metadata = {
|
|
1694
|
-
localSeq: this.getNextLocalSeq(),
|
|
1695
|
-
};
|
|
1696
|
-
if (interval !== undefined) {
|
|
1697
|
-
this.localSeqToSerializedInterval.set(metadata.localSeq, interval.serialize());
|
|
1698
|
-
}
|
|
1699
|
-
return metadata;
|
|
1700
|
-
}
|
|
1701
|
-
default:
|
|
1702
|
-
unreachableCase(op.opName, `Unknown interval op type: ${op.opName}`);
|
|
1703
|
-
}
|
|
1704
|
-
}
|
|
1705
|
-
|
|
1706
1684
|
private getSlideToSegment(
|
|
1707
1685
|
lref: LocalReferencePosition,
|
|
1708
1686
|
): { segment: ISegment | undefined; offset: number | undefined } | undefined {
|
|
@@ -1821,7 +1799,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1821
1799
|
}
|
|
1822
1800
|
}
|
|
1823
1801
|
|
|
1824
|
-
/** @internal */
|
|
1825
1802
|
public ackAdd(
|
|
1826
1803
|
serializedInterval: ISerializedInterval,
|
|
1827
1804
|
local: boolean,
|
|
@@ -1867,7 +1844,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1867
1844
|
return interval;
|
|
1868
1845
|
}
|
|
1869
1846
|
|
|
1870
|
-
/** @internal */
|
|
1871
1847
|
public ackDelete(
|
|
1872
1848
|
serializedInterval: ISerializedInterval,
|
|
1873
1849
|
local: boolean,
|
|
@@ -1891,9 +1867,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
1891
1867
|
}
|
|
1892
1868
|
}
|
|
1893
1869
|
|
|
1894
|
-
/**
|
|
1895
|
-
* @internal
|
|
1896
|
-
*/
|
|
1897
1870
|
public serializeInternal(): ISerializedIntervalCollectionV2 {
|
|
1898
1871
|
if (!this.localCollection) {
|
|
1899
1872
|
throw new LoggingError("attachSequence must be called");
|
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
IntervalType,
|
|
12
12
|
SequenceInterval,
|
|
13
13
|
sequenceIntervalHelpers,
|
|
14
|
-
} from "../intervals";
|
|
15
|
-
import { SharedString } from "../sharedString";
|
|
16
|
-
import { IntervalIndex } from "./intervalIndex";
|
|
17
|
-
import { HasComparisonOverride, compareOverrideables, forceCompare } from "./intervalIndexUtils";
|
|
14
|
+
} from "../intervals/index.js";
|
|
15
|
+
import { SharedString } from "../sharedString.js";
|
|
16
|
+
import { IntervalIndex } from "./intervalIndex.js";
|
|
17
|
+
import { HasComparisonOverride, compareOverrideables, forceCompare } from "./intervalIndexUtils.js";
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Collection of intervals.
|
|
@@ -11,9 +11,9 @@ import {
|
|
|
11
11
|
IntervalType,
|
|
12
12
|
SequenceInterval,
|
|
13
13
|
sequenceIntervalHelpers,
|
|
14
|
-
} from "../intervals";
|
|
15
|
-
import { SharedString } from "../sharedString";
|
|
16
|
-
import { IntervalIndex } from "./intervalIndex";
|
|
14
|
+
} from "../intervals/index.js";
|
|
15
|
+
import { SharedString } from "../sharedString.js";
|
|
16
|
+
import { IntervalIndex } from "./intervalIndex.js";
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* @internal
|
|
@@ -4,10 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { assert } from "@fluidframework/core-utils";
|
|
7
|
-
import { ISerializableInterval } from "../intervals";
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
const reservedIntervalIdKey = "intervalId";
|
|
7
|
+
import { ISerializableInterval } from "../intervals/index.js";
|
|
8
|
+
import { reservedIntervalIdKey } from "../intervalCollection.js";
|
|
9
|
+
import { IntervalIndex } from "./intervalIndex.js";
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* @internal
|
|
@@ -3,23 +3,23 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
export { IntervalIndex } from "./intervalIndex";
|
|
7
|
-
export { IIdIntervalIndex, createIdIntervalIndex } from "./idIntervalIndex";
|
|
8
|
-
export { IEndpointIndex, createEndpointIndex, EndpointIndex } from "./endpointIndex";
|
|
6
|
+
export { IntervalIndex } from "./intervalIndex.js";
|
|
7
|
+
export { IIdIntervalIndex, createIdIntervalIndex } from "./idIntervalIndex.js";
|
|
8
|
+
export { IEndpointIndex, createEndpointIndex, EndpointIndex } from "./endpointIndex.js";
|
|
9
9
|
export {
|
|
10
10
|
IEndpointInRangeIndex,
|
|
11
11
|
createEndpointInRangeIndex,
|
|
12
12
|
EndpointInRangeIndex,
|
|
13
|
-
} from "./endpointInRangeIndex";
|
|
13
|
+
} from "./endpointInRangeIndex.js";
|
|
14
14
|
export {
|
|
15
15
|
IStartpointInRangeIndex,
|
|
16
16
|
createStartpointInRangeIndex,
|
|
17
17
|
StartpointInRangeIndex,
|
|
18
|
-
} from "./startpointInRangeIndex";
|
|
19
|
-
export { SequenceIntervalIndexes } from "./sequenceIntervalIndexes";
|
|
18
|
+
} from "./startpointInRangeIndex.js";
|
|
19
|
+
export { SequenceIntervalIndexes } from "./sequenceIntervalIndexes.js";
|
|
20
20
|
export {
|
|
21
21
|
IOverlappingIntervalsIndex,
|
|
22
22
|
createOverlappingIntervalsIndex,
|
|
23
23
|
OverlappingIntervalsIndex,
|
|
24
|
-
} from "./overlappingIntervalsIndex";
|
|
25
|
-
export { createOverlappingSequenceIntervalsIndex } from "./overlappingSequenceIntervalsIndex";
|
|
24
|
+
} from "./overlappingIntervalsIndex.js";
|
|
25
|
+
export { createOverlappingSequenceIntervalsIndex } from "./overlappingSequenceIntervalsIndex.js";
|
|
@@ -11,14 +11,14 @@ import {
|
|
|
11
11
|
ISerializableInterval,
|
|
12
12
|
sequenceIntervalHelpers,
|
|
13
13
|
SequenceInterval,
|
|
14
|
-
} from "../intervals";
|
|
15
|
-
import { IntervalNode, IntervalTree } from "../intervalTree";
|
|
16
|
-
import { SharedString } from "../sharedString";
|
|
17
|
-
import { SequencePlace, endpointPosAndSide } from "../intervalCollection";
|
|
18
|
-
import { IntervalIndex } from "./intervalIndex";
|
|
14
|
+
} from "../intervals/index.js";
|
|
15
|
+
import { IntervalNode, IntervalTree } from "../intervalTree.js";
|
|
16
|
+
import { SharedString } from "../sharedString.js";
|
|
17
|
+
import { SequencePlace, endpointPosAndSide } from "../intervalCollection.js";
|
|
18
|
+
import { IntervalIndex } from "./intervalIndex.js";
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
* @
|
|
21
|
+
* @alpha
|
|
22
22
|
*/
|
|
23
23
|
export interface IOverlappingIntervalsIndex<TInterval extends ISerializableInterval>
|
|
24
24
|
extends IntervalIndex<TInterval> {
|
|
@@ -39,9 +39,6 @@ export interface IOverlappingIntervalsIndex<TInterval extends ISerializableInter
|
|
|
39
39
|
): void;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
/**
|
|
43
|
-
* @public
|
|
44
|
-
*/
|
|
45
42
|
export class OverlappingIntervalsIndex<TInterval extends ISerializableInterval>
|
|
46
43
|
implements IOverlappingIntervalsIndex<TInterval>
|
|
47
44
|
{
|
|
@@ -150,7 +147,9 @@ export class OverlappingIntervalsIndex<TInterval extends ISerializableInterval>
|
|
|
150
147
|
if (
|
|
151
148
|
startPos === undefined ||
|
|
152
149
|
endPos === undefined ||
|
|
153
|
-
endPos < startPos ||
|
|
150
|
+
(typeof startPos === "number" && typeof endPos === "number" && endPos < startPos) ||
|
|
151
|
+
(startPos === "end" && endPos !== "end") ||
|
|
152
|
+
(startPos !== "start" && endPos === "start") ||
|
|
154
153
|
this.intervalTree.intervals.isEmpty()
|
|
155
154
|
) {
|
|
156
155
|
return [];
|
|
@@ -177,7 +176,7 @@ export class OverlappingIntervalsIndex<TInterval extends ISerializableInterval>
|
|
|
177
176
|
}
|
|
178
177
|
|
|
179
178
|
/**
|
|
180
|
-
* @
|
|
179
|
+
* @alpha
|
|
181
180
|
*/
|
|
182
181
|
export function createOverlappingIntervalsIndex(
|
|
183
182
|
sharedString: SharedString,
|
|
@@ -16,10 +16,10 @@ import {
|
|
|
16
16
|
IntervalType,
|
|
17
17
|
SequenceInterval,
|
|
18
18
|
createPositionReferenceFromSegoff,
|
|
19
|
-
} from "../intervals";
|
|
20
|
-
import { SharedString } from "../sharedString";
|
|
21
|
-
import { SequenceIntervalIndexes } from "./sequenceIntervalIndexes";
|
|
22
|
-
import { OverlappingIntervalsIndex } from "./overlappingIntervalsIndex";
|
|
19
|
+
} from "../intervals/index.js";
|
|
20
|
+
import { SharedString } from "../sharedString.js";
|
|
21
|
+
import { SequenceIntervalIndexes } from "./sequenceIntervalIndexes.js";
|
|
22
|
+
import { OverlappingIntervalsIndex } from "./overlappingIntervalsIndex.js";
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* @public
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { ISegment } from "@fluidframework/merge-tree";
|
|
7
|
-
import { SequenceInterval } from "../intervals";
|
|
8
|
-
import { IOverlappingIntervalsIndex } from "./overlappingIntervalsIndex";
|
|
7
|
+
import { SequenceInterval } from "../intervals/index.js";
|
|
8
|
+
import { IOverlappingIntervalsIndex } from "./overlappingIntervalsIndex.js";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* This namespace contains specialiazations of indexes which support spatial queries
|
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
IntervalType,
|
|
12
12
|
SequenceInterval,
|
|
13
13
|
sequenceIntervalHelpers,
|
|
14
|
-
} from "../intervals";
|
|
15
|
-
import { SharedString } from "../sharedString";
|
|
16
|
-
import { IntervalIndex } from "./intervalIndex";
|
|
17
|
-
import { HasComparisonOverride, compareOverrideables, forceCompare } from "./intervalIndexUtils";
|
|
14
|
+
} from "../intervals/index.js";
|
|
15
|
+
import { SharedString } from "../sharedString.js";
|
|
16
|
+
import { IntervalIndex } from "./intervalIndex.js";
|
|
17
|
+
import { HasComparisonOverride, compareOverrideables, forceCompare } from "./intervalIndexUtils.js";
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Collection of intervals.
|
package/src/intervalTree.ts
CHANGED
package/src/intervals/index.ts
CHANGED
|
@@ -16,11 +16,11 @@ export {
|
|
|
16
16
|
CompressedSerializedInterval,
|
|
17
17
|
endReferenceSlidingPreference,
|
|
18
18
|
startReferenceSlidingPreference,
|
|
19
|
-
} from "./intervalUtils";
|
|
20
|
-
export { Interval, createInterval, intervalHelpers } from "./interval";
|
|
19
|
+
} from "./intervalUtils.js";
|
|
20
|
+
export { Interval, createInterval, intervalHelpers } from "./interval.js";
|
|
21
21
|
export {
|
|
22
22
|
SequenceInterval,
|
|
23
23
|
createSequenceInterval,
|
|
24
24
|
createPositionReferenceFromSegoff,
|
|
25
25
|
sequenceIntervalHelpers,
|
|
26
|
-
} from "./sequenceInterval";
|
|
26
|
+
} from "./sequenceInterval.js";
|
|
@@ -13,10 +13,8 @@ import {
|
|
|
13
13
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
14
14
|
import { assert } from "@fluidframework/core-utils";
|
|
15
15
|
import { UsageError } from "@fluidframework/telemetry-utils";
|
|
16
|
-
import { SequencePlace } from "../intervalCollection";
|
|
17
|
-
import { IIntervalHelpers, ISerializableInterval, ISerializedInterval } from "./intervalUtils";
|
|
18
|
-
|
|
19
|
-
const reservedIntervalIdKey = "intervalId";
|
|
16
|
+
import { SequencePlace, reservedIntervalIdKey } from "../intervalCollection.js";
|
|
17
|
+
import { IIntervalHelpers, ISerializableInterval, ISerializedInterval } from "./intervalUtils.js";
|
|
20
18
|
|
|
21
19
|
/**
|
|
22
20
|
* Serializable interval whose endpoints are plain-old numbers.
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
SlidingPreference,
|
|
13
13
|
} from "@fluidframework/merge-tree";
|
|
14
14
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
15
|
-
import { SequencePlace, Side } from "../intervalCollection";
|
|
15
|
+
import { SequencePlace, Side } from "../intervalCollection.js";
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Basic interval abstraction
|
|
@@ -81,7 +81,7 @@ export type IntervalDeltaOpType = (typeof IntervalDeltaOpType)[keyof typeof Inte
|
|
|
81
81
|
|
|
82
82
|
/**
|
|
83
83
|
* Values are used in revertibles.
|
|
84
|
-
* @
|
|
84
|
+
* @alpha
|
|
85
85
|
*/
|
|
86
86
|
export const IntervalOpType = {
|
|
87
87
|
...IntervalDeltaOpType,
|
|
@@ -89,7 +89,7 @@ export const IntervalOpType = {
|
|
|
89
89
|
POSITION_REMOVE: "positionRemove",
|
|
90
90
|
} as const;
|
|
91
91
|
/**
|
|
92
|
-
* @
|
|
92
|
+
* @alpha
|
|
93
93
|
*/
|
|
94
94
|
export type IntervalOpType = (typeof IntervalOpType)[keyof typeof IntervalOpType];
|
|
95
95
|
|
|
@@ -31,8 +31,9 @@ import {
|
|
|
31
31
|
Side,
|
|
32
32
|
computeStickinessFromSide,
|
|
33
33
|
endpointPosAndSide,
|
|
34
|
+
reservedIntervalIdKey,
|
|
34
35
|
sidesFromStickiness,
|
|
35
|
-
} from "../intervalCollection";
|
|
36
|
+
} from "../intervalCollection.js";
|
|
36
37
|
import {
|
|
37
38
|
IIntervalHelpers,
|
|
38
39
|
ISerializableInterval,
|
|
@@ -41,9 +42,7 @@ import {
|
|
|
41
42
|
IntervalType,
|
|
42
43
|
endReferenceSlidingPreference,
|
|
43
44
|
startReferenceSlidingPreference,
|
|
44
|
-
} from "./intervalUtils";
|
|
45
|
-
|
|
46
|
-
const reservedIntervalIdKey = "intervalId";
|
|
45
|
+
} from "./intervalUtils.js";
|
|
47
46
|
|
|
48
47
|
function compareSides(sideA: Side, sideB: Side): number {
|
|
49
48
|
if (sideA === sideB) {
|
package/src/localValues.ts
CHANGED
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
ISerializedValue,
|
|
11
11
|
IValueOperation,
|
|
12
12
|
IValueType,
|
|
13
|
-
} from "./defaultMapInterfaces";
|
|
14
|
-
import { IntervalOpType } from "./intervals";
|
|
13
|
+
} from "./defaultMapInterfaces.js";
|
|
14
|
+
import { IntervalOpType } from "./intervals/index.js";
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* A local value to be stored in a container type DDS.
|