fluid-framework 2.0.0-dev-rc.1.0.0.228517 → 2.0.0-dev-rc.1.0.0.232845
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/README.md +30 -48
- package/api-extractor.json +8 -1
- package/api-report/fluid-framework.api.md +153 -82
- package/dist/fluid-framework-alpha.d.ts +645 -199
- package/dist/fluid-framework-beta.d.ts +625 -199
- package/dist/fluid-framework-public.d.ts +625 -199
- package/dist/fluid-framework-untrimmed.d.ts +645 -200
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -8
- package/dist/index.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/lib/fluid-framework-alpha.d.mts +22 -27
- package/lib/fluid-framework-beta.d.mts +21 -27
- package/lib/fluid-framework-public.d.mts +21 -27
- package/lib/fluid-framework-untrimmed.d.mts +21 -27
- package/lib/index.d.mts +7 -6
- package/lib/index.d.mts.map +1 -1
- package/lib/index.mjs +3 -3
- package/lib/index.mjs.map +1 -1
- package/package.json +10 -10
- package/src/index.ts +13 -14
- /package/{.eslintrc.js → .eslintrc.cjs} +0 -0
package/README.md
CHANGED
|
@@ -1,25 +1,30 @@
|
|
|
1
|
-
#
|
|
1
|
+
# fluid-framework
|
|
2
2
|
|
|
3
|
-
The `
|
|
3
|
+
The `fluid-framework` package bundles a collection of Fluid Framework client libraries for easy use when paired with a corresponding service client package (e.g. `@fluidframework/azure-client`, `@fluidframework/tinylicious-client`, or `@fluid-experimental/osdp-client (BETA)`).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Contents
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->
|
|
7
|
+
The `fluid-framework` package consists primarily of two portions: the `IFluidContainer` and a selection of distributed data structures (DDSes).
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
### IFluidContainer
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
The **[IFluidContainer][]** interface is one of the types returned by calls to `createContainer()` and `getContainer()` on the service clients such as `AzureClient`.
|
|
12
|
+
It includes functionality to retrieve the Fluid data contained within, as well as to inspect the state of the collaboration session connection.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
npm i fluid-framework
|
|
16
|
-
```
|
|
14
|
+
### DDS packages
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
You'll use one or more DDS data structures in your container to model your collaborative data.
|
|
17
|
+
The `fluid-framework` package offers the following data structures:
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
1. **[SharedTree][]**
|
|
20
|
+
1. **[SharedMap][]**, a map-like data structure for storing key/value pair data
|
|
21
|
+
- Note: as of version 2.0, `SharedMap` is deprecated. Please use `SharedTree` instead.
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
## Tutorial
|
|
24
|
+
|
|
25
|
+
Check out the [Hello World tutorial](https://fluidframework.com/docs/start/tutorial/) using `fluid-framework`.
|
|
26
|
+
|
|
27
|
+
<!-- AUTO-GENERATED-CONTENT:START (LIBRARY_PACKAGE_README:scripts=FALSE) -->
|
|
23
28
|
|
|
24
29
|
<!-- prettier-ignore-start -->
|
|
25
30
|
<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->
|
|
@@ -30,28 +35,17 @@ When taking a dependency on a Fluid Framework library, we recommend using a `^`
|
|
|
30
35
|
While Fluid Framework libraries may use different ranges with interdependencies between other Fluid Framework libraries,
|
|
31
36
|
library consumers should always prefer `^`.
|
|
32
37
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
<!-- AUTO-GENERATED-CONTENT:END -->
|
|
36
|
-
|
|
37
|
-
<!-- AUTO-GENERATED-CONTENT:START (README_API_DOCS_SECTION:includeHeading=TRUE) -->
|
|
38
|
+
## Installation
|
|
38
39
|
|
|
39
|
-
|
|
40
|
+
To get started, install the package by running the following command:
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
```bash
|
|
43
|
+
npm i fluid-framework
|
|
44
|
+
```
|
|
42
45
|
|
|
43
46
|
## API Documentation
|
|
44
47
|
|
|
45
|
-
API documentation for
|
|
46
|
-
|
|
47
|
-
<!-- prettier-ignore-end -->
|
|
48
|
-
|
|
49
|
-
<!-- AUTO-GENERATED-CONTENT:END -->
|
|
50
|
-
|
|
51
|
-
<!-- AUTO-GENERATED-CONTENT:START (README_CONTRIBUTION_GUIDELINES_SECTION:includeHeading=TRUE) -->
|
|
52
|
-
|
|
53
|
-
<!-- prettier-ignore-start -->
|
|
54
|
-
<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->
|
|
48
|
+
API documentation for **fluid-framework** is available at <https://fluidframework.com/docs/apis/fluid-framework>.
|
|
55
49
|
|
|
56
50
|
## Contribution Guidelines
|
|
57
51
|
|
|
@@ -71,15 +65,6 @@ This project may contain Microsoft trademarks or logos for Microsoft projects, p
|
|
|
71
65
|
Use of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).
|
|
72
66
|
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
|
|
73
67
|
|
|
74
|
-
<!-- prettier-ignore-end -->
|
|
75
|
-
|
|
76
|
-
<!-- AUTO-GENERATED-CONTENT:END -->
|
|
77
|
-
|
|
78
|
-
<!-- AUTO-GENERATED-CONTENT:START (README_HELP_SECTION:includeHeading=TRUE) -->
|
|
79
|
-
|
|
80
|
-
<!-- prettier-ignore-start -->
|
|
81
|
-
<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->
|
|
82
|
-
|
|
83
68
|
## Help
|
|
84
69
|
|
|
85
70
|
Not finding what you're looking for in this README? Check out our [GitHub
|
|
@@ -90,15 +75,6 @@ issue](https://github.com/microsoft/FluidFramework/wiki/Submitting-Bugs-and-Feat
|
|
|
90
75
|
|
|
91
76
|
Thank you!
|
|
92
77
|
|
|
93
|
-
<!-- prettier-ignore-end -->
|
|
94
|
-
|
|
95
|
-
<!-- AUTO-GENERATED-CONTENT:END -->
|
|
96
|
-
|
|
97
|
-
<!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->
|
|
98
|
-
|
|
99
|
-
<!-- prettier-ignore-start -->
|
|
100
|
-
<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->
|
|
101
|
-
|
|
102
78
|
## Trademark
|
|
103
79
|
|
|
104
80
|
This project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.
|
|
@@ -110,3 +86,9 @@ Use of Microsoft trademarks or logos in modified versions of this project must n
|
|
|
110
86
|
<!-- prettier-ignore-end -->
|
|
111
87
|
|
|
112
88
|
<!-- AUTO-GENERATED-CONTENT:END -->
|
|
89
|
+
|
|
90
|
+
<!-- Links -->
|
|
91
|
+
|
|
92
|
+
[ifluidcontainer]: https://fluidframework.com/docs/api/v2/fluid-framework/ifluidcontainer-interface
|
|
93
|
+
[sharedmap]: https://fluidframework.com/docs/data-structures/map/
|
|
94
|
+
[sharedtree]: https://fluidframework.com/docs/data-structures/tree/
|
package/api-extractor.json
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
3
3
|
"extends": "../../../common/build/build-common/api-extractor-base.json",
|
|
4
|
-
"bundledPackages": [
|
|
4
|
+
"bundledPackages": [
|
|
5
|
+
"@fluidframework/container-definitions",
|
|
6
|
+
"@fluidframework/container-loader",
|
|
7
|
+
"@fluidframework/driver-definitions",
|
|
8
|
+
"@fluidframework/fluid-static",
|
|
9
|
+
"@fluidframework/map",
|
|
10
|
+
"@fluidframework/tree"
|
|
11
|
+
],
|
|
5
12
|
"messages": {
|
|
6
13
|
"extractorMessageReporting": {
|
|
7
14
|
// TODO: Add missing documentation and remove this rule override
|
|
@@ -4,43 +4,28 @@
|
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
6
|
|
|
7
|
-
import { AttachState } from '@fluidframework/container-definitions';
|
|
8
|
-
import { ConnectionState } from '@fluidframework/container-loader';
|
|
9
|
-
import { ContainerErrorType } from '@fluidframework/container-definitions';
|
|
10
|
-
import { ContainerSchema } from '@fluidframework/fluid-static';
|
|
11
|
-
import { DataObjectClass } from '@fluidframework/fluid-static';
|
|
12
|
-
import { DriverErrorType } from '@fluidframework/driver-definitions';
|
|
13
7
|
import { FluidObject } from '@fluidframework/core-interfaces';
|
|
14
8
|
import { IChannel } from '@fluidframework/datastore-definitions';
|
|
15
9
|
import { IChannelAttributes } from '@fluidframework/datastore-definitions';
|
|
16
10
|
import { IChannelFactory } from '@fluidframework/datastore-definitions';
|
|
17
11
|
import { IChannelServices } from '@fluidframework/datastore-definitions';
|
|
18
12
|
import { IChannelStorageService } from '@fluidframework/datastore-definitions';
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
13
|
+
import { IErrorBase } from '@fluidframework/core-interfaces';
|
|
14
|
+
import { IEvent } from '@fluidframework/core-interfaces';
|
|
15
|
+
import { IEventProvider } from '@fluidframework/core-interfaces';
|
|
21
16
|
import { IEventThisPlaceHolder } from '@fluidframework/core-interfaces';
|
|
22
17
|
import { IExperimentalIncrementalSummaryContext } from '@fluidframework/runtime-definitions';
|
|
23
|
-
import { IFluidContainer } from '@fluidframework/fluid-static';
|
|
24
|
-
import { IFluidContainerEvents } from '@fluidframework/fluid-static';
|
|
25
18
|
import { IFluidDataStoreRuntime } from '@fluidframework/datastore-definitions';
|
|
26
19
|
import { IFluidHandle } from '@fluidframework/core-interfaces';
|
|
27
20
|
import { IFluidLoadable } from '@fluidframework/core-interfaces';
|
|
28
21
|
import { IFluidSerializer } from '@fluidframework/shared-object-base';
|
|
29
22
|
import { IGarbageCollectionData } from '@fluidframework/runtime-definitions';
|
|
30
|
-
import { IMember } from '@fluidframework/fluid-static';
|
|
31
23
|
import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
32
|
-
import { IServiceAudience } from '@fluidframework/fluid-static';
|
|
33
|
-
import { IServiceAudienceEvents } from '@fluidframework/fluid-static';
|
|
34
24
|
import { ISharedObject } from '@fluidframework/shared-object-base';
|
|
35
25
|
import { ISharedObjectEvents } from '@fluidframework/shared-object-base';
|
|
36
26
|
import { ISummaryTreeWithStats } from '@fluidframework/runtime-definitions';
|
|
37
27
|
import { ITelemetryContext } from '@fluidframework/runtime-definitions';
|
|
38
|
-
import { LoadableObjectClass } from '@fluidframework/fluid-static';
|
|
39
|
-
import { LoadableObjectClassRecord } from '@fluidframework/fluid-static';
|
|
40
|
-
import { LoadableObjectCtor } from '@fluidframework/fluid-static';
|
|
41
|
-
import { MemberChangedListener } from '@fluidframework/fluid-static';
|
|
42
28
|
import { SharedObject } from '@fluidframework/shared-object-base';
|
|
43
|
-
import { SharedObjectClass } from '@fluidframework/fluid-static';
|
|
44
29
|
|
|
45
30
|
// @public
|
|
46
31
|
export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
|
|
@@ -51,35 +36,88 @@ export type ApplyKind<T, Kind extends FieldKind> = Kind extends FieldKind.Requir
|
|
|
51
36
|
// @public
|
|
52
37
|
export type ArrayToUnion<T extends readonly unknown[]> = T extends readonly (infer TValue)[] ? TValue : never;
|
|
53
38
|
|
|
54
|
-
export { AttachState }
|
|
55
|
-
|
|
56
39
|
// @public
|
|
57
|
-
export
|
|
58
|
-
|
|
59
|
-
|
|
40
|
+
export enum AttachState {
|
|
41
|
+
Attached = "Attached",
|
|
42
|
+
Attaching = "Attaching",
|
|
43
|
+
Detached = "Detached"
|
|
60
44
|
}
|
|
61
45
|
|
|
62
|
-
|
|
46
|
+
// @public (undocumented)
|
|
47
|
+
export enum ConnectionState {
|
|
48
|
+
CatchingUp = 1,
|
|
49
|
+
Connected = 2,
|
|
50
|
+
Disconnected = 0,
|
|
51
|
+
EstablishingConnection = 3
|
|
52
|
+
}
|
|
63
53
|
|
|
64
|
-
|
|
54
|
+
// @public
|
|
55
|
+
export namespace ConnectionStateType {
|
|
56
|
+
export type CatchingUp = 1;
|
|
57
|
+
export type Connected = 2;
|
|
58
|
+
export type Disconnected = 0;
|
|
59
|
+
export type EstablishingConnection = 3;
|
|
60
|
+
}
|
|
65
61
|
|
|
66
|
-
|
|
62
|
+
// @public
|
|
63
|
+
export type ConnectionStateType = ConnectionStateType.Disconnected | ConnectionStateType.EstablishingConnection | ConnectionStateType.CatchingUp | ConnectionStateType.Connected;
|
|
67
64
|
|
|
68
65
|
// @public
|
|
69
|
-
export
|
|
66
|
+
export type ContainerAttachProps<T = unknown> = T;
|
|
67
|
+
|
|
68
|
+
// @alpha
|
|
69
|
+
export const ContainerErrorTypes: {
|
|
70
|
+
readonly clientSessionExpiredError: "clientSessionExpiredError";
|
|
71
|
+
readonly genericError: "genericError";
|
|
72
|
+
readonly throttlingError: "throttlingError";
|
|
73
|
+
readonly dataCorruptionError: "dataCorruptionError";
|
|
74
|
+
readonly dataProcessingError: "dataProcessingError";
|
|
75
|
+
readonly usageError: "usageError";
|
|
76
|
+
};
|
|
70
77
|
|
|
71
|
-
|
|
78
|
+
// @alpha (undocumented)
|
|
79
|
+
export type ContainerErrorTypes = (typeof ContainerErrorTypes)[keyof typeof ContainerErrorTypes];
|
|
72
80
|
|
|
73
81
|
// @public
|
|
74
|
-
export
|
|
75
|
-
|
|
76
|
-
|
|
82
|
+
export interface ContainerSchema {
|
|
83
|
+
dynamicObjectTypes?: LoadableObjectClass<any>[];
|
|
84
|
+
initialObjects: LoadableObjectClassRecord;
|
|
77
85
|
}
|
|
78
86
|
|
|
87
|
+
// @public
|
|
88
|
+
export type DataObjectClass<T extends IFluidLoadable> = {
|
|
89
|
+
readonly factory: {
|
|
90
|
+
IFluidDataStoreFactory: DataObjectClass<T>["factory"];
|
|
91
|
+
};
|
|
92
|
+
} & LoadableObjectCtor<T>;
|
|
93
|
+
|
|
79
94
|
// @public
|
|
80
95
|
export const disposeSymbol: unique symbol;
|
|
81
96
|
|
|
82
|
-
|
|
97
|
+
// @public
|
|
98
|
+
export const DriverErrorTypes: {
|
|
99
|
+
readonly genericNetworkError: "genericNetworkError";
|
|
100
|
+
readonly authorizationError: "authorizationError";
|
|
101
|
+
readonly fileNotFoundOrAccessDeniedError: "fileNotFoundOrAccessDeniedError";
|
|
102
|
+
readonly offlineError: "offlineError";
|
|
103
|
+
readonly unsupportedClientProtocolVersion: "unsupportedClientProtocolVersion";
|
|
104
|
+
readonly writeError: "writeError";
|
|
105
|
+
readonly fetchFailure: "fetchFailure";
|
|
106
|
+
readonly fetchTokenError: "fetchTokenError";
|
|
107
|
+
readonly incorrectServerResponse: "incorrectServerResponse";
|
|
108
|
+
readonly fileOverwrittenInStorage: "fileOverwrittenInStorage";
|
|
109
|
+
readonly deltaStreamConnectionForbidden: "deltaStreamConnectionForbidden";
|
|
110
|
+
readonly locationRedirection: "locationRedirection";
|
|
111
|
+
readonly fluidInvalidSchema: "fluidInvalidSchema";
|
|
112
|
+
readonly fileIsLocked: "fileIsLocked";
|
|
113
|
+
readonly outOfStorageError: "outOfStorageError";
|
|
114
|
+
readonly genericError: "genericError";
|
|
115
|
+
readonly throttlingError: "throttlingError";
|
|
116
|
+
readonly usageError: "usageError";
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
// @public (undocumented)
|
|
120
|
+
export type DriverErrorTypes = (typeof DriverErrorTypes)[keyof typeof DriverErrorTypes];
|
|
83
121
|
|
|
84
122
|
// @public
|
|
85
123
|
export type Events<E> = {
|
|
@@ -111,20 +149,48 @@ export type FlexList<Item = unknown> = readonly LazyItem<Item>[];
|
|
|
111
149
|
// @public
|
|
112
150
|
export type FlexListToUnion<TList extends FlexList> = ExtractItemType<ArrayToUnion<TList>>;
|
|
113
151
|
|
|
114
|
-
|
|
152
|
+
// @public
|
|
153
|
+
export interface IConnection {
|
|
154
|
+
id: string;
|
|
155
|
+
mode: "write" | "read";
|
|
156
|
+
}
|
|
115
157
|
|
|
116
|
-
|
|
158
|
+
// @public
|
|
159
|
+
export type ICriticalContainerError = IErrorBase;
|
|
117
160
|
|
|
118
161
|
// @public
|
|
119
162
|
export interface IDisposable {
|
|
120
163
|
[disposeSymbol](): void;
|
|
121
164
|
}
|
|
122
165
|
|
|
123
|
-
|
|
166
|
+
// @public @sealed
|
|
167
|
+
export interface IFluidContainer<TContainerSchema extends ContainerSchema = ContainerSchema> extends IEventProvider<IFluidContainerEvents> {
|
|
168
|
+
attach(props?: ContainerAttachProps): Promise<string>;
|
|
169
|
+
readonly attachState: AttachState;
|
|
170
|
+
connect(): void;
|
|
171
|
+
readonly connectionState: ConnectionStateType;
|
|
172
|
+
create<T extends IFluidLoadable>(objectClass: LoadableObjectClass<T>): Promise<T>;
|
|
173
|
+
disconnect(): void;
|
|
174
|
+
dispose(): void;
|
|
175
|
+
readonly disposed: boolean;
|
|
176
|
+
readonly initialObjects: InitialObjects<TContainerSchema>;
|
|
177
|
+
readonly isDirty: boolean;
|
|
178
|
+
}
|
|
124
179
|
|
|
125
|
-
|
|
180
|
+
// @public @sealed
|
|
181
|
+
export interface IFluidContainerEvents extends IEvent {
|
|
182
|
+
(event: "connected", listener: () => void): void;
|
|
183
|
+
(event: "disconnected", listener: () => void): void;
|
|
184
|
+
(event: "saved", listener: () => void): void;
|
|
185
|
+
(event: "dirty", listener: () => void): void;
|
|
186
|
+
(event: "disposed", listener: (error?: ICriticalContainerError) => void): any;
|
|
187
|
+
}
|
|
126
188
|
|
|
127
|
-
|
|
189
|
+
// @public
|
|
190
|
+
export interface IMember {
|
|
191
|
+
connections: IConnection[];
|
|
192
|
+
userId: string;
|
|
193
|
+
}
|
|
128
194
|
|
|
129
195
|
// @public
|
|
130
196
|
export type ImplicitAllowedTypes = AllowedTypes | TreeNodeSchema;
|
|
@@ -132,6 +198,11 @@ export type ImplicitAllowedTypes = AllowedTypes | TreeNodeSchema;
|
|
|
132
198
|
// @public
|
|
133
199
|
export type ImplicitFieldSchema = FieldSchema | ImplicitAllowedTypes;
|
|
134
200
|
|
|
201
|
+
// @public
|
|
202
|
+
export type InitialObjects<T extends ContainerSchema> = {
|
|
203
|
+
[K in keyof T["initialObjects"]]: T["initialObjects"][K] extends LoadableObjectClass<infer TChannel> ? TChannel : never;
|
|
204
|
+
};
|
|
205
|
+
|
|
135
206
|
// @public
|
|
136
207
|
export type InsertableObjectFromSchemaRecord<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>> = {
|
|
137
208
|
readonly [Property in keyof T]: InsertableTreeFieldFromImplicitField<T[Property]>;
|
|
@@ -148,9 +219,21 @@ export type InsertableTypedNode<T extends TreeNodeSchema> = (T extends {
|
|
|
148
219
|
implicitlyConstructable: true;
|
|
149
220
|
} ? NodeBuilderData<T> : never) | Unhydrated<NodeFromSchema<T>>;
|
|
150
221
|
|
|
151
|
-
|
|
222
|
+
// @public
|
|
223
|
+
export interface IServiceAudience<M extends IMember> extends IEventProvider<IServiceAudienceEvents<M>> {
|
|
224
|
+
getMembers(): Map<string, M>;
|
|
225
|
+
getMyself(): Myself<M> | undefined;
|
|
226
|
+
}
|
|
152
227
|
|
|
153
|
-
|
|
228
|
+
// @public
|
|
229
|
+
export interface IServiceAudienceEvents<M extends IMember> extends IEvent {
|
|
230
|
+
// @eventProperty
|
|
231
|
+
(event: "membersChanged", listener: () => void): void;
|
|
232
|
+
// @eventProperty
|
|
233
|
+
(event: "memberAdded", listener: MemberChangedListener<M>): void;
|
|
234
|
+
// @eventProperty
|
|
235
|
+
(event: "memberRemoved", listener: MemberChangedListener<M>): void;
|
|
236
|
+
}
|
|
154
237
|
|
|
155
238
|
// @public
|
|
156
239
|
export type IsEvent<Event> = Event extends (...args: any[]) => any ? true : false;
|
|
@@ -173,8 +256,7 @@ export interface ISubscribable<E extends Events<E>> {
|
|
|
173
256
|
}
|
|
174
257
|
|
|
175
258
|
// @public
|
|
176
|
-
export class
|
|
177
|
-
static [create]<T>(content: Iterable<T>): IterableTreeListContent<T>;
|
|
259
|
+
export class IterableTreeArrayContent<T> implements Iterable<T> {
|
|
178
260
|
[Symbol.iterator](): Iterator<T>;
|
|
179
261
|
}
|
|
180
262
|
|
|
@@ -192,17 +274,26 @@ export interface IValueChanged {
|
|
|
192
274
|
// @public
|
|
193
275
|
export type LazyItem<Item = unknown> = Item | (() => Item);
|
|
194
276
|
|
|
195
|
-
|
|
277
|
+
// @public
|
|
278
|
+
export type LoadableObjectClass<T extends IFluidLoadable> = DataObjectClass<T> | SharedObjectClass<T>;
|
|
196
279
|
|
|
197
|
-
|
|
280
|
+
// @public
|
|
281
|
+
export type LoadableObjectClassRecord = Record<string, LoadableObjectClass<any>>;
|
|
198
282
|
|
|
199
|
-
|
|
283
|
+
// @public
|
|
284
|
+
export type LoadableObjectCtor<T extends IFluidLoadable> = new (...args: any[]) => T;
|
|
200
285
|
|
|
201
286
|
// @public
|
|
202
287
|
export interface MakeNominal {
|
|
203
288
|
}
|
|
204
289
|
|
|
205
|
-
|
|
290
|
+
// @public
|
|
291
|
+
export type MemberChangedListener<M extends IMember> = (clientId: string, member: M) => void;
|
|
292
|
+
|
|
293
|
+
// @public
|
|
294
|
+
export type Myself<M extends IMember = IMember> = M & {
|
|
295
|
+
currentConnection: string;
|
|
296
|
+
};
|
|
206
297
|
|
|
207
298
|
// @public
|
|
208
299
|
export type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
@@ -228,30 +319,6 @@ export type RestrictiveReadonlyRecord<K extends symbol | string, T> = {
|
|
|
228
319
|
readonly [P in symbol | string]: P extends K ? T : never;
|
|
229
320
|
};
|
|
230
321
|
|
|
231
|
-
// @public
|
|
232
|
-
export interface Revertible {
|
|
233
|
-
discard(): DiscardResult;
|
|
234
|
-
readonly kind: RevertibleKind;
|
|
235
|
-
readonly origin: {
|
|
236
|
-
readonly isLocal: boolean;
|
|
237
|
-
};
|
|
238
|
-
revert(): RevertResult;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
// @public
|
|
242
|
-
export enum RevertibleKind {
|
|
243
|
-
Default = 0,
|
|
244
|
-
Rebase = 3,
|
|
245
|
-
Redo = 2,
|
|
246
|
-
Undo = 1
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
// @public
|
|
250
|
-
export enum RevertResult {
|
|
251
|
-
Failure = 1,
|
|
252
|
-
Success = 0
|
|
253
|
-
}
|
|
254
|
-
|
|
255
322
|
// @public @sealed
|
|
256
323
|
export class SchemaFactory<TScope extends string = string, TName extends number | string = string> {
|
|
257
324
|
constructor(scope: TScope);
|
|
@@ -306,7 +373,10 @@ export class SharedMap extends SharedObject<ISharedMapEvents> implements IShared
|
|
|
306
373
|
values(): IterableIterator<any>;
|
|
307
374
|
}
|
|
308
375
|
|
|
309
|
-
|
|
376
|
+
// @public
|
|
377
|
+
export type SharedObjectClass<T extends IFluidLoadable> = {
|
|
378
|
+
readonly getFactory: () => IChannelFactory;
|
|
379
|
+
} & LoadableObjectCtor<T>;
|
|
310
380
|
|
|
311
381
|
// @public
|
|
312
382
|
export class SharedTree implements ITree {
|
|
@@ -348,19 +418,19 @@ export interface TreeApi {
|
|
|
348
418
|
}
|
|
349
419
|
|
|
350
420
|
// @public
|
|
351
|
-
export interface TreeArrayNode<
|
|
421
|
+
export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeNode, TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>, TreeArrayNode> {
|
|
352
422
|
}
|
|
353
423
|
|
|
354
424
|
// @public
|
|
355
425
|
export const TreeArrayNode: {
|
|
356
|
-
|
|
426
|
+
spread: <T>(content: Iterable<T>) => IterableTreeArrayContent<T>;
|
|
357
427
|
};
|
|
358
428
|
|
|
359
429
|
// @public
|
|
360
430
|
export interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<T>, TreeNode {
|
|
361
|
-
insertAt(index: number, ...value: (TNew |
|
|
362
|
-
insertAtEnd(...value: (TNew |
|
|
363
|
-
insertAtStart(...value: (TNew |
|
|
431
|
+
insertAt(index: number, ...value: (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
432
|
+
insertAtEnd(...value: (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
433
|
+
insertAtStart(...value: (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
364
434
|
moveRangeToEnd(sourceStart: number, sourceEnd: number): void;
|
|
365
435
|
moveRangeToEnd(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
|
|
366
436
|
moveRangeToIndex(index: number, sourceStart: number, sourceEnd: number): void;
|
|
@@ -393,13 +463,9 @@ export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = Fie
|
|
|
393
463
|
export type TreeLeafValue = number | string | boolean | IFluidHandle | null;
|
|
394
464
|
|
|
395
465
|
// @public
|
|
396
|
-
export interface TreeMapNode<T extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
// @public
|
|
400
|
-
export interface TreeMapNodeBase<TOut, TIn = TOut> extends ReadonlyMap<string, TOut>, TreeNode {
|
|
466
|
+
export interface TreeMapNode<T extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends ReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>, TreeNode {
|
|
401
467
|
delete(key: string): void;
|
|
402
|
-
set(key: string, value:
|
|
468
|
+
set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypes<T> | undefined): void;
|
|
403
469
|
}
|
|
404
470
|
|
|
405
471
|
// @public
|
|
@@ -450,10 +516,15 @@ export enum TreeStatus {
|
|
|
450
516
|
|
|
451
517
|
// @public
|
|
452
518
|
export interface TreeView<in out TRoot> extends IDisposable {
|
|
453
|
-
readonly events: ISubscribable<
|
|
519
|
+
readonly events: ISubscribable<TreeViewEvents>;
|
|
454
520
|
readonly root: TRoot;
|
|
455
521
|
}
|
|
456
522
|
|
|
523
|
+
// @public
|
|
524
|
+
export interface TreeViewEvents {
|
|
525
|
+
afterBatch(): void;
|
|
526
|
+
}
|
|
527
|
+
|
|
457
528
|
// @public
|
|
458
529
|
export const type: unique symbol;
|
|
459
530
|
|