@fluidframework/sequence 0.59.3003 → 0.59.4000
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{mapKernel.d.ts → defaultMap.d.ts} +21 -145
- package/dist/defaultMap.d.ts.map +1 -0
- package/dist/defaultMap.js +317 -0
- package/dist/defaultMap.js.map +1 -0
- package/dist/{mapKernelInterfaces.d.ts → defaultMapInterfaces.d.ts} +9 -51
- package/dist/defaultMapInterfaces.d.ts.map +1 -0
- package/dist/{mapKernelInterfaces.js → defaultMapInterfaces.js} +1 -1
- package/dist/defaultMapInterfaces.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/intervalCollection.d.ts +12 -3
- package/dist/intervalCollection.d.ts.map +1 -1
- package/dist/intervalCollection.js +44 -39
- package/dist/intervalCollection.js.map +1 -1
- package/dist/localValues.d.ts +7 -86
- package/dist/localValues.d.ts.map +1 -1
- package/dist/localValues.js +1 -131
- package/dist/localValues.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/sequence.d.ts +5 -1
- package/dist/sequence.d.ts.map +1 -1
- package/dist/sequence.js +23 -23
- package/dist/sequence.js.map +1 -1
- package/dist/sharedIntervalCollection.d.ts +13 -5
- package/dist/sharedIntervalCollection.d.ts.map +1 -1
- package/dist/sharedIntervalCollection.js +16 -12
- package/dist/sharedIntervalCollection.js.map +1 -1
- package/lib/{mapKernel.d.ts → defaultMap.d.ts} +21 -145
- package/lib/defaultMap.d.ts.map +1 -0
- package/lib/defaultMap.js +313 -0
- package/lib/defaultMap.js.map +1 -0
- package/lib/{mapKernelInterfaces.d.ts → defaultMapInterfaces.d.ts} +9 -51
- package/lib/defaultMapInterfaces.d.ts.map +1 -0
- package/lib/{mapKernelInterfaces.js → defaultMapInterfaces.js} +1 -1
- package/lib/defaultMapInterfaces.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/intervalCollection.d.ts +12 -3
- package/lib/intervalCollection.d.ts.map +1 -1
- package/lib/intervalCollection.js +44 -39
- package/lib/intervalCollection.js.map +1 -1
- package/lib/localValues.d.ts +7 -86
- package/lib/localValues.d.ts.map +1 -1
- package/lib/localValues.js +1 -129
- package/lib/localValues.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/sequence.d.ts +5 -1
- package/lib/sequence.d.ts.map +1 -1
- package/lib/sequence.js +23 -23
- package/lib/sequence.js.map +1 -1
- package/lib/sharedIntervalCollection.d.ts +13 -5
- package/lib/sharedIntervalCollection.d.ts.map +1 -1
- package/lib/sharedIntervalCollection.js +16 -12
- package/lib/sharedIntervalCollection.js.map +1 -1
- package/package.json +23 -18
- package/src/defaultMap.ts +453 -0
- package/src/{mapKernelInterfaces.ts → defaultMapInterfaces.ts} +14 -59
- package/src/index.ts +1 -1
- package/src/intervalCollection.ts +58 -43
- package/src/localValues.ts +6 -154
- package/src/packageVersion.ts +1 -1
- package/src/sequence.ts +32 -33
- package/src/sharedIntervalCollection.ts +22 -25
- package/dist/mapKernel.d.ts.map +0 -1
- package/dist/mapKernel.js +0 -599
- package/dist/mapKernel.js.map +0 -1
- package/dist/mapKernelInterfaces.d.ts.map +0 -1
- package/dist/mapKernelInterfaces.js.map +0 -1
- package/lib/mapKernel.d.ts.map +0 -1
- package/lib/mapKernel.js +0 -595
- package/lib/mapKernel.js.map +0 -1
- package/lib/mapKernelInterfaces.d.ts.map +0 -1
- package/lib/mapKernelInterfaces.js.map +0 -1
- package/src/mapKernel.ts +0 -850
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
6
|
-
import {
|
|
6
|
+
import { ISharedObjectEvents } from "@fluidframework/shared-object-base";
|
|
7
7
|
import { IEventThisPlaceHolder } from "@fluidframework/common-definitions";
|
|
8
8
|
/**
|
|
9
9
|
* Type of "valueChanged" event parameter.
|
|
@@ -89,61 +89,19 @@ export interface IValueType<T> {
|
|
|
89
89
|
*/
|
|
90
90
|
ops: Map<string, IValueOperation<T>>;
|
|
91
91
|
}
|
|
92
|
-
|
|
93
|
-
* Container types that are able to create value types as contained values.
|
|
94
|
-
*/
|
|
95
|
-
export interface IValueTypeCreator {
|
|
96
|
-
/**
|
|
97
|
-
* Create a new value type at the given key.
|
|
98
|
-
* @param key - Key to create the value type at
|
|
99
|
-
* @param type - Type of the value type to create
|
|
100
|
-
* @param params - Initialization params for the value type
|
|
101
|
-
* @alpha
|
|
102
|
-
*/
|
|
103
|
-
createValueType(key: string, type: string, params: any): this;
|
|
104
|
-
}
|
|
105
|
-
export interface ISharedMapEvents extends ISharedObjectEvents {
|
|
92
|
+
export interface ISharedDefaultMapEvents extends ISharedObjectEvents {
|
|
106
93
|
(event: "valueChanged" | "create", listener: (changed: IValueChanged, local: boolean, target: IEventThisPlaceHolder) => void): any;
|
|
107
|
-
(event: "clear", listener: (local: boolean, target: IEventThisPlaceHolder) => void): any;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Shared map interface
|
|
111
|
-
*/
|
|
112
|
-
export interface ISharedMap extends ISharedObject<ISharedMapEvents>, Map<string, any> {
|
|
113
|
-
/**
|
|
114
|
-
* Retrieves the given key from the map.
|
|
115
|
-
* @param key - Key to retrieve from
|
|
116
|
-
* @returns The stored value, or undefined if the key is not set
|
|
117
|
-
*/
|
|
118
|
-
get<T = any>(key: string): T | undefined;
|
|
119
|
-
/**
|
|
120
|
-
* A form of get except it will only resolve the promise once the key exists in the map.
|
|
121
|
-
* @param key - Key to retrieve from
|
|
122
|
-
* @returns The stored value once available
|
|
123
|
-
*/
|
|
124
|
-
wait<T = any>(key: string): Promise<T>;
|
|
125
|
-
/**
|
|
126
|
-
* Sets the value stored at key to the provided value.
|
|
127
|
-
* @param key - Key to set at
|
|
128
|
-
* @param value - Value to set
|
|
129
|
-
* @returns The ISharedMap itself
|
|
130
|
-
*/
|
|
131
|
-
set<T = any>(key: string, value: T): this;
|
|
132
94
|
}
|
|
133
95
|
/**
|
|
134
|
-
* The _ready-for-serialization_ format of values contained in DDS contents.
|
|
96
|
+
* The _ready-for-serialization_ format of values contained in DDS contents. This allows us to use
|
|
135
97
|
* ISerializableValue.type to understand whether they're storing a Plain JS object, a SharedObject, or a value type.
|
|
136
98
|
* Note that the in-memory equivalent of ISerializableValue is ILocalValue (similarly holding a type, but with
|
|
137
|
-
* the _in-memory representation_ of the value instead).
|
|
138
|
-
* JSON.stringify and comes out of JSON.parse.
|
|
99
|
+
* the _in-memory representation_ of the value instead). An ISerializableValue is what gets passed to
|
|
100
|
+
* JSON.stringify and comes out of JSON.parse. This format is used both for snapshots (loadCore/populate)
|
|
139
101
|
* and ops (set).
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
* If type is a value type then it must be amongst the types registered via registerValueType or we won't know how
|
|
144
|
-
* to serialize/deserialize it (we rely on its factory via .load() and .store()). Its value will be type-dependent.
|
|
145
|
-
* If type is Shared, then the in-memory value will just be a reference to the SharedObject. Its value will be a
|
|
146
|
-
* channel ID. This type is legacy and deprecated.
|
|
102
|
+
*
|
|
103
|
+
* The DefaultMap impelmentation for sequence has been specialized to only support a single ValueType, which serializes
|
|
104
|
+
* and deserializes via .store() and .load().
|
|
147
105
|
*/
|
|
148
106
|
export interface ISerializableValue {
|
|
149
107
|
/**
|
|
@@ -184,4 +142,4 @@ export interface IValueTypeOperationValue {
|
|
|
184
142
|
*/
|
|
185
143
|
value: any;
|
|
186
144
|
}
|
|
187
|
-
//# sourceMappingURL=
|
|
145
|
+
//# sourceMappingURL=defaultMapInterfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultMapInterfaces.d.ts","sourceRoot":"","sources":["../src/defaultMapInterfaces.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,aAAa,EAAE,GAAG,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CAC/D;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC5B;;;;;;;OAOG;IACH,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IAE5C;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAC9B;;;;;;;OAOG;IACH,OAAO,CACH,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,yBAAyB,GAAG,SAAS,OAChD;CACL;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IACzB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAE1B;;;OAGG;IACH,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAChE,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,EAAE,QAAQ,EAAE,CACzC,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,qBAAqB,KAAK,IAAI,OAAE;CAC/C;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACrC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultMapInterfaces.js","sourceRoot":"","sources":["../src/defaultMapInterfaces.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\nimport { ISharedObjectEvents } from \"@fluidframework/shared-object-base\";\nimport { IEventThisPlaceHolder } from \"@fluidframework/common-definitions\";\n\n/**\n * Type of \"valueChanged\" event parameter.\n */\nexport interface IValueChanged {\n /**\n * The key storing the value that changed.\n */\n key: string;\n\n /**\n * The value that was stored at the key prior to the change.\n */\n previousValue: any;\n}\n\n/**\n * Value types are given an IValueOpEmitter to emit their ops through the container type that holds them.\n */\nexport interface IValueOpEmitter {\n /**\n * Called by the value type to emit a value type operation through the container type holding it.\n * @param opName - Name of the emitted operation\n * @param previousValue - JSONable previous value as defined by the value type\n * @param params - JSONable params for the operation as defined by the value type\n * @alpha\n */\n emit(opName: string, previousValue: any, params: any): void;\n}\n\n/**\n * A value factory is used to serialize/deserialize value types to a map\n * @alpha\n */\nexport interface IValueFactory<T> {\n /**\n * Create a new value type. Used both in creation of new value types, as well as in loading existing ones\n * from remote.\n * @param emitter - Emitter object that the created value type will use to emit operations\n * @param raw - Initialization parameters as defined by the value type\n * @returns The new value type\n * @alpha\n */\n load(emitter: IValueOpEmitter, raw: any): T;\n\n /**\n * Given a value type, provides a JSONable form of its data to be used for snapshotting. This data must be\n * loadable using the load method of its factory.\n * @param value - The value type to serialize\n * @returns The JSONable form of the value type\n * @alpha\n */\n store(value: T): any;\n}\n\n/**\n * Defines an operation that a value type is able to handle.\n * @alpha\n */\nexport interface IValueOperation<T> {\n /**\n * Performs the actual processing on the incoming operation.\n * @param value - The current value stored at the given key, which should be the value type\n * @param params - The params on the incoming operation\n * @param local - Whether the operation originated from this client\n * @param message - The operation itself\n * @alpha\n */\n process(\n value: T,\n params: any,\n local: boolean,\n message: ISequencedDocumentMessage | undefined\n );\n}\n\n/**\n * Defines a value type that can be registered on a container type.\n */\nexport interface IValueType<T> {\n /**\n * Name of the value type.\n * @alpha\n */\n name: string;\n\n /**\n * Factory method used to convert to/from a JSON form of the type.\n * @alpha\n */\n factory: IValueFactory<T>;\n\n /**\n * Operations that can be applied to the value type.\n * @alpha\n */\n ops: Map<string, IValueOperation<T>>;\n}\n\nexport interface ISharedDefaultMapEvents extends ISharedObjectEvents {\n (event: \"valueChanged\" | \"create\", listener: (\n changed: IValueChanged,\n local: boolean,\n target: IEventThisPlaceHolder) => void);\n}\n\n/**\n * The _ready-for-serialization_ format of values contained in DDS contents. This allows us to use\n * ISerializableValue.type to understand whether they're storing a Plain JS object, a SharedObject, or a value type.\n * Note that the in-memory equivalent of ISerializableValue is ILocalValue (similarly holding a type, but with\n * the _in-memory representation_ of the value instead). An ISerializableValue is what gets passed to\n * JSON.stringify and comes out of JSON.parse. This format is used both for snapshots (loadCore/populate)\n * and ops (set).\n *\n * The DefaultMap impelmentation for sequence has been specialized to only support a single ValueType, which serializes\n * and deserializes via .store() and .load().\n */\nexport interface ISerializableValue {\n /**\n * A type annotation to help indicate how the value serializes.\n */\n type: string;\n\n /**\n * The JSONable representation of the value.\n */\n value: any;\n}\n\nexport interface ISerializedValue {\n /**\n * A type annotation to help indicate how the value serializes.\n */\n type: string;\n\n /**\n * String representation of the value.\n */\n value: string | undefined;\n}\n\n/**\n * ValueTypes handle ops slightly differently from SharedObjects or plain JS objects. Since the Map/Directory doesn't\n * know how to handle the ValueType's ops, those ops are instead passed along to the ValueType for processing.\n * IValueTypeOperationValue is that passed-along op. The opName on it is the ValueType-specific operation and the\n * value is whatever params the ValueType needs to complete that operation. Similar to ISerializableValue, it is\n * serializable via JSON.stringify/parse but differs in that it has no equivalency with an in-memory value - rather\n * it just describes an operation to be applied to an already-in-memory value.\n * @alpha\n */\nexport interface IValueTypeOperationValue {\n /**\n * The name of the operation.\n */\n opName: string;\n\n /**\n * The payload that is submitted along with the operation.\n */\n value: any;\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
export { DeserializeCallback, IIntervalCollectionEvent, IIntervalHelpers, Interval, IntervalCollection, IntervalCollectionIterator, IntervalType, ISerializableInterval, ISerializedInterval, SequenceInterval, } from "./intervalCollection";
|
|
6
|
-
export { IValueOpEmitter, } from "./
|
|
6
|
+
export { IValueOpEmitter, } from "./defaultMapInterfaces";
|
|
7
7
|
export * from "./sharedString";
|
|
8
8
|
export * from "./sequence";
|
|
9
9
|
export * from "./sequenceFactory";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,QAAQ,EACR,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,eAAe,GAClB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,QAAQ,EACR,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,eAAe,GAClB,MAAM,wBAAwB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;AAEH,2DAW8B;AAP1B,8GAAA,QAAQ,OAAA;AACR,wHAAA,kBAAkB,OAAA;AAClB,gIAAA,0BAA0B,OAAA;AAC1B,kHAAA,YAAY,OAAA;AAGZ,sHAAA,gBAAgB,OAAA;AAKpB,iDAA+B;AAC/B,6CAA2B;AAC3B,oDAAkC;AAClC,uDAAqC;AACrC,mDAAiC;AACjC,yDAAuC;AACvC,yDAAuC;AACvC,iDAA+B;AAC/B,6DAA2C","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport {\n DeserializeCallback,\n IIntervalCollectionEvent,\n IIntervalHelpers,\n Interval,\n IntervalCollection,\n IntervalCollectionIterator,\n IntervalType,\n ISerializableInterval,\n ISerializedInterval,\n SequenceInterval,\n} from \"./intervalCollection\";\nexport {\n IValueOpEmitter,\n} from \"./
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;AAEH,2DAW8B;AAP1B,8GAAA,QAAQ,OAAA;AACR,wHAAA,kBAAkB,OAAA;AAClB,gIAAA,0BAA0B,OAAA;AAC1B,kHAAA,YAAY,OAAA;AAGZ,sHAAA,gBAAgB,OAAA;AAKpB,iDAA+B;AAC/B,6CAA2B;AAC3B,oDAAkC;AAClC,uDAAqC;AACrC,mDAAiC;AACjC,yDAAuC;AACvC,yDAAuC;AACvC,iDAA+B;AAC/B,6DAA2C","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport {\n DeserializeCallback,\n IIntervalCollectionEvent,\n IIntervalHelpers,\n Interval,\n IntervalCollection,\n IntervalCollectionIterator,\n IntervalType,\n ISerializableInterval,\n ISerializedInterval,\n SequenceInterval,\n} from \"./intervalCollection\";\nexport {\n IValueOpEmitter,\n} from \"./defaultMapInterfaces\";\nexport * from \"./sharedString\";\nexport * from \"./sequence\";\nexport * from \"./sequenceFactory\";\nexport * from \"./sequenceDeltaEvent\";\nexport * from \"./sharedSequence\";\nexport * from \"./sharedObjectSequence\";\nexport * from \"./sharedNumberSequence\";\nexport * from \"./sparsematrix\";\nexport * from \"./sharedIntervalCollection\";\n"]}
|
|
@@ -6,7 +6,7 @@ import { TypedEventEmitter } from "@fluidframework/common-utils";
|
|
|
6
6
|
import { IEvent } from "@fluidframework/common-definitions";
|
|
7
7
|
import { Client, ICombiningOp, IInterval, IntervalConflictResolver, LocalReference, PropertiesManager, PropertySet } from "@fluidframework/merge-tree";
|
|
8
8
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
9
|
-
import { IValueFactory, IValueOpEmitter, IValueOperation, IValueType } from "./
|
|
9
|
+
import { IValueFactory, IValueOpEmitter, IValueOperation, IValueType } from "./defaultMapInterfaces";
|
|
10
10
|
export declare enum IntervalType {
|
|
11
11
|
Simple = 0,
|
|
12
12
|
Nest = 1,
|
|
@@ -139,8 +139,8 @@ export declare class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
139
139
|
private localCollection;
|
|
140
140
|
private onDeserialize;
|
|
141
141
|
private client;
|
|
142
|
-
private
|
|
143
|
-
private
|
|
142
|
+
private pendingChangesStart;
|
|
143
|
+
private pendingChangesEnd;
|
|
144
144
|
get attached(): boolean;
|
|
145
145
|
constructor(helpers: IIntervalHelpers<TInterval>, requiresClient: boolean, emitter: IValueOpEmitter, serializedIntervals: ISerializedInterval[]);
|
|
146
146
|
attachGraph(client: Client, label: string): void;
|
|
@@ -156,11 +156,20 @@ export declare class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
156
156
|
private removePendingChangeHelper;
|
|
157
157
|
private hasPendingChangeStart;
|
|
158
158
|
private hasPendingChangeEnd;
|
|
159
|
+
/** @deprecated - use ackChange */
|
|
159
160
|
changeInterval(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage): void;
|
|
161
|
+
/** @internal */
|
|
162
|
+
ackChange(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage): void;
|
|
160
163
|
addConflictResolver(conflictResolver: IntervalConflictResolver<TInterval>): void;
|
|
161
164
|
attachDeserializer(onDeserialize: DeserializeCallback): void;
|
|
165
|
+
/** @deprecated - use ackAdd */
|
|
162
166
|
addInternal(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage): TInterval;
|
|
167
|
+
/** @internal */
|
|
168
|
+
ackAdd(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage): TInterval;
|
|
169
|
+
/** @deprecated - use ackDelete */
|
|
163
170
|
deleteInterval(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage): void;
|
|
171
|
+
/** @internal */
|
|
172
|
+
ackDelete(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage): void;
|
|
164
173
|
serializeInternal(): ISerializedInterval[];
|
|
165
174
|
[Symbol.iterator](): IntervalCollectionIterator<TInterval>;
|
|
166
175
|
CreateForwardIteratorWithStartPosition(startPosition: number): IntervalCollectionIterator<TInterval>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intervalCollection.d.ts","sourceRoot":"","sources":["../src/intervalCollection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAU,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAEH,MAAM,EAGN,YAAY,EACZ,SAAS,EACT,wBAAwB,EAGxB,cAAc,EAEd,iBAAiB,EACjB,WAAW,EAKd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"intervalCollection.d.ts","sourceRoot":"","sources":["../src/intervalCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -527,11 +527,7 @@ SequenceIntervalCollectionValueType._ops = new Map([[
|
|
|
527
527
|
"add",
|
|
528
528
|
{
|
|
529
529
|
process: (value, params, local, op) => {
|
|
530
|
-
|
|
531
|
-
if (local) {
|
|
532
|
-
return;
|
|
533
|
-
}
|
|
534
|
-
value.addInternal(params, local, op);
|
|
530
|
+
value.ackAdd(params, local, op);
|
|
535
531
|
},
|
|
536
532
|
},
|
|
537
533
|
],
|
|
@@ -539,10 +535,7 @@ SequenceIntervalCollectionValueType._ops = new Map([[
|
|
|
539
535
|
"delete",
|
|
540
536
|
{
|
|
541
537
|
process: (value, params, local, op) => {
|
|
542
|
-
|
|
543
|
-
return;
|
|
544
|
-
}
|
|
545
|
-
value.deleteInterval(params, local, op);
|
|
538
|
+
value.ackDelete(params, local, op);
|
|
546
539
|
},
|
|
547
540
|
},
|
|
548
541
|
],
|
|
@@ -550,7 +543,7 @@ SequenceIntervalCollectionValueType._ops = new Map([[
|
|
|
550
543
|
"change",
|
|
551
544
|
{
|
|
552
545
|
process: (value, params, local, op) => {
|
|
553
|
-
value.
|
|
546
|
+
value.ackChange(params, local, op);
|
|
554
547
|
},
|
|
555
548
|
},
|
|
556
549
|
]]);
|
|
@@ -596,11 +589,7 @@ IntervalCollectionValueType._ops = new Map([[
|
|
|
596
589
|
"add",
|
|
597
590
|
{
|
|
598
591
|
process: (value, params, local, op) => {
|
|
599
|
-
|
|
600
|
-
if (local) {
|
|
601
|
-
return;
|
|
602
|
-
}
|
|
603
|
-
value.addInternal(params, local, op);
|
|
592
|
+
value.ackAdd(params, local, op);
|
|
604
593
|
},
|
|
605
594
|
},
|
|
606
595
|
],
|
|
@@ -608,10 +597,7 @@ IntervalCollectionValueType._ops = new Map([[
|
|
|
608
597
|
"delete",
|
|
609
598
|
{
|
|
610
599
|
process: (value, params, local, op) => {
|
|
611
|
-
|
|
612
|
-
return;
|
|
613
|
-
}
|
|
614
|
-
value.deleteInterval(params, local, op);
|
|
600
|
+
value.ackDelete(params, local, op);
|
|
615
601
|
},
|
|
616
602
|
},
|
|
617
603
|
],
|
|
@@ -619,7 +605,7 @@ IntervalCollectionValueType._ops = new Map([[
|
|
|
619
605
|
"change",
|
|
620
606
|
{
|
|
621
607
|
process: (value, params, local, op) => {
|
|
622
|
-
value.
|
|
608
|
+
value.ackChange(params, local, op);
|
|
623
609
|
},
|
|
624
610
|
},
|
|
625
611
|
]]);
|
|
@@ -773,16 +759,16 @@ class IntervalCollection extends common_utils_1.TypedEventEmitter {
|
|
|
773
759
|
}
|
|
774
760
|
addPendingChange(id, serializedInterval) {
|
|
775
761
|
if (serializedInterval.start !== undefined) {
|
|
776
|
-
if (!this.
|
|
777
|
-
this.
|
|
762
|
+
if (!this.pendingChangesStart) {
|
|
763
|
+
this.pendingChangesStart = new Map();
|
|
778
764
|
}
|
|
779
|
-
this.addPendingChangeHelper(id, this.
|
|
765
|
+
this.addPendingChangeHelper(id, this.pendingChangesStart, serializedInterval);
|
|
780
766
|
}
|
|
781
767
|
if (serializedInterval.end !== undefined) {
|
|
782
|
-
if (!this.
|
|
783
|
-
this.
|
|
768
|
+
if (!this.pendingChangesEnd) {
|
|
769
|
+
this.pendingChangesEnd = new Map();
|
|
784
770
|
}
|
|
785
|
-
this.addPendingChangeHelper(id, this.
|
|
771
|
+
this.addPendingChangeHelper(id, this.pendingChangesEnd, serializedInterval);
|
|
786
772
|
}
|
|
787
773
|
}
|
|
788
774
|
addPendingChangeHelper(id, pendingChanges, serializedInterval) {
|
|
@@ -797,10 +783,10 @@ class IntervalCollection extends common_utils_1.TypedEventEmitter {
|
|
|
797
783
|
// Change ops always have an ID.
|
|
798
784
|
const id = serializedInterval.properties[reservedIntervalIdKey];
|
|
799
785
|
if (serializedInterval.start !== undefined) {
|
|
800
|
-
this.removePendingChangeHelper(id, this.
|
|
786
|
+
this.removePendingChangeHelper(id, this.pendingChangesStart, serializedInterval);
|
|
801
787
|
}
|
|
802
788
|
if (serializedInterval.end !== undefined) {
|
|
803
|
-
this.removePendingChangeHelper(id, this.
|
|
789
|
+
this.removePendingChangeHelper(id, this.pendingChangesEnd, serializedInterval);
|
|
804
790
|
}
|
|
805
791
|
}
|
|
806
792
|
removePendingChangeHelper(id, pendingChanges, serializedInterval) {
|
|
@@ -818,15 +804,20 @@ class IntervalCollection extends common_utils_1.TypedEventEmitter {
|
|
|
818
804
|
}
|
|
819
805
|
hasPendingChangeStart(id) {
|
|
820
806
|
var _a;
|
|
821
|
-
const entries = (_a = this.
|
|
807
|
+
const entries = (_a = this.pendingChangesStart) === null || _a === void 0 ? void 0 : _a.get(id);
|
|
822
808
|
return entries && entries.length !== 0;
|
|
823
809
|
}
|
|
824
810
|
hasPendingChangeEnd(id) {
|
|
825
811
|
var _a;
|
|
826
|
-
const entries = (_a = this.
|
|
812
|
+
const entries = (_a = this.pendingChangesEnd) === null || _a === void 0 ? void 0 : _a.get(id);
|
|
827
813
|
return entries && entries.length !== 0;
|
|
828
814
|
}
|
|
815
|
+
/** @deprecated - use ackChange */
|
|
829
816
|
changeInterval(serializedInterval, local, op) {
|
|
817
|
+
return this.ackChange(serializedInterval, local, op);
|
|
818
|
+
}
|
|
819
|
+
/** @internal */
|
|
820
|
+
ackChange(serializedInterval, local, op) {
|
|
830
821
|
var _a, _b;
|
|
831
822
|
if (!this.attached) {
|
|
832
823
|
throw new Error("Attach must be called before accessing intervals");
|
|
@@ -897,28 +888,42 @@ class IntervalCollection extends common_utils_1.TypedEventEmitter {
|
|
|
897
888
|
this.onDeserialize(interval);
|
|
898
889
|
});
|
|
899
890
|
}
|
|
891
|
+
/** @deprecated - use ackAdd */
|
|
900
892
|
addInternal(serializedInterval, local, op) {
|
|
893
|
+
return this.ackAdd(serializedInterval, local, op);
|
|
894
|
+
}
|
|
895
|
+
/** @internal */
|
|
896
|
+
ackAdd(serializedInterval, local, op) {
|
|
897
|
+
if (local) {
|
|
898
|
+
// Local ops were applied when the message was created and there's no "pending add"
|
|
899
|
+
// state to bookkeep
|
|
900
|
+
return;
|
|
901
|
+
}
|
|
901
902
|
if (!this.attached) {
|
|
902
903
|
throw new Error("attachSequence must be called");
|
|
903
904
|
}
|
|
904
905
|
this.localCollection.ensureSerializedId(serializedInterval);
|
|
905
906
|
const interval = this.localCollection.addInterval(serializedInterval.start, serializedInterval.end, serializedInterval.intervalType, serializedInterval.properties, op);
|
|
906
907
|
if (interval) {
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
// Review: Is this case possible?
|
|
910
|
-
this.emitter.emit("add", undefined, serializedInterval);
|
|
911
|
-
}
|
|
912
|
-
else {
|
|
913
|
-
if (this.onDeserialize) {
|
|
914
|
-
this.onDeserialize(interval);
|
|
915
|
-
}
|
|
908
|
+
if (this.onDeserialize) {
|
|
909
|
+
this.onDeserialize(interval);
|
|
916
910
|
}
|
|
917
911
|
}
|
|
918
912
|
this.emit("addInterval", interval, local, op);
|
|
919
913
|
return interval;
|
|
920
914
|
}
|
|
915
|
+
/** @deprecated - use ackDelete */
|
|
921
916
|
deleteInterval(serializedInterval, local, op) {
|
|
917
|
+
return this.ackDelete(serializedInterval, local, op);
|
|
918
|
+
}
|
|
919
|
+
/** @internal */
|
|
920
|
+
ackDelete(serializedInterval, local, op) {
|
|
921
|
+
if (local) {
|
|
922
|
+
// Local ops were applied when the message was created and there's no "pending delete"
|
|
923
|
+
// state to bookkeep: remote operation application takes into account possibility of
|
|
924
|
+
// locally deleted interval whenever a lookup happens.
|
|
925
|
+
return;
|
|
926
|
+
}
|
|
922
927
|
if (!this.attached) {
|
|
923
928
|
throw new Error("attach must be called prior to deleting intervals");
|
|
924
929
|
}
|