@fluidframework/tree 2.81.0 → 2.82.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/CHANGELOG.md +125 -0
- package/api-report/tree.alpha.api.md +54 -22
- package/api-report/tree.beta.api.md +150 -1
- package/api-report/tree.legacy.beta.api.md +150 -1
- package/api-report/tree.legacy.public.api.md +1 -0
- package/api-report/tree.public.api.md +1 -0
- package/dist/alpha.d.ts +8 -2
- package/dist/beta.d.ts +3 -0
- package/dist/codec/codec.d.ts +17 -8
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +8 -1
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/index.d.ts +1 -1
- package/dist/codec/index.d.ts.map +1 -1
- package/dist/codec/index.js +2 -1
- package/dist/codec/index.js.map +1 -1
- package/dist/codec/versioned/codec.d.ts +1 -1
- package/dist/codec/versioned/codec.d.ts.map +1 -1
- package/dist/codec/versioned/codec.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/changeRebaser.d.ts +3 -2
- package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
- package/dist/core/rebase/changeRebaser.js.map +1 -1
- package/dist/core/rebase/index.d.ts +1 -1
- package/dist/core/rebase/index.d.ts.map +1 -1
- package/dist/core/rebase/index.js +4 -2
- package/dist/core/rebase/index.js.map +1 -1
- package/dist/core/rebase/types.d.ts +23 -3
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +30 -16
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/schema-stored/formatV1.d.ts +2 -2
- package/dist/core/schema-stored/formatV1.d.ts.map +1 -1
- package/dist/core/schema-stored/formatV1.js +0 -5
- package/dist/core/schema-stored/formatV1.js.map +1 -1
- package/dist/core/schema-stored/formatV2.d.ts +11 -10
- package/dist/core/schema-stored/formatV2.d.ts.map +1 -1
- package/dist/core/schema-stored/formatV2.js +1 -6
- package/dist/core/schema-stored/formatV2.js.map +1 -1
- package/dist/core/schema-stored/index.d.ts.map +1 -1
- package/dist/core/schema-stored/index.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/delta.d.ts +9 -7
- package/dist/core/tree/delta.d.ts.map +1 -1
- package/dist/core/tree/delta.js.map +1 -1
- package/dist/core/tree/deltaUtil.js +1 -1
- package/dist/core/tree/deltaUtil.js.map +1 -1
- package/dist/core/tree/visitDelta.js +2 -2
- package/dist/core/tree/visitDelta.js.map +1 -1
- package/dist/extensibleSchemaUnion.d.ts +72 -0
- package/dist/extensibleSchemaUnion.d.ts.map +1 -0
- package/dist/extensibleSchemaUnion.js +79 -0
- package/dist/extensibleSchemaUnion.js.map +1 -0
- package/dist/feature-libraries/changeAtomIdBTree.d.ts +4 -2
- package/dist/feature-libraries/changeAtomIdBTree.d.ts.map +1 -1
- package/dist/feature-libraries/changeAtomIdBTree.js +9 -1
- package/dist/feature-libraries/changeAtomIdBTree.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +1 -3
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +20 -21
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/index.js.map +1 -1
- package/dist/feature-libraries/forest-summary/codec.d.ts +2 -1
- package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +5 -2
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/forest-summary/formatCommon.d.ts +1 -39
- package/dist/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/formatCommon.js +1 -2
- package/dist/feature-libraries/forest-summary/formatCommon.js.map +1 -1
- package/dist/feature-libraries/forest-summary/formatV1.d.ts +1 -39
- package/dist/feature-libraries/forest-summary/formatV1.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/formatV2.d.ts +1 -39
- package/dist/feature-libraries/forest-summary/formatV2.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +3 -3
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +4 -3
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js +42 -22
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/index.js +2 -1
- package/dist/feature-libraries/modular-schema/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +9 -5
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +11 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +30 -7
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +38 -27
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts +10 -127
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js +2 -4
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +3 -79
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/optional-field/requiredField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/requiredField.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/dist/feature-libraries/schema-index/formatV2.d.ts +4 -4
- package/dist/feature-libraries/schema-index/schemaSummarizer.js +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +2 -2
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.js +16 -16
- package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +3 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/shared-tree/independentView.d.ts +36 -13
- package/dist/shared-tree/independentView.d.ts.map +1 -1
- package/dist/shared-tree/independentView.js +1 -0
- package/dist/shared-tree/independentView.js.map +1 -1
- package/dist/shared-tree/index.d.ts +1 -1
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +10 -0
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +25 -9
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +3 -3
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +8 -32
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +11 -3
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +38 -4
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFormat.d.ts +4 -4
- package/dist/shared-tree/tree.js +1 -1
- package/dist/shared-tree/tree.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +20 -0
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +39 -3
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.js +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.js +2 -2
- package/dist/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/dist/shared-tree-core/transaction.d.ts +14 -3
- package/dist/shared-tree-core/transaction.d.ts.map +1 -1
- package/dist/shared-tree-core/transaction.js +59 -16
- package/dist/shared-tree-core/transaction.js.map +1 -1
- package/dist/shared-tree-core/versionedSummarizer.d.ts.map +1 -1
- package/dist/shared-tree-core/versionedSummarizer.js +1 -1
- package/dist/shared-tree-core/versionedSummarizer.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +1 -1
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +3 -2
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaCreationUtilities.d.ts +9 -0
- package/dist/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaCreationUtilities.js +16 -1
- package/dist/simple-tree/api/schemaCreationUtilities.js.map +1 -1
- package/dist/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/dist/simple-tree/api/transactionTypes.d.ts +10 -0
- package/dist/simple-tree/api/transactionTypes.d.ts.map +1 -1
- package/dist/simple-tree/api/transactionTypes.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +81 -6
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/dist/simple-tree/index.d.ts +2 -2
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +4 -2
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts +63 -0
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js +43 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/index.d.ts +1 -1
- package/dist/simple-tree/node-kinds/array/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/index.js +2 -1
- package/dist/simple-tree/node-kinds/array/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/index.js +2 -1
- package/dist/simple-tree/node-kinds/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/dist/tableSchema.d.ts +71 -48
- package/dist/tableSchema.d.ts.map +1 -1
- package/dist/tableSchema.js +200 -98
- package/dist/tableSchema.js.map +1 -1
- package/dist/text/textDomainFormatted.js +1 -1
- package/dist/text/textDomainFormatted.js.map +1 -1
- package/dist/util/bTreeUtils.d.ts +30 -4
- package/dist/util/bTreeUtils.d.ts.map +1 -1
- package/dist/util/bTreeUtils.js +29 -17
- package/dist/util/bTreeUtils.js.map +1 -1
- package/dist/util/brand.d.ts.map +1 -1
- package/dist/util/brand.js.map +1 -1
- package/dist/util/brandedMap.d.ts.map +1 -1
- package/dist/util/brandedMap.js.map +1 -1
- package/dist/util/breakable.d.ts.map +1 -1
- package/dist/util/breakable.js +2 -1
- package/dist/util/breakable.js.map +1 -1
- package/dist/util/index.d.ts +2 -2
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js +6 -3
- package/dist/util/index.js.map +1 -1
- package/dist/util/opaque.d.ts.map +1 -1
- package/dist/util/opaque.js.map +1 -1
- package/dist/util/rangeMap.d.ts +3 -2
- package/dist/util/rangeMap.d.ts.map +1 -1
- package/dist/util/rangeMap.js +7 -1
- package/dist/util/rangeMap.js.map +1 -1
- package/dist/util/readSnapshotBlob.d.ts +1 -1
- package/dist/util/readSnapshotBlob.d.ts.map +1 -1
- package/dist/util/readSnapshotBlob.js.map +1 -1
- package/dist/util/typeCheck.d.ts.map +1 -1
- package/dist/util/typeCheck.js.map +1 -1
- package/dist/util/utils.d.ts +20 -16
- package/dist/util/utils.d.ts.map +1 -1
- package/dist/util/utils.js +49 -17
- package/dist/util/utils.js.map +1 -1
- package/eslint.config.mts +0 -9
- package/lib/alpha.d.ts +8 -2
- package/lib/beta.d.ts +3 -0
- package/lib/codec/codec.d.ts +17 -8
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +6 -0
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/index.d.ts +1 -1
- package/lib/codec/index.d.ts.map +1 -1
- package/lib/codec/index.js +1 -1
- package/lib/codec/index.js.map +1 -1
- package/lib/codec/versioned/codec.d.ts +1 -1
- package/lib/codec/versioned/codec.d.ts.map +1 -1
- package/lib/codec/versioned/codec.js.map +1 -1
- package/lib/core/index.d.ts +1 -1
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +1 -1
- package/lib/core/index.js.map +1 -1
- package/lib/core/rebase/changeRebaser.d.ts +3 -2
- package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
- package/lib/core/rebase/changeRebaser.js.map +1 -1
- package/lib/core/rebase/index.d.ts +1 -1
- package/lib/core/rebase/index.d.ts.map +1 -1
- package/lib/core/rebase/index.js +1 -1
- package/lib/core/rebase/index.js.map +1 -1
- package/lib/core/rebase/types.d.ts +23 -3
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +27 -15
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/schema-stored/formatV1.d.ts +2 -2
- package/lib/core/schema-stored/formatV1.d.ts.map +1 -1
- package/lib/core/schema-stored/formatV1.js +0 -5
- package/lib/core/schema-stored/formatV1.js.map +1 -1
- package/lib/core/schema-stored/formatV2.d.ts +11 -10
- package/lib/core/schema-stored/formatV2.d.ts.map +1 -1
- package/lib/core/schema-stored/formatV2.js +1 -6
- package/lib/core/schema-stored/formatV2.js.map +1 -1
- package/lib/core/schema-stored/index.d.ts.map +1 -1
- package/lib/core/schema-stored/index.js +2 -0
- package/lib/core/schema-stored/index.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/delta.d.ts +9 -7
- package/lib/core/tree/delta.d.ts.map +1 -1
- package/lib/core/tree/delta.js.map +1 -1
- package/lib/core/tree/deltaUtil.js +1 -1
- package/lib/core/tree/deltaUtil.js.map +1 -1
- package/lib/core/tree/visitDelta.js +2 -2
- package/lib/core/tree/visitDelta.js.map +1 -1
- package/lib/extensibleSchemaUnion.d.ts +72 -0
- package/lib/extensibleSchemaUnion.d.ts.map +1 -0
- package/lib/extensibleSchemaUnion.js +76 -0
- package/lib/extensibleSchemaUnion.js.map +1 -0
- package/lib/feature-libraries/changeAtomIdBTree.d.ts +4 -2
- package/lib/feature-libraries/changeAtomIdBTree.d.ts.map +1 -1
- package/lib/feature-libraries/changeAtomIdBTree.js +7 -0
- package/lib/feature-libraries/changeAtomIdBTree.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +1 -3
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js +4 -5
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/index.js.map +1 -1
- package/lib/feature-libraries/forest-summary/codec.d.ts +2 -1
- package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +6 -3
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/forest-summary/formatCommon.d.ts +1 -39
- package/lib/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/formatCommon.js +2 -3
- package/lib/feature-libraries/forest-summary/formatCommon.js.map +1 -1
- package/lib/feature-libraries/forest-summary/formatV1.d.ts +1 -39
- package/lib/feature-libraries/forest-summary/formatV1.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/formatV2.d.ts +1 -39
- package/lib/feature-libraries/forest-summary/formatV2.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +3 -3
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +3 -3
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js +41 -21
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.js +1 -1
- package/lib/feature-libraries/modular-schema/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +10 -6
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +11 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +29 -6
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +41 -30
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.d.ts +10 -127
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.js +2 -4
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +3 -79
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/optional-field/requiredField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/requiredField.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/lib/feature-libraries/schema-index/formatV2.d.ts +4 -4
- package/lib/feature-libraries/schema-index/schemaSummarizer.js +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js +2 -2
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.js +16 -16
- package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/lib/index.d.ts +5 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -3
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +3 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/shared-tree/independentView.d.ts +36 -13
- package/lib/shared-tree/independentView.d.ts.map +1 -1
- package/lib/shared-tree/independentView.js +1 -0
- package/lib/shared-tree/independentView.js.map +1 -1
- package/lib/shared-tree/index.d.ts +1 -1
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +10 -0
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +25 -9
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +3 -3
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +10 -34
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +11 -3
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +39 -5
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFormat.d.ts +4 -4
- package/lib/shared-tree/tree.js +1 -1
- package/lib/shared-tree/tree.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +20 -0
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +39 -3
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.js +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.js +2 -2
- package/lib/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/lib/shared-tree-core/transaction.d.ts +14 -3
- package/lib/shared-tree-core/transaction.d.ts.map +1 -1
- package/lib/shared-tree-core/transaction.js +61 -18
- package/lib/shared-tree-core/transaction.js.map +1 -1
- package/lib/shared-tree-core/versionedSummarizer.d.ts.map +1 -1
- package/lib/shared-tree-core/versionedSummarizer.js +1 -1
- package/lib/shared-tree-core/versionedSummarizer.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +1 -1
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +1 -1
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaCreationUtilities.d.ts +9 -0
- package/lib/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaCreationUtilities.js +14 -0
- package/lib/simple-tree/api/schemaCreationUtilities.js.map +1 -1
- package/lib/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/lib/simple-tree/api/transactionTypes.d.ts +10 -0
- package/lib/simple-tree/api/transactionTypes.d.ts.map +1 -1
- package/lib/simple-tree/api/transactionTypes.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +81 -6
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/lib/simple-tree/index.d.ts +2 -2
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +2 -2
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts +63 -0
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.js +41 -0
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/index.d.ts +1 -1
- package/lib/simple-tree/node-kinds/array/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/index.js +1 -1
- package/lib/simple-tree/node-kinds/array/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/index.js +1 -1
- package/lib/simple-tree/node-kinds/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/lib/tableSchema.d.ts +71 -48
- package/lib/tableSchema.d.ts.map +1 -1
- package/lib/tableSchema.js +201 -99
- package/lib/tableSchema.js.map +1 -1
- package/lib/text/textDomainFormatted.js +1 -1
- package/lib/text/textDomainFormatted.js.map +1 -1
- package/lib/util/bTreeUtils.d.ts +30 -4
- package/lib/util/bTreeUtils.d.ts.map +1 -1
- package/lib/util/bTreeUtils.js +27 -16
- package/lib/util/bTreeUtils.js.map +1 -1
- package/lib/util/brand.d.ts.map +1 -1
- package/lib/util/brand.js.map +1 -1
- package/lib/util/brandedMap.d.ts.map +1 -1
- package/lib/util/brandedMap.js.map +1 -1
- package/lib/util/breakable.d.ts.map +1 -1
- package/lib/util/breakable.js +2 -1
- package/lib/util/breakable.js.map +1 -1
- package/lib/util/index.d.ts +2 -2
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +2 -2
- package/lib/util/index.js.map +1 -1
- package/lib/util/opaque.d.ts.map +1 -1
- package/lib/util/opaque.js.map +1 -1
- package/lib/util/rangeMap.d.ts +3 -2
- package/lib/util/rangeMap.d.ts.map +1 -1
- package/lib/util/rangeMap.js +7 -1
- package/lib/util/rangeMap.js.map +1 -1
- package/lib/util/readSnapshotBlob.d.ts +1 -1
- package/lib/util/readSnapshotBlob.d.ts.map +1 -1
- package/lib/util/readSnapshotBlob.js.map +1 -1
- package/lib/util/typeCheck.d.ts.map +1 -1
- package/lib/util/typeCheck.js.map +1 -1
- package/lib/util/utils.d.ts +20 -16
- package/lib/util/utils.d.ts.map +1 -1
- package/lib/util/utils.js +44 -15
- package/lib/util/utils.js.map +1 -1
- package/package.json +23 -23
- package/src/codec/codec.ts +30 -11
- package/src/codec/index.ts +2 -0
- package/src/codec/versioned/codec.ts +9 -13
- package/src/core/index.ts +3 -1
- package/src/core/rebase/changeRebaser.ts +3 -2
- package/src/core/rebase/index.ts +3 -1
- package/src/core/rebase/types.ts +51 -13
- package/src/core/schema-stored/formatV1.ts +2 -4
- package/src/core/schema-stored/formatV2.ts +9 -7
- package/src/core/schema-stored/index.ts +2 -0
- package/src/core/schema-stored/schema.ts +4 -1
- package/src/core/tree/anchorSet.ts +1 -3
- package/src/core/tree/delta.ts +9 -7
- package/src/core/tree/deltaUtil.ts +1 -1
- package/src/core/tree/visitDelta.ts +2 -2
- package/src/extensibleSchemaUnion.ts +135 -0
- package/src/feature-libraries/changeAtomIdBTree.ts +17 -2
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +5 -6
- package/src/feature-libraries/default-schema/index.ts +0 -1
- package/src/feature-libraries/forest-summary/codec.ts +7 -2
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +15 -3
- package/src/feature-libraries/forest-summary/formatCommon.ts +2 -3
- package/src/feature-libraries/forest-summary/incrementalSummaryBuilder.ts +4 -5
- package/src/feature-libraries/index.ts +3 -2
- package/src/feature-libraries/modular-schema/defaultRevisionReplacer.ts +57 -31
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +1 -1
- package/src/feature-libraries/modular-schema/index.ts +4 -1
- package/src/feature-libraries/modular-schema/modularChangeCodecV1.ts +7 -6
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +32 -7
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +54 -33
- package/src/feature-libraries/modular-schema/modularChangeFormatV1.ts +2 -4
- package/src/feature-libraries/optional-field/optionalField.ts +1 -1
- package/src/feature-libraries/optional-field/requiredField.ts +2 -4
- package/src/feature-libraries/schema-index/codec.ts +1 -1
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +1 -1
- package/src/feature-libraries/sequence-field/invert.ts +2 -2
- package/src/feature-libraries/sequence-field/replaceRevisions.ts +17 -10
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +1 -1
- package/src/index.ts +12 -7
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/independentView.ts +42 -6
- package/src/shared-tree/index.ts +2 -0
- package/src/shared-tree/schematizingTreeView.ts +63 -18
- package/src/shared-tree/sharedTree.ts +19 -37
- package/src/shared-tree/sharedTreeChangeCodecs.ts +43 -9
- package/src/shared-tree/tree.ts +1 -1
- package/src/shared-tree/treeCheckout.ts +50 -3
- package/src/shared-tree-core/editManagerSummarizer.ts +1 -1
- package/src/shared-tree-core/messageCodecV1ToV4.ts +4 -3
- package/src/shared-tree-core/transaction.ts +125 -23
- package/src/shared-tree-core/versionedSummarizer.ts +3 -2
- package/src/simple-tree/api/index.ts +1 -0
- package/src/simple-tree/api/schemaCreationUtilities.ts +35 -5
- package/src/simple-tree/api/simpleTreeIndex.ts +1 -1
- package/src/simple-tree/api/transactionTypes.ts +10 -0
- package/src/simple-tree/api/tree.ts +88 -6
- package/src/simple-tree/core/treeNodeSchema.ts +5 -8
- package/src/simple-tree/index.ts +3 -0
- package/src/simple-tree/leafNodeSchema.ts +3 -2
- package/src/simple-tree/node-kinds/array/arrayNode.ts +86 -0
- package/src/simple-tree/node-kinds/array/index.ts +2 -0
- package/src/simple-tree/node-kinds/index.ts +2 -0
- package/src/simple-tree/node-kinds/object/objectNode.ts +19 -18
- package/src/tableSchema.ts +280 -140
- package/src/text/textDomainFormatted.ts +1 -1
- package/src/util/bTreeUtils.ts +45 -26
- package/src/util/brand.ts +4 -12
- package/src/util/brandedMap.ts +2 -6
- package/src/util/breakable.ts +3 -2
- package/src/util/index.ts +9 -3
- package/src/util/opaque.ts +2 -6
- package/src/util/rangeMap.ts +11 -5
- package/src/util/readSnapshotBlob.ts +3 -3
- package/src/util/typeCheck.ts +11 -9
- package/src/util/utils.ts +57 -28
- package/biome.jsonc +0 -4
|
@@ -94,7 +94,7 @@ class TextNode
|
|
|
94
94
|
][]) {
|
|
95
95
|
// Object.entries should only return string keyed enumerable own properties.
|
|
96
96
|
// The TypeScript typing does not account for this, and thus this assertion is necessary for this code to compile.
|
|
97
|
-
assert(typeof key === "string",
|
|
97
|
+
assert(typeof key === "string", 0xcc8 /* Object.entries returned a non-string key. */);
|
|
98
98
|
const f = FormattedTextAsTree.CharacterFormat.fields.get(key);
|
|
99
99
|
if (f === undefined) {
|
|
100
100
|
throw new UsageError(`Unknown format key: ${key}`);
|
package/src/util/bTreeUtils.ts
CHANGED
|
@@ -10,8 +10,7 @@ import { brand, type Brand } from "./brand.js";
|
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* A BTree which uses tuples (arrays) as the key.
|
|
13
|
-
* @remarks
|
|
14
|
-
* All keys must be the same length.
|
|
13
|
+
* @remarks All keys must be the same length.
|
|
15
14
|
*/
|
|
16
15
|
export type TupleBTree<K extends readonly DefaultComparable[], V> = Brand<
|
|
17
16
|
BTree<K, V>,
|
|
@@ -20,45 +19,65 @@ export type TupleBTree<K extends readonly DefaultComparable[], V> = Brand<
|
|
|
20
19
|
|
|
21
20
|
/**
|
|
22
21
|
* Create a new {@link TupleBTree}.
|
|
22
|
+
* @param comparator - Either a single {@link TupleComparator | comparator} for all pairs of elements in the tuple or a {@link TupleComparators | tuple of comparators} that compares each pair of corresponding elements individually.
|
|
23
|
+
* @param entries - Optional initial entries for the btree.
|
|
23
24
|
*/
|
|
24
25
|
export function newTupleBTree<const K extends readonly DefaultComparable[], V>(
|
|
26
|
+
comparator: (a: K, b: K) => number,
|
|
25
27
|
entries?: [K, V][],
|
|
26
28
|
): TupleBTree<K, V> {
|
|
27
|
-
return brand(new BTree<K, V>(entries,
|
|
29
|
+
return brand(new BTree<K, V>(entries, comparator));
|
|
28
30
|
}
|
|
29
31
|
|
|
32
|
+
/** A comparator which can compare any pair of corresponding elements in the key of a {@link TupleBTree} */
|
|
33
|
+
type TupleComparator<T extends DefaultComparable> = (a: T, b: T) => number;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* A list of comparators for a {@link TupleBTree}.
|
|
37
|
+
* @remarks For each comparator _C_ at index _i_, C compares the pair of corresponding elements at index _i_ in the key of the btree.
|
|
38
|
+
*/
|
|
39
|
+
type TupleComparators<T extends readonly DefaultComparable[]> = {
|
|
40
|
+
[P in keyof T]: TupleComparator<T[P]>;
|
|
41
|
+
};
|
|
42
|
+
|
|
30
43
|
/**
|
|
31
44
|
* Compares two tuples (arrays) element by element.
|
|
32
|
-
* @param
|
|
33
|
-
* @param
|
|
34
|
-
* @returns
|
|
45
|
+
* @param a - The first tuple to compare.
|
|
46
|
+
* @param b - The second tuple to compare.
|
|
47
|
+
* @returns The comparison of the first pair of elements at the same index that differ, or 0 if all elements are equal.
|
|
48
|
+
* @remarks The tuples must be the same length and have the same type of elements in the same order.
|
|
35
49
|
*/
|
|
36
|
-
function
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
): number {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
export function createTupleComparator<const K extends readonly DefaultComparable[]>(
|
|
51
|
+
compare: TupleComparator<K[number]> | TupleComparators<K> = defaultComparator,
|
|
52
|
+
): (a: K, b: K) => number {
|
|
53
|
+
return (a: K, b: K): number => {
|
|
54
|
+
debugAssert(
|
|
55
|
+
() => a.length === b.length || "compareTuples requires arrays of the same length",
|
|
56
|
+
);
|
|
57
|
+
const comparators = typeof compare === "function" ? undefined : compare;
|
|
58
|
+
for (let i = 0; i < a.length; i++) {
|
|
59
|
+
const comparator = comparators?.[i] ?? (compare as TupleComparator<K[number]>);
|
|
60
|
+
const result = comparator(a[i], b[i]);
|
|
61
|
+
if (result !== 0) {
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
48
64
|
}
|
|
49
|
-
|
|
50
|
-
|
|
65
|
+
return 0;
|
|
66
|
+
};
|
|
51
67
|
}
|
|
52
68
|
|
|
53
|
-
|
|
54
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Merge the entries of two {@link TupleBTree}s.
|
|
71
|
+
* @param tree1 - The first btree.
|
|
72
|
+
* @param tree2 - The second btree.
|
|
73
|
+
* This always returns a new btree and does not modify either input.
|
|
74
|
+
* @param preferLeft - If true, colliding keys will use the value from `tree1`, otherwise the value from `tree2` is used.
|
|
75
|
+
*/
|
|
76
|
+
export function mergeTupleBTrees<const K extends readonly DefaultComparable[], V>(
|
|
77
|
+
tree1: TupleBTree<K, V>,
|
|
55
78
|
tree2: TupleBTree<K, V> | undefined,
|
|
56
79
|
preferLeft = true,
|
|
57
80
|
): TupleBTree<K, V> {
|
|
58
|
-
if (tree1 === undefined) {
|
|
59
|
-
return tree2 === undefined ? newTupleBTree<K, V>() : brand(tree2.clone());
|
|
60
|
-
}
|
|
61
|
-
|
|
62
81
|
const result: TupleBTree<K, V> = brand(tree1.clone());
|
|
63
82
|
if (tree2 === undefined) {
|
|
64
83
|
return result;
|
package/src/util/brand.ts
CHANGED
|
@@ -82,23 +82,15 @@ export abstract class BrandedType<out ValueType, Name> {
|
|
|
82
82
|
* Implementation detail of type branding. Should not be used directly outside this file,
|
|
83
83
|
* but shows up as part of branded types so API-Extractor requires it to be exported.
|
|
84
84
|
*/
|
|
85
|
-
export type ValueFromBranded<T extends BrandedType<unknown, unknown>> =
|
|
86
|
-
infer ValueType,
|
|
87
|
-
unknown
|
|
88
|
-
>
|
|
89
|
-
? ValueType
|
|
90
|
-
: never;
|
|
85
|
+
export type ValueFromBranded<T extends BrandedType<unknown, unknown>> =
|
|
86
|
+
T extends BrandedType<infer ValueType, unknown> ? ValueType : never;
|
|
91
87
|
|
|
92
88
|
/**
|
|
93
89
|
* Implementation detail of type branding. Should not be used directly outside this file,
|
|
94
90
|
* but shows up as part of branded types so API-Extractor requires it to be exported.
|
|
95
91
|
*/
|
|
96
|
-
export type NameFromBranded<T extends BrandedType<unknown, unknown>> =
|
|
97
|
-
unknown,
|
|
98
|
-
infer Name
|
|
99
|
-
>
|
|
100
|
-
? Name
|
|
101
|
-
: never;
|
|
92
|
+
export type NameFromBranded<T extends BrandedType<unknown, unknown>> =
|
|
93
|
+
T extends BrandedType<unknown, infer Name> ? Name : never;
|
|
102
94
|
|
|
103
95
|
/**
|
|
104
96
|
* Adds a type {@link Brand} to a value.
|
package/src/util/brandedMap.ts
CHANGED
|
@@ -19,12 +19,8 @@ import { getOrCreate } from "./utils.js";
|
|
|
19
19
|
export type BrandedKey<TKey, TContent> = Brand<TKey, ["BrandedKey", Invariant<TContent>]>;
|
|
20
20
|
|
|
21
21
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
|
-
export type BrandedKeyContent<TKey extends BrandedKey<unknown, any>> =
|
|
23
|
-
unknown,
|
|
24
|
-
infer TContent
|
|
25
|
-
>
|
|
26
|
-
? TContent
|
|
27
|
-
: never;
|
|
22
|
+
export type BrandedKeyContent<TKey extends BrandedKey<unknown, any>> =
|
|
23
|
+
TKey extends BrandedKey<unknown, infer TContent> ? TContent : never;
|
|
28
24
|
|
|
29
25
|
/**
|
|
30
26
|
* A Map where the keys carry the types of values which they correspond to.
|
package/src/util/breakable.ts
CHANGED
|
@@ -215,7 +215,7 @@ export function breakingClass<Target extends abstract new (...args: any[]) => Wi
|
|
|
215
215
|
// Avoiding wrapping the constructor also avoids messing up the displayed name in the debugger.
|
|
216
216
|
const doNotWrap: Set<string | symbol> = new Set(["constructor"]);
|
|
217
217
|
|
|
218
|
-
let prototype: object | null = target.prototype;
|
|
218
|
+
let prototype: object | null = target.prototype as object;
|
|
219
219
|
while (prototype !== null) {
|
|
220
220
|
for (const key of Reflect.ownKeys(prototype)) {
|
|
221
221
|
if (!doNotWrap.has(key)) {
|
|
@@ -228,7 +228,8 @@ export function breakingClass<Target extends abstract new (...args: any[]) => Wi
|
|
|
228
228
|
!isBreaker(descriptor.value)
|
|
229
229
|
) {
|
|
230
230
|
// This does not affect the original class, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor
|
|
231
|
-
descriptor.value
|
|
231
|
+
const method = descriptor.value as (...args: unknown[]) => unknown;
|
|
232
|
+
descriptor.value = breakingMethod(method);
|
|
232
233
|
Object.defineProperty(DecoratedBreakable.prototype, key, descriptor);
|
|
233
234
|
}
|
|
234
235
|
}
|
package/src/util/index.ts
CHANGED
|
@@ -89,14 +89,15 @@ export {
|
|
|
89
89
|
objectToMap,
|
|
90
90
|
invertMap,
|
|
91
91
|
oneFromIterable,
|
|
92
|
-
type Named,
|
|
93
|
-
compareNamed,
|
|
94
92
|
disposeSymbol,
|
|
95
93
|
type IDisposable,
|
|
96
94
|
capitalize,
|
|
97
95
|
assertValidRangeIndices,
|
|
98
96
|
transformObjectMap,
|
|
97
|
+
compareNumbers,
|
|
98
|
+
comparePartialNumbers,
|
|
99
99
|
compareStrings,
|
|
100
|
+
comparePartialStrings,
|
|
100
101
|
find,
|
|
101
102
|
count,
|
|
102
103
|
getLast,
|
|
@@ -153,7 +154,12 @@ export {
|
|
|
153
154
|
breakingClass,
|
|
154
155
|
} from "./breakable.js";
|
|
155
156
|
|
|
156
|
-
export {
|
|
157
|
+
export {
|
|
158
|
+
type TupleBTree,
|
|
159
|
+
newTupleBTree,
|
|
160
|
+
mergeTupleBTrees,
|
|
161
|
+
createTupleComparator,
|
|
162
|
+
} from "./bTreeUtils.js";
|
|
157
163
|
|
|
158
164
|
export { cloneWithReplacements } from "./cloneWithReplacements.js";
|
|
159
165
|
|
package/src/util/opaque.ts
CHANGED
|
@@ -24,12 +24,8 @@ import type { isAny } from "./typeCheck.js";
|
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
26
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
-
export type Opaque<T extends Brand<any, unknown>> =
|
|
28
|
-
infer ValueType,
|
|
29
|
-
infer Name
|
|
30
|
-
>
|
|
31
|
-
? BrandedType<ValueType, Name>
|
|
32
|
-
: never;
|
|
27
|
+
export type Opaque<T extends Brand<any, unknown>> =
|
|
28
|
+
T extends BrandedType<infer ValueType, infer Name> ? BrandedType<ValueType, Name> : never;
|
|
33
29
|
|
|
34
30
|
/**
|
|
35
31
|
* See {@link extractFromOpaque}.
|
package/src/util/rangeMap.ts
CHANGED
|
@@ -171,18 +171,22 @@ export class RangeMap<K, V> {
|
|
|
171
171
|
*
|
|
172
172
|
* @param start - The start of the range to delete (inclusive).
|
|
173
173
|
* @param length - The length of the range to delete.
|
|
174
|
+
* @returns The number of keys/value pairs deleted (integer between 0 and `length`, inclusive).
|
|
174
175
|
*/
|
|
175
|
-
public delete(start: K, length: number):
|
|
176
|
+
public delete(start: K, length: number): number {
|
|
177
|
+
let deleteCount = 0;
|
|
176
178
|
const lastDeleteKey = this.offsetKey(start, length - 1);
|
|
177
179
|
for (const { start: key, length: entryLength, value } of this.getIntersectingEntries(
|
|
178
180
|
start,
|
|
179
181
|
length,
|
|
180
182
|
)) {
|
|
183
|
+
deleteCount += entryLength;
|
|
181
184
|
this.tree.delete(key);
|
|
182
185
|
const lengthBefore = this.subtractKeys(start, key);
|
|
183
186
|
if (lengthBefore > 0) {
|
|
184
187
|
// A portion of this entry comes before the deletion range, so we reinsert that portion.
|
|
185
188
|
this.tree.set(key, { length: lengthBefore, value });
|
|
189
|
+
deleteCount -= lengthBefore;
|
|
186
190
|
}
|
|
187
191
|
|
|
188
192
|
const lastEntryKey = this.offsetKey(key, entryLength - 1);
|
|
@@ -195,8 +199,10 @@ export class RangeMap<K, V> {
|
|
|
195
199
|
length: lengthAfter,
|
|
196
200
|
value: this.offsetValue(value, difference),
|
|
197
201
|
});
|
|
202
|
+
deleteCount -= lengthAfter;
|
|
198
203
|
}
|
|
199
204
|
}
|
|
205
|
+
return deleteCount;
|
|
200
206
|
}
|
|
201
207
|
|
|
202
208
|
public clone(): RangeMap<K, V> {
|
|
@@ -321,15 +327,15 @@ export interface RangeQueryEntry<K, V> extends RangeQueryResult<K, V> {
|
|
|
321
327
|
readonly value: V;
|
|
322
328
|
}
|
|
323
329
|
|
|
324
|
-
export function newIntegerRangeMap<V>(): RangeMap<
|
|
330
|
+
export function newIntegerRangeMap<V, K extends number = number>(): RangeMap<K, V> {
|
|
325
331
|
return new RangeMap(offsetInteger, subtractIntegers);
|
|
326
332
|
}
|
|
327
333
|
|
|
328
|
-
function offsetInteger(key:
|
|
329
|
-
return key + offset;
|
|
334
|
+
function offsetInteger<K extends number>(key: K, offset: number): K {
|
|
335
|
+
return (key + offset) as K;
|
|
330
336
|
}
|
|
331
337
|
|
|
332
|
-
function subtractIntegers(a:
|
|
338
|
+
function subtractIntegers<K extends number>(a: K, b: K): number {
|
|
333
339
|
return a - b;
|
|
334
340
|
}
|
|
335
341
|
|
|
@@ -14,12 +14,12 @@ import type { JsonCompatible } from "./utils.js";
|
|
|
14
14
|
/**
|
|
15
15
|
* Reads and parses a snapshot blob from storage service.
|
|
16
16
|
*/
|
|
17
|
-
export const readAndParseSnapshotBlob = async
|
|
17
|
+
export const readAndParseSnapshotBlob = async (
|
|
18
18
|
blobPath: string,
|
|
19
19
|
service: IChannelStorageService,
|
|
20
20
|
parse: SummaryElementParser,
|
|
21
|
-
): Promise<
|
|
21
|
+
): Promise<JsonCompatible<IFluidHandle>> => {
|
|
22
22
|
const treeBuffer = await service.readBlob(blobPath);
|
|
23
23
|
const treeBufferString = bufferToString(treeBuffer, "utf8");
|
|
24
|
-
return parse(treeBufferString) as
|
|
24
|
+
return parse(treeBufferString) as JsonCompatible<IFluidHandle>;
|
|
25
25
|
};
|
package/src/util/typeCheck.ts
CHANGED
|
@@ -154,22 +154,24 @@ export type isAssignableTo<Source, Destination> = [Source] extends [Destination]
|
|
|
154
154
|
/**
|
|
155
155
|
* Returns a type parameter that is true iff Subset is a strict subset of Superset.
|
|
156
156
|
*/
|
|
157
|
-
export type isStrictSubset<Subset, Superset> =
|
|
158
|
-
|
|
159
|
-
: isAssignableTo<Superset, Subset> extends true
|
|
157
|
+
export type isStrictSubset<Subset, Superset> =
|
|
158
|
+
isAssignableTo<Subset, Superset> extends false
|
|
160
159
|
? false
|
|
161
|
-
: true
|
|
160
|
+
: isAssignableTo<Superset, Subset> extends true
|
|
161
|
+
? false
|
|
162
|
+
: true;
|
|
162
163
|
|
|
163
164
|
/**
|
|
164
165
|
* Returns a type parameter that is true iff A and B are assignable to each other, and neither is any.
|
|
165
166
|
* This is useful for checking if the output of a type meta-function is the expected type.
|
|
166
167
|
* @internal
|
|
167
168
|
*/
|
|
168
|
-
export type areSafelyAssignable<A, B> =
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
169
|
+
export type areSafelyAssignable<A, B> =
|
|
170
|
+
eitherIsAny<A, B> extends true
|
|
171
|
+
? false
|
|
172
|
+
: isAssignableTo<A, B> extends true
|
|
173
|
+
? isAssignableTo<B, A>
|
|
174
|
+
: false;
|
|
173
175
|
|
|
174
176
|
/**
|
|
175
177
|
* Returns a type parameter that is true iff A is any or B is any.
|
package/src/util/utils.ts
CHANGED
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
|
-
import { Type } from "@sinclair/typebox";
|
|
8
|
-
import structuredClone from "@ungap/structured-clone";
|
|
7
|
+
import { Type, type TUnsafe } from "@sinclair/typebox";
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* Subset of Map interface.
|
|
@@ -45,7 +44,7 @@ export function asMutable<T>(readonly: T): Mutable<T> {
|
|
|
45
44
|
return readonly as Mutable<T>;
|
|
46
45
|
}
|
|
47
46
|
|
|
48
|
-
export
|
|
47
|
+
export { default as clone } from "@ungap/structured-clone";
|
|
49
48
|
|
|
50
49
|
/**
|
|
51
50
|
* Checks whether or not the given object is a `readonly` array.
|
|
@@ -377,7 +376,8 @@ export type JsonCompatibleReadOnlyObject = { readonly [P in string]?: JsonCompat
|
|
|
377
376
|
* expressed using composition of schemas for runtime validation, even if we don't think making the types
|
|
378
377
|
* generic is worth the maintenance cost.
|
|
379
378
|
*/
|
|
380
|
-
export const JsonCompatibleReadOnlySchema =
|
|
379
|
+
export const JsonCompatibleReadOnlySchema =
|
|
380
|
+
Type.Any() as unknown as TUnsafe<JsonCompatibleReadOnly>;
|
|
381
381
|
|
|
382
382
|
/**
|
|
383
383
|
* Returns if a particular json compatible value is an object.
|
|
@@ -471,8 +471,11 @@ export function transformObjectMap<
|
|
|
471
471
|
>(
|
|
472
472
|
objectMap: Record<MapKey, MapValue>,
|
|
473
473
|
transformer: (value: MapValue, key: MapKey) => NewMapValue,
|
|
474
|
-
): Record<MapKey,
|
|
475
|
-
const output: Record<MapKey,
|
|
474
|
+
): Record<MapKey, NewMapValue> {
|
|
475
|
+
const output: Record<MapKey, NewMapValue> = Object.create(null) as Record<
|
|
476
|
+
MapKey,
|
|
477
|
+
NewMapValue
|
|
478
|
+
>;
|
|
476
479
|
// This function must only be used with objects specifically intended to encode map like information.
|
|
477
480
|
for (const key of Object.keys(objectMap)) {
|
|
478
481
|
const element = objectMap[key as MapKey];
|
|
@@ -500,27 +503,6 @@ export function invertMap<Key, Value>(input: Map<Key, Value>): Map<Value, Key> {
|
|
|
500
503
|
return result;
|
|
501
504
|
}
|
|
502
505
|
|
|
503
|
-
/**
|
|
504
|
-
* Type with a name describing what it is.
|
|
505
|
-
* Typically used with values (like schema) that can be stored in a map, but in some representations have their name/key as a field.
|
|
506
|
-
*/
|
|
507
|
-
export interface Named<TName> {
|
|
508
|
-
readonly name: TName;
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
/**
|
|
512
|
-
* Order {@link Named} objects by their name.
|
|
513
|
-
*/
|
|
514
|
-
export function compareNamed(a: Named<string>, b: Named<string>): -1 | 0 | 1 {
|
|
515
|
-
if (a.name < b.name) {
|
|
516
|
-
return -1;
|
|
517
|
-
}
|
|
518
|
-
if (a.name > b.name) {
|
|
519
|
-
return 1;
|
|
520
|
-
}
|
|
521
|
-
return 0;
|
|
522
|
-
}
|
|
523
|
-
|
|
524
506
|
/**
|
|
525
507
|
* Placeholder for `Symbol.dispose`.
|
|
526
508
|
* @privateRemarks
|
|
@@ -570,12 +552,59 @@ export function capitalize<S extends string>(s: S): Capitalize<S> {
|
|
|
570
552
|
}
|
|
571
553
|
|
|
572
554
|
/**
|
|
573
|
-
* Compares
|
|
555
|
+
* Compares two numbers to form a strict total ordering.
|
|
556
|
+
* @remarks NaN is treated as less than all other numbers and equal to itself.
|
|
557
|
+
* Infinity is considered equal to itself.
|
|
574
558
|
*/
|
|
559
|
+
export function compareNumbers<T extends number>(a: T, b: T): number {
|
|
560
|
+
if (Number.isNaN(a)) {
|
|
561
|
+
return Number.isNaN(b) ? 0 : -1;
|
|
562
|
+
} else if (Number.isNaN(b)) {
|
|
563
|
+
return 1;
|
|
564
|
+
} else if (a === b) {
|
|
565
|
+
return 0; // Infinity - Infinity = NaN (not 0), so use explicit comparison
|
|
566
|
+
}
|
|
567
|
+
return a - b;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
/**
|
|
571
|
+
* Compares two numbers to form a strict total ordering while allowing for `undefined` values.
|
|
572
|
+
* @remarks `undefined` is considered less than any number and equal to itself.
|
|
573
|
+
* NaN is treated as less than all other numbers (but greater than undefined) and equal to itself.
|
|
574
|
+
*/
|
|
575
|
+
export function comparePartialNumbers<T extends number>(
|
|
576
|
+
a: T | undefined,
|
|
577
|
+
b: T | undefined,
|
|
578
|
+
): number {
|
|
579
|
+
if (a === undefined) {
|
|
580
|
+
return b === undefined ? 0 : -1;
|
|
581
|
+
} else if (b === undefined) {
|
|
582
|
+
return 1;
|
|
583
|
+
}
|
|
584
|
+
return compareNumbers(a, b);
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
/** Compares two strings lexically to form a strict total ordering. */
|
|
575
588
|
export function compareStrings<T extends string>(a: T, b: T): number {
|
|
576
589
|
return a > b ? 1 : a === b ? 0 : -1;
|
|
577
590
|
}
|
|
578
591
|
|
|
592
|
+
/**
|
|
593
|
+
* Compares two strings lexically to form a strict total ordering while allowing for `undefined` values.
|
|
594
|
+
* @remarks `undefined` is considered less than any string and equal to itself.
|
|
595
|
+
*/
|
|
596
|
+
export function comparePartialStrings<T extends string>(
|
|
597
|
+
a: T | undefined,
|
|
598
|
+
b: T | undefined,
|
|
599
|
+
): number {
|
|
600
|
+
if (a === undefined) {
|
|
601
|
+
return b === undefined ? 0 : -1;
|
|
602
|
+
} else if (b === undefined) {
|
|
603
|
+
return 1;
|
|
604
|
+
}
|
|
605
|
+
return compareStrings(a, b);
|
|
606
|
+
}
|
|
607
|
+
|
|
579
608
|
/**
|
|
580
609
|
* Defines a property on an object that is lazily initialized and cached.
|
|
581
610
|
* @remarks This is useful for properties that are expensive to compute and it is not guaranteed that they will be accessed.
|
package/biome.jsonc
DELETED