@fluid-experimental/tree 1.2.6 → 2.0.0-dev.1.3.0.96595
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/.mocharc.js +12 -0
- package/.prettierignore +6 -0
- package/README.md +1 -1
- package/dist/Checkout.d.ts +9 -4
- package/dist/Checkout.d.ts.map +1 -1
- package/dist/Checkout.js +34 -25
- package/dist/Checkout.js.map +1 -1
- package/dist/Common.d.ts +31 -18
- package/dist/Common.d.ts.map +1 -1
- package/dist/Common.js +33 -22
- package/dist/Common.js.map +1 -1
- package/dist/EditLog.js +2 -2
- package/dist/EditLog.js.map +1 -1
- package/dist/EditUtilities.d.ts +5 -0
- package/dist/EditUtilities.d.ts.map +1 -1
- package/dist/EditUtilities.js +4 -3
- package/dist/EditUtilities.js.map +1 -1
- package/dist/EventTypes.d.ts +11 -6
- package/dist/EventTypes.d.ts.map +1 -1
- package/dist/EventTypes.js +11 -6
- package/dist/EventTypes.js.map +1 -1
- package/dist/HistoryEditFactory.d.ts +5 -3
- package/dist/HistoryEditFactory.d.ts.map +1 -1
- package/dist/HistoryEditFactory.js +25 -6
- package/dist/HistoryEditFactory.js.map +1 -1
- package/dist/LogViewer.d.ts +12 -6
- package/dist/LogViewer.d.ts.map +1 -1
- package/dist/LogViewer.js.map +1 -1
- package/dist/RevisionValueCache.d.ts +8 -4
- package/dist/RevisionValueCache.d.ts.map +1 -1
- package/dist/RevisionValueCache.js +4 -2
- package/dist/RevisionValueCache.js.map +1 -1
- package/dist/SharedTree.d.ts +22 -11
- package/dist/SharedTree.d.ts.map +1 -1
- package/dist/SharedTree.js +25 -19
- package/dist/SharedTree.js.map +1 -1
- package/dist/StringInterner.d.ts +4 -3
- package/dist/StringInterner.d.ts.map +1 -1
- package/dist/StringInterner.js +4 -3
- package/dist/StringInterner.js.map +1 -1
- package/dist/Transaction.d.ts +2 -2
- package/dist/Transaction.d.ts.map +1 -1
- package/dist/Transaction.js +3 -2
- package/dist/Transaction.js.map +1 -1
- package/dist/TransactionInternal.d.ts.map +1 -1
- package/dist/TransactionInternal.js +1 -0
- package/dist/TransactionInternal.js.map +1 -1
- package/dist/id-compressor/IdCompressor.d.ts +14 -8
- package/dist/id-compressor/IdCompressor.d.ts.map +1 -1
- package/dist/id-compressor/IdCompressor.js +36 -15
- package/dist/id-compressor/IdCompressor.js.map +1 -1
- package/dist/id-compressor/NumericUuid.d.ts +4 -0
- package/dist/id-compressor/NumericUuid.d.ts.map +1 -1
- package/dist/id-compressor/NumericUuid.js +13 -3
- package/dist/id-compressor/NumericUuid.js.map +1 -1
- package/dist/id-compressor/SessionIdNormalizer.d.ts +10 -5
- package/dist/id-compressor/SessionIdNormalizer.d.ts.map +1 -1
- package/dist/id-compressor/SessionIdNormalizer.js +10 -5
- package/dist/id-compressor/SessionIdNormalizer.js.map +1 -1
- package/dist/id-compressor/persisted-types/0.0.1.d.ts.map +1 -1
- package/dist/id-compressor/persisted-types/0.0.1.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/lib/Checkout.d.ts +9 -4
- package/lib/Checkout.d.ts.map +1 -1
- package/lib/Checkout.js +36 -27
- package/lib/Checkout.js.map +1 -1
- package/lib/Common.d.ts +31 -18
- package/lib/Common.d.ts.map +1 -1
- package/lib/Common.js +31 -21
- package/lib/Common.js.map +1 -1
- package/lib/EditLog.js +2 -2
- package/lib/EditLog.js.map +1 -1
- package/lib/EditUtilities.d.ts +5 -0
- package/lib/EditUtilities.d.ts.map +1 -1
- package/lib/EditUtilities.js +4 -3
- package/lib/EditUtilities.js.map +1 -1
- package/lib/EventTypes.d.ts +11 -6
- package/lib/EventTypes.d.ts.map +1 -1
- package/lib/EventTypes.js +11 -6
- package/lib/EventTypes.js.map +1 -1
- package/lib/HistoryEditFactory.d.ts +5 -3
- package/lib/HistoryEditFactory.d.ts.map +1 -1
- package/lib/HistoryEditFactory.js +25 -6
- package/lib/HistoryEditFactory.js.map +1 -1
- package/lib/LogViewer.d.ts +12 -6
- package/lib/LogViewer.d.ts.map +1 -1
- package/lib/LogViewer.js.map +1 -1
- package/lib/RevisionValueCache.d.ts +8 -4
- package/lib/RevisionValueCache.d.ts.map +1 -1
- package/lib/RevisionValueCache.js +4 -2
- package/lib/RevisionValueCache.js.map +1 -1
- package/lib/SharedTree.d.ts +22 -11
- package/lib/SharedTree.d.ts.map +1 -1
- package/lib/SharedTree.js +26 -20
- package/lib/SharedTree.js.map +1 -1
- package/lib/StringInterner.d.ts +4 -3
- package/lib/StringInterner.d.ts.map +1 -1
- package/lib/StringInterner.js +4 -3
- package/lib/StringInterner.js.map +1 -1
- package/lib/Transaction.d.ts +2 -2
- package/lib/Transaction.d.ts.map +1 -1
- package/lib/Transaction.js +3 -2
- package/lib/Transaction.js.map +1 -1
- package/lib/TransactionInternal.d.ts.map +1 -1
- package/lib/TransactionInternal.js +1 -0
- package/lib/TransactionInternal.js.map +1 -1
- package/lib/id-compressor/IdCompressor.d.ts +14 -8
- package/lib/id-compressor/IdCompressor.d.ts.map +1 -1
- package/lib/id-compressor/IdCompressor.js +36 -15
- package/lib/id-compressor/IdCompressor.js.map +1 -1
- package/lib/id-compressor/NumericUuid.d.ts +4 -0
- package/lib/id-compressor/NumericUuid.d.ts.map +1 -1
- package/lib/id-compressor/NumericUuid.js +13 -3
- package/lib/id-compressor/NumericUuid.js.map +1 -1
- package/lib/id-compressor/SessionIdNormalizer.d.ts +10 -5
- package/lib/id-compressor/SessionIdNormalizer.d.ts.map +1 -1
- package/lib/id-compressor/SessionIdNormalizer.js +10 -5
- package/lib/id-compressor/SessionIdNormalizer.js.map +1 -1
- package/lib/id-compressor/persisted-types/0.0.1.d.ts.map +1 -1
- package/lib/id-compressor/persisted-types/0.0.1.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/test/AppendOnlySortedMap.perf.tests.js.map +1 -1
- package/lib/test/Checkout.tests.d.ts.map +1 -1
- package/lib/test/Checkout.tests.js +39 -10
- package/lib/test/Checkout.tests.js.map +1 -1
- package/lib/test/Common.tests.js +20 -1
- package/lib/test/Common.tests.js.map +1 -1
- package/lib/test/HistoryEditFactory.tests.js +48 -9
- package/lib/test/HistoryEditFactory.tests.js.map +1 -1
- package/lib/test/IdCompressor.tests.js +23 -0
- package/lib/test/IdCompressor.tests.js.map +1 -1
- package/lib/test/SessionIdNormalizer.tests.js +3 -2
- package/lib/test/SessionIdNormalizer.tests.js.map +1 -1
- package/lib/test/fuzz/Generators.d.ts.map +1 -1
- package/lib/test/fuzz/Generators.js.map +1 -1
- package/lib/test/fuzz/SharedTreeFuzzTests.d.ts.map +1 -1
- package/lib/test/fuzz/SharedTreeFuzzTests.js +2 -3
- package/lib/test/fuzz/SharedTreeFuzzTests.js.map +1 -1
- package/lib/test/utilities/MockTransaction.d.ts.map +1 -1
- package/lib/test/utilities/MockTransaction.js +1 -0
- package/lib/test/utilities/MockTransaction.js.map +1 -1
- package/lib/test/utilities/SharedTreeTests.d.ts.map +1 -1
- package/lib/test/utilities/SharedTreeTests.js +35 -26
- package/lib/test/utilities/SharedTreeTests.js.map +1 -1
- package/lib/test/utilities/SharedTreeVersioningTests.d.ts.map +1 -1
- package/lib/test/utilities/SharedTreeVersioningTests.js +7 -0
- package/lib/test/utilities/SharedTreeVersioningTests.js.map +1 -1
- package/lib/test/utilities/TestUtilities.d.ts +5 -0
- package/lib/test/utilities/TestUtilities.d.ts.map +1 -1
- package/lib/test/utilities/TestUtilities.js +4 -3
- package/lib/test/utilities/TestUtilities.js.map +1 -1
- package/lib/test/utilities/UndoRedoTests.js +3 -2
- package/lib/test/utilities/UndoRedoTests.js.map +1 -1
- package/package.json +28 -23
- package/src/Checkout.ts +56 -14
- package/src/Common.ts +39 -21
- package/src/EditLog.ts +2 -2
- package/src/EditUtilities.ts +3 -3
- package/src/EventTypes.ts +12 -6
- package/src/HistoryEditFactory.ts +31 -6
- package/src/LogViewer.ts +12 -6
- package/src/RevisionValueCache.ts +8 -4
- package/src/SharedTree.ts +39 -26
- package/src/StringInterner.ts +4 -3
- package/src/Transaction.ts +5 -4
- package/src/TransactionInternal.ts +1 -0
- package/src/id-compressor/IdCompressor.ts +55 -24
- package/src/id-compressor/NumericUuid.ts +17 -3
- package/src/id-compressor/SessionIdNormalizer.ts +10 -5
- package/src/id-compressor/persisted-types/0.0.1.ts +1 -0
- package/src/index.ts +1 -1
|
@@ -685,12 +685,23 @@ export function runSharedTreeOperationsTests(title, writeFormat, setUpTestShared
|
|
|
685
685
|
});
|
|
686
686
|
});
|
|
687
687
|
describe('telemetry', () => {
|
|
688
|
+
class LoggerThatOnlySeesSharedTreeEvents {
|
|
689
|
+
constructor(additionalFilter = (e) => true) {
|
|
690
|
+
this.additionalFilter = additionalFilter;
|
|
691
|
+
this.events = [];
|
|
692
|
+
}
|
|
693
|
+
send(event) {
|
|
694
|
+
if (isSharedTreeEvent(event) && this.additionalFilter(event)) {
|
|
695
|
+
this.events.push(event);
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
}
|
|
688
699
|
describe('useFailedSequencedEditTelemetry', () => {
|
|
689
700
|
it('decorates events with the correct properties', async () => {
|
|
690
701
|
// Test that a handle can wrap a node and retrieve that node's properties
|
|
691
|
-
const
|
|
702
|
+
const logger = new LoggerThatOnlySeesSharedTreeEvents();
|
|
692
703
|
const { sharedTree, testTree, containerRuntimeFactory } = createSimpleTestTree({
|
|
693
|
-
logger
|
|
704
|
+
logger,
|
|
694
705
|
allowInvalid: true,
|
|
695
706
|
});
|
|
696
707
|
useFailedSequencedEditTelemetry(sharedTree);
|
|
@@ -699,68 +710,66 @@ export function runSharedTreeOperationsTests(title, writeFormat, setUpTestShared
|
|
|
699
710
|
containerRuntimeFactory.processAllMessages();
|
|
700
711
|
// Force demand, which will cause a telemetry event for the invalid edit to be emitted
|
|
701
712
|
await sharedTree.logViewer.getRevisionView(Number.POSITIVE_INFINITY);
|
|
702
|
-
expect(events.length).is.greaterThan(0);
|
|
703
|
-
events.forEach((event) => {
|
|
713
|
+
expect(logger.events.length).is.greaterThan(0);
|
|
714
|
+
logger.events.forEach((event) => {
|
|
704
715
|
expect(isSharedTreeEvent(event)).is.true;
|
|
705
716
|
});
|
|
706
717
|
});
|
|
707
718
|
it('is logged for invalid locally generated edits when those edits are sequenced', async () => {
|
|
708
|
-
const
|
|
719
|
+
const logger = new LoggerThatOnlySeesSharedTreeEvents((event) => !event.eventName.includes('IdCompressor'));
|
|
709
720
|
const { sharedTree, testTree, containerRuntimeFactory } = createSimpleTestTree({
|
|
710
|
-
logger
|
|
721
|
+
logger,
|
|
711
722
|
allowInvalid: true,
|
|
712
723
|
});
|
|
713
724
|
useFailedSequencedEditTelemetry(sharedTree);
|
|
714
725
|
// Invalid edit
|
|
715
726
|
sharedTree.applyEdit(...Change.insertTree([testTree.buildLeaf()], StablePlace.after(testTree.buildLeaf(testTree.generateNodeId()))));
|
|
716
|
-
expect(events.length).equals(0);
|
|
727
|
+
expect(logger.events.length).equals(0);
|
|
717
728
|
containerRuntimeFactory.processAllMessages();
|
|
718
729
|
// Force demand, which will cause a telemetry event for the invalid edit to be emitted
|
|
719
730
|
await sharedTree.logViewer.getRevisionView(Number.POSITIVE_INFINITY);
|
|
720
|
-
expect(events.length).equals(1);
|
|
721
|
-
expect(events[0].category).equals('generic');
|
|
722
|
-
expect(events[0].eventName).equals('SharedTree:SequencedEditApplied:InvalidSharedTreeEdit');
|
|
731
|
+
expect(logger.events.length).equals(1);
|
|
732
|
+
expect(logger.events[0].category).equals('generic');
|
|
733
|
+
expect(logger.events[0].eventName).equals('SharedTree:SequencedEditApplied:InvalidSharedTreeEdit');
|
|
723
734
|
});
|
|
724
735
|
it('can be disabled and re-enabled', async () => {
|
|
725
|
-
const
|
|
736
|
+
const logger = new LoggerThatOnlySeesSharedTreeEvents((event) => !event.eventName.includes('IdCompressor'));
|
|
726
737
|
const { sharedTree, testTree, containerRuntimeFactory } = createSimpleTestTree({
|
|
727
|
-
logger
|
|
738
|
+
logger,
|
|
728
739
|
allowInvalid: true,
|
|
729
740
|
});
|
|
730
741
|
const { disable } = useFailedSequencedEditTelemetry(sharedTree);
|
|
731
742
|
sharedTree.applyEdit(...Change.insertTree([testTree.buildLeaf()], StablePlace.after(testTree.buildLeaf(testTree.generateNodeId()))));
|
|
732
|
-
expect(events.length).equals(0);
|
|
743
|
+
expect(logger.events.length).equals(0);
|
|
733
744
|
containerRuntimeFactory.processAllMessages();
|
|
734
745
|
await sharedTree.logViewer.getRevisionView(Number.POSITIVE_INFINITY);
|
|
735
|
-
expect(events.length).equals(1);
|
|
736
|
-
expect(events[0].eventName).equals('SharedTree:SequencedEditApplied:InvalidSharedTreeEdit');
|
|
746
|
+
expect(logger.events.length).equals(1);
|
|
747
|
+
expect(logger.events[0].eventName).equals('SharedTree:SequencedEditApplied:InvalidSharedTreeEdit');
|
|
737
748
|
disable();
|
|
738
749
|
sharedTree.applyEdit(...Change.insertTree([testTree.buildLeaf()], StablePlace.after(testTree.buildLeaf(testTree.generateNodeId()))));
|
|
739
750
|
containerRuntimeFactory.processAllMessages();
|
|
740
751
|
await sharedTree.logViewer.getRevisionView(Number.POSITIVE_INFINITY);
|
|
741
|
-
expect(events.length).equals(1);
|
|
752
|
+
expect(logger.events.length).equals(1);
|
|
742
753
|
useFailedSequencedEditTelemetry(sharedTree);
|
|
743
754
|
sharedTree.applyEdit(...Change.insertTree([testTree.buildLeaf()], StablePlace.after(testTree.buildLeaf(testTree.generateNodeId()))));
|
|
744
755
|
containerRuntimeFactory.processAllMessages();
|
|
745
756
|
await sharedTree.logViewer.getRevisionView(Number.POSITIVE_INFINITY);
|
|
746
|
-
expect(events.length).equals(2);
|
|
747
|
-
expect(events[1].eventName).equals('SharedTree:SequencedEditApplied:InvalidSharedTreeEdit');
|
|
757
|
+
expect(logger.events.length).equals(2);
|
|
758
|
+
expect(logger.events[1].eventName).equals('SharedTree:SequencedEditApplied:InvalidSharedTreeEdit');
|
|
748
759
|
});
|
|
749
760
|
it('is not logged for valid edits', async () => {
|
|
750
|
-
const
|
|
751
|
-
const { sharedTree, testTree, containerRuntimeFactory } = createSimpleTestTree({
|
|
752
|
-
logger: { send: (event) => !event.eventName.includes('IdCompressor') && events.push(event) },
|
|
753
|
-
});
|
|
761
|
+
const logger = new LoggerThatOnlySeesSharedTreeEvents((event) => !event.eventName.includes('IdCompressor'));
|
|
762
|
+
const { sharedTree, testTree, containerRuntimeFactory } = createSimpleTestTree({ logger });
|
|
754
763
|
useFailedSequencedEditTelemetry(sharedTree);
|
|
755
764
|
sharedTree.applyEdit(...Change.insertTree(testTree.buildLeaf(), StablePlace.after(testTree.left)));
|
|
756
765
|
containerRuntimeFactory.processAllMessages();
|
|
757
766
|
await sharedTree.logViewer.getRevisionView(Number.POSITIVE_INFINITY);
|
|
758
|
-
expect(events.length).equals(0);
|
|
767
|
+
expect(logger.events.length).equals(0);
|
|
759
768
|
});
|
|
760
769
|
it('is not logged for remote edits', async () => {
|
|
761
|
-
const
|
|
770
|
+
const logger = new LoggerThatOnlySeesSharedTreeEvents((event) => !event.eventName.includes('IdCompressor'));
|
|
762
771
|
const { sharedTree: sharedTree1, containerRuntimeFactory } = createSimpleTestTree({
|
|
763
|
-
logger
|
|
772
|
+
logger,
|
|
764
773
|
allowInvalid: true,
|
|
765
774
|
localMode: false,
|
|
766
775
|
});
|
|
@@ -773,7 +782,7 @@ export function runSharedTreeOperationsTests(title, writeFormat, setUpTestShared
|
|
|
773
782
|
sharedTree2.applyEdit(...Change.insertTree([testTree2.buildLeaf()], StablePlace.after(testTree2.buildLeaf(testTree2.generateNodeId()))));
|
|
774
783
|
containerRuntimeFactory.processAllMessages();
|
|
775
784
|
await sharedTree1.logViewer.getRevisionView(Number.POSITIVE_INFINITY);
|
|
776
|
-
expect(events.length).equals(0);
|
|
785
|
+
expect(logger.events.length).equals(0);
|
|
777
786
|
});
|
|
778
787
|
});
|
|
779
788
|
});
|