@fluidframework/map 2.0.0-dev.6.4.0.191515 → 2.0.0-dev.7.2.0.203917
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +52 -0
- package/api-extractor.json +1 -1
- package/api-report/map.api.md +299 -0
- package/dist/directory.d.ts +32 -8
- package/dist/directory.d.ts.map +1 -1
- package/dist/directory.js +42 -35
- package/dist/directory.js.map +1 -1
- package/dist/interfaces.d.ts +23 -1
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/internalInterfaces.d.ts +2 -2
- package/dist/internalInterfaces.d.ts.map +1 -1
- package/dist/localValues.d.ts +4 -0
- package/dist/localValues.d.ts.map +1 -1
- package/dist/localValues.js +2 -0
- package/dist/localValues.js.map +1 -1
- package/dist/map-alpha.d.ts +950 -0
- package/dist/map-beta.d.ts +950 -0
- package/dist/map-public.d.ts +950 -0
- package/dist/map-untrimmed.d.ts +1035 -0
- package/dist/map.d.ts +3 -0
- package/dist/map.d.ts.map +1 -1
- package/dist/map.js +18 -15
- package/dist/map.js.map +1 -1
- package/dist/mapKernel.d.ts +2 -2
- package/dist/mapKernel.d.ts.map +1 -1
- package/dist/mapKernel.js +6 -6
- package/dist/mapKernel.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/tsdoc-metadata.json +1 -1
- package/lib/directory.d.ts +32 -8
- package/lib/directory.d.ts.map +1 -1
- package/lib/directory.js +37 -34
- package/lib/directory.js.map +1 -1
- package/lib/interfaces.d.ts +23 -1
- package/lib/interfaces.d.ts.map +1 -1
- package/lib/interfaces.js.map +1 -1
- package/lib/internalInterfaces.d.ts +2 -2
- package/lib/internalInterfaces.d.ts.map +1 -1
- package/lib/localValues.d.ts +4 -0
- package/lib/localValues.d.ts.map +1 -1
- package/lib/localValues.js +2 -0
- package/lib/localValues.js.map +1 -1
- package/lib/map.d.ts +3 -0
- package/lib/map.d.ts.map +1 -1
- package/lib/map.js +18 -15
- package/lib/map.js.map +1 -1
- package/lib/mapKernel.d.ts +2 -2
- package/lib/mapKernel.d.ts.map +1 -1
- package/lib/mapKernel.js +6 -6
- package/lib/mapKernel.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/package.json +26 -27
- package/src/directory.ts +41 -16
- package/src/interfaces.ts +23 -1
- package/src/localValues.ts +4 -0
- package/src/map.ts +3 -0
- package/src/packageVersion.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,57 @@
|
|
|
1
1
|
# @fluidframework/map
|
|
2
2
|
|
|
3
|
+
## 2.0.0-internal.7.1.0
|
|
4
|
+
|
|
5
|
+
Dependency updates only.
|
|
6
|
+
|
|
7
|
+
## 2.0.0-internal.7.0.0
|
|
8
|
+
|
|
9
|
+
### Major Changes
|
|
10
|
+
|
|
11
|
+
- Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
12
|
+
|
|
13
|
+
This included the following changes from the protocol-definitions release:
|
|
14
|
+
|
|
15
|
+
- Updating signal interfaces for some planned improvements. The intention is split the interface between signals
|
|
16
|
+
submitted by clients to the server and the resulting signals sent from the server to clients.
|
|
17
|
+
- A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
|
|
18
|
+
been added, which will be the typing for signals sent from the client to the server. Both extend a new
|
|
19
|
+
ISignalMessageBase interface that contains common members.
|
|
20
|
+
- The @fluidframework/common-definitions package dependency has been updated to version 1.0.0.
|
|
21
|
+
|
|
22
|
+
- Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
23
|
+
|
|
24
|
+
Dependencies on the following Fluid server package have been updated to version 2.0.1:
|
|
25
|
+
|
|
26
|
+
- @fluidframework/gitresources: 2.0.1
|
|
27
|
+
- @fluidframework/server-kafka-orderer: 2.0.1
|
|
28
|
+
- @fluidframework/server-lambdas: 2.0.1
|
|
29
|
+
- @fluidframework/server-lambdas-driver: 2.0.1
|
|
30
|
+
- @fluidframework/server-local-server: 2.0.1
|
|
31
|
+
- @fluidframework/server-memory-orderer: 2.0.1
|
|
32
|
+
- @fluidframework/protocol-base: 2.0.1
|
|
33
|
+
- @fluidframework/server-routerlicious: 2.0.1
|
|
34
|
+
- @fluidframework/server-routerlicious-base: 2.0.1
|
|
35
|
+
- @fluidframework/server-services: 2.0.1
|
|
36
|
+
- @fluidframework/server-services-client: 2.0.1
|
|
37
|
+
- @fluidframework/server-services-core: 2.0.1
|
|
38
|
+
- @fluidframework/server-services-ordering-kafkanode: 2.0.1
|
|
39
|
+
- @fluidframework/server-services-ordering-rdkafka: 2.0.1
|
|
40
|
+
- @fluidframework/server-services-ordering-zookeeper: 2.0.1
|
|
41
|
+
- @fluidframework/server-services-shared: 2.0.1
|
|
42
|
+
- @fluidframework/server-services-telemetry: 2.0.1
|
|
43
|
+
- @fluidframework/server-services-utils: 2.0.1
|
|
44
|
+
- @fluidframework/server-test-utils: 2.0.1
|
|
45
|
+
- tinylicious: 2.0.1
|
|
46
|
+
|
|
47
|
+
- Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
48
|
+
|
|
49
|
+
The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
|
|
50
|
+
|
|
51
|
+
## 2.0.0-internal.6.4.0
|
|
52
|
+
|
|
53
|
+
Dependency updates only.
|
|
54
|
+
|
|
3
55
|
## 2.0.0-internal.6.3.0
|
|
4
56
|
|
|
5
57
|
Dependency updates only.
|
package/api-extractor.json
CHANGED
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
## API Report File for "@fluidframework/map"
|
|
2
|
+
|
|
3
|
+
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
|
|
7
|
+
import { IChannelAttributes } from '@fluidframework/datastore-definitions';
|
|
8
|
+
import { IChannelFactory } from '@fluidframework/datastore-definitions';
|
|
9
|
+
import { IChannelServices } from '@fluidframework/datastore-definitions';
|
|
10
|
+
import { IChannelStorageService } from '@fluidframework/datastore-definitions';
|
|
11
|
+
import { IDisposable } from '@fluidframework/core-interfaces';
|
|
12
|
+
import { IEvent } from '@fluidframework/core-interfaces';
|
|
13
|
+
import { IEventProvider } from '@fluidframework/core-interfaces';
|
|
14
|
+
import { IEventThisPlaceHolder } from '@fluidframework/core-interfaces';
|
|
15
|
+
import { IFluidDataStoreRuntime } from '@fluidframework/datastore-definitions';
|
|
16
|
+
import { IFluidHandle } from '@fluidframework/core-interfaces';
|
|
17
|
+
import { IFluidSerializer } from '@fluidframework/shared-object-base';
|
|
18
|
+
import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
19
|
+
import { ISharedObject } from '@fluidframework/shared-object-base';
|
|
20
|
+
import { ISharedObjectEvents } from '@fluidframework/shared-object-base';
|
|
21
|
+
import { ISummaryTreeWithStats } from '@fluidframework/runtime-definitions';
|
|
22
|
+
import { ITelemetryContext } from '@fluidframework/runtime-definitions';
|
|
23
|
+
import { SharedObject } from '@fluidframework/shared-object-base';
|
|
24
|
+
|
|
25
|
+
// @public @sealed
|
|
26
|
+
export class DirectoryFactory implements IChannelFactory {
|
|
27
|
+
// (undocumented)
|
|
28
|
+
static readonly Attributes: IChannelAttributes;
|
|
29
|
+
// (undocumented)
|
|
30
|
+
get attributes(): IChannelAttributes;
|
|
31
|
+
// (undocumented)
|
|
32
|
+
create(runtime: IFluidDataStoreRuntime, id: string): ISharedDirectory;
|
|
33
|
+
// (undocumented)
|
|
34
|
+
load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, attributes: IChannelAttributes): Promise<ISharedDirectory>;
|
|
35
|
+
// (undocumented)
|
|
36
|
+
static readonly Type = "https://graph.microsoft.com/types/directory";
|
|
37
|
+
// (undocumented)
|
|
38
|
+
get type(): string;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// @public
|
|
42
|
+
export interface ICreateInfo {
|
|
43
|
+
ccIds: string[];
|
|
44
|
+
csn: number;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// @public
|
|
48
|
+
export interface IDirectory extends Map<string, any>, IEventProvider<IDirectoryEvents>, Partial<IDisposable> {
|
|
49
|
+
readonly absolutePath: string;
|
|
50
|
+
countSubDirectory?(): number;
|
|
51
|
+
createSubDirectory(subdirName: string): IDirectory;
|
|
52
|
+
deleteSubDirectory(subdirName: string): boolean;
|
|
53
|
+
get<T = any>(key: string): T | undefined;
|
|
54
|
+
getSubDirectory(subdirName: string): IDirectory | undefined;
|
|
55
|
+
getWorkingDirectory(relativePath: string): IDirectory | undefined;
|
|
56
|
+
hasSubDirectory(subdirName: string): boolean;
|
|
57
|
+
set<T = unknown>(key: string, value: T): this;
|
|
58
|
+
subdirectories(): IterableIterator<[string, IDirectory]>;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// @public
|
|
62
|
+
export interface IDirectoryClearOperation {
|
|
63
|
+
path: string;
|
|
64
|
+
type: "clear";
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// @public
|
|
68
|
+
export interface IDirectoryCreateSubDirectoryOperation {
|
|
69
|
+
path: string;
|
|
70
|
+
subdirName: string;
|
|
71
|
+
type: "createSubDirectory";
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// @public
|
|
75
|
+
export interface IDirectoryDataObject {
|
|
76
|
+
ci?: ICreateInfo;
|
|
77
|
+
storage?: {
|
|
78
|
+
[key: string]: ISerializableValue;
|
|
79
|
+
};
|
|
80
|
+
subdirectories?: {
|
|
81
|
+
[subdirName: string]: IDirectoryDataObject;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// @public
|
|
86
|
+
export interface IDirectoryDeleteOperation {
|
|
87
|
+
key: string;
|
|
88
|
+
path: string;
|
|
89
|
+
type: "delete";
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// @public
|
|
93
|
+
export interface IDirectoryDeleteSubDirectoryOperation {
|
|
94
|
+
path: string;
|
|
95
|
+
subdirName: string;
|
|
96
|
+
type: "deleteSubDirectory";
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// @public
|
|
100
|
+
export interface IDirectoryEvents extends IEvent {
|
|
101
|
+
(event: "containedValueChanged", listener: (changed: IValueChanged, local: boolean, target: IEventThisPlaceHolder) => void): any;
|
|
102
|
+
(event: "subDirectoryCreated", listener: (path: string, local: boolean, target: IEventThisPlaceHolder) => void): any;
|
|
103
|
+
(event: "subDirectoryDeleted", listener: (path: string, local: boolean, target: IEventThisPlaceHolder) => void): any;
|
|
104
|
+
(event: "disposed", listener: (target: IEventThisPlaceHolder) => void): any;
|
|
105
|
+
(event: "undisposed", listener: (target: IEventThisPlaceHolder) => void): any;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// @public
|
|
109
|
+
export type IDirectoryKeyOperation = IDirectorySetOperation | IDirectoryDeleteOperation;
|
|
110
|
+
|
|
111
|
+
// @internal
|
|
112
|
+
export interface IDirectoryNewStorageFormat {
|
|
113
|
+
blobs: string[];
|
|
114
|
+
content: IDirectoryDataObject;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// @public
|
|
118
|
+
export type IDirectoryOperation = IDirectoryStorageOperation | IDirectorySubDirectoryOperation;
|
|
119
|
+
|
|
120
|
+
// @public
|
|
121
|
+
export interface IDirectorySetOperation {
|
|
122
|
+
key: string;
|
|
123
|
+
path: string;
|
|
124
|
+
type: "set";
|
|
125
|
+
value: ISerializableValue;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// @public
|
|
129
|
+
export type IDirectoryStorageOperation = IDirectoryKeyOperation | IDirectoryClearOperation;
|
|
130
|
+
|
|
131
|
+
// @public
|
|
132
|
+
export type IDirectorySubDirectoryOperation = IDirectoryCreateSubDirectoryOperation | IDirectoryDeleteSubDirectoryOperation;
|
|
133
|
+
|
|
134
|
+
// @public
|
|
135
|
+
export interface IDirectoryValueChanged extends IValueChanged {
|
|
136
|
+
path: string;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// @public
|
|
140
|
+
export interface ILocalValue {
|
|
141
|
+
makeSerialized(serializer: IFluidSerializer, bind: IFluidHandle): ISerializedValue;
|
|
142
|
+
readonly type: string;
|
|
143
|
+
readonly value: any;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// @public @deprecated
|
|
147
|
+
export interface ISerializableValue {
|
|
148
|
+
type: string;
|
|
149
|
+
value: any;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// @public
|
|
153
|
+
export interface ISerializedValue {
|
|
154
|
+
type: string;
|
|
155
|
+
value: string | undefined;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// @public
|
|
159
|
+
export interface ISharedDirectory extends ISharedObject<ISharedDirectoryEvents & IDirectoryEvents>, Omit<IDirectory, "on" | "once" | "off"> {
|
|
160
|
+
// (undocumented)
|
|
161
|
+
[Symbol.iterator](): IterableIterator<[string, any]>;
|
|
162
|
+
// (undocumented)
|
|
163
|
+
readonly [Symbol.toStringTag]: string;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// @public
|
|
167
|
+
export interface ISharedDirectoryEvents extends ISharedObjectEvents {
|
|
168
|
+
(event: "valueChanged", listener: (changed: IDirectoryValueChanged, local: boolean, target: IEventThisPlaceHolder) => void): any;
|
|
169
|
+
(event: "clear", listener: (local: boolean, target: IEventThisPlaceHolder) => void): any;
|
|
170
|
+
(event: "subDirectoryCreated", listener: (path: string, local: boolean, target: IEventThisPlaceHolder) => void): any;
|
|
171
|
+
(event: "subDirectoryDeleted", listener: (path: string, local: boolean, target: IEventThisPlaceHolder) => void): any;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// @public
|
|
175
|
+
export interface ISharedMap extends ISharedObject<ISharedMapEvents>, Map<string, any> {
|
|
176
|
+
get<T = any>(key: string): T | undefined;
|
|
177
|
+
set<T = unknown>(key: string, value: T): this;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// @public
|
|
181
|
+
export interface ISharedMapEvents extends ISharedObjectEvents {
|
|
182
|
+
(event: "valueChanged", listener: (changed: IValueChanged, local: boolean, target: IEventThisPlaceHolder) => void): any;
|
|
183
|
+
(event: "clear", listener: (local: boolean, target: IEventThisPlaceHolder) => void): any;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// @public
|
|
187
|
+
export interface IValueChanged {
|
|
188
|
+
key: string;
|
|
189
|
+
previousValue: any;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// @public
|
|
193
|
+
export class LocalValueMaker {
|
|
194
|
+
constructor(serializer: IFluidSerializer);
|
|
195
|
+
fromInMemory(value: unknown): ILocalValue;
|
|
196
|
+
fromSerializable(serializable: ISerializableValue): ILocalValue;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// @public @sealed
|
|
200
|
+
export class MapFactory implements IChannelFactory {
|
|
201
|
+
// (undocumented)
|
|
202
|
+
static readonly Attributes: IChannelAttributes;
|
|
203
|
+
// (undocumented)
|
|
204
|
+
get attributes(): IChannelAttributes;
|
|
205
|
+
// (undocumented)
|
|
206
|
+
create(runtime: IFluidDataStoreRuntime, id: string): ISharedMap;
|
|
207
|
+
// (undocumented)
|
|
208
|
+
load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, attributes: IChannelAttributes): Promise<ISharedMap>;
|
|
209
|
+
// (undocumented)
|
|
210
|
+
static readonly Type = "https://graph.microsoft.com/types/map";
|
|
211
|
+
// (undocumented)
|
|
212
|
+
get type(): string;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// @public @sealed
|
|
216
|
+
export class SharedDirectory extends SharedObject<ISharedDirectoryEvents> implements ISharedDirectory {
|
|
217
|
+
[Symbol.iterator](): IterableIterator<[string, any]>;
|
|
218
|
+
[Symbol.toStringTag]: string;
|
|
219
|
+
constructor(id: string, runtime: IFluidDataStoreRuntime, attributes: IChannelAttributes);
|
|
220
|
+
get absolutePath(): string;
|
|
221
|
+
// @internal (undocumented)
|
|
222
|
+
protected applyStashedOp(op: unknown): unknown;
|
|
223
|
+
clear(): void;
|
|
224
|
+
countSubDirectory(): number;
|
|
225
|
+
static create(runtime: IFluidDataStoreRuntime, id?: string): SharedDirectory;
|
|
226
|
+
createSubDirectory(subdirName: string): IDirectory;
|
|
227
|
+
delete(key: string): boolean;
|
|
228
|
+
deleteSubDirectory(subdirName: string): boolean;
|
|
229
|
+
// (undocumented)
|
|
230
|
+
dispose(error?: Error): void;
|
|
231
|
+
// (undocumented)
|
|
232
|
+
get disposed(): boolean;
|
|
233
|
+
entries(): IterableIterator<[string, any]>;
|
|
234
|
+
forEach(callback: (value: any, key: string, map: Map<string, any>) => void): void;
|
|
235
|
+
get<T = any>(key: string): T | undefined;
|
|
236
|
+
static getFactory(): IChannelFactory;
|
|
237
|
+
getSubDirectory(subdirName: string): IDirectory | undefined;
|
|
238
|
+
getWorkingDirectory(relativePath: string): IDirectory | undefined;
|
|
239
|
+
has(key: string): boolean;
|
|
240
|
+
hasSubDirectory(subdirName: string): boolean;
|
|
241
|
+
keys(): IterableIterator<string>;
|
|
242
|
+
// @internal (undocumented)
|
|
243
|
+
protected loadCore(storage: IChannelStorageService): Promise<void>;
|
|
244
|
+
// @internal (undocumented)
|
|
245
|
+
readonly localValueMaker: LocalValueMaker;
|
|
246
|
+
// @internal (undocumented)
|
|
247
|
+
protected onDisconnect(): void;
|
|
248
|
+
// @internal
|
|
249
|
+
protected populate(data: IDirectoryDataObject): void;
|
|
250
|
+
// @internal (undocumented)
|
|
251
|
+
protected processCore(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;
|
|
252
|
+
// @internal (undocumented)
|
|
253
|
+
protected reSubmitCore(content: unknown, localOpMetadata: unknown): void;
|
|
254
|
+
// @internal (undocumented)
|
|
255
|
+
protected rollback(content: unknown, localOpMetadata: unknown): void;
|
|
256
|
+
set<T = unknown>(key: string, value: T): this;
|
|
257
|
+
get size(): number;
|
|
258
|
+
subdirectories(): IterableIterator<[string, IDirectory]>;
|
|
259
|
+
// @internal
|
|
260
|
+
submitDirectoryMessage(op: IDirectoryOperation, localOpMetadata: unknown): void;
|
|
261
|
+
// @internal (undocumented)
|
|
262
|
+
protected summarizeCore(serializer: IFluidSerializer, telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;
|
|
263
|
+
values(): IterableIterator<any>;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// @public
|
|
267
|
+
export class SharedMap extends SharedObject<ISharedMapEvents> implements ISharedMap {
|
|
268
|
+
[Symbol.iterator](): IterableIterator<[string, any]>;
|
|
269
|
+
readonly [Symbol.toStringTag]: string;
|
|
270
|
+
constructor(id: string, runtime: IFluidDataStoreRuntime, attributes: IChannelAttributes);
|
|
271
|
+
// @internal (undocumented)
|
|
272
|
+
protected applyStashedOp(content: unknown): unknown;
|
|
273
|
+
clear(): void;
|
|
274
|
+
static create(runtime: IFluidDataStoreRuntime, id?: string): SharedMap;
|
|
275
|
+
delete(key: string): boolean;
|
|
276
|
+
entries(): IterableIterator<[string, any]>;
|
|
277
|
+
forEach(callbackFn: (value: any, key: string, map: Map<string, any>) => void): void;
|
|
278
|
+
get<T = any>(key: string): T | undefined;
|
|
279
|
+
static getFactory(): IChannelFactory;
|
|
280
|
+
has(key: string): boolean;
|
|
281
|
+
keys(): IterableIterator<string>;
|
|
282
|
+
// @internal (undocumented)
|
|
283
|
+
protected loadCore(storage: IChannelStorageService): Promise<void>;
|
|
284
|
+
// @internal (undocumented)
|
|
285
|
+
protected onDisconnect(): void;
|
|
286
|
+
// @internal (undocumented)
|
|
287
|
+
protected processCore(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;
|
|
288
|
+
// @internal (undocumented)
|
|
289
|
+
protected reSubmitCore(content: unknown, localOpMetadata: unknown): void;
|
|
290
|
+
// @internal (undocumented)
|
|
291
|
+
protected rollback(content: unknown, localOpMetadata: unknown): void;
|
|
292
|
+
set(key: string, value: unknown): this;
|
|
293
|
+
get size(): number;
|
|
294
|
+
// @internal (undocumented)
|
|
295
|
+
protected summarizeCore(serializer: IFluidSerializer, telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;
|
|
296
|
+
values(): IterableIterator<any>;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
```
|
package/dist/directory.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ import { IDirectory, ISerializableValue, ISharedDirectory, ISharedDirectoryEvent
|
|
|
10
10
|
import { LocalValueMaker } from "./localValues";
|
|
11
11
|
/**
|
|
12
12
|
* Operation indicating a value should be set for a key.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
13
15
|
*/
|
|
14
16
|
export interface IDirectorySetOperation {
|
|
15
17
|
/**
|
|
@@ -31,6 +33,8 @@ export interface IDirectorySetOperation {
|
|
|
31
33
|
}
|
|
32
34
|
/**
|
|
33
35
|
* Operation indicating a key should be deleted from the directory.
|
|
36
|
+
*
|
|
37
|
+
* @public
|
|
34
38
|
*/
|
|
35
39
|
export interface IDirectoryDeleteOperation {
|
|
36
40
|
/**
|
|
@@ -47,11 +51,15 @@ export interface IDirectoryDeleteOperation {
|
|
|
47
51
|
path: string;
|
|
48
52
|
}
|
|
49
53
|
/**
|
|
50
|
-
* An operation on a specific key within a directory
|
|
54
|
+
* An operation on a specific key within a directory.
|
|
55
|
+
*
|
|
56
|
+
* @public
|
|
51
57
|
*/
|
|
52
|
-
export
|
|
58
|
+
export type IDirectoryKeyOperation = IDirectorySetOperation | IDirectoryDeleteOperation;
|
|
53
59
|
/**
|
|
54
60
|
* Operation indicating the directory should be cleared.
|
|
61
|
+
*
|
|
62
|
+
* @public
|
|
55
63
|
*/
|
|
56
64
|
export interface IDirectoryClearOperation {
|
|
57
65
|
/**
|
|
@@ -64,11 +72,15 @@ export interface IDirectoryClearOperation {
|
|
|
64
72
|
path: string;
|
|
65
73
|
}
|
|
66
74
|
/**
|
|
67
|
-
* An operation on one or more of the keys within a directory
|
|
75
|
+
* An operation on one or more of the keys within a directory.
|
|
76
|
+
*
|
|
77
|
+
* @public
|
|
68
78
|
*/
|
|
69
|
-
export
|
|
79
|
+
export type IDirectoryStorageOperation = IDirectoryKeyOperation | IDirectoryClearOperation;
|
|
70
80
|
/**
|
|
71
81
|
* Operation indicating a subdirectory should be created.
|
|
82
|
+
*
|
|
83
|
+
* @public
|
|
72
84
|
*/
|
|
73
85
|
export interface IDirectoryCreateSubDirectoryOperation {
|
|
74
86
|
/**
|
|
@@ -86,6 +98,8 @@ export interface IDirectoryCreateSubDirectoryOperation {
|
|
|
86
98
|
}
|
|
87
99
|
/**
|
|
88
100
|
* Operation indicating a subdirectory should be deleted.
|
|
101
|
+
*
|
|
102
|
+
* @public
|
|
89
103
|
*/
|
|
90
104
|
export interface IDirectoryDeleteSubDirectoryOperation {
|
|
91
105
|
/**
|
|
@@ -102,15 +116,21 @@ export interface IDirectoryDeleteSubDirectoryOperation {
|
|
|
102
116
|
subdirName: string;
|
|
103
117
|
}
|
|
104
118
|
/**
|
|
105
|
-
* An operation on the subdirectories within a directory
|
|
119
|
+
* An operation on the subdirectories within a directory.
|
|
120
|
+
*
|
|
121
|
+
* @public
|
|
106
122
|
*/
|
|
107
|
-
export
|
|
123
|
+
export type IDirectorySubDirectoryOperation = IDirectoryCreateSubDirectoryOperation | IDirectoryDeleteSubDirectoryOperation;
|
|
108
124
|
/**
|
|
109
|
-
* Any operation on a directory
|
|
125
|
+
* Any operation on a directory.
|
|
126
|
+
*
|
|
127
|
+
* @public
|
|
110
128
|
*/
|
|
111
|
-
export
|
|
129
|
+
export type IDirectoryOperation = IDirectoryStorageOperation | IDirectorySubDirectoryOperation;
|
|
112
130
|
/**
|
|
113
131
|
* Create info for the subdirectory.
|
|
132
|
+
*
|
|
133
|
+
* @public
|
|
114
134
|
*/
|
|
115
135
|
export interface ICreateInfo {
|
|
116
136
|
/**
|
|
@@ -129,6 +149,8 @@ export interface ICreateInfo {
|
|
|
129
149
|
* {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
|
|
130
150
|
* | JSON.stringify}, direct result from
|
|
131
151
|
* {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse | JSON.parse}.
|
|
152
|
+
*
|
|
153
|
+
* @public
|
|
132
154
|
*/
|
|
133
155
|
export interface IDirectoryDataObject {
|
|
134
156
|
/**
|
|
@@ -171,6 +193,7 @@ export interface IDirectoryNewStorageFormat {
|
|
|
171
193
|
* {@link @fluidframework/datastore-definitions#IChannelFactory} for {@link SharedDirectory}.
|
|
172
194
|
*
|
|
173
195
|
* @sealed
|
|
196
|
+
* @public
|
|
174
197
|
*/
|
|
175
198
|
export declare class DirectoryFactory implements IChannelFactory {
|
|
176
199
|
/**
|
|
@@ -210,6 +233,7 @@ export declare class DirectoryFactory implements IChannelFactory {
|
|
|
210
233
|
* ```
|
|
211
234
|
*
|
|
212
235
|
* @sealed
|
|
236
|
+
* @public
|
|
213
237
|
*/
|
|
214
238
|
export declare class SharedDirectory extends SharedObject<ISharedDirectoryEvents> implements ISharedDirectory {
|
|
215
239
|
/**
|
package/dist/directory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,yBAAyB,EAAe,MAAM,sCAAsC,CAAC;AAC9F,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAa,MAAM,oCAAoC,CAAC;AAG/F,OAAO,EACN,UAAU,EAIV,kBAAkB,EAElB,gBAAgB,EAChB,sBAAsB,EAEtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAe,eAAe,EAAoB,MAAM,eAAe,CAAC;AAsC/E
|
|
1
|
+
{"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"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"}
|
package/dist/directory.js
CHANGED
|
@@ -5,7 +5,11 @@
|
|
|
5
5
|
*/
|
|
6
6
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
7
|
if (k2 === undefined) k2 = k;
|
|
8
|
-
Object.
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
9
13
|
}) : (function(o, m, k, k2) {
|
|
10
14
|
if (k2 === undefined) k2 = k;
|
|
11
15
|
o[k2] = m[k];
|
|
@@ -43,6 +47,7 @@ const snapshotFileName = "header";
|
|
|
43
47
|
* {@link @fluidframework/datastore-definitions#IChannelFactory} for {@link SharedDirectory}.
|
|
44
48
|
*
|
|
45
49
|
* @sealed
|
|
50
|
+
* @public
|
|
46
51
|
*/
|
|
47
52
|
class DirectoryFactory {
|
|
48
53
|
/**
|
|
@@ -99,8 +104,33 @@ DirectoryFactory.Attributes = {
|
|
|
99
104
|
* ```
|
|
100
105
|
*
|
|
101
106
|
* @sealed
|
|
107
|
+
* @public
|
|
102
108
|
*/
|
|
103
109
|
class SharedDirectory extends shared_object_base_1.SharedObject {
|
|
110
|
+
/**
|
|
111
|
+
* Create a new shared directory
|
|
112
|
+
*
|
|
113
|
+
* @param runtime - Data store runtime the new shared directory belongs to
|
|
114
|
+
* @param id - Optional name of the shared directory
|
|
115
|
+
* @returns Newly create shared directory (but not attached yet)
|
|
116
|
+
*/
|
|
117
|
+
static create(runtime, id) {
|
|
118
|
+
return runtime.createChannel(id, DirectoryFactory.Type);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get a factory for SharedDirectory to register with the data store.
|
|
122
|
+
*
|
|
123
|
+
* @returns A factory that creates and load SharedDirectory
|
|
124
|
+
*/
|
|
125
|
+
static getFactory() {
|
|
126
|
+
return new DirectoryFactory();
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* {@inheritDoc IDirectory.absolutePath}
|
|
130
|
+
*/
|
|
131
|
+
get absolutePath() {
|
|
132
|
+
return this.root.absolutePath;
|
|
133
|
+
}
|
|
104
134
|
/**
|
|
105
135
|
* Constructs a new shared directory. If the object is non-local an id and service interfaces will
|
|
106
136
|
* be provided.
|
|
@@ -135,30 +165,6 @@ class SharedDirectory extends shared_object_base_1.SharedObject {
|
|
|
135
165
|
this.emit("subDirectoryDeleted", relativePath, local, this);
|
|
136
166
|
});
|
|
137
167
|
}
|
|
138
|
-
/**
|
|
139
|
-
* Create a new shared directory
|
|
140
|
-
*
|
|
141
|
-
* @param runtime - Data store runtime the new shared directory belongs to
|
|
142
|
-
* @param id - Optional name of the shared directory
|
|
143
|
-
* @returns Newly create shared directory (but not attached yet)
|
|
144
|
-
*/
|
|
145
|
-
static create(runtime, id) {
|
|
146
|
-
return runtime.createChannel(id, DirectoryFactory.Type);
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Get a factory for SharedDirectory to register with the data store.
|
|
150
|
-
*
|
|
151
|
-
* @returns A factory that creates and load SharedDirectory
|
|
152
|
-
*/
|
|
153
|
-
static getFactory() {
|
|
154
|
-
return new DirectoryFactory();
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* {@inheritDoc IDirectory.absolutePath}
|
|
158
|
-
*/
|
|
159
|
-
get absolutePath() {
|
|
160
|
-
return this.root.absolutePath;
|
|
161
|
-
}
|
|
162
168
|
/**
|
|
163
169
|
* {@inheritDoc IDirectory.get}
|
|
164
170
|
*/
|
|
@@ -1274,9 +1280,12 @@ class SubDirectory extends client_utils_1.TypedEventEmitter {
|
|
|
1274
1280
|
const pendingMessageIds = this.pendingKeys.get(op.key);
|
|
1275
1281
|
// Only submit the op, if we have record for it, otherwise it is possible that the older instance
|
|
1276
1282
|
// is already deleted, in which case we don't need to submit the op.
|
|
1277
|
-
if (pendingMessageIds !== undefined
|
|
1278
|
-
pendingMessageIds
|
|
1279
|
-
|
|
1283
|
+
if (pendingMessageIds !== undefined) {
|
|
1284
|
+
const index = pendingMessageIds.findIndex((id) => id === localOpMetadata.pendingMessageId);
|
|
1285
|
+
if (index === -1) {
|
|
1286
|
+
return;
|
|
1287
|
+
}
|
|
1288
|
+
pendingMessageIds.splice(index, 1);
|
|
1280
1289
|
if (pendingMessageIds.length === 0) {
|
|
1281
1290
|
this.pendingKeys.delete(op.key);
|
|
1282
1291
|
}
|
|
@@ -1518,17 +1527,15 @@ class SubDirectory extends client_utils_1.TypedEventEmitter {
|
|
|
1518
1527
|
// If I have a NACK clear, we can ignore all ops.
|
|
1519
1528
|
return false;
|
|
1520
1529
|
}
|
|
1521
|
-
const
|
|
1522
|
-
if (
|
|
1530
|
+
const pendingKeyMessageIds = this.pendingKeys.get(op.key);
|
|
1531
|
+
if (pendingKeyMessageIds !== undefined) {
|
|
1523
1532
|
// Found an NACK op, clear it from the directory if the latest sequence number in the directory
|
|
1524
1533
|
// match the message's and don't process the op.
|
|
1525
1534
|
if (local) {
|
|
1526
1535
|
(0, core_utils_1.assert)(localOpMetadata !== undefined && isKeyEditLocalOpMetadata(localOpMetadata), 0x011 /* pendingMessageId is missing from the local client's operation */);
|
|
1527
|
-
|
|
1528
|
-
(
|
|
1529
|
-
|
|
1530
|
-
pendingMessageIds.shift();
|
|
1531
|
-
if (pendingMessageIds.length === 0) {
|
|
1536
|
+
(0, core_utils_1.assert)(pendingKeyMessageIds[0] === localOpMetadata.pendingMessageId, 0x331 /* Unexpected pending message received */);
|
|
1537
|
+
pendingKeyMessageIds.shift();
|
|
1538
|
+
if (pendingKeyMessageIds.length === 0) {
|
|
1532
1539
|
this.pendingKeys.delete(op.key);
|
|
1533
1540
|
}
|
|
1534
1541
|
}
|