From 2cc6221995d50267ebdd8aaa4f7c027d543c8055 Mon Sep 17 00:00:00 2001 From: Tony Murphy Date: Tue, 17 Sep 2024 09:32:00 -0700 Subject: [PATCH 01/11] Remove Exposure of Client --- .../api-report/merge-tree.legacy.alpha.api.md | 123 -- packages/dds/merge-tree/src/client.ts | 9 +- packages/dds/merge-tree/src/mergeTree.ts | 11 +- .../api-report/sequence.legacy.alpha.api.md | 155 +- packages/dds/sequence/package.json | 3 +- .../dds/sequence/src/intervalCollection.ts | 24 +- .../overlappingSequenceIntervalsIndex.ts | 4 +- .../sequence/src/intervals/intervalUtils.ts | 4 +- .../src/intervals/sequenceInterval.ts | 27 +- packages/dds/sequence/src/revertibles.ts | 6 +- packages/dds/sequence/src/sequence.ts | 19 +- .../dds/sequence/src/sequenceDeltaEvent.ts | 68 +- packages/dds/sequence/src/sharedString.ts | 3 +- .../overlappingSequenceIntervalsIndex.spec.ts | 4 +- .../src/test/sequenceDeltaEvent.spec.ts | 224 +-- .../validateSequencePrevious.generated.ts | 1348 ----------------- .../fluid-framework.legacy.alpha.api.md | 61 +- .../framework/fluid-framework/src/index.ts | 2 +- .../src/test/orderSequentially.spec.ts | 127 +- 19 files changed, 323 insertions(+), 1899 deletions(-) delete mode 100644 packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts diff --git a/packages/dds/merge-tree/api-report/merge-tree.legacy.alpha.api.md b/packages/dds/merge-tree/api-report/merge-tree.legacy.alpha.api.md index 37988c5e3509..aef09dd64243 100644 --- a/packages/dds/merge-tree/api-report/merge-tree.legacy.alpha.api.md +++ b/packages/dds/merge-tree/api-report/merge-tree.legacy.alpha.api.md @@ -7,15 +7,6 @@ // @alpha export function appendToMergeTreeDeltaRevertibles(deltaArgs: IMergeTreeDeltaCallbackArgs, revertibles: MergeTreeDeltaRevertible[]): void; -// @alpha @sealed -export interface AttributionPolicy { - attach: (client: Client) => void; - detach: () => void; - // (undocumented) - isAttached: boolean; - serializer: IAttributionCollectionSerializer; -} - // @alpha (undocumented) export abstract class BaseSegment implements ISegment { constructor(properties?: PropertySet); @@ -87,91 +78,6 @@ export abstract class BaseSegment implements ISegment { wasMovedOnInsert?: boolean | undefined; } -// @alpha @deprecated (undocumented) -export class Client extends TypedEventEmitter { - constructor(specToSegment: (spec: IJSONSegment) => ISegment, logger: ITelemetryLoggerExt, options?: IMergeTreeOptions & PropertySet, getMinInFlightRefSeq?: () => number | undefined); - // (undocumented) - addLongClientId(longClientId: string): void; - annotateMarker(marker: Marker, props: PropertySet): IMergeTreeAnnotateMsg | undefined; - annotateRangeLocal(start: number, end: number, props: PropertySet): IMergeTreeAnnotateMsg | undefined; - // (undocumented) - applyMsg(msg: ISequencedDocumentMessage, local?: boolean): void; - // (undocumented) - applyStashedOp(op: IMergeTreeOp): void; - createLocalReferencePosition(segment: ISegment | "start" | "end", offset: number | undefined, refType: ReferenceType, properties: PropertySet | undefined, slidingPreference?: SlidingPreference, canSlideToEndpoint?: boolean): LocalReferencePosition; - // (undocumented) - createTextHelper(): IMergeTreeTextHelper; - findReconnectionPosition(segment: ISegment, localSeq: number): number; - // (undocumented) - getClientId(): number; - // (undocumented) - getCollabWindow(): CollaborationWindow; - // (undocumented) - getContainingSegment(pos: number, sequenceArgs?: Pick, localSeq?: number): { - segment: T | undefined; - offset: number | undefined; - }; - // (undocumented) - getCurrentSeq(): number; - // (undocumented) - getLength(): number; - // (undocumented) - getLongClientId(shortClientId: number): string; - // (undocumented) - getMarkerFromId(id: string): ISegment | undefined; - // (undocumented) - getOrAddShortClientId(longClientId: string): number; - getPosition(segment: ISegment | undefined, localSeq?: number): number; - // (undocumented) - getPropertiesAtPosition(pos: number): PropertySet | undefined; - // (undocumented) - getRangeExtentsOfPosition(pos: number): { - posStart: number | undefined; - posAfterEnd: number | undefined; - }; - // (undocumented) - protected getShortClientId(longClientId: string): number; - insertAtReferencePositionLocal(refPos: ReferencePosition, segment: ISegment): IMergeTreeInsertMsg | undefined; - insertSegmentLocal(pos: number, segment: ISegment): IMergeTreeInsertMsg | undefined; - // (undocumented) - load(runtime: IFluidDataStoreRuntime, storage: IChannelStorageService, serializer: IFluidSerializer): Promise<{ - catchupOpsP: Promise; - }>; - localReferencePositionToPosition(lref: ReferencePosition): number; - // (undocumented) - localTransaction(groupOp: IMergeTreeGroupMsg): void; - // (undocumented) - readonly logger: ITelemetryLoggerExt; - // (undocumented) - longClientId: string | undefined; - obliterateRangeLocal(start: number, end: number): IMergeTreeObliterateMsg; - peekPendingSegmentGroups(): SegmentGroup | undefined; - // (undocumented) - peekPendingSegmentGroups(count: number): SegmentGroup | SegmentGroup[] | undefined; - posFromRelativePos(relativePos: IRelativePosition): number; - regeneratePendingOp(resetOp: IMergeTreeOp, segmentGroup: SegmentGroup | SegmentGroup[]): IMergeTreeOp; - removeLocalReferencePosition(lref: LocalReferencePosition): LocalReferencePosition | undefined; - removeRangeLocal(start: number, end: number): IMergeTreeRemoveMsg; - resolveRemoteClientPosition(remoteClientPosition: number, remoteClientRefSeq: number, remoteClientId: string): number | undefined; - rollback?(op: unknown, localOpMetadata: unknown): void; - searchForMarker(startPos: number, markerLabel: string, forwards?: boolean): Marker | undefined; - serializeGCData(handle: IFluidHandle, handleCollectingSerializer: IFluidSerializer): void; - // (undocumented) - readonly specToSegment: (spec: IJSONSegment) => ISegment; - // (undocumented) - startOrUpdateCollaboration(longClientId: string | undefined, minSeq?: number, currentSeq?: number): void; - // (undocumented) - summarize(runtime: IFluidDataStoreRuntime, handle: IFluidHandle, serializer: IFluidSerializer, catchUpMsgs: ISequencedDocumentMessage[]): ISummaryTreeWithStats; - // (undocumented) - updateMinSeq(minSeq: number): void; - // (undocumented) - protected walkAllSegments(action: (segment: ISegment, accum?: TClientData) => boolean, accum?: TClientData): boolean; - // (undocumented) - walkSegments(handler: ISegmentAction, start: number | undefined, end: number | undefined, accum: TClientData, splitRange?: boolean): void; - // (undocumented) - walkSegments(handler: ISegmentAction, start?: number, end?: number, accum?: undefined, splitRange?: boolean): void; -} - // @alpha @deprecated (undocumented) export class CollaborationWindow { // (undocumented) @@ -244,16 +150,6 @@ export interface IAttributionCollectionSpec { }>; } -// @alpha -export interface IClientEvents { - // (undocumented) - (event: "normalize", listener: (target: IEventThisPlaceHolder) => void): void; - // (undocumented) - (event: "delta", listener: (opArgs: IMergeTreeDeltaOpArgs, deltaArgs: IMergeTreeDeltaCallbackArgs, target: IEventThisPlaceHolder) => void): void; - // (undocumented) - (event: "maintenance", listener: (args: IMergeTreeMaintenanceCallbackArgs, deltaArgs: IMergeTreeDeltaOpArgs | undefined, target: IEventThisPlaceHolder) => void): void; -} - // @alpha (undocumented) export interface IJSONMarkerSegment extends IJSONSegment { // (undocumented) @@ -302,12 +198,6 @@ export interface IMergeTreeAnnotateMsg extends IMergeTreeDelta { type: typeof MergeTreeDeltaType.ANNOTATE; } -// @alpha (undocumented) -export interface IMergeTreeAttributionOptions { - policyFactory?: () => AttributionPolicy; - track?: boolean; -} - // @alpha (undocumented) export interface IMergeTreeDelta { type: MergeTreeDeltaType; @@ -372,19 +262,6 @@ export interface IMergeTreeObliterateMsg extends IMergeTreeDelta { // @alpha (undocumented) export type IMergeTreeOp = IMergeTreeDeltaOp | IMergeTreeGroupMsg; -// @alpha (undocumented) -export interface IMergeTreeOptions { - attribution?: IMergeTreeAttributionOptions; - // (undocumented) - catchUpBlobName?: string; - mergeTreeEnableObliterate?: boolean; - mergeTreeEnableObliterateReconnect?: boolean; - mergeTreeReferencesCanSlideToEndpoint?: boolean; - // (undocumented) - mergeTreeSnapshotChunkSize?: number; - newMergeTreeSnapshotFormat?: boolean; -} - // @alpha (undocumented) export interface IMergeTreeRemoveMsg extends IMergeTreeDelta { // (undocumented) diff --git a/packages/dds/merge-tree/src/client.ts b/packages/dds/merge-tree/src/client.ts index 7c95e50ea77c..cc3da2cfe0c3 100644 --- a/packages/dds/merge-tree/src/client.ts +++ b/packages/dds/merge-tree/src/client.ts @@ -97,8 +97,7 @@ export interface IIntegerRange { * Emitted before this client's merge-tree normalizes its segments on reconnect, potentially * ordering them. Useful for DDS-like consumers built atop the merge-tree to compute any information * they need for rebasing their ops on reconnection. - * @legacy - * @alpha + * @internal */ export interface IClientEvents { (event: "normalize", listener: (target: IEventThisPlaceHolder) => void): void; @@ -121,9 +120,7 @@ export interface IClientEvents { } /** - * @deprecated This functionality was not meant to be exported and will be removed in a future release - * @legacy - * @alpha + * @internal */ export class Client extends TypedEventEmitter { public longClientId: string | undefined; @@ -304,7 +301,7 @@ export class Client extends TypedEventEmitter { accum: TClientData, splitRange?: boolean, ): void; - public walkSegments( + public walkSegments( handler: ISegmentAction, start?: number, end?: number, diff --git a/packages/dds/merge-tree/src/mergeTree.ts b/packages/dds/merge-tree/src/mergeTree.ts index 338084f44ec9..d5f8adc82375 100644 --- a/packages/dds/merge-tree/src/mergeTree.ts +++ b/packages/dds/merge-tree/src/mergeTree.ts @@ -10,7 +10,6 @@ import { assert, Heap, IComparer } from "@fluidframework/core-utils/internal"; import { DataProcessingError, UsageError } from "@fluidframework/telemetry-utils/internal"; import { IAttributionCollectionSerializer } from "./attributionCollection.js"; -// eslint-disable-next-line import/no-deprecated import { Client } from "./client.js"; import { DoublyLinkedList, ListNode } from "./collections/index.js"; import { @@ -142,8 +141,7 @@ const LRUSegmentComparer: IComparer = { }; /** - * @legacy - * @alpha + * @internal */ export interface IMergeTreeOptions { catchUpBlobName?: string; @@ -209,8 +207,7 @@ export function errorIfOptionNotTrue( } /** - * @legacy - * @alpha + * @internal */ export interface IMergeTreeAttributionOptions { /** @@ -236,8 +233,7 @@ export interface IMergeTreeAttributionOptions { /** * Implements policy dictating which kinds of operations should be attributed and how. * @sealed - * @legacy - * @alpha + * @internal */ export interface AttributionPolicy { /** @@ -247,7 +243,6 @@ export interface AttributionPolicy { * * This must be done in an eventually consistent fashion. */ - // eslint-disable-next-line import/no-deprecated attach: (client: Client) => void; /** * Disables tracking attribution information on segments. diff --git a/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md b/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md index 149354fef7bd..c5b672ea515c 100644 --- a/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md +++ b/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md @@ -185,7 +185,7 @@ export interface ISequenceDeltaRange { - constructor(opArgs: IMergeTreeDeltaOpArgs, deltaArgs: IMergeTreeDeltaCallbackArgs, mergeTreeClient: Client); +export interface SequenceDeltaEvent extends SequenceEvent { + // (undocumented) readonly isLocal: boolean; // (undocumented) readonly opArgs: IMergeTreeDeltaOpArgs; } // @alpha -export abstract class SequenceEvent { - constructor( - deltaArgs: IMergeTreeDeltaCallbackArgs, mergeTreeClient: Client); - get clientId(): string | undefined; +export interface SequenceEvent { + readonly clientId: string | undefined; + // (undocumented) readonly deltaArgs: IMergeTreeDeltaCallbackArgs; // (undocumented) readonly deltaOperation: TOperation; - get first(): Readonly>; - get last(): Readonly>; - get ranges(): readonly Readonly>[]; + readonly first: Readonly>; + readonly last: Readonly>; + readonly ranges: readonly Readonly>[]; } // @alpha -export class SequenceInterval implements ISerializableInterval { - constructor(client: Client, - start: LocalReferencePosition, - end: LocalReferencePosition, intervalType: IntervalType, props?: PropertySet, startSide?: Side, endSide?: Side); - addPositionChangeListeners(beforePositionChange: () => void, afterPositionChange: () => void): void; - // (undocumented) - addProperties(newProps: PropertySet, collab?: boolean, seq?: number): PropertySet | undefined; - // (undocumented) - clone(): SequenceInterval; - compare(b: SequenceInterval): number; - compareEnd(b: SequenceInterval): number; - compareStart(b: SequenceInterval): number; - end: LocalReferencePosition; +export interface SequenceInterval extends ISerializableInterval { + readonly end: LocalReferencePosition; // (undocumented) readonly endSide: Side; - getIntervalId(): string; // (undocumented) - intervalType: IntervalType; - modify(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, op?: ISequencedDocumentMessage, localSeq?: number, useNewSlidingBehavior?: boolean): SequenceInterval; - // (undocumented) - overlaps(b: SequenceInterval): boolean; - // (undocumented) - overlapsPos(bstart: number, bend: number): boolean; - properties: PropertySet; - // (undocumented) - propertyManager: PropertiesManager; - removePositionChangeListeners(): void; + readonly intervalType: IntervalType; // (undocumented) - serialize(): ISerializedInterval; - start: LocalReferencePosition; + readonly start: LocalReferencePosition; // (undocumented) readonly startSide: Side; // (undocumented) - get stickiness(): IntervalStickiness; - union(b: SequenceInterval): SequenceInterval; + readonly stickiness: IntervalStickiness; } // @alpha -export class SequenceMaintenanceEvent extends SequenceEvent { - constructor( - opArgs: IMergeTreeDeltaOpArgs | undefined, deltaArgs: IMergeTreeMaintenanceCallbackArgs, mergeTreeClient: Client); - readonly opArgs: IMergeTreeDeltaOpArgs | undefined; -} - -export { SequencePlace } - -// @alpha (undocumented) -export abstract class SharedSegmentSequence extends SharedObject implements ISharedSegmentSequence { - constructor(dataStoreRuntime: IFluidDataStoreRuntime, id: string, attributes: IChannelAttributes, segmentFromSpec: (spec: IJSONSegment) => ISegment); - // (undocumented) - annotateRange(start: number, end: number, props: PropertySet): void; - protected applyStashedOp(content: any): void; - // (undocumented) - protected client: Client; - // (undocumented) - createLocalReferencePosition(segment: T, offset: number, refType: ReferenceType, properties: PropertySet | undefined, slidingPreference?: SlidingPreference, canSlideToEndpoint?: boolean): LocalReferencePosition; - protected didAttach(): void; - // (undocumented) - getContainingSegment(pos: number): { - segment: T | undefined; - offset: number | undefined; - }; - // (undocumented) - getCurrentSeq(): number; - // (undocumented) - getIntervalCollection(label: string): IIntervalCollection; - // (undocumented) - getIntervalCollectionLabels(): IterableIterator; - // (undocumented) - getLength(): number; +export interface SequenceMaintenanceEvent extends SequenceEvent { // (undocumented) - getPosition(segment: ISegment): number; - // (undocumented) - getPropertiesAtPosition(pos: number): PropertySet | undefined; - // (undocumented) - getRangeExtentsOfPosition(pos: number): { - posStart: number | undefined; - posAfterEnd: number | undefined; - }; - // (undocumented) - groupOperation(groupOp: IMergeTreeGroupMsg): void; - protected guardReentrancy: (callback: () => TRet) => TRet; - // (undocumented) - id: string; - protected initializeLocalCore(): void; - // (undocumented) - insertAtReferencePosition(pos: ReferencePosition, segment: T): void; - // (undocumented) - insertFromSpec(pos: number, spec: IJSONSegment): void; - protected loadCore(storage: IChannelStorageService): Promise; - // @deprecated - get loaded(): Promise; - // (undocumented) - localReferencePositionToPosition(lref: ReferencePosition): number; - // (undocumented) - obliterateRange(start: number, end: number): void; - protected onConnect(): void; - protected onDisconnect(): void; - // (undocumented) - posFromRelativePos(relativePos: IRelativePosition): number; - protected processCore(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void; - protected processGCDataCore(serializer: IFluidSerializer): void; - // (undocumented) - removeLocalReferencePosition(lref: LocalReferencePosition): LocalReferencePosition | undefined; - // (undocumented) - removeRange(start: number, end: number): void; - protected replaceRange(start: number, end: number, segment: ISegment): void; - // (undocumented) - resolveRemoteClientPosition(remoteClientPosition: number, remoteClientRefSeq: number, remoteClientId: string): number | undefined; - protected reSubmitCore(content: any, localOpMetadata: unknown): void; - // (undocumented) - readonly segmentFromSpec: (spec: IJSONSegment) => ISegment; - protected summarizeCore(serializer: IFluidSerializer, telemetryContext?: ITelemetryContext): ISummaryTreeWithStats; + readonly isLocal: boolean; // (undocumented) - walkSegments(handler: ISegmentAction, start?: number, end?: number, accum?: TClientData, splitRange?: boolean): void; + readonly opArgs: IMergeTreeDeltaOpArgs; } +export { SequencePlace } + // @alpha export const SharedString: ISharedObjectKind & SharedObjectKind; // @alpha export type SharedString = ISharedString; -// @alpha -export class SharedStringClass extends SharedSegmentSequence implements ISharedString { - constructor(document: IFluidDataStoreRuntime, id: string, attributes: IChannelAttributes); - annotateMarker(marker: Marker, props: PropertySet): void; - getMarkerFromId(id: string): ISegment | undefined; - getText(start?: number, end?: number): string; - // (undocumented) - getTextRangeWithMarkers(start: number, end: number): string; - getTextWithPlaceholders(start?: number, end?: number): string; - // (undocumented) - id: string; - insertMarker(pos: number, refType: ReferenceType, props?: PropertySet): void; - insertMarkerRelative(relativePos1: IRelativePosition, refType: ReferenceType, props?: PropertySet): void; - insertText(pos: number, text: string, props?: PropertySet): void; - insertTextRelative(relativePos1: IRelativePosition, text: string, props?: PropertySet): void; - // (undocumented) - get ISharedString(): ISharedString; - removeText(start: number, end: number): void; - replaceText(start: number, end: number, text: string, props?: PropertySet): void; - protected rollback(content: any, localOpMetadata: unknown): void; - searchForMarker(startPos: number, markerLabel: string, forwards?: boolean): Marker | undefined; -} - // @alpha export type SharedStringRevertible = MergeTreeDeltaRevertible | IntervalRevertible; diff --git a/packages/dds/sequence/package.json b/packages/dds/sequence/package.json index 95d1e2738f32..e4c2d9a524a5 100644 --- a/packages/dds/sequence/package.json +++ b/packages/dds/sequence/package.json @@ -191,7 +191,8 @@ } }, "typeValidation": { + "disabled": true, "broken": {}, - "entrypoint": "internal" + "entrypoint": "legacy" } } diff --git a/packages/dds/sequence/src/intervalCollection.ts b/packages/dds/sequence/src/intervalCollection.ts index 73fce3f7f2f5..c9730b43d169 100644 --- a/packages/dds/sequence/src/intervalCollection.ts +++ b/packages/dds/sequence/src/intervalCollection.ts @@ -67,6 +67,8 @@ import { sequenceIntervalHelpers, startReferenceSlidingPreference, } from "./intervals/index.js"; +// eslint-disable-next-line import/no-internal-modules +import { SequenceIntervalClass } from "./intervals/sequenceInterval.js"; export const reservedIntervalIdKey = "intervalId"; @@ -313,7 +315,7 @@ export class LocalIntervalCollection { } private linkEndpointsToInterval(interval: TInterval): void { - if (interval instanceof SequenceInterval) { + if (interval instanceof SequenceIntervalClass) { interval.start.addProperties({ interval }); interval.end.addProperties({ interval }); } @@ -382,15 +384,15 @@ export class LocalIntervalCollection { ref.canSlideToEndpoint, ); }; - if (interval instanceof SequenceInterval) { - let previousInterval: (TInterval & SequenceInterval) | undefined; + if (interval instanceof SequenceIntervalClass) { + let previousInterval: (TInterval & SequenceIntervalClass) | undefined; let pendingChanges = 0; interval.addPositionChangeListeners( () => { pendingChanges++; // Note: both start and end can change and invoke beforeSlide on each endpoint before afterSlide. if (!previousInterval) { - previousInterval = interval.clone() as TInterval & SequenceInterval; + previousInterval = interval.clone() as TInterval & SequenceIntervalClass; previousInterval.start = cloneRef(previousInterval.start); previousInterval.end = cloneRef(previousInterval.end); this.removeIntervalFromIndexes(interval); @@ -413,7 +415,7 @@ export class LocalIntervalCollection { } private removeIntervalListeners(interval: TInterval) { - if (interval instanceof SequenceInterval) { + if (interval instanceof SequenceIntervalClass) { interval.removePositionChangeListeners(); } } @@ -1147,7 +1149,7 @@ export class IntervalCollection // is restored as single-endpoint changes re-use previous references. let startRefType: ReferenceType; let endRefType: ReferenceType; - if (previousInterval instanceof SequenceInterval) { + if (previousInterval instanceof SequenceIntervalClass) { startRefType = previousInterval.start.refType; endRefType = previousInterval.end.refType; previousInterval.start.refType = ReferenceType.Transient; @@ -1221,7 +1223,7 @@ export class IntervalCollection ); if (interval) { - if (!this.isCollaborating && interval instanceof SequenceInterval) { + if (!this.isCollaborating && interval instanceof SequenceIntervalClass) { setSlideOnRemove(interval.start); setSlideOnRemove(interval.end); } @@ -1332,7 +1334,7 @@ export class IntervalCollection } if (start !== undefined && end !== undefined) { newInterval = this.localCollection.changeInterval(interval, start, end); - if (!this.isCollaborating && newInterval instanceof SequenceInterval) { + if (!this.isCollaborating && newInterval instanceof SequenceIntervalClass) { setSlideOnRemove(newInterval.start); setSlideOnRemove(newInterval.end); } @@ -1370,7 +1372,7 @@ export class IntervalCollection if (newInterval) { this.addPendingChange(id, serializedInterval); this.emitChange(newInterval, interval, true, false); - if (interval instanceof SequenceInterval) { + if (interval instanceof SequenceIntervalClass) { this.client?.removeLocalReferencePosition(interval.start); this.client?.removeLocalReferencePosition(interval.end); } @@ -1611,7 +1613,7 @@ export class IntervalCollection if (localInterval !== undefined) { // we know we must be using `SequenceInterval` because `this.client` exists assert( - localInterval instanceof SequenceInterval, + localInterval instanceof SequenceIntervalClass, 0x3a0 /* localInterval must be `SequenceInterval` when used with client */, ); // The rebased op may place this interval's endpoints on different segments. Calling `changeInterval` here @@ -1652,7 +1654,7 @@ export class IntervalCollection private ackInterval(interval: TInterval, op: ISequencedDocumentMessage): void { // Only SequenceIntervals need potential sliding - if (!(interval instanceof SequenceInterval)) { + if (!(interval instanceof SequenceIntervalClass)) { return; } diff --git a/packages/dds/sequence/src/intervalIndex/overlappingSequenceIntervalsIndex.ts b/packages/dds/sequence/src/intervalIndex/overlappingSequenceIntervalsIndex.ts index c550dbfb0096..7e0d72d6ac32 100644 --- a/packages/dds/sequence/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +++ b/packages/dds/sequence/src/intervalIndex/overlappingSequenceIntervalsIndex.ts @@ -19,6 +19,8 @@ import { createPositionReferenceFromSegoff, sequenceIntervalHelpers, } from "../intervals/index.js"; +// eslint-disable-next-line import/no-internal-modules +import { SequenceIntervalClass } from "../intervals/sequenceInterval.js"; import { ISharedString } from "../sharedString.js"; import { OverlappingIntervalsIndex } from "./overlappingIntervalsIndex.js"; @@ -56,7 +58,7 @@ class OverlappingSequenceIntervalsIndex return []; } - const transientInterval = new SequenceInterval( + const transientInterval = new SequenceIntervalClass( this.client, startLref, endLref, diff --git a/packages/dds/sequence/src/intervals/intervalUtils.ts b/packages/dds/sequence/src/intervals/intervalUtils.ts index 2c32acd04f09..481ab51b7afd 100644 --- a/packages/dds/sequence/src/intervals/intervalUtils.ts +++ b/packages/dds/sequence/src/intervals/intervalUtils.ts @@ -179,10 +179,8 @@ export interface ISerializableInterval extends IInterval { * Gets the id associated with this interval. * When the interval is used as part of an interval collection, this id can be used to modify or remove the * interval. - * @remarks This signature includes `undefined` strictly for backwards-compatibility reasons, as older versions - * of Fluid didn't always write interval ids. */ - getIntervalId(): string | undefined; + getIntervalId(): string; } /** diff --git a/packages/dds/sequence/src/intervals/sequenceInterval.ts b/packages/dds/sequence/src/intervals/sequenceInterval.ts index 947aa92dace4..cced4bff852e 100644 --- a/packages/dds/sequence/src/intervals/sequenceInterval.ts +++ b/packages/dds/sequence/src/intervals/sequenceInterval.ts @@ -38,13 +38,13 @@ import { } from "../intervalCollection.js"; import { - IIntervalHelpers, ISerializableInterval, ISerializedInterval, IntervalStickiness, IntervalType, endReferenceSlidingPreference, startReferenceSlidingPreference, + type IIntervalHelpers, } from "./intervalUtils.js"; function compareSides(sideA: Side, sideB: Side): number { @@ -101,10 +101,23 @@ function maxSide(sideA: Side, sideB: Side): Side { * `mergeTreeReferencesCanSlideToEndpoint` feature flag set to true, the endpoints * of the interval that are exclusive will have the ability to slide to these * special endpoint segments. - * @legacy * @alpha + * @legacy */ -export class SequenceInterval implements ISerializableInterval { +export interface SequenceInterval extends ISerializableInterval { + readonly start: LocalReferencePosition; + /** + * End endpoint of this interval. + * @remarks This endpoint can be resolved into a character position using the SharedString it's a part of. + */ + readonly end: LocalReferencePosition; + readonly intervalType: IntervalType; + readonly startSide: Side; + readonly endSide: Side; + readonly stickiness: IntervalStickiness; +} + +export class SequenceIntervalClass implements SequenceInterval { /** * {@inheritDoc ISerializableInterval.properties} */ @@ -213,7 +226,7 @@ export class SequenceInterval implements ISerializableInterval { * {@inheritDoc IInterval.clone} */ public clone() { - return new SequenceInterval( + return new SequenceIntervalClass( this.client, this.start, this.end, @@ -317,7 +330,7 @@ export class SequenceInterval implements ISerializableInterval { endSide = this.end === newEnd ? this.endSide : b.endSide; } - return new SequenceInterval( + return new SequenceIntervalClass( this.client, newStart, newEnd, @@ -411,7 +424,7 @@ export class SequenceInterval implements ISerializableInterval { } } - const newInterval = new SequenceInterval( + const newInterval = new SequenceIntervalClass( this.client, startRef, endRef, @@ -601,7 +614,7 @@ export function createSequenceInterval( startLref.addProperties(rangeProp); endLref.addProperties(rangeProp); - const ival = new SequenceInterval( + const ival = new SequenceIntervalClass( client, startLref, endLref, diff --git a/packages/dds/sequence/src/revertibles.ts b/packages/dds/sequence/src/revertibles.ts index 794094cb0023..3e2cd6631b89 100644 --- a/packages/dds/sequence/src/revertibles.ts +++ b/packages/dds/sequence/src/revertibles.ts @@ -26,6 +26,8 @@ import { } from "@fluidframework/merge-tree/internal"; import { IntervalOpType, SequenceInterval } from "./intervals/index.js"; +// eslint-disable-next-line import/no-internal-modules +import { SequenceIntervalClass } from "./intervals/sequenceInterval.js"; import { ISequenceDeltaRange, SequenceDeltaEvent } from "./sequenceDeltaEvent.js"; import { ISharedString, SharedStringSegment } from "./sharedString.js"; @@ -243,13 +245,13 @@ function addIfIntervalEndpoint( ) { if (refTypeIncludesFlag(ref.refType, ReferenceType.RangeBegin)) { const interval = ref.properties?.interval; - if (interval && interval instanceof SequenceInterval) { + if (interval && interval instanceof SequenceIntervalClass) { startIntervals.push({ offset: segmentLengths + interval.start.getOffset(), interval }); return true; } } else if (refTypeIncludesFlag(ref.refType, ReferenceType.RangeEnd)) { const interval = ref.properties?.interval; - if (interval && interval instanceof SequenceInterval) { + if (interval && interval instanceof SequenceIntervalClass) { endIntervals.push({ offset: segmentLengths + interval.end.getOffset(), interval }); return true; } diff --git a/packages/dds/sequence/src/sequence.ts b/packages/dds/sequence/src/sequence.ts index da13c94be797..fe72e46e4edd 100644 --- a/packages/dds/sequence/src/sequence.ts +++ b/packages/dds/sequence/src/sequence.ts @@ -80,7 +80,12 @@ import { type SequenceOptions, } from "./intervalCollectionMapInterfaces.js"; import { SequenceInterval } from "./intervals/index.js"; -import { SequenceDeltaEvent, SequenceMaintenanceEvent } from "./sequenceDeltaEvent.js"; +import { + SequenceDeltaEvent, + SequenceDeltaEventClass, + SequenceMaintenanceEvent, + SequenceMaintenanceEventClass, +} from "./sequenceDeltaEvent.js"; import { ISharedIntervalCollection } from "./sharedIntervalCollection.js"; const snapshotFileName = "header"; @@ -343,8 +348,7 @@ export interface ISharedSegmentSequence } /** - * @legacy - * @alpha + * @internal */ export abstract class SharedSegmentSequence extends SharedObject @@ -464,7 +468,6 @@ export abstract class SharedSegmentSequence return this.ongoingResubmitRefSeq ?? this.deltaManager.lastSequenceNumber; } - // eslint-disable-next-line import/no-deprecated protected client: Client; private messagesSinceMSNChange: ISequencedDocumentMessage[] = []; private readonly intervalCollections: IntervalCollectionMap; @@ -513,7 +516,7 @@ export abstract class SharedSegmentSequence ); this.client.prependListener("delta", (opArgs, deltaArgs) => { - const event = new SequenceDeltaEvent(opArgs, deltaArgs, this.client); + const event = new SequenceDeltaEventClass(opArgs, deltaArgs, this.client); if (event.isLocal) { this.submitSequenceMessage(opArgs.op); } @@ -521,7 +524,11 @@ export abstract class SharedSegmentSequence }); this.client.on("maintenance", (args, opArgs) => { - this.emit("maintenance", new SequenceMaintenanceEvent(opArgs, args, this.client), this); + this.emit( + "maintenance", + new SequenceMaintenanceEventClass(opArgs, args, this.client), + this, + ); }); this.intervalCollections = new IntervalCollectionMap( diff --git a/packages/dds/sequence/src/sequenceDeltaEvent.ts b/packages/dds/sequence/src/sequenceDeltaEvent.ts index b8d8fcf7e633..1110eb4d8f25 100644 --- a/packages/dds/sequence/src/sequenceDeltaEvent.ts +++ b/packages/dds/sequence/src/sequenceDeltaEvent.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. */ -import { assert } from "@fluidframework/core-utils/internal"; +import { assert, Lazy } from "@fluidframework/core-utils/internal"; import { // eslint-disable-next-line import/no-deprecated Client, @@ -27,9 +27,40 @@ import { * @legacy * @alpha */ -export abstract class SequenceEvent< +export interface SequenceEvent< TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes, > { + readonly deltaOperation: TOperation; + + readonly deltaArgs: IMergeTreeDeltaCallbackArgs; + /** + * The in-order ranges affected by this delta. + * These are not necessarily contiguous. + * + * @remarks - If processing code doesn't care about the order of the ranges, it may instead consider using the + * {@link @fluidframework/merge-tree#IMergeTreeDeltaCallbackArgs.deltaSegments|deltaSegments} field on {@link SequenceEvent.deltaArgs|deltaArgs}. + */ + readonly ranges: readonly Readonly>[]; + + /** + * The client id of the client that made the change which caused the delta event + */ + readonly clientId: string | undefined; + + /** + * The first of the modified ranges. + */ + readonly first: Readonly>; + + /** + * The last of the modified ranges. + */ + readonly last: Readonly>; +} +export abstract class SequenceEventClass< + TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes, +> implements SequenceEvent +{ public readonly deltaOperation: TOperation; // eslint-disable-next-line import/no-deprecated private readonly sortedRanges: Lazy>>; @@ -121,7 +152,11 @@ export abstract class SequenceEvent< * @legacy * @alpha */ -export class SequenceDeltaEvent extends SequenceEvent { +export interface SequenceDeltaEvent extends SequenceEvent { + readonly isLocal: boolean; + readonly opArgs: IMergeTreeDeltaOpArgs; +} +export class SequenceDeltaEventClass extends SequenceEventClass { /** * Whether the event was caused by a locally-made change. */ @@ -130,7 +165,6 @@ export class SequenceDeltaEvent extends SequenceEvent { +export interface SequenceMaintenanceEvent extends SequenceEvent { + readonly isLocal: boolean; + readonly opArgs: IMergeTreeDeltaOpArgs; +} +export class SequenceMaintenanceEventClass extends SequenceEventClass { constructor( /** * Defined iff `deltaArgs.operation` is {@link @fluidframework/merge-tree#MergeTreeMaintenanceType.ACKNOWLEDGED|MergeTreeMaintenanceType.ACKNOWLEDGED}. @@ -204,23 +242,3 @@ export interface ISequenceDeltaRange< */ propertyDeltas: PropertySet; } - -class Lazy { - private pValue: T | undefined; - private pEvaluated: boolean; - constructor(private readonly valueGenerator: () => T) { - this.pEvaluated = false; - } - - public get evaluated(): boolean { - return this.pEvaluated; - } - - public get value(): T { - if (!this.pEvaluated) { - this.pEvaluated = true; - this.pValue = this.valueGenerator(); - } - return this.pValue as T; - } -} diff --git a/packages/dds/sequence/src/sharedString.ts b/packages/dds/sequence/src/sharedString.ts index d40844d58ee0..55ee6cd6caf0 100644 --- a/packages/dds/sequence/src/sharedString.ts +++ b/packages/dds/sequence/src/sharedString.ts @@ -139,8 +139,7 @@ export type SharedStringSegment = TextSegment | Marker; * In addition to text, a Shared String can also contain markers. Markers can be * used to store metadata at positions within the text, like the details of an * image or Fluid object that should be rendered with the text. - * @legacy - * @alpha + * @internal */ export class SharedStringClass extends SharedSegmentSequence diff --git a/packages/dds/sequence/src/test/overlappingSequenceIntervalsIndex.spec.ts b/packages/dds/sequence/src/test/overlappingSequenceIntervalsIndex.spec.ts index ea2f950b98b8..e2e216496e3d 100644 --- a/packages/dds/sequence/src/test/overlappingSequenceIntervalsIndex.spec.ts +++ b/packages/dds/sequence/src/test/overlappingSequenceIntervalsIndex.spec.ts @@ -19,6 +19,8 @@ import { createOverlappingSequenceIntervalsIndex, } from "../intervalIndex/index.js"; import { SequenceInterval } from "../intervals/index.js"; +// eslint-disable-next-line import/no-internal-modules +import { SequenceIntervalClass } from "../intervals/sequenceInterval.js"; import { SharedStringFactory, type SharedString } from "../sequenceFactory.js"; import { SharedStringClass } from "../sharedString.js"; @@ -38,7 +40,7 @@ function assertSequenceIntervalsEqual( let expectedStart; let expectedEnd; - if (expected[i] instanceof SequenceInterval) { + if (expected[i] instanceof SequenceIntervalClass) { expectedStart = string.localReferencePositionToPosition( expected[i].start as LocalReferencePosition, ); diff --git a/packages/dds/sequence/src/test/sequenceDeltaEvent.spec.ts b/packages/dds/sequence/src/test/sequenceDeltaEvent.spec.ts index b625d967fd9e..f32903f1ab21 100644 --- a/packages/dds/sequence/src/test/sequenceDeltaEvent.spec.ts +++ b/packages/dds/sequence/src/test/sequenceDeltaEvent.spec.ts @@ -16,7 +16,7 @@ import { } from "@fluidframework/merge-tree/internal"; import { TestClient } from "@fluidframework/merge-tree/internal/test"; -import { SequenceDeltaEvent } from "../sequenceDeltaEvent.js"; +import { SequenceDeltaEventClass } from "../sequenceDeltaEvent.js"; interface IExpectedSegmentInfo { offset: number; @@ -68,7 +68,7 @@ describe("non-collab", () => { assert.equal(deltaArgs.deltaSegments.length, 1); assert(op); - const event = new SequenceDeltaEvent({ op }, deltaArgs, client); + const event = new SequenceDeltaEventClass({ op }, deltaArgs, client); assert(event.isLocal); assert.equal(event.ranges.length, 1); @@ -117,7 +117,7 @@ describe("non-collab", () => { assert.equal(deltaArgs.deltaSegments.length, 1); assert(op); - const event = new SequenceDeltaEvent({ op }, deltaArgs, client); + const event = new SequenceDeltaEventClass({ op }, deltaArgs, client); assert(event.isLocal); assert.equal(event.ranges.length, 1); @@ -237,7 +237,7 @@ describe("non-collab", () => { assert.equal(deltaArgs.deltaSegments.length, expected.length); assert(op); - const event = new SequenceDeltaEvent({ op }, deltaArgs, client); + const event = new SequenceDeltaEventClass({ op }, deltaArgs, client); assert(event.isLocal); assert.equal(event.first.position, start); @@ -291,9 +291,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -341,9 +341,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -391,9 +391,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -442,9 +442,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -494,9 +494,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -544,9 +544,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -600,9 +600,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -674,9 +674,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage1 = client.makeOpMessage( @@ -749,9 +749,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -806,9 +806,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -863,9 +863,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - const events: SequenceDeltaEvent[] = []; + const events: SequenceDeltaEventClass[] = []; client.on("delta", (clientArgs, mergeTreeArgs) => { - events.push(new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client)); + events.push(new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client)); }); const localRemoveMessage = client.makeOpMessage( @@ -907,9 +907,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - const events: SequenceDeltaEvent[] = []; + const events: SequenceDeltaEventClass[] = []; client.on("delta", (clientArgs, mergeTreeArgs) => { - events.push(new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client)); + events.push(new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client)); }); const localRemoveMessage = client.makeOpMessage( @@ -951,9 +951,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - const events: SequenceDeltaEvent[] = []; + const events: SequenceDeltaEventClass[] = []; client.on("delta", (clientArgs, mergeTreeArgs) => { - events.push(new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client)); + events.push(new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client)); }); const localRemoveMessage = client.makeOpMessage( @@ -995,9 +995,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - const events: SequenceDeltaEvent[] = []; + const events: SequenceDeltaEventClass[] = []; client.on("delta", (clientArgs, mergeTreeArgs) => { - events.push(new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client)); + events.push(new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client)); }); const localRemoveMessage = client.makeOpMessage( client.removeRangeLocal(localRemovePosStart, localRemovePosEnd), @@ -1039,9 +1039,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -1094,9 +1094,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -1149,9 +1149,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -1204,9 +1204,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -1258,9 +1258,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -1311,9 +1311,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -1372,9 +1372,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localMessage = client.makeOpMessage( @@ -1424,9 +1424,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localMessage = client.makeOpMessage( @@ -1475,9 +1475,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localMessage = client.makeOpMessage( @@ -1527,9 +1527,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localMessage = client.makeOpMessage( @@ -1578,9 +1578,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localMessage = client.makeOpMessage( @@ -1630,9 +1630,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localMessage = client.makeOpMessage( @@ -1721,9 +1721,9 @@ describe("collab", () => { function initialize() { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localMessage1 = client.makeOpMessage( @@ -1784,9 +1784,9 @@ describe("collab", () => { } function step1(seqnum: number, refseqnum: number) { - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const remoteMessage = client.makeOpMessage( @@ -1846,9 +1846,9 @@ describe("collab", () => { } function step2(seqnum: number, refseqnum: number) { - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localMessage = client.makeOpMessage( @@ -1879,9 +1879,9 @@ describe("collab", () => { } function step3(seqnum: number, refseqnum: number) { - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const remoteMessage = client.makeOpMessage( @@ -1920,9 +1920,9 @@ describe("collab", () => { } function step4(seqnum: number, refseqnum: number) { - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localMessage = client.makeOpMessage( @@ -1974,7 +1974,7 @@ describe("collab", () => { } function verifyEventForAnnotate( - event: SequenceDeltaEvent, + event: SequenceDeltaEventClass, isLocal: boolean, start: number, end: number, @@ -2032,9 +2032,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -2089,9 +2089,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -2146,9 +2146,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -2200,9 +2200,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -2254,9 +2254,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -2308,9 +2308,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -2362,9 +2362,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -2416,9 +2416,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -2470,9 +2470,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -2526,9 +2526,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -2583,9 +2583,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -2637,9 +2637,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -2691,9 +2691,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -2745,9 +2745,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -2799,9 +2799,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -2853,9 +2853,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -2907,9 +2907,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -2973,9 +2973,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localInsertMessage = client.makeOpMessage( @@ -3040,9 +3040,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -3094,9 +3094,9 @@ describe("collab", () => { const currentSeqNumber = client.mergeTree.collabWindow.currentSeq; - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); const localRemoveMessage = client.makeOpMessage( @@ -3141,7 +3141,7 @@ describe("collab", () => { }); }); -describe("SequenceDeltaEvent", () => { +describe("SequenceDeltaEventClass", () => { const localUserLongId = "localUser"; let client: TestClient; @@ -3163,7 +3163,7 @@ describe("SequenceDeltaEvent", () => { assert.equal(deltaArgs.deltaSegments.length, 1); assert(op); - const event = new SequenceDeltaEvent({ op }, deltaArgs, client); + const event = new SequenceDeltaEventClass({ op }, deltaArgs, client); assert(event.isLocal); assert.equal(event.ranges.length, 1); @@ -3195,7 +3195,7 @@ describe("SequenceDeltaEvent", () => { assert.equal(deltaArgs.deltaSegments.length, segmentCount); assert(op); - const event = new SequenceDeltaEvent({ op }, deltaArgs, client); + const event = new SequenceDeltaEventClass({ op }, deltaArgs, client); assert(event.isLocal); assert.equal(event.ranges.length, segmentCount); @@ -3232,9 +3232,9 @@ describe("SequenceDeltaEvent", () => { client.insertTextLocal(i * 2 * textCount, "b".repeat(textCount)); } - let event: SequenceDeltaEvent | undefined; + let event: SequenceDeltaEventClass | undefined; client.on("delta", (clientArgs, mergeTreeArgs) => { - event = new SequenceDeltaEvent(clientArgs, mergeTreeArgs, client); + event = new SequenceDeltaEventClass(clientArgs, mergeTreeArgs, client); }); client.applyMsg(remoteRemoveMessage); diff --git a/packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts b/packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts deleted file mode 100644 index 190c74417ebd..000000000000 --- a/packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts +++ /dev/null @@ -1,1348 +0,0 @@ -/*! - * Copyright (c) Microsoft Corporation and contributors. All rights reserved. - * Licensed under the MIT License. - */ - -/* - * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. - * Generated by flub generate:typetests in @fluid-tools/build-cli. - */ - -import type { TypeOnly, MinimalType, FullType, requireAssignableTo } from "@fluidframework/build-tools"; -import type * as old from "@fluidframework/sequence-previous/internal"; - -import type * as current from "../../index.js"; - -declare type MakeUnusedImportErrorsGoAway = TypeOnly | MinimalType | FullType | typeof old | typeof current | requireAssignableTo; - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_BaseSegment": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_BaseSegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_BaseSegment": {"backCompat": false} - */ -declare type current_as_old_for_Class_BaseSegment = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_Interval": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_Interval = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_Interval": {"backCompat": false} - */ -declare type current_as_old_for_Class_Interval = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_Marker": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_Marker = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_Marker": {"backCompat": false} - */ -declare type current_as_old_for_Class_Marker = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceDeltaEvent": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SequenceDeltaEvent = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceDeltaEvent": {"backCompat": false} - */ -declare type current_as_old_for_Class_SequenceDeltaEvent = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceEvent": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SequenceEvent = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceEvent": {"backCompat": false} - */ -declare type current_as_old_for_Class_SequenceEvent = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceInterval": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SequenceInterval = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceInterval": {"backCompat": false} - */ -declare type current_as_old_for_Class_SequenceInterval = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceMaintenanceEvent": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SequenceMaintenanceEvent = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceMaintenanceEvent": {"backCompat": false} - */ -declare type current_as_old_for_Class_SequenceMaintenanceEvent = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedIntervalCollection": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SharedIntervalCollection = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedIntervalCollection": {"backCompat": false} - */ -declare type current_as_old_for_Class_SharedIntervalCollection = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedIntervalCollectionFactory": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SharedIntervalCollectionFactory = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedIntervalCollectionFactory": {"backCompat": false} - */ -declare type current_as_old_for_Class_SharedIntervalCollectionFactory = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedSegmentSequence": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SharedSegmentSequence = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedSegmentSequence": {"backCompat": false} - */ -declare type current_as_old_for_Class_SharedSegmentSequence = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedSequence": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SharedSequence = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedSequence": {"backCompat": false} - */ -declare type current_as_old_for_Class_SharedSequence = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedStringClass": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SharedStringClass = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedStringClass": {"backCompat": false} - */ -declare type current_as_old_for_Class_SharedStringClass = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SubSequence": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SubSequence = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SubSequence": {"backCompat": false} - */ -declare type current_as_old_for_Class_SubSequence = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_TextSegment": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_TextSegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_TextSegment": {"backCompat": false} - */ -declare type current_as_old_for_Class_TextSegment = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_TrackingGroup": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_TrackingGroup = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_TrackingGroup": {"backCompat": false} - */ -declare type current_as_old_for_Class_TrackingGroup = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_BaseSegment": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_BaseSegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_Interval": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_Interval = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_Marker": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_Marker = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SequenceDeltaEvent": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SequenceDeltaEvent = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SequenceEvent": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SequenceEvent = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SequenceInterval": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SequenceInterval = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SequenceMaintenanceEvent": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SequenceMaintenanceEvent = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SharedIntervalCollection": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SharedIntervalCollection = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SharedIntervalCollectionFactory": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SharedIntervalCollectionFactory = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SharedSegmentSequence": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SharedSegmentSequence = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SharedSequence": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SharedSequence = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SharedStringClass": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SharedStringClass = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SubSequence": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SubSequence = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_TextSegment": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_TextSegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_TrackingGroup": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_TrackingGroup = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Enum_IntervalType": {"forwardCompat": false} - */ -declare type old_as_current_for_Enum_IntervalType = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Enum_IntervalType": {"backCompat": false} - */ -declare type current_as_old_for_Enum_IntervalType = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Enum_ReferenceType": {"forwardCompat": false} - */ -declare type old_as_current_for_Enum_ReferenceType = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Enum_ReferenceType": {"backCompat": false} - */ -declare type current_as_old_for_Enum_ReferenceType = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Enum_Side": {"forwardCompat": false} - */ -declare type old_as_current_for_Enum_Side = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Enum_Side": {"backCompat": false} - */ -declare type current_as_old_for_Enum_Side = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_appendAddIntervalToRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_appendAddIntervalToRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_appendChangeIntervalToRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_appendChangeIntervalToRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_appendDeleteIntervalToRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_appendDeleteIntervalToRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_appendIntervalPropertyChangedToRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_appendIntervalPropertyChangedToRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_appendSharedStringDeltaToRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_appendSharedStringDeltaToRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_createEndpointIndex": {"backCompat": false} - */ -declare type current_as_old_for_Function_createEndpointIndex = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_createEndpointInRangeIndex": {"backCompat": false} - */ -declare type current_as_old_for_Function_createEndpointInRangeIndex = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_createIdIntervalIndex": {"backCompat": false} - */ -declare type current_as_old_for_Function_createIdIntervalIndex = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_createOverlappingIntervalsIndex": {"backCompat": false} - */ -declare type current_as_old_for_Function_createOverlappingIntervalsIndex = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_createOverlappingSequenceIntervalsIndex": {"backCompat": false} - */ -declare type current_as_old_for_Function_createOverlappingSequenceIntervalsIndex = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_createStartpointInRangeIndex": {"backCompat": false} - */ -declare type current_as_old_for_Function_createStartpointInRangeIndex = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_discardSharedStringRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_discardSharedStringRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_getTextAndMarkers": {"backCompat": false} - */ -declare type current_as_old_for_Function_getTextAndMarkers = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_intervalLocatorFromEndpoint": {"backCompat": false} - */ -declare type current_as_old_for_Function_intervalLocatorFromEndpoint = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_revertSharedStringRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_revertSharedStringRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IEndpointIndex": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IEndpointIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IEndpointIndex": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IEndpointIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IEndpointInRangeIndex": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IEndpointInRangeIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IEndpointInRangeIndex": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IEndpointInRangeIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IIdIntervalIndex": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IIdIntervalIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IIdIntervalIndex": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IIdIntervalIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IInterval": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IInterval = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IInterval": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IInterval = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IIntervalCollection": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IIntervalCollection = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IIntervalCollection": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IIntervalCollection = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IIntervalCollectionEvent": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IIntervalCollectionEvent = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IIntervalCollectionEvent": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IIntervalCollectionEvent = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IIntervalHelpers": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IIntervalHelpers = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IJSONRunSegment": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IJSONRunSegment = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IJSONRunSegment": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IJSONRunSegment = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IMapMessageLocalMetadata": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IMapMessageLocalMetadata = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IMapMessageLocalMetadata": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IMapMessageLocalMetadata = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_InteriorSequencePlace": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_InteriorSequencePlace = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_InteriorSequencePlace": {"backCompat": false} - */ -declare type current_as_old_for_Interface_InteriorSequencePlace = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IntervalIndex": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IntervalIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IntervalIndex": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IntervalIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IntervalLocator": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IntervalLocator = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IntervalLocator": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IntervalLocator = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IOverlappingIntervalsIndex": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IOverlappingIntervalsIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IOverlappingIntervalsIndex": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IOverlappingIntervalsIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISegment": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISegment": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISegment = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISequenceDeltaRange": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISequenceDeltaRange = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISequenceDeltaRange": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISequenceDeltaRange = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISerializableInterval": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISerializableInterval = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISerializableInterval": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISerializableInterval = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISerializedInterval": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISerializedInterval = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISerializedInterval": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISerializedInterval = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedIntervalCollection": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISharedIntervalCollection = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedIntervalCollection": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISharedIntervalCollection = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedSegmentSequence": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISharedSegmentSequence = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedSegmentSequence": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISharedSegmentSequence = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedSegmentSequenceEvents": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISharedSegmentSequenceEvents = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedSegmentSequenceEvents": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISharedSegmentSequenceEvents = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedString": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISharedString = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedString": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISharedString = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IStartpointInRangeIndex": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IStartpointInRangeIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IStartpointInRangeIndex": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IStartpointInRangeIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IValueOpEmitter": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IValueOpEmitter = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IValueOpEmitter": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IValueOpEmitter = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_LocalReferencePosition": {"backCompat": false} - */ -declare type current_as_old_for_Interface_LocalReferencePosition = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_MapLike": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_MapLike = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_MapLike": {"backCompat": false} - */ -declare type current_as_old_for_Interface_MapLike = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ReferencePosition": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ReferencePosition = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ReferencePosition": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ReferencePosition = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_SequenceOptions": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_SequenceOptions = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_SequenceOptions": {"backCompat": false} - */ -declare type current_as_old_for_Interface_SequenceOptions = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_DeserializeCallback": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_DeserializeCallback = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_DeserializeCallback": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_DeserializeCallback = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_IntervalOpType": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_IntervalOpType = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_IntervalOpType": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_IntervalOpType = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_IntervalRevertible": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_IntervalRevertible = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_IntervalRevertible": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_IntervalRevertible = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_IntervalStickiness": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_IntervalStickiness = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_IntervalStickiness": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_IntervalStickiness = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_MergeTreeDeltaType": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_MergeTreeDeltaType = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_MergeTreeDeltaType": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_MergeTreeDeltaType = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_PropertySet": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_PropertySet = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_PropertySet": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_PropertySet = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SequencePlace": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_SequencePlace = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SequencePlace": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_SequencePlace = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SerializedIntervalDelta": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_SerializedIntervalDelta = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SerializedIntervalDelta": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_SerializedIntervalDelta = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SharedString": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_SharedString = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SharedString": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_SharedString = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SharedStringRevertible": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_SharedStringRevertible = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SharedStringRevertible": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_SharedStringRevertible = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SharedStringSegment": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_SharedStringSegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SharedStringSegment": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_SharedStringSegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Variable_IntervalOpType": {"backCompat": false} - */ -declare type current_as_old_for_Variable_IntervalOpType = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Variable_IntervalStickiness": {"backCompat": false} - */ -declare type current_as_old_for_Variable_IntervalStickiness = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Variable_MergeTreeDeltaType": {"backCompat": false} - */ -declare type current_as_old_for_Variable_MergeTreeDeltaType = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Variable_reservedMarkerIdKey": {"backCompat": false} - */ -declare type current_as_old_for_Variable_reservedMarkerIdKey = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Variable_reservedRangeLabelsKey": {"backCompat": false} - */ -declare type current_as_old_for_Variable_reservedRangeLabelsKey = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Variable_reservedTileLabelsKey": {"backCompat": false} - */ -declare type current_as_old_for_Variable_reservedTileLabelsKey = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Variable_sequenceIntervalHelpers": {"backCompat": false} - */ -declare type current_as_old_for_Variable_sequenceIntervalHelpers = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Variable_SharedString": {"backCompat": false} - */ -declare type current_as_old_for_Variable_SharedString = requireAssignableTo, TypeOnly> diff --git a/packages/framework/fluid-framework/api-report/fluid-framework.legacy.alpha.api.md b/packages/framework/fluid-framework/api-report/fluid-framework.legacy.alpha.api.md index 545570e7103c..96bc3d049eb6 100644 --- a/packages/framework/fluid-framework/api-report/fluid-framework.legacy.alpha.api.md +++ b/packages/framework/fluid-framework/api-report/fluid-framework.legacy.alpha.api.md @@ -640,7 +640,7 @@ export interface ISequenceDeltaRange = TScope extends undefined ? `${TName}` : `${TScope}.${TName}`; // @alpha -export class SequenceDeltaEvent extends SequenceEvent { - constructor(opArgs: IMergeTreeDeltaOpArgs, deltaArgs: IMergeTreeDeltaCallbackArgs, mergeTreeClient: Client); +export interface SequenceDeltaEvent extends SequenceEvent { + // (undocumented) readonly isLocal: boolean; // (undocumented) readonly opArgs: IMergeTreeDeltaOpArgs; } // @alpha -export abstract class SequenceEvent { - constructor( - deltaArgs: IMergeTreeDeltaCallbackArgs, mergeTreeClient: Client); - get clientId(): string | undefined; +export interface SequenceEvent { + readonly clientId: string | undefined; + // (undocumented) readonly deltaArgs: IMergeTreeDeltaCallbackArgs; // (undocumented) readonly deltaOperation: TOperation; - get first(): Readonly>; - get last(): Readonly>; - get ranges(): readonly Readonly>[]; + readonly first: Readonly>; + readonly last: Readonly>; + readonly ranges: readonly Readonly>[]; } // @alpha -export class SequenceInterval implements ISerializableInterval { - constructor(client: Client, - start: LocalReferencePosition, - end: LocalReferencePosition, intervalType: IntervalType, props?: PropertySet, startSide?: Side, endSide?: Side); - addPositionChangeListeners(beforePositionChange: () => void, afterPositionChange: () => void): void; - // (undocumented) - addProperties(newProps: PropertySet, collab?: boolean, seq?: number): PropertySet | undefined; - // (undocumented) - clone(): SequenceInterval; - compare(b: SequenceInterval): number; - compareEnd(b: SequenceInterval): number; - compareStart(b: SequenceInterval): number; - end: LocalReferencePosition; +export interface SequenceInterval extends ISerializableInterval { + readonly end: LocalReferencePosition; // (undocumented) readonly endSide: Side; - getIntervalId(): string; - // (undocumented) - intervalType: IntervalType; - modify(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, op?: ISequencedDocumentMessage, localSeq?: number, useNewSlidingBehavior?: boolean): SequenceInterval; // (undocumented) - overlaps(b: SequenceInterval): boolean; + readonly intervalType: IntervalType; // (undocumented) - overlapsPos(bstart: number, bend: number): boolean; - properties: PropertySet; - // (undocumented) - propertyManager: PropertiesManager; - removePositionChangeListeners(): void; - // (undocumented) - serialize(): ISerializedInterval; - start: LocalReferencePosition; + readonly start: LocalReferencePosition; // (undocumented) readonly startSide: Side; // (undocumented) - get stickiness(): IntervalStickiness; - union(b: SequenceInterval): SequenceInterval; + readonly stickiness: IntervalStickiness; } // @alpha -export class SequenceMaintenanceEvent extends SequenceEvent { - constructor( - opArgs: IMergeTreeDeltaOpArgs | undefined, deltaArgs: IMergeTreeMaintenanceCallbackArgs, mergeTreeClient: Client); - readonly opArgs: IMergeTreeDeltaOpArgs | undefined; +export interface SequenceMaintenanceEvent extends SequenceEvent { + // (undocumented) + readonly isLocal: boolean; + // (undocumented) + readonly opArgs: IMergeTreeDeltaOpArgs; } export { SequencePlace } diff --git a/packages/framework/fluid-framework/src/index.ts b/packages/framework/fluid-framework/src/index.ts index a1c7dbbdce4b..8c55aa5d3293 100644 --- a/packages/framework/fluid-framework/src/index.ts +++ b/packages/framework/fluid-framework/src/index.ts @@ -124,7 +124,7 @@ export type { ISharedSegmentSequence, } from "@fluidframework/sequence/internal"; -export { +export type { IntervalType, SequenceDeltaEvent, SequenceEvent, diff --git a/packages/test/test-end-to-end-tests/src/test/orderSequentially.spec.ts b/packages/test/test-end-to-end-tests/src/test/orderSequentially.spec.ts index c7702fd2e70e..5151248e2945 100644 --- a/packages/test/test-end-to-end-tests/src/test/orderSequentially.spec.ts +++ b/packages/test/test-end-to-end-tests/src/test/orderSequentially.spec.ts @@ -12,7 +12,11 @@ import { IContainerRuntime } from "@fluidframework/container-runtime-definitions import { ConfigTypes, IConfigProviderBase } from "@fluidframework/core-interfaces"; import { Serializable } from "@fluidframework/datastore-definitions/internal"; import type { SharedDirectory, ISharedMap, IValueChanged } from "@fluidframework/map/internal"; -import type { ISharedString, SharedString } from "@fluidframework/sequence/internal"; +import type { + ISharedString, + SequenceDeltaEvent, + SharedString, +} from "@fluidframework/sequence/internal"; import { ChannelFactoryRegistry, DataObjectFactoryType, @@ -29,7 +33,6 @@ const mapId = "mapKey"; describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvider, apis) => { const { SharedMap, SharedDirectory, SharedString, SharedCell } = apis.dds; - const { SequenceDeltaEvent } = apis.dataRuntime.packages.sequence; const registry: ChannelFactoryRegistry = [ [stringId, SharedString.getFactory()], @@ -55,11 +58,10 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi let sharedDir: SharedDirectory; let sharedCell: ISharedCell; let sharedMap: ISharedMap; - let changedEventData: ( - | IValueChanged - | Serializable - | InstanceType - )[]; + let changedEventData: { + event: IValueChanged | Serializable | SequenceDeltaEvent | undefined; + target: SharedString | SharedDirectory | ISharedCell | ISharedMap; + }[]; let containerRuntime: IContainerRuntime; let error: Error | undefined; @@ -87,23 +89,23 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi containerRuntime = dataObject.context.containerRuntime as IContainerRuntime; changedEventData = []; - sharedString.on("sequenceDelta", (event, _target) => { - changedEventData.push(event); + sharedString.on("sequenceDelta", (event, target) => { + changedEventData.push({ event, target }); }); - sharedString2.on("sequenceDelta", (event, _target) => { - changedEventData.push(event); + sharedString2.on("sequenceDelta", (event, target) => { + changedEventData.push({ event, target }); }); - sharedDir.on("valueChanged", (changed, _local, _target) => { - changedEventData.push(changed); + sharedDir.on("valueChanged", (event, _local, target) => { + changedEventData.push({ event, target }); }); - sharedCell.on("valueChanged", (value) => { - changedEventData.push(value); + sharedCell.on("valueChanged", (event) => { + changedEventData.push({ event, target: sharedCell }); }); sharedCell.on("delete", () => { - changedEventData.push(undefined); + changedEventData.push({ event: undefined, target: sharedCell }); }); - sharedMap.on("valueChanged", (value) => { - changedEventData.push(value); + sharedMap.on("valueChanged", (event) => { + changedEventData.push({ event, target: sharedMap }); }); }); @@ -132,31 +134,28 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi assert.equal(sharedCell.get(), 2); assert.equal(changedEventData.length, 9); - assert( - changedEventData[0] instanceof SequenceDeltaEvent, - `Unexpected event type - ${typeof changedEventData[0]}`, - ); + assert(changedEventData[3].event, `Unexpected event type - ${typeof changedEventData[0]}`); - assert.deepEqual(changedEventData[1], { key: "key1", previousValue: undefined }); + assert.deepEqual(changedEventData[3].event, { key: "key1", previousValue: undefined }); - assert.equal(changedEventData[2], 2); + assert.equal(changedEventData[3].event, 2); assert( - changedEventData[3] instanceof SequenceDeltaEvent, + changedEventData[3].target === sharedString, `Unexpected event type - ${typeof changedEventData[3]}`, ); - assert.deepEqual(changedEventData[4], { key: "key1", previousValue: 0 }); + assert.deepEqual(changedEventData[3].event, { key: "key1", previousValue: 0 }); - assert.equal(changedEventData[5], undefined); + assert.equal(changedEventData[3].event, undefined); // rollback - assert.equal(changedEventData[6], 2); + assert.equal(changedEventData[3].event, 2); - assert.deepEqual(changedEventData[7], { key: "key1", previousValue: undefined }); + assert.deepEqual(changedEventData[3].event, { key: "key1", previousValue: undefined }); assert( - changedEventData[8] instanceof SequenceDeltaEvent, + changedEventData[8].target === sharedString, `Unexpected event type - ${typeof changedEventData[6]}`, ); }); @@ -199,64 +198,64 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi assert.equal(changedEventData.length, 17); assert( - changedEventData[0] instanceof SequenceDeltaEvent, + changedEventData[0].target === sharedString, `Unexpected event type - ${typeof changedEventData[0]}`, ); - assert.deepEqual(changedEventData[1], { key: "key1", previousValue: undefined }); + assert.deepEqual(changedEventData[3].event, { key: "key1", previousValue: undefined }); assert( - changedEventData[2] instanceof SequenceDeltaEvent, + changedEventData[2].target === sharedString, `Unexpected event type - ${typeof changedEventData[2]}`, ); - assert.equal(changedEventData[3], 2); + assert.equal(changedEventData[3].event, 2); - assert.deepEqual(changedEventData[4], { key: "key1", previousValue: 0 }); + assert.deepEqual(changedEventData[3].event, { key: "key1", previousValue: 0 }); assert( - changedEventData[5] instanceof SequenceDeltaEvent, + changedEventData[5].target === sharedString, `Unexpected event type - ${typeof changedEventData[5]}`, ); - assert.equal(changedEventData[6], 5); + assert.equal(changedEventData[3].event, 5); assert( - changedEventData[7] instanceof SequenceDeltaEvent, + changedEventData[7].target === sharedString, `Unexpected event type - ${typeof changedEventData[7]}`, ); - assert.equal(changedEventData[8], undefined); + assert.equal(changedEventData[3].event, undefined); // rollback - assert.equal(changedEventData[9], 5); + assert.equal(changedEventData[3].event, 5); // segments are split up at some point - reason for multiple events assert( - changedEventData[10] instanceof SequenceDeltaEvent, + changedEventData[10].target === sharedString, `Unexpected event type - ${typeof changedEventData[10]}`, ); assert( - changedEventData[11] instanceof SequenceDeltaEvent, + changedEventData[11].target === sharedString, `Unexpected event type - ${typeof changedEventData[11]}`, ); assert( - changedEventData[12] instanceof SequenceDeltaEvent, + changedEventData[12].target === sharedString, `Unexpected event type - ${typeof changedEventData[12]}`, ); - assert.equal(changedEventData[13], 2); + assert.equal(changedEventData[3].event, 2); // segments are split up at some point - reason for multiple events assert( - changedEventData[14] instanceof SequenceDeltaEvent, + changedEventData[14].target === sharedString, `Unexpected event type - ${typeof changedEventData[14]}`, ); assert( - changedEventData[15] instanceof SequenceDeltaEvent, + changedEventData[15].target === sharedString, `Unexpected event type - ${typeof changedEventData[15]}`, ); - assert.deepEqual(changedEventData[16], { key: "key1", previousValue: 3 }); + assert.deepEqual(changedEventData[3].event, { key: "key1", previousValue: 3 }); }); it("Should handle rollback on multiple instances of the same DDS type", () => { @@ -287,41 +286,41 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi assert.equal(changedEventData.length, 9); assert( - changedEventData[0] instanceof SequenceDeltaEvent, + changedEventData[0].target === sharedString, `Unexpected event type - ${typeof changedEventData[0]}`, ); - assert.deepEqual(changedEventData[1], { key: "key", previousValue: undefined }); + assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: undefined }); assert( - changedEventData[2] instanceof SequenceDeltaEvent, + changedEventData[2].target === sharedString, `Unexpected event type - ${typeof changedEventData[2]}`, ); - assert.deepEqual(changedEventData[3], { key: "key", previousValue: 1 }); + assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: 1 }); assert( - changedEventData[4] instanceof SequenceDeltaEvent, + changedEventData[4].target === sharedString, `Unexpected event type - ${typeof changedEventData[4]}`, ); assert( - changedEventData[5] instanceof SequenceDeltaEvent, + changedEventData[5].target === sharedString, `Unexpected event type - ${typeof changedEventData[5]}`, ); // rollback assert( - changedEventData[6] instanceof SequenceDeltaEvent, + changedEventData[6].target === sharedString, `Unexpected event type - ${typeof changedEventData[6]}`, ); assert( - changedEventData[7] instanceof SequenceDeltaEvent, + changedEventData[7].target === sharedString, `Unexpected event type - ${typeof changedEventData[7]}`, ); - assert.deepEqual(changedEventData[8], { key: "key", previousValue: undefined }); + assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: undefined }); }); it("Should handle nested calls to orderSequentially", () => { @@ -357,30 +356,30 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi assert.equal(changedEventData.length, 8); assert( - changedEventData[0] instanceof SequenceDeltaEvent, + changedEventData[0].target === sharedString, `Unexpected event type - ${typeof changedEventData[0]}`, ); - assert.deepEqual(changedEventData[1], { key: "key", previousValue: undefined }); + assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: undefined }); - assert.deepEqual(changedEventData[2], { key: "key", previousValue: 1 }); + assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: 1 }); assert( - changedEventData[3] instanceof SequenceDeltaEvent, + changedEventData[3].target === sharedString, `Unexpected event type - ${typeof changedEventData[3]}`, ); // rollback - inner orderSequentially call assert( - changedEventData[4] instanceof SequenceDeltaEvent, + changedEventData[4].target === sharedString, `Unexpected event type - ${typeof changedEventData[4]}`, ); - assert.deepEqual(changedEventData[5], { key: "key", previousValue: 0 }); + assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: 0 }); // rollback - outer orderSequentially call - assert.deepEqual(changedEventData[6], { key: "key", previousValue: undefined }); + assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: undefined }); - assert.deepEqual(changedEventData[7], { key: "key", previousValue: 0 }); + assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: 0 }); }); }); From 1c687be917ff616198501669ae5e8277140d4ec7 Mon Sep 17 00:00:00 2001 From: Tony Murphy Date: Wed, 25 Sep 2024 10:04:17 -0700 Subject: [PATCH 02/11] update type tests --- .../api-report/merge-tree.legacy.alpha.api.md | 99 -- packages/dds/sequence/package.json | 27 +- .../validateSequencePrevious.generated.ts | 944 ++++++++++++++++++ 3 files changed, 966 insertions(+), 104 deletions(-) create mode 100644 packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts diff --git a/packages/dds/merge-tree/api-report/merge-tree.legacy.alpha.api.md b/packages/dds/merge-tree/api-report/merge-tree.legacy.alpha.api.md index fda47debe7c0..6faa454bd04a 100644 --- a/packages/dds/merge-tree/api-report/merge-tree.legacy.alpha.api.md +++ b/packages/dds/merge-tree/api-report/merge-tree.legacy.alpha.api.md @@ -78,91 +78,6 @@ export abstract class BaseSegment implements ISegment { wasMovedOnInsert?: boolean | undefined; } -// @alpha @deprecated (undocumented) -export class Client extends TypedEventEmitter { - constructor(specToSegment: (spec: IJSONSegment) => ISegment, logger: ITelemetryLoggerExt, options?: IMergeTreeOptions & PropertySet, getMinInFlightRefSeq?: () => number | undefined); - // (undocumented) - addLongClientId(longClientId: string): void; - annotateMarker(marker: Marker, props: PropertySet): IMergeTreeAnnotateMsg | undefined; - annotateRangeLocal(start: number, end: number, props: PropertySet): IMergeTreeAnnotateMsg | undefined; - // (undocumented) - applyMsg(msg: ISequencedDocumentMessage, local?: boolean): void; - // (undocumented) - applyStashedOp(op: IMergeTreeOp): void; - createLocalReferencePosition(segment: ISegment | "start" | "end", offset: number | undefined, refType: ReferenceType, properties: PropertySet | undefined, slidingPreference?: SlidingPreference, canSlideToEndpoint?: boolean): LocalReferencePosition; - // (undocumented) - createTextHelper(): IMergeTreeTextHelper; - findReconnectionPosition(segment: ISegment, localSeq: number): number; - // (undocumented) - getClientId(): number; - // (undocumented) - getCollabWindow(): CollaborationWindow; - // (undocumented) - getContainingSegment(pos: number, sequenceArgs?: Pick, localSeq?: number): { - segment: T | undefined; - offset: number | undefined; - }; - // (undocumented) - getCurrentSeq(): number; - // (undocumented) - getLength(): number; - // (undocumented) - getLongClientId(shortClientId: number): string; - // (undocumented) - getMarkerFromId(id: string): ISegment | undefined; - // (undocumented) - getOrAddShortClientId(longClientId: string): number; - getPosition(segment: ISegment | undefined, localSeq?: number): number; - // (undocumented) - getPropertiesAtPosition(pos: number): PropertySet | undefined; - // (undocumented) - getRangeExtentsOfPosition(pos: number): { - posStart: number | undefined; - posAfterEnd: number | undefined; - }; - // (undocumented) - protected getShortClientId(longClientId: string): number; - insertAtReferencePositionLocal(refPos: ReferencePosition, segment: ISegment): IMergeTreeInsertMsg | undefined; - insertSegmentLocal(pos: number, segment: ISegment): IMergeTreeInsertMsg | undefined; - // (undocumented) - load(runtime: IFluidDataStoreRuntime, storage: IChannelStorageService, serializer: IFluidSerializer): Promise<{ - catchupOpsP: Promise; - }>; - localReferencePositionToPosition(lref: ReferencePosition): number; - // (undocumented) - localTransaction(groupOp: IMergeTreeGroupMsg): void; - // (undocumented) - readonly logger: ITelemetryLoggerExt; - // (undocumented) - longClientId: string | undefined; - obliterateRangeLocal(start: number | InteriorSequencePlace, end: number | InteriorSequencePlace): IMergeTreeObliterateMsg | IMergeTreeObliterateSidedMsg; - peekPendingSegmentGroups(): SegmentGroup | undefined; - // (undocumented) - peekPendingSegmentGroups(count: number): SegmentGroup | SegmentGroup[] | undefined; - posFromRelativePos(relativePos: IRelativePosition): number; - regeneratePendingOp(resetOp: IMergeTreeOp, segmentGroup: SegmentGroup | SegmentGroup[]): IMergeTreeOp; - removeLocalReferencePosition(lref: LocalReferencePosition): LocalReferencePosition | undefined; - removeRangeLocal(start: number, end: number): IMergeTreeRemoveMsg; - resolveRemoteClientPosition(remoteClientPosition: number, remoteClientRefSeq: number, remoteClientId: string): number | undefined; - rollback?(op: unknown, localOpMetadata: unknown): void; - searchForMarker(startPos: number, markerLabel: string, forwards?: boolean): Marker | undefined; - serializeGCData(handle: IFluidHandle, handleCollectingSerializer: IFluidSerializer): void; - // (undocumented) - readonly specToSegment: (spec: IJSONSegment) => ISegment; - // (undocumented) - startOrUpdateCollaboration(longClientId: string | undefined, minSeq?: number, currentSeq?: number): void; - // (undocumented) - summarize(runtime: IFluidDataStoreRuntime, handle: IFluidHandle, serializer: IFluidSerializer, catchUpMsgs: ISequencedDocumentMessage[]): ISummaryTreeWithStats; - // (undocumented) - updateMinSeq(minSeq: number): void; - // (undocumented) - protected walkAllSegments(action: (segment: ISegment, accum?: TClientData) => boolean, accum?: TClientData): boolean; - // (undocumented) - walkSegments(handler: ISegmentAction, start: number | undefined, end: number | undefined, accum: TClientData, splitRange?: boolean): void; - // (undocumented) - walkSegments(handler: ISegmentAction, start?: number, end?: number, accum?: undefined, splitRange?: boolean): void; -} - // @alpha @deprecated (undocumented) export class CollaborationWindow { // (undocumented) @@ -365,20 +280,6 @@ export interface IMergeTreeObliterateSidedMsg extends IMergeTreeDelta { // @alpha (undocumented) export type IMergeTreeOp = IMergeTreeDeltaOp | IMergeTreeGroupMsg; -// @alpha (undocumented) -export interface IMergeTreeOptions { - attribution?: IMergeTreeAttributionOptions; - // (undocumented) - catchUpBlobName?: string; - mergeTreeEnableObliterate?: boolean; - mergeTreeEnableObliterateReconnect?: boolean; - mergeTreeEnableSidedObliterate?: boolean; - mergeTreeReferencesCanSlideToEndpoint?: boolean; - // (undocumented) - mergeTreeSnapshotChunkSize?: number; - newMergeTreeSnapshotFormat?: boolean; -} - // @alpha (undocumented) export interface IMergeTreeRemoveMsg extends IMergeTreeDelta { // (undocumented) diff --git a/packages/dds/sequence/package.json b/packages/dds/sequence/package.json index 0aebae71c6a4..601595bc9354 100644 --- a/packages/dds/sequence/package.json +++ b/packages/dds/sequence/package.json @@ -191,21 +191,38 @@ } }, "typeValidation": { - "disabled": true, - "entrypoint": "legacy", "broken": { "ClassStatics_SequenceMaintenanceEvent": { - "backCompat": false + "backCompat": false, + "forwardCompat": false }, "Class_SequenceMaintenanceEvent": { - "backCompat": false + "backCompat": false, + "forwardCompat": false }, "ClassStatics_SequenceDeltaEvent": { + "backCompat": false, + "forwardCompat": false + }, + "ClassStatics_SequenceEvent": { "backCompat": false }, "Class_SequenceDeltaEvent": { "backCompat": false + }, + "Class_SequenceInterval": { + "backCompat": false + }, + "ClassStatics_SequenceInterval": { + "backCompat": false + }, + "TypeAlias_IntervalRevertible": { + "backCompat": false + }, + "TypeAlias_SharedStringRevertible": { + "backCompat": false } - } + }, + "entrypoint": "legacy" } } diff --git a/packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts b/packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts new file mode 100644 index 000000000000..57488fa3eb17 --- /dev/null +++ b/packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts @@ -0,0 +1,944 @@ +/*! + * Copyright (c) Microsoft Corporation and contributors. All rights reserved. + * Licensed under the MIT License. + */ + +/* + * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + * Generated by flub generate:typetests in @fluid-tools/build-cli. + */ + +import type { TypeOnly, MinimalType, FullType, requireAssignableTo } from "@fluidframework/build-tools"; +import type * as old from "@fluidframework/sequence-previous/internal"; + +import type * as current from "../../index.js"; + +declare type MakeUnusedImportErrorsGoAway = TypeOnly | MinimalType | FullType | typeof old | typeof current | requireAssignableTo; + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_BaseSegment": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_BaseSegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_BaseSegment": {"backCompat": false} + */ +declare type current_as_old_for_Class_BaseSegment = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_Marker": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_Marker = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_Marker": {"backCompat": false} + */ +declare type current_as_old_for_Class_Marker = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceDeltaEvent": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_SequenceDeltaEvent = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceDeltaEvent": {"backCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type current_as_old_for_Class_SequenceDeltaEvent = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceEvent": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_SequenceEvent = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceEvent": {"backCompat": false} + */ +declare type current_as_old_for_Class_SequenceEvent = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceInterval": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_SequenceInterval = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceInterval": {"backCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type current_as_old_for_Class_SequenceInterval = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceMaintenanceEvent": {"forwardCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type old_as_current_for_Class_SequenceMaintenanceEvent = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceMaintenanceEvent": {"backCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type current_as_old_for_Class_SequenceMaintenanceEvent = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SharedSegmentSequence": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_SharedSegmentSequence = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SharedSegmentSequence": {"backCompat": false} + */ +declare type current_as_old_for_Class_SharedSegmentSequence = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SharedStringClass": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_SharedStringClass = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SharedStringClass": {"backCompat": false} + */ +declare type current_as_old_for_Class_SharedStringClass = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_TextSegment": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_TextSegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_TextSegment": {"backCompat": false} + */ +declare type current_as_old_for_Class_TextSegment = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_TrackingGroup": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_TrackingGroup = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_TrackingGroup": {"backCompat": false} + */ +declare type current_as_old_for_Class_TrackingGroup = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_BaseSegment": {"backCompat": false} + */ +declare type current_as_old_for_ClassStatics_BaseSegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_Marker": {"backCompat": false} + */ +declare type current_as_old_for_ClassStatics_Marker = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_SequenceDeltaEvent": {"backCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type current_as_old_for_ClassStatics_SequenceDeltaEvent = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_SequenceEvent": {"backCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type current_as_old_for_ClassStatics_SequenceEvent = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_SequenceInterval": {"backCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type current_as_old_for_ClassStatics_SequenceInterval = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_SequenceMaintenanceEvent": {"backCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type current_as_old_for_ClassStatics_SequenceMaintenanceEvent = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_SharedSegmentSequence": {"backCompat": false} + */ +declare type current_as_old_for_ClassStatics_SharedSegmentSequence = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_SharedStringClass": {"backCompat": false} + */ +declare type current_as_old_for_ClassStatics_SharedStringClass = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_TextSegment": {"backCompat": false} + */ +declare type current_as_old_for_ClassStatics_TextSegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_TrackingGroup": {"backCompat": false} + */ +declare type current_as_old_for_ClassStatics_TrackingGroup = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Enum_IntervalType": {"forwardCompat": false} + */ +declare type old_as_current_for_Enum_IntervalType = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Enum_IntervalType": {"backCompat": false} + */ +declare type current_as_old_for_Enum_IntervalType = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Enum_ReferenceType": {"forwardCompat": false} + */ +declare type old_as_current_for_Enum_ReferenceType = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Enum_ReferenceType": {"backCompat": false} + */ +declare type current_as_old_for_Enum_ReferenceType = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Enum_Side": {"forwardCompat": false} + */ +declare type old_as_current_for_Enum_Side = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Enum_Side": {"backCompat": false} + */ +declare type current_as_old_for_Enum_Side = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_appendAddIntervalToRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_appendAddIntervalToRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_appendChangeIntervalToRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_appendChangeIntervalToRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_appendDeleteIntervalToRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_appendDeleteIntervalToRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_appendIntervalPropertyChangedToRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_appendIntervalPropertyChangedToRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_appendSharedStringDeltaToRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_appendSharedStringDeltaToRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_createOverlappingIntervalsIndex": {"backCompat": false} + */ +declare type current_as_old_for_Function_createOverlappingIntervalsIndex = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_discardSharedStringRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_discardSharedStringRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_revertSharedStringRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_revertSharedStringRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IInterval": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_IInterval = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IInterval": {"backCompat": false} + */ +declare type current_as_old_for_Interface_IInterval = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IIntervalCollection": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_IIntervalCollection = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IIntervalCollection": {"backCompat": false} + */ +declare type current_as_old_for_Interface_IIntervalCollection = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IIntervalCollectionEvent": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_IIntervalCollectionEvent = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IIntervalCollectionEvent": {"backCompat": false} + */ +declare type current_as_old_for_Interface_IIntervalCollectionEvent = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_InteriorSequencePlace": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_InteriorSequencePlace = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_InteriorSequencePlace": {"backCompat": false} + */ +declare type current_as_old_for_Interface_InteriorSequencePlace = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IntervalIndex": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_IntervalIndex = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IntervalIndex": {"backCompat": false} + */ +declare type current_as_old_for_Interface_IntervalIndex = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IOverlappingIntervalsIndex": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_IOverlappingIntervalsIndex = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IOverlappingIntervalsIndex": {"backCompat": false} + */ +declare type current_as_old_for_Interface_IOverlappingIntervalsIndex = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISegment": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISegment": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISegment = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISequenceDeltaRange": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISequenceDeltaRange = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISequenceDeltaRange": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISequenceDeltaRange = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISerializableInterval": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISerializableInterval = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISerializableInterval": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISerializableInterval = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISerializedInterval": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISerializedInterval = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISerializedInterval": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISerializedInterval = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedIntervalCollection": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISharedIntervalCollection = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedIntervalCollection": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISharedIntervalCollection = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedSegmentSequence": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISharedSegmentSequence = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedSegmentSequence": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISharedSegmentSequence = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedSegmentSequenceEvents": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISharedSegmentSequenceEvents = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedSegmentSequenceEvents": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISharedSegmentSequenceEvents = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedString": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISharedString = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedString": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISharedString = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_LocalReferencePosition": {"backCompat": false} + */ +declare type current_as_old_for_Interface_LocalReferencePosition = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_MapLike": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_MapLike = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_MapLike": {"backCompat": false} + */ +declare type current_as_old_for_Interface_MapLike = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ReferencePosition": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ReferencePosition = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ReferencePosition": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ReferencePosition = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_DeserializeCallback": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_DeserializeCallback = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_DeserializeCallback": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_DeserializeCallback = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_IntervalOpType": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_IntervalOpType = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_IntervalOpType": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_IntervalOpType = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_IntervalRevertible": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_IntervalRevertible = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_IntervalRevertible": {"backCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type current_as_old_for_TypeAlias_IntervalRevertible = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_IntervalStickiness": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_IntervalStickiness = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_IntervalStickiness": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_IntervalStickiness = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_MergeTreeDeltaType": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_MergeTreeDeltaType = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_MergeTreeDeltaType": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_MergeTreeDeltaType = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_PropertySet": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_PropertySet = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_PropertySet": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_PropertySet = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SequencePlace": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_SequencePlace = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SequencePlace": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_SequencePlace = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SharedString": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_SharedString = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SharedString": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_SharedString = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SharedStringRevertible": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_SharedStringRevertible = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SharedStringRevertible": {"backCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type current_as_old_for_TypeAlias_SharedStringRevertible = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SharedStringSegment": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_SharedStringSegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SharedStringSegment": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_SharedStringSegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Variable_IntervalOpType": {"backCompat": false} + */ +declare type current_as_old_for_Variable_IntervalOpType = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Variable_IntervalStickiness": {"backCompat": false} + */ +declare type current_as_old_for_Variable_IntervalStickiness = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Variable_MergeTreeDeltaType": {"backCompat": false} + */ +declare type current_as_old_for_Variable_MergeTreeDeltaType = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Variable_reservedMarkerIdKey": {"backCompat": false} + */ +declare type current_as_old_for_Variable_reservedMarkerIdKey = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Variable_SharedString": {"backCompat": false} + */ +declare type current_as_old_for_Variable_SharedString = requireAssignableTo, TypeOnly> From 8d7ef70e56b7b0d8674e2ce1e866ae2f9a58dcee Mon Sep 17 00:00:00 2001 From: Tony Murphy Date: Wed, 25 Sep 2024 11:49:42 -0700 Subject: [PATCH 03/11] fix tests --- .../src/test/orderSequentially.spec.ts | 51 ++++++++++--------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/packages/test/test-end-to-end-tests/src/test/orderSequentially.spec.ts b/packages/test/test-end-to-end-tests/src/test/orderSequentially.spec.ts index 5151248e2945..013af583f215 100644 --- a/packages/test/test-end-to-end-tests/src/test/orderSequentially.spec.ts +++ b/packages/test/test-end-to-end-tests/src/test/orderSequentially.spec.ts @@ -134,25 +134,28 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi assert.equal(sharedCell.get(), 2); assert.equal(changedEventData.length, 9); - assert(changedEventData[3].event, `Unexpected event type - ${typeof changedEventData[0]}`); + assert( + changedEventData[0].target === sharedString, + `Unexpected event type - ${typeof changedEventData[0]}`, + ); - assert.deepEqual(changedEventData[3].event, { key: "key1", previousValue: undefined }); + assert.deepEqual(changedEventData[1].event, { key: "key1", previousValue: undefined }); - assert.equal(changedEventData[3].event, 2); + assert.equal(changedEventData[2].event, 2); assert( changedEventData[3].target === sharedString, `Unexpected event type - ${typeof changedEventData[3]}`, ); - assert.deepEqual(changedEventData[3].event, { key: "key1", previousValue: 0 }); + assert.deepEqual(changedEventData[4].event, { key: "key1", previousValue: 0 }); - assert.equal(changedEventData[3].event, undefined); + assert.equal(changedEventData[5].event, undefined); // rollback - assert.equal(changedEventData[3].event, 2); + assert.equal(changedEventData[6].event, 2); - assert.deepEqual(changedEventData[3].event, { key: "key1", previousValue: undefined }); + assert.deepEqual(changedEventData[7].event, { key: "key1", previousValue: undefined }); assert( changedEventData[8].target === sharedString, @@ -202,7 +205,7 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi `Unexpected event type - ${typeof changedEventData[0]}`, ); - assert.deepEqual(changedEventData[3].event, { key: "key1", previousValue: undefined }); + assert.deepEqual(changedEventData[1].event, { key: "key1", previousValue: undefined }); assert( changedEventData[2].target === sharedString, @@ -211,24 +214,24 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi assert.equal(changedEventData[3].event, 2); - assert.deepEqual(changedEventData[3].event, { key: "key1", previousValue: 0 }); + assert.deepEqual(changedEventData[4].event, { key: "key1", previousValue: 0 }); assert( changedEventData[5].target === sharedString, `Unexpected event type - ${typeof changedEventData[5]}`, ); - assert.equal(changedEventData[3].event, 5); + assert.equal(changedEventData[6].event, 5); assert( changedEventData[7].target === sharedString, `Unexpected event type - ${typeof changedEventData[7]}`, ); - assert.equal(changedEventData[3].event, undefined); + assert.equal(changedEventData[8].event, undefined); // rollback - assert.equal(changedEventData[3].event, 5); + assert.equal(changedEventData[9].event, 5); // segments are split up at some point - reason for multiple events assert( @@ -244,7 +247,7 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi `Unexpected event type - ${typeof changedEventData[12]}`, ); - assert.equal(changedEventData[3].event, 2); + assert.equal(changedEventData[13].event, 2); // segments are split up at some point - reason for multiple events assert( changedEventData[14].target === sharedString, @@ -255,7 +258,7 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi `Unexpected event type - ${typeof changedEventData[15]}`, ); - assert.deepEqual(changedEventData[3].event, { key: "key1", previousValue: 3 }); + assert.deepEqual(changedEventData[16].event, { key: "key1", previousValue: 3 }); }); it("Should handle rollback on multiple instances of the same DDS type", () => { @@ -290,17 +293,17 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi `Unexpected event type - ${typeof changedEventData[0]}`, ); - assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: undefined }); + assert.deepEqual(changedEventData[1].event, { key: "key", previousValue: undefined }); assert( - changedEventData[2].target === sharedString, + changedEventData[2].target === sharedString2, `Unexpected event type - ${typeof changedEventData[2]}`, ); assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: 1 }); assert( - changedEventData[4].target === sharedString, + changedEventData[4].target === sharedString2, `Unexpected event type - ${typeof changedEventData[4]}`, ); @@ -316,11 +319,11 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi ); assert( - changedEventData[7].target === sharedString, + changedEventData[7].target === sharedString2, `Unexpected event type - ${typeof changedEventData[7]}`, ); - assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: undefined }); + assert.deepEqual(changedEventData[8].event, { key: "key", previousValue: undefined }); }); it("Should handle nested calls to orderSequentially", () => { @@ -360,9 +363,9 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi `Unexpected event type - ${typeof changedEventData[0]}`, ); - assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: undefined }); + assert.deepEqual(changedEventData[1].event, { key: "key", previousValue: undefined }); - assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: 1 }); + assert.deepEqual(changedEventData[2].event, { key: "key", previousValue: 1 }); assert( changedEventData[3].target === sharedString, @@ -375,11 +378,11 @@ describeCompat("Multiple DDS orderSequentially", "NoCompat", (getTestObjectProvi `Unexpected event type - ${typeof changedEventData[4]}`, ); - assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: 0 }); + assert.deepEqual(changedEventData[5].event, { key: "key", previousValue: 0 }); // rollback - outer orderSequentially call - assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: undefined }); + assert.deepEqual(changedEventData[6].event, { key: "key", previousValue: undefined }); - assert.deepEqual(changedEventData[3].event, { key: "key", previousValue: 0 }); + assert.deepEqual(changedEventData[7].event, { key: "key", previousValue: 0 }); }); }); From 36ae191d7e82b9ec08c980ae996f3b76db50dd71 Mon Sep 17 00:00:00 2001 From: Tony Murphy Date: Tue, 8 Oct 2024 12:42:14 -0700 Subject: [PATCH 04/11] remove some deprecations --- packages/dds/sequence/src/intervals/sequenceInterval.ts | 3 --- packages/dds/sequence/src/sequenceDeltaEvent.ts | 6 ------ 2 files changed, 9 deletions(-) diff --git a/packages/dds/sequence/src/intervals/sequenceInterval.ts b/packages/dds/sequence/src/intervals/sequenceInterval.ts index c93042b2f836..cced4bff852e 100644 --- a/packages/dds/sequence/src/intervals/sequenceInterval.ts +++ b/packages/dds/sequence/src/intervals/sequenceInterval.ts @@ -140,9 +140,6 @@ export class SequenceIntervalClass implements SequenceInterval { ); } - /** - * @deprecated This functionality was not meant to be exported and will be removed in a future release - */ constructor( private readonly client: Client, /** diff --git a/packages/dds/sequence/src/sequenceDeltaEvent.ts b/packages/dds/sequence/src/sequenceDeltaEvent.ts index ab05d4806191..d46a3421d110 100644 --- a/packages/dds/sequence/src/sequenceDeltaEvent.ts +++ b/packages/dds/sequence/src/sequenceDeltaEvent.ts @@ -67,9 +67,6 @@ export abstract class SequenceEventClass< private readonly pFirst: Lazy>; private readonly pLast: Lazy>; - /** - * @deprecated This functionality was not meant to be exported and will be removed in a future release - */ constructor( /** * Arguments reflecting the type of change that caused this event. @@ -165,9 +162,6 @@ export class SequenceDeltaEventClass extends SequenceEventClass Date: Thu, 17 Oct 2024 11:28:27 -0700 Subject: [PATCH 05/11] Add IMergeTreeOptionsInternal --- .../api-report/merge-tree.legacy.alpha.api.md | 13 + packages/dds/merge-tree/src/client.ts | 8 +- packages/dds/merge-tree/src/index.ts | 1 + packages/dds/merge-tree/src/mergeTree.ts | 21 +- packages/dds/merge-tree/src/test/index.ts | 7 +- .../dds/merge-tree/src/test/snapshot.spec.ts | 4 +- .../dds/merge-tree/src/test/snapshot.utils.ts | 8 +- .../validateSequencePrevious.generated.ts | 940 ------------------ 8 files changed, 46 insertions(+), 956 deletions(-) delete mode 100644 packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts diff --git a/packages/dds/merge-tree/api-report/merge-tree.legacy.alpha.api.md b/packages/dds/merge-tree/api-report/merge-tree.legacy.alpha.api.md index 9d842fe277f0..b5d52585c88d 100644 --- a/packages/dds/merge-tree/api-report/merge-tree.legacy.alpha.api.md +++ b/packages/dds/merge-tree/api-report/merge-tree.legacy.alpha.api.md @@ -267,6 +267,19 @@ export interface IMergeTreeObliterateSidedMsg extends IMergeTreeDelta { // @alpha (undocumented) export type IMergeTreeOp = IMergeTreeDeltaOp | IMergeTreeGroupMsg; +// @alpha (undocumented) +export interface IMergeTreeOptions { + // (undocumented) + catchUpBlobName?: string; + mergeTreeEnableObliterate?: boolean; + mergeTreeEnableObliterateReconnect?: boolean; + mergeTreeEnableSidedObliterate?: boolean; + mergeTreeReferencesCanSlideToEndpoint?: boolean; + // (undocumented) + mergeTreeSnapshotChunkSize?: number; + newMergeTreeSnapshotFormat?: boolean; +} + // @alpha (undocumented) export interface IMergeTreeRemoveMsg extends IMergeTreeDelta { // (undocumented) diff --git a/packages/dds/merge-tree/src/client.ts b/packages/dds/merge-tree/src/client.ts index 93235e8a07b3..9d997b9fd5c5 100644 --- a/packages/dds/merge-tree/src/client.ts +++ b/packages/dds/merge-tree/src/client.ts @@ -29,7 +29,11 @@ import { MergeTreeTextHelper } from "./MergeTreeTextHelper.js"; import { DoublyLinkedList, RedBlackTree } from "./collections/index.js"; import { UnassignedSequenceNumber, UniversalSequenceNumber } from "./constants.js"; import { LocalReferencePosition, SlidingPreference } from "./localReference.js"; -import { IMergeTreeOptions, MergeTree, errorIfOptionNotTrue } from "./mergeTree.js"; +import { + MergeTree, + errorIfOptionNotTrue, + type IMergeTreeOptionsInternal, +} from "./mergeTree.js"; import type { IMergeTreeClientSequenceArgs, IMergeTreeDeltaCallbackArgs, @@ -151,7 +155,7 @@ export class Client extends TypedEventEmitter { constructor( public readonly specToSegment: (spec: IJSONSegment) => ISegment, public readonly logger: ITelemetryLoggerExt, - options?: IMergeTreeOptions & PropertySet, + options?: IMergeTreeOptionsInternal & PropertySet, private readonly getMinInFlightRefSeq: () => number | undefined = (): undefined => undefined, ) { diff --git a/packages/dds/merge-tree/src/index.ts b/packages/dds/merge-tree/src/index.ts index 641300799a5b..aea290836b91 100644 --- a/packages/dds/merge-tree/src/index.ts +++ b/packages/dds/merge-tree/src/index.ts @@ -42,6 +42,7 @@ export { AttributionPolicy, IMergeTreeAttributionOptions, IMergeTreeOptions, + IMergeTreeOptionsInternal, getSlideToSegoff, } from "./mergeTree.js"; export { diff --git a/packages/dds/merge-tree/src/mergeTree.ts b/packages/dds/merge-tree/src/mergeTree.ts index d41d153d98fb..cebfe829d65c 100644 --- a/packages/dds/merge-tree/src/mergeTree.ts +++ b/packages/dds/merge-tree/src/mergeTree.ts @@ -143,7 +143,8 @@ const LRUSegmentComparer: IComparer = { }; /** - * @internal + * @legacy + * @alpha */ export interface IMergeTreeOptions { catchUpBlobName?: string; @@ -175,11 +176,6 @@ export interface IMergeTreeOptions { */ newMergeTreeSnapshotFormat?: boolean; - /** - * Options related to attribution - */ - attribution?: IMergeTreeAttributionOptions; - /** * Enables support for the obliterate operation -- a stronger form of remove * which deletes concurrently inserted segments @@ -210,6 +206,17 @@ export interface IMergeTreeOptions { */ mergeTreeEnableSidedObliterate?: boolean; } + +/** + * @internal + */ +export interface IMergeTreeOptionsInternal extends IMergeTreeOptions { + /** + * Options related to attribution + */ + attribution?: IMergeTreeAttributionOptions; +} + export function errorIfOptionNotTrue( options: IMergeTreeOptions | undefined, option: keyof IMergeTreeOptions, @@ -520,7 +527,7 @@ export class MergeTree { private readonly obliterates = new Obliterates(this); - public constructor(public options?: IMergeTreeOptions) { + public constructor(public options?: IMergeTreeOptionsInternal) { this._root = this.makeBlock(0); this._root.mergeTree = this; this.attributionPolicy = options?.attribution?.policyFactory?.(); diff --git a/packages/dds/merge-tree/src/test/index.ts b/packages/dds/merge-tree/src/test/index.ts index 51fd4fab6f13..56f9ce949f5b 100644 --- a/packages/dds/merge-tree/src/test/index.ts +++ b/packages/dds/merge-tree/src/test/index.ts @@ -39,7 +39,12 @@ export { runMergeTreeOperationRunner, TestOperation, } from "./mergeTreeOperationRunner.js"; -export { LRUSegment, MergeTree } from "../mergeTree.js"; +export { + LRUSegment, + MergeTree, + IMergeTreeOptions, + IMergeTreeOptionsInternal, +} from "../mergeTree.js"; export { MergeTreeTextHelper } from "../MergeTreeTextHelper.js"; export { SnapshotLegacy } from "../snapshotlegacy.js"; export { diff --git a/packages/dds/merge-tree/src/test/snapshot.spec.ts b/packages/dds/merge-tree/src/test/snapshot.spec.ts index 706cfc0be3a4..4e5e8059f268 100644 --- a/packages/dds/merge-tree/src/test/snapshot.spec.ts +++ b/packages/dds/merge-tree/src/test/snapshot.spec.ts @@ -9,12 +9,12 @@ import { createInsertOnlyAttributionPolicy, createPropertyTrackingAttributionPolicyFactory, } from "../attributionPolicy.js"; -import { IMergeTreeOptions } from "../mergeTree.js"; +import { IMergeTreeOptionsInternal } from "../mergeTree.js"; import { SnapshotV1 } from "../snapshotV1.js"; import { TestString, loadSnapshot } from "./snapshot.utils.js"; -function makeSnapshotSuite(options?: IMergeTreeOptions): void { +function makeSnapshotSuite(options?: IMergeTreeOptionsInternal): void { describe("from an empty initial state", () => { let str: TestString; beforeEach(() => { diff --git a/packages/dds/merge-tree/src/test/snapshot.utils.ts b/packages/dds/merge-tree/src/test/snapshot.utils.ts index cabdac4dc431..49d88b4b97e0 100644 --- a/packages/dds/merge-tree/src/test/snapshot.utils.ts +++ b/packages/dds/merge-tree/src/test/snapshot.utils.ts @@ -12,7 +12,7 @@ import { ISummaryTree } from "@fluidframework/driver-definitions"; import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal"; import { MockStorage } from "@fluidframework/test-runtime-utils/internal"; -import { IMergeTreeOptions } from "../mergeTree.js"; +import { type IMergeTreeOptionsInternal } from "../mergeTree.js"; import { ISegment } from "../mergeTreeNodes.js"; import { IMergeTreeOp, ReferenceType } from "../ops.js"; import { PropertySet } from "../properties.js"; @@ -25,7 +25,7 @@ import { TestSerializer } from "./testSerializer.js"; // Reconstitutes a MergeTree client from a summary export async function loadSnapshot( summary: ISummaryTree, - options?: IMergeTreeOptions, + options?: IMergeTreeOptionsInternal, ): Promise { const services = MockStorage.createFromSummary(summary); const client2 = new TestClient(options); @@ -52,7 +52,7 @@ export class TestString { constructor( id: string, - private readonly options?: IMergeTreeOptions, + private readonly options?: IMergeTreeOptionsInternal, initialState: string = "", ) { this.client = createClientsAtInitialState({ initialState, options }, id)[id]; @@ -109,7 +109,7 @@ export class TestString { } // Ensures the MergeTree client's contents successfully roundtrip through a snapshot. - public async checkSnapshot(options?: IMergeTreeOptions): Promise { + public async checkSnapshot(options?: IMergeTreeOptionsInternal): Promise { this.applyPendingOps(); const expectedAttributionKeys = this.client.getAllAttributionSeqs(); const summary = this.getSummary(); diff --git a/packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts b/packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts deleted file mode 100644 index c14690491a76..000000000000 --- a/packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts +++ /dev/null @@ -1,940 +0,0 @@ -/*! - * Copyright (c) Microsoft Corporation and contributors. All rights reserved. - * Licensed under the MIT License. - */ - -/* - * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. - * Generated by flub generate:typetests in @fluid-tools/build-cli. - */ - -import type { TypeOnly, MinimalType, FullType, requireAssignableTo } from "@fluidframework/build-tools"; -import type * as old from "@fluidframework/sequence-previous/internal"; - -import type * as current from "../../index.js"; - -declare type MakeUnusedImportErrorsGoAway = TypeOnly | MinimalType | FullType | typeof old | typeof current | requireAssignableTo; - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_BaseSegment": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_BaseSegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_BaseSegment": {"backCompat": false} - */ -declare type current_as_old_for_Class_BaseSegment = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_Marker": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_Marker = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_Marker": {"backCompat": false} - */ -declare type current_as_old_for_Class_Marker = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceDeltaEvent": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SequenceDeltaEvent = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceDeltaEvent": {"backCompat": false} - */ -declare type current_as_old_for_Class_SequenceDeltaEvent = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceEvent": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SequenceEvent = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceEvent": {"backCompat": false} - */ -declare type current_as_old_for_Class_SequenceEvent = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceInterval": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SequenceInterval = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceInterval": {"backCompat": false} - */ -// @ts-expect-error compatibility expected to be broken -declare type current_as_old_for_Class_SequenceInterval = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceMaintenanceEvent": {"forwardCompat": false} - */ -// @ts-expect-error compatibility expected to be broken -declare type old_as_current_for_Class_SequenceMaintenanceEvent = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SequenceMaintenanceEvent": {"backCompat": false} - */ -declare type current_as_old_for_Class_SequenceMaintenanceEvent = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedSegmentSequence": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SharedSegmentSequence = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedSegmentSequence": {"backCompat": false} - */ -declare type current_as_old_for_Class_SharedSegmentSequence = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedStringClass": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_SharedStringClass = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_SharedStringClass": {"backCompat": false} - */ -declare type current_as_old_for_Class_SharedStringClass = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_TextSegment": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_TextSegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_TextSegment": {"backCompat": false} - */ -declare type current_as_old_for_Class_TextSegment = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_TrackingGroup": {"forwardCompat": false} - */ -declare type old_as_current_for_Class_TrackingGroup = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Class_TrackingGroup": {"backCompat": false} - */ -declare type current_as_old_for_Class_TrackingGroup = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_BaseSegment": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_BaseSegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_Marker": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_Marker = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SequenceDeltaEvent": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SequenceDeltaEvent = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SequenceEvent": {"backCompat": false} - */ -// @ts-expect-error compatibility expected to be broken -declare type current_as_old_for_ClassStatics_SequenceEvent = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SequenceInterval": {"backCompat": false} - */ -// @ts-expect-error compatibility expected to be broken -declare type current_as_old_for_ClassStatics_SequenceInterval = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SequenceMaintenanceEvent": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SequenceMaintenanceEvent = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SharedSegmentSequence": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SharedSegmentSequence = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_SharedStringClass": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_SharedStringClass = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_TextSegment": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_TextSegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "ClassStatics_TrackingGroup": {"backCompat": false} - */ -declare type current_as_old_for_ClassStatics_TrackingGroup = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Enum_IntervalType": {"forwardCompat": false} - */ -declare type old_as_current_for_Enum_IntervalType = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Enum_IntervalType": {"backCompat": false} - */ -declare type current_as_old_for_Enum_IntervalType = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Enum_ReferenceType": {"forwardCompat": false} - */ -declare type old_as_current_for_Enum_ReferenceType = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Enum_ReferenceType": {"backCompat": false} - */ -declare type current_as_old_for_Enum_ReferenceType = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Enum_Side": {"forwardCompat": false} - */ -declare type old_as_current_for_Enum_Side = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Enum_Side": {"backCompat": false} - */ -declare type current_as_old_for_Enum_Side = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_appendAddIntervalToRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_appendAddIntervalToRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_appendChangeIntervalToRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_appendChangeIntervalToRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_appendDeleteIntervalToRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_appendDeleteIntervalToRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_appendIntervalPropertyChangedToRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_appendIntervalPropertyChangedToRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_appendSharedStringDeltaToRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_appendSharedStringDeltaToRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_createOverlappingIntervalsIndex": {"backCompat": false} - */ -declare type current_as_old_for_Function_createOverlappingIntervalsIndex = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_discardSharedStringRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_discardSharedStringRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Function_revertSharedStringRevertibles": {"backCompat": false} - */ -declare type current_as_old_for_Function_revertSharedStringRevertibles = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IInterval": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IInterval = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IInterval": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IInterval = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IIntervalCollection": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IIntervalCollection = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IIntervalCollection": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IIntervalCollection = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IIntervalCollectionEvent": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IIntervalCollectionEvent = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IIntervalCollectionEvent": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IIntervalCollectionEvent = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_InteriorSequencePlace": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_InteriorSequencePlace = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_InteriorSequencePlace": {"backCompat": false} - */ -declare type current_as_old_for_Interface_InteriorSequencePlace = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IntervalIndex": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IntervalIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IntervalIndex": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IntervalIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IOverlappingIntervalsIndex": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_IOverlappingIntervalsIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_IOverlappingIntervalsIndex": {"backCompat": false} - */ -declare type current_as_old_for_Interface_IOverlappingIntervalsIndex = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISegment": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISegment": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISegment = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISequenceDeltaRange": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISequenceDeltaRange = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISequenceDeltaRange": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISequenceDeltaRange = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISerializableInterval": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISerializableInterval = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISerializableInterval": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISerializableInterval = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISerializedInterval": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISerializedInterval = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISerializedInterval": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISerializedInterval = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedIntervalCollection": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISharedIntervalCollection = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedIntervalCollection": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISharedIntervalCollection = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedSegmentSequence": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISharedSegmentSequence = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedSegmentSequence": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISharedSegmentSequence = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedSegmentSequenceEvents": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISharedSegmentSequenceEvents = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedSegmentSequenceEvents": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISharedSegmentSequenceEvents = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedString": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ISharedString = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ISharedString": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ISharedString = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_LocalReferencePosition": {"backCompat": false} - */ -declare type current_as_old_for_Interface_LocalReferencePosition = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_MapLike": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_MapLike = requireAssignableTo>, TypeOnly>> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_MapLike": {"backCompat": false} - */ -declare type current_as_old_for_Interface_MapLike = requireAssignableTo>, TypeOnly>> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ReferencePosition": {"forwardCompat": false} - */ -declare type old_as_current_for_Interface_ReferencePosition = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Interface_ReferencePosition": {"backCompat": false} - */ -declare type current_as_old_for_Interface_ReferencePosition = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_DeserializeCallback": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_DeserializeCallback = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_DeserializeCallback": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_DeserializeCallback = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_IntervalOpType": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_IntervalOpType = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_IntervalOpType": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_IntervalOpType = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_IntervalRevertible": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_IntervalRevertible = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_IntervalRevertible": {"backCompat": false} - */ -// @ts-expect-error compatibility expected to be broken -declare type current_as_old_for_TypeAlias_IntervalRevertible = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_IntervalStickiness": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_IntervalStickiness = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_IntervalStickiness": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_IntervalStickiness = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_MergeTreeDeltaType": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_MergeTreeDeltaType = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_MergeTreeDeltaType": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_MergeTreeDeltaType = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_PropertySet": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_PropertySet = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_PropertySet": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_PropertySet = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SequencePlace": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_SequencePlace = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SequencePlace": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_SequencePlace = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SharedString": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_SharedString = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SharedString": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_SharedString = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SharedStringRevertible": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_SharedStringRevertible = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SharedStringRevertible": {"backCompat": false} - */ -// @ts-expect-error compatibility expected to be broken -declare type current_as_old_for_TypeAlias_SharedStringRevertible = requireAssignableTo, TypeOnly> - -/* - * Validate forward compatibility by using the old type in place of the current type. - * If this test starts failing, it indicates a change that is not forward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SharedStringSegment": {"forwardCompat": false} - */ -declare type old_as_current_for_TypeAlias_SharedStringSegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "TypeAlias_SharedStringSegment": {"backCompat": false} - */ -declare type current_as_old_for_TypeAlias_SharedStringSegment = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Variable_IntervalOpType": {"backCompat": false} - */ -declare type current_as_old_for_Variable_IntervalOpType = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Variable_IntervalStickiness": {"backCompat": false} - */ -declare type current_as_old_for_Variable_IntervalStickiness = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Variable_MergeTreeDeltaType": {"backCompat": false} - */ -declare type current_as_old_for_Variable_MergeTreeDeltaType = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Variable_reservedMarkerIdKey": {"backCompat": false} - */ -declare type current_as_old_for_Variable_reservedMarkerIdKey = requireAssignableTo, TypeOnly> - -/* - * Validate backward compatibility by using the current type in place of the old type. - * If this test starts failing, it indicates a change that is not backward compatible. - * To acknowledge the breaking change, add the following to package.json under - * typeValidation.broken: - * "Variable_SharedString": {"backCompat": false} - */ -declare type current_as_old_for_Variable_SharedString = requireAssignableTo, TypeOnly> From 9b443b7efbb1b52be4c320bbd945c937e6bbb7f3 Mon Sep 17 00:00:00 2001 From: Tony Murphy Date: Thu, 31 Oct 2024 09:55:43 -0700 Subject: [PATCH 06/11] fix some imports --- packages/dds/sequence/src/intervalCollection.ts | 3 +-- packages/dds/sequence/src/intervals/index.ts | 1 + packages/dds/sequence/src/revertibles.ts | 4 +--- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/dds/sequence/src/intervalCollection.ts b/packages/dds/sequence/src/intervalCollection.ts index c9730b43d169..a58530635331 100644 --- a/packages/dds/sequence/src/intervalCollection.ts +++ b/packages/dds/sequence/src/intervalCollection.ts @@ -60,6 +60,7 @@ import { IntervalStickiness, IntervalType, SequenceInterval, + SequenceIntervalClass, SerializedIntervalDelta, createInterval, createPositionReferenceFromSegoff, @@ -67,8 +68,6 @@ import { sequenceIntervalHelpers, startReferenceSlidingPreference, } from "./intervals/index.js"; -// eslint-disable-next-line import/no-internal-modules -import { SequenceIntervalClass } from "./intervals/sequenceInterval.js"; export const reservedIntervalIdKey = "intervalId"; diff --git a/packages/dds/sequence/src/intervals/index.ts b/packages/dds/sequence/src/intervals/index.ts index 16340b243089..f2ce8212a01f 100644 --- a/packages/dds/sequence/src/intervals/index.ts +++ b/packages/dds/sequence/src/intervals/index.ts @@ -20,6 +20,7 @@ export { export { Interval, createInterval, intervalHelpers } from "./interval.js"; export { SequenceInterval, + SequenceIntervalClass, createSequenceInterval, createPositionReferenceFromSegoff, sequenceIntervalHelpers, diff --git a/packages/dds/sequence/src/revertibles.ts b/packages/dds/sequence/src/revertibles.ts index 33e241c64aaf..4c7420eae9eb 100644 --- a/packages/dds/sequence/src/revertibles.ts +++ b/packages/dds/sequence/src/revertibles.ts @@ -26,9 +26,7 @@ import { type ISegmentInternal, } from "@fluidframework/merge-tree/internal"; -import { IntervalOpType, SequenceInterval } from "./intervals/index.js"; -// eslint-disable-next-line import/no-internal-modules -import { SequenceIntervalClass } from "./intervals/sequenceInterval.js"; +import { IntervalOpType, SequenceInterval, SequenceIntervalClass } from "./intervals/index.js"; import { ISequenceDeltaRange, SequenceDeltaEvent } from "./sequenceDeltaEvent.js"; import { ISharedString, SharedStringSegment } from "./sharedString.js"; From 636b4debd94a880baba3588bb17be49ab5c297cb Mon Sep 17 00:00:00 2001 From: Tony Murphy Date: Thu, 31 Oct 2024 10:08:39 -0700 Subject: [PATCH 07/11] fix up event typing --- .../api-report/sequence.legacy.alpha.api.md | 7 ++-- .../dds/sequence/src/sequenceDeltaEvent.ts | 32 +++++++++++-------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md b/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md index ffcb3bcff8ac..bf7a547ddde2 100644 --- a/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md +++ b/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md @@ -298,8 +298,6 @@ export function revertSharedStringRevertibles(sharedString: ISharedString, rever // @alpha export interface SequenceDeltaEvent extends SequenceEvent { - // (undocumented) - readonly isLocal: boolean; // (undocumented) readonly opArgs: IMergeTreeDeltaOpArgs; } @@ -312,6 +310,7 @@ export interface SequenceEvent>; + readonly isLocal: boolean; readonly last: Readonly>; readonly ranges: readonly Readonly>[]; } @@ -334,9 +333,7 @@ export interface SequenceInterval extends ISerializableInterval { // @alpha export interface SequenceMaintenanceEvent extends SequenceEvent { // (undocumented) - readonly isLocal: boolean; - // (undocumented) - readonly opArgs: IMergeTreeDeltaOpArgs; + readonly opArgs: IMergeTreeDeltaOpArgs | undefined; } export { SequencePlace } diff --git a/packages/dds/sequence/src/sequenceDeltaEvent.ts b/packages/dds/sequence/src/sequenceDeltaEvent.ts index d46a3421d110..b4f6a63e75b0 100644 --- a/packages/dds/sequence/src/sequenceDeltaEvent.ts +++ b/packages/dds/sequence/src/sequenceDeltaEvent.ts @@ -32,6 +32,11 @@ export interface SequenceEvent< > { readonly deltaOperation: TOperation; + /** + * Whether the event was caused by a locally-made change. + */ + readonly isLocal: boolean; + readonly deltaArgs: IMergeTreeDeltaCallbackArgs; /** * The in-order ranges affected by this delta. @@ -61,6 +66,7 @@ export abstract class SequenceEventClass< TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes, > implements SequenceEvent { + public readonly isLocal: boolean; public readonly deltaOperation: TOperation; // eslint-disable-next-line import/no-deprecated private readonly sortedRanges: Lazy>>; @@ -68,6 +74,7 @@ export abstract class SequenceEventClass< private readonly pLast: Lazy>; constructor( + public readonly opArgs: IMergeTreeDeltaOpArgs | undefined, /** * Arguments reflecting the type of change that caused this event. */ @@ -80,6 +87,7 @@ export abstract class SequenceEventClass< 0x2d8 /* "Empty change event should not be emitted." */, ); this.deltaOperation = deltaArgs.operation; + this.isLocal = opArgs?.sequencedMessage === undefined; // eslint-disable-next-line import/no-deprecated this.sortedRanges = new Lazy>>(() => { @@ -153,23 +161,19 @@ export abstract class SequenceEventClass< * @alpha */ export interface SequenceDeltaEvent extends SequenceEvent { - readonly isLocal: boolean; readonly opArgs: IMergeTreeDeltaOpArgs; } -export class SequenceDeltaEventClass extends SequenceEventClass { - /** - * Whether the event was caused by a locally-made change. - */ - public readonly isLocal: boolean; - +export class SequenceDeltaEventClass + extends SequenceEventClass + implements SequenceDeltaEvent +{ constructor( public readonly opArgs: IMergeTreeDeltaOpArgs, deltaArgs: IMergeTreeDeltaCallbackArgs, // eslint-disable-next-line import/no-deprecated mergeTreeClient: Client, ) { - super(deltaArgs, mergeTreeClient); - this.isLocal = opArgs.sequencedMessage === undefined; + super(opArgs, deltaArgs, mergeTreeClient); } } @@ -183,10 +187,12 @@ export class SequenceDeltaEventClass extends SequenceEventClass { - readonly isLocal: boolean; - readonly opArgs: IMergeTreeDeltaOpArgs; + readonly opArgs: IMergeTreeDeltaOpArgs | undefined; } -export class SequenceMaintenanceEventClass extends SequenceEventClass { +export class SequenceMaintenanceEventClass + extends SequenceEventClass + implements SequenceMaintenanceEvent +{ constructor( /** * Defined iff `deltaArgs.operation` is {@link @fluidframework/merge-tree#MergeTreeMaintenanceType.ACKNOWLEDGED|MergeTreeMaintenanceType.ACKNOWLEDGED}. @@ -198,7 +204,7 @@ export class SequenceMaintenanceEventClass extends SequenceEventClass Date: Thu, 31 Oct 2024 10:23:20 -0700 Subject: [PATCH 08/11] improve the sequence interval interface --- .../api-report/sequence.legacy.alpha.api.md | 9 ++++ .../src/intervals/sequenceInterval.ts | 49 ++++++++++++++++++- 2 files changed, 57 insertions(+), 1 deletion(-) diff --git a/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md b/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md index bf7a547ddde2..f2bb8b425cf8 100644 --- a/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md +++ b/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md @@ -317,17 +317,26 @@ export interface SequenceEvent Date: Thu, 31 Oct 2024 11:27:19 -0700 Subject: [PATCH 09/11] generate docs --- .../fluid-framework.legacy.alpha.api.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/framework/fluid-framework/api-report/fluid-framework.legacy.alpha.api.md b/packages/framework/fluid-framework/api-report/fluid-framework.legacy.alpha.api.md index b7a3565e68dc..3f24bd295362 100644 --- a/packages/framework/fluid-framework/api-report/fluid-framework.legacy.alpha.api.md +++ b/packages/framework/fluid-framework/api-report/fluid-framework.legacy.alpha.api.md @@ -1052,8 +1052,6 @@ type ScopedSchemaName { - // (undocumented) - readonly isLocal: boolean; // (undocumented) readonly opArgs: IMergeTreeDeltaOpArgs; } @@ -1066,31 +1064,39 @@ export interface SequenceEvent>; + readonly isLocal: boolean; readonly last: Readonly>; readonly ranges: readonly Readonly>[]; } // @alpha export interface SequenceInterval extends ISerializableInterval { + // (undocumented) + clone(): SequenceInterval; + compare(b: SequenceInterval): number; + compareEnd(b: SequenceInterval): number; + compareStart(b: SequenceInterval): number; readonly end: LocalReferencePosition; // (undocumented) readonly endSide: Side; // (undocumented) readonly intervalType: IntervalType; + modify(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, op?: ISequencedDocumentMessage, localSeq?: number, useNewSlidingBehavior?: boolean): SequenceInterval | undefined; + // (undocumented) + overlaps(b: SequenceInterval): boolean; // (undocumented) readonly start: LocalReferencePosition; // (undocumented) readonly startSide: Side; // (undocumented) readonly stickiness: IntervalStickiness; + union(b: SequenceInterval): SequenceInterval; } // @alpha export interface SequenceMaintenanceEvent extends SequenceEvent { // (undocumented) - readonly isLocal: boolean; - // (undocumented) - readonly opArgs: IMergeTreeDeltaOpArgs; + readonly opArgs: IMergeTreeDeltaOpArgs | undefined; } export { SequencePlace } From 541b635446fa7cced90e576654029ebb04dbabca Mon Sep 17 00:00:00 2001 From: Tony Murphy Date: Thu, 31 Oct 2024 11:45:51 -0700 Subject: [PATCH 10/11] re-enable type tests --- .../api-report/sequence.legacy.alpha.api.md | 6 +++++- packages/dds/sequence/package.json | 16 ++++++++++++++-- .../sequence/src/intervals/sequenceInterval.ts | 18 ++++++++++++++++++ .../dds/sequence/src/sequenceDeltaEvent.ts | 10 +++++----- .../fluid-framework.legacy.alpha.api.md | 6 +++++- 5 files changed, 47 insertions(+), 9 deletions(-) diff --git a/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md b/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md index f2bb8b425cf8..e8a63caef002 100644 --- a/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md +++ b/packages/dds/sequence/api-report/sequence.legacy.alpha.api.md @@ -298,6 +298,7 @@ export function revertSharedStringRevertibles(sharedString: ISharedString, rever // @alpha export interface SequenceDeltaEvent extends SequenceEvent { + readonly isLocal: boolean; // (undocumented) readonly opArgs: IMergeTreeDeltaOpArgs; } @@ -310,13 +311,13 @@ export interface SequenceEvent>; - readonly isLocal: boolean; readonly last: Readonly>; readonly ranges: readonly Readonly>[]; } // @alpha export interface SequenceInterval extends ISerializableInterval { + addPositionChangeListeners(beforePositionChange: () => void, afterPositionChange: () => void): void; // (undocumented) clone(): SequenceInterval; compare(b: SequenceInterval): number; @@ -331,6 +332,9 @@ export interface SequenceInterval extends ISerializableInterval { // (undocumented) overlaps(b: SequenceInterval): boolean; // (undocumented) + overlapsPos(bstart: number, bend: number): boolean; + removePositionChangeListeners(): void; + // (undocumented) readonly start: LocalReferencePosition; // (undocumented) readonly startSide: Side; diff --git a/packages/dds/sequence/package.json b/packages/dds/sequence/package.json index 563a0e956d5b..1593f163c9d3 100644 --- a/packages/dds/sequence/package.json +++ b/packages/dds/sequence/package.json @@ -192,8 +192,20 @@ } }, "typeValidation": { - "broken": {}, - "disabled": true, + "broken": { + "ClassStatics_SequenceDeltaEvent": { + "backCompat": false + }, + "ClassStatics_SequenceEvent": { + "backCompat": false + }, + "ClassStatics_SequenceInterval": { + "backCompat": false + }, + "ClassStatics_SequenceMaintenanceEvent": { + "backCompat": false + } + }, "entrypoint": "legacy" } } diff --git a/packages/dds/sequence/src/intervals/sequenceInterval.ts b/packages/dds/sequence/src/intervals/sequenceInterval.ts index cadee07cbb47..132ace988f87 100644 --- a/packages/dds/sequence/src/intervals/sequenceInterval.ts +++ b/packages/dds/sequence/src/intervals/sequenceInterval.ts @@ -162,6 +162,24 @@ export interface SequenceInterval extends ISerializableInterval { * intermediate values between the two intervals. */ union(b: SequenceInterval): SequenceInterval; + + /** + * Subscribes to position change events on this interval if there are no current listeners. + */ + addPositionChangeListeners( + beforePositionChange: () => void, + afterPositionChange: () => void, + ): void; + + /** + * Removes the currently subscribed position change listeners. + */ + removePositionChangeListeners(): void; + + /** + * @returns whether this interval overlaps two numerical positions. + */ + overlapsPos(bstart: number, bend: number): boolean; } export class SequenceIntervalClass implements SequenceInterval { diff --git a/packages/dds/sequence/src/sequenceDeltaEvent.ts b/packages/dds/sequence/src/sequenceDeltaEvent.ts index b4f6a63e75b0..6088a7402e38 100644 --- a/packages/dds/sequence/src/sequenceDeltaEvent.ts +++ b/packages/dds/sequence/src/sequenceDeltaEvent.ts @@ -32,11 +32,6 @@ export interface SequenceEvent< > { readonly deltaOperation: TOperation; - /** - * Whether the event was caused by a locally-made change. - */ - readonly isLocal: boolean; - readonly deltaArgs: IMergeTreeDeltaCallbackArgs; /** * The in-order ranges affected by this delta. @@ -162,6 +157,11 @@ export abstract class SequenceEventClass< */ export interface SequenceDeltaEvent extends SequenceEvent { readonly opArgs: IMergeTreeDeltaOpArgs; + + /** + * Whether the event was caused by a locally-made change. + */ + readonly isLocal: boolean; } export class SequenceDeltaEventClass extends SequenceEventClass diff --git a/packages/framework/fluid-framework/api-report/fluid-framework.legacy.alpha.api.md b/packages/framework/fluid-framework/api-report/fluid-framework.legacy.alpha.api.md index 3f24bd295362..e75601d17f67 100644 --- a/packages/framework/fluid-framework/api-report/fluid-framework.legacy.alpha.api.md +++ b/packages/framework/fluid-framework/api-report/fluid-framework.legacy.alpha.api.md @@ -1052,6 +1052,7 @@ type ScopedSchemaName { + readonly isLocal: boolean; // (undocumented) readonly opArgs: IMergeTreeDeltaOpArgs; } @@ -1064,13 +1065,13 @@ export interface SequenceEvent>; - readonly isLocal: boolean; readonly last: Readonly>; readonly ranges: readonly Readonly>[]; } // @alpha export interface SequenceInterval extends ISerializableInterval { + addPositionChangeListeners(beforePositionChange: () => void, afterPositionChange: () => void): void; // (undocumented) clone(): SequenceInterval; compare(b: SequenceInterval): number; @@ -1085,6 +1086,9 @@ export interface SequenceInterval extends ISerializableInterval { // (undocumented) overlaps(b: SequenceInterval): boolean; // (undocumented) + overlapsPos(bstart: number, bend: number): boolean; + removePositionChangeListeners(): void; + // (undocumented) readonly start: LocalReferencePosition; // (undocumented) readonly startSide: Side; From 62564f0299c6c1f1e21b51bbf4cf4f34e26bc173 Mon Sep 17 00:00:00 2001 From: Tony Murphy Date: Thu, 31 Oct 2024 11:46:39 -0700 Subject: [PATCH 11/11] add missing file --- .../validateSequencePrevious.generated.ts | 938 ++++++++++++++++++ 1 file changed, 938 insertions(+) create mode 100644 packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts diff --git a/packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts b/packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts new file mode 100644 index 000000000000..0e638d5a4faa --- /dev/null +++ b/packages/dds/sequence/src/test/types/validateSequencePrevious.generated.ts @@ -0,0 +1,938 @@ +/*! + * Copyright (c) Microsoft Corporation and contributors. All rights reserved. + * Licensed under the MIT License. + */ + +/* + * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + * Generated by flub generate:typetests in @fluid-tools/build-cli. + */ + +import type { TypeOnly, MinimalType, FullType, requireAssignableTo } from "@fluidframework/build-tools"; +import type * as old from "@fluidframework/sequence-previous/internal"; + +import type * as current from "../../index.js"; + +declare type MakeUnusedImportErrorsGoAway = TypeOnly | MinimalType | FullType | typeof old | typeof current | requireAssignableTo; + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_BaseSegment": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_BaseSegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_BaseSegment": {"backCompat": false} + */ +declare type current_as_old_for_Class_BaseSegment = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_Marker": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_Marker = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_Marker": {"backCompat": false} + */ +declare type current_as_old_for_Class_Marker = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceDeltaEvent": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_SequenceDeltaEvent = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceDeltaEvent": {"backCompat": false} + */ +declare type current_as_old_for_Class_SequenceDeltaEvent = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceEvent": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_SequenceEvent = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceEvent": {"backCompat": false} + */ +declare type current_as_old_for_Class_SequenceEvent = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceInterval": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_SequenceInterval = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceInterval": {"backCompat": false} + */ +declare type current_as_old_for_Class_SequenceInterval = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceMaintenanceEvent": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_SequenceMaintenanceEvent = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SequenceMaintenanceEvent": {"backCompat": false} + */ +declare type current_as_old_for_Class_SequenceMaintenanceEvent = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SharedSegmentSequence": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_SharedSegmentSequence = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SharedSegmentSequence": {"backCompat": false} + */ +declare type current_as_old_for_Class_SharedSegmentSequence = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SharedStringClass": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_SharedStringClass = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_SharedStringClass": {"backCompat": false} + */ +declare type current_as_old_for_Class_SharedStringClass = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_TextSegment": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_TextSegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_TextSegment": {"backCompat": false} + */ +declare type current_as_old_for_Class_TextSegment = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_TrackingGroup": {"forwardCompat": false} + */ +declare type old_as_current_for_Class_TrackingGroup = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Class_TrackingGroup": {"backCompat": false} + */ +declare type current_as_old_for_Class_TrackingGroup = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_BaseSegment": {"backCompat": false} + */ +declare type current_as_old_for_ClassStatics_BaseSegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_Marker": {"backCompat": false} + */ +declare type current_as_old_for_ClassStatics_Marker = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_SequenceDeltaEvent": {"backCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type current_as_old_for_ClassStatics_SequenceDeltaEvent = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_SequenceEvent": {"backCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type current_as_old_for_ClassStatics_SequenceEvent = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_SequenceInterval": {"backCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type current_as_old_for_ClassStatics_SequenceInterval = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_SequenceMaintenanceEvent": {"backCompat": false} + */ +// @ts-expect-error compatibility expected to be broken +declare type current_as_old_for_ClassStatics_SequenceMaintenanceEvent = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_SharedSegmentSequence": {"backCompat": false} + */ +declare type current_as_old_for_ClassStatics_SharedSegmentSequence = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_SharedStringClass": {"backCompat": false} + */ +declare type current_as_old_for_ClassStatics_SharedStringClass = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_TextSegment": {"backCompat": false} + */ +declare type current_as_old_for_ClassStatics_TextSegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "ClassStatics_TrackingGroup": {"backCompat": false} + */ +declare type current_as_old_for_ClassStatics_TrackingGroup = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Enum_IntervalType": {"forwardCompat": false} + */ +declare type old_as_current_for_Enum_IntervalType = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Enum_IntervalType": {"backCompat": false} + */ +declare type current_as_old_for_Enum_IntervalType = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Enum_ReferenceType": {"forwardCompat": false} + */ +declare type old_as_current_for_Enum_ReferenceType = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Enum_ReferenceType": {"backCompat": false} + */ +declare type current_as_old_for_Enum_ReferenceType = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Enum_Side": {"forwardCompat": false} + */ +declare type old_as_current_for_Enum_Side = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Enum_Side": {"backCompat": false} + */ +declare type current_as_old_for_Enum_Side = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_appendAddIntervalToRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_appendAddIntervalToRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_appendChangeIntervalToRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_appendChangeIntervalToRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_appendDeleteIntervalToRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_appendDeleteIntervalToRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_appendIntervalPropertyChangedToRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_appendIntervalPropertyChangedToRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_appendSharedStringDeltaToRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_appendSharedStringDeltaToRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_createOverlappingIntervalsIndex": {"backCompat": false} + */ +declare type current_as_old_for_Function_createOverlappingIntervalsIndex = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_discardSharedStringRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_discardSharedStringRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Function_revertSharedStringRevertibles": {"backCompat": false} + */ +declare type current_as_old_for_Function_revertSharedStringRevertibles = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IInterval": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_IInterval = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IInterval": {"backCompat": false} + */ +declare type current_as_old_for_Interface_IInterval = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IIntervalCollection": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_IIntervalCollection = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IIntervalCollection": {"backCompat": false} + */ +declare type current_as_old_for_Interface_IIntervalCollection = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IIntervalCollectionEvent": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_IIntervalCollectionEvent = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IIntervalCollectionEvent": {"backCompat": false} + */ +declare type current_as_old_for_Interface_IIntervalCollectionEvent = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_InteriorSequencePlace": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_InteriorSequencePlace = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_InteriorSequencePlace": {"backCompat": false} + */ +declare type current_as_old_for_Interface_InteriorSequencePlace = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IntervalIndex": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_IntervalIndex = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IntervalIndex": {"backCompat": false} + */ +declare type current_as_old_for_Interface_IntervalIndex = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IOverlappingIntervalsIndex": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_IOverlappingIntervalsIndex = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_IOverlappingIntervalsIndex": {"backCompat": false} + */ +declare type current_as_old_for_Interface_IOverlappingIntervalsIndex = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISegment": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISegment": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISegment = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISequenceDeltaRange": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISequenceDeltaRange = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISequenceDeltaRange": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISequenceDeltaRange = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISerializableInterval": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISerializableInterval = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISerializableInterval": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISerializableInterval = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISerializedInterval": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISerializedInterval = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISerializedInterval": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISerializedInterval = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedIntervalCollection": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISharedIntervalCollection = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedIntervalCollection": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISharedIntervalCollection = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedSegmentSequence": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISharedSegmentSequence = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedSegmentSequence": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISharedSegmentSequence = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedSegmentSequenceEvents": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISharedSegmentSequenceEvents = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedSegmentSequenceEvents": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISharedSegmentSequenceEvents = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedString": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ISharedString = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ISharedString": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ISharedString = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_LocalReferencePosition": {"backCompat": false} + */ +declare type current_as_old_for_Interface_LocalReferencePosition = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_MapLike": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_MapLike = requireAssignableTo>, TypeOnly>> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_MapLike": {"backCompat": false} + */ +declare type current_as_old_for_Interface_MapLike = requireAssignableTo>, TypeOnly>> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ReferencePosition": {"forwardCompat": false} + */ +declare type old_as_current_for_Interface_ReferencePosition = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Interface_ReferencePosition": {"backCompat": false} + */ +declare type current_as_old_for_Interface_ReferencePosition = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_DeserializeCallback": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_DeserializeCallback = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_DeserializeCallback": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_DeserializeCallback = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_IntervalOpType": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_IntervalOpType = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_IntervalOpType": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_IntervalOpType = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_IntervalRevertible": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_IntervalRevertible = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_IntervalRevertible": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_IntervalRevertible = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_IntervalStickiness": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_IntervalStickiness = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_IntervalStickiness": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_IntervalStickiness = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_MergeTreeDeltaType": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_MergeTreeDeltaType = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_MergeTreeDeltaType": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_MergeTreeDeltaType = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_PropertySet": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_PropertySet = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_PropertySet": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_PropertySet = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SequencePlace": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_SequencePlace = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SequencePlace": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_SequencePlace = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SharedString": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_SharedString = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SharedString": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_SharedString = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SharedStringRevertible": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_SharedStringRevertible = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SharedStringRevertible": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_SharedStringRevertible = requireAssignableTo, TypeOnly> + +/* + * Validate forward compatibility by using the old type in place of the current type. + * If this test starts failing, it indicates a change that is not forward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SharedStringSegment": {"forwardCompat": false} + */ +declare type old_as_current_for_TypeAlias_SharedStringSegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "TypeAlias_SharedStringSegment": {"backCompat": false} + */ +declare type current_as_old_for_TypeAlias_SharedStringSegment = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Variable_IntervalOpType": {"backCompat": false} + */ +declare type current_as_old_for_Variable_IntervalOpType = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Variable_IntervalStickiness": {"backCompat": false} + */ +declare type current_as_old_for_Variable_IntervalStickiness = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Variable_MergeTreeDeltaType": {"backCompat": false} + */ +declare type current_as_old_for_Variable_MergeTreeDeltaType = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Variable_reservedMarkerIdKey": {"backCompat": false} + */ +declare type current_as_old_for_Variable_reservedMarkerIdKey = requireAssignableTo, TypeOnly> + +/* + * Validate backward compatibility by using the current type in place of the old type. + * If this test starts failing, it indicates a change that is not backward compatible. + * To acknowledge the breaking change, add the following to package.json under + * typeValidation.broken: + * "Variable_SharedString": {"backCompat": false} + */ +declare type current_as_old_for_Variable_SharedString = requireAssignableTo, TypeOnly>