@fluidframework/container-definitions 2.0.0-internal.6.3.3 → 2.0.0-internal.7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +1 -1
- package/CHANGELOG.md +88 -0
- package/dist/audience.d.ts.map +1 -1
- package/dist/audience.js.map +1 -1
- package/dist/browserPackage.d.ts +1 -1
- package/dist/browserPackage.d.ts.map +1 -1
- package/dist/browserPackage.js.map +1 -1
- package/dist/deltas.d.ts +62 -22
- package/dist/deltas.d.ts.map +1 -1
- package/dist/deltas.js.map +1 -1
- package/dist/error.d.ts +2 -2
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +1 -1
- package/dist/error.js.map +1 -1
- package/dist/fluidPackage.d.ts +1 -1
- package/dist/fluidPackage.d.ts.map +1 -1
- package/dist/fluidPackage.js +3 -1
- package/dist/fluidPackage.js.map +1 -1
- package/dist/loader.d.ts +10 -16
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +1 -1
- package/dist/loader.js.map +1 -1
- package/dist/runtime.d.ts +7 -6
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/lib/audience.d.ts.map +1 -1
- package/lib/audience.js.map +1 -1
- package/lib/browserPackage.d.ts +1 -1
- package/lib/browserPackage.d.ts.map +1 -1
- package/lib/browserPackage.js.map +1 -1
- package/lib/deltas.d.ts +62 -22
- package/lib/deltas.d.ts.map +1 -1
- package/lib/deltas.js.map +1 -1
- package/lib/error.d.ts +2 -2
- package/lib/error.d.ts.map +1 -1
- package/lib/fluidPackage.d.ts +1 -1
- package/lib/fluidPackage.d.ts.map +1 -1
- package/lib/fluidPackage.js +3 -1
- package/lib/fluidPackage.js.map +1 -1
- package/lib/loader.d.ts +10 -16
- package/lib/loader.d.ts.map +1 -1
- package/lib/loader.js.map +1 -1
- package/lib/runtime.d.ts +7 -6
- package/lib/runtime.d.ts.map +1 -1
- package/lib/runtime.js.map +1 -1
- package/package.json +20 -10
- package/src/audience.ts +2 -0
- package/src/browserPackage.ts +3 -1
- package/src/deltas.ts +77 -21
- package/src/fluidPackage.ts +4 -2
- package/src/loader.ts +13 -14
- package/src/runtime.ts +12 -6
package/.eslintrc.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
module.exports = {
|
|
7
|
-
extends: [require.resolve("@fluidframework/eslint-config-fluid/
|
|
7
|
+
extends: [require.resolve("@fluidframework/eslint-config-fluid/recommended"), "prettier"],
|
|
8
8
|
plugins: ["deprecation"],
|
|
9
9
|
parserOptions: {
|
|
10
10
|
project: ["./tsconfig.json", "./src/test/types/tsconfig.json"],
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,93 @@
|
|
|
1
1
|
# @fluidframework/container-definitions
|
|
2
2
|
|
|
3
|
+
## 2.0.0-internal.7.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- odsp-driver: Load container in readonly mode when driver throws DriverErrorType.outOfStorage [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
8
|
+
|
|
9
|
+
Handle DriverErrorType.outOfStorage error from driver and load the container in readonly mode. Currently there is no
|
|
10
|
+
handling and when the join session throws this error, the container will get closed. With this we use NoDeltaStream
|
|
11
|
+
object as connection and load the container in read mode, so that it loads properly. We also notify the that the
|
|
12
|
+
container is "readonly" through the event on delta manager so that apps can listen to this and show any UX etc. The app
|
|
13
|
+
can listen to the event like this:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
container.deltaManager.on(
|
|
17
|
+
"readonly",
|
|
18
|
+
(readonly?: boolean, readonlyConnectionReason?: { text: string; error?: IErrorBase }) => {
|
|
19
|
+
// error?.errorType will be equal to DriverErrorType.outOfStorage in this case
|
|
20
|
+
// App logic
|
|
21
|
+
},
|
|
22
|
+
);
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
26
|
+
|
|
27
|
+
This included the following changes from the protocol-definitions release:
|
|
28
|
+
|
|
29
|
+
- Updating signal interfaces for some planned improvements. The intention is split the interface between signals
|
|
30
|
+
submitted by clients to the server and the resulting signals sent from the server to clients.
|
|
31
|
+
- A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
|
|
32
|
+
been added, which will be the typing for signals sent from the client to the server. Both extend a new
|
|
33
|
+
ISignalMessageBase interface that contains common members.
|
|
34
|
+
- The @fluidframework/common-definitions package dependency has been updated to version 1.0.0.
|
|
35
|
+
|
|
36
|
+
- container-definitions: IContainer's and IDataStore's IFluidRouter capabilities are deprecated [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
37
|
+
|
|
38
|
+
`IFluidRouter` and `request({ url: "/" })` on `IContainer` and `IDataStore` are deprecated and will be removed in a future major release. Please migrate all usage to the appropriate `getEntryPoint()` or `entryPoint` APIs.
|
|
39
|
+
|
|
40
|
+
See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
|
|
41
|
+
|
|
42
|
+
- Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
43
|
+
|
|
44
|
+
Dependencies on the following Fluid server package have been updated to version 2.0.1:
|
|
45
|
+
|
|
46
|
+
- @fluidframework/gitresources: 2.0.1
|
|
47
|
+
- @fluidframework/server-kafka-orderer: 2.0.1
|
|
48
|
+
- @fluidframework/server-lambdas: 2.0.1
|
|
49
|
+
- @fluidframework/server-lambdas-driver: 2.0.1
|
|
50
|
+
- @fluidframework/server-local-server: 2.0.1
|
|
51
|
+
- @fluidframework/server-memory-orderer: 2.0.1
|
|
52
|
+
- @fluidframework/protocol-base: 2.0.1
|
|
53
|
+
- @fluidframework/server-routerlicious: 2.0.1
|
|
54
|
+
- @fluidframework/server-routerlicious-base: 2.0.1
|
|
55
|
+
- @fluidframework/server-services: 2.0.1
|
|
56
|
+
- @fluidframework/server-services-client: 2.0.1
|
|
57
|
+
- @fluidframework/server-services-core: 2.0.1
|
|
58
|
+
- @fluidframework/server-services-ordering-kafkanode: 2.0.1
|
|
59
|
+
- @fluidframework/server-services-ordering-rdkafka: 2.0.1
|
|
60
|
+
- @fluidframework/server-services-ordering-zookeeper: 2.0.1
|
|
61
|
+
- @fluidframework/server-services-shared: 2.0.1
|
|
62
|
+
- @fluidframework/server-services-telemetry: 2.0.1
|
|
63
|
+
- @fluidframework/server-services-utils: 2.0.1
|
|
64
|
+
- @fluidframework/server-test-utils: 2.0.1
|
|
65
|
+
- tinylicious: 2.0.1
|
|
66
|
+
|
|
67
|
+
- test-utils: provideEntryPoint is required [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
68
|
+
|
|
69
|
+
The optional `provideEntryPoint` method has become required on a number of constructors. A value will need to be provided to the following classes:
|
|
70
|
+
|
|
71
|
+
- `BaseContainerRuntimeFactory`
|
|
72
|
+
- `RuntimeFactory`
|
|
73
|
+
- `ContainerRuntime` (constructor and `loadRuntime`)
|
|
74
|
+
- `FluidDataStoreRuntime`
|
|
75
|
+
|
|
76
|
+
See [testContainerRuntimeFactoryWithDefaultDataStore.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/test/test-utils/src/testContainerRuntimeFactoryWithDefaultDataStore.ts) for an example implemtation of `provideEntryPoint` for ContainerRuntime.
|
|
77
|
+
See [pureDataObjectFactory.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/framework/aqueduct/src/data-object-factories/pureDataObjectFactory.ts#L83) for an example implementation of `provideEntryPoint` for DataStoreRuntime.
|
|
78
|
+
|
|
79
|
+
Subsequently, various `entryPoint` and `getEntryPoint()` endpoints have become required. Please see [containerRuntime.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/runtime/container-runtime/src/containerRuntime.ts) for example implementations of these APIs.
|
|
80
|
+
|
|
81
|
+
For more details, see [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
82
|
+
|
|
83
|
+
- Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
84
|
+
|
|
85
|
+
The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
|
|
86
|
+
|
|
87
|
+
## 2.0.0-internal.6.4.0
|
|
88
|
+
|
|
89
|
+
Dependency updates only.
|
|
90
|
+
|
|
3
91
|
## 2.0.0-internal.6.3.0
|
|
4
92
|
|
|
5
93
|
Dependency updates only.
|
package/dist/audience.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audience.d.ts","sourceRoot":"","sources":["../src/audience.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"audience.d.ts","sourceRoot":"","sources":["../src/audience.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,SAAS;IAChD;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEpD;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC9C;;OAEG;IACH,EAAE,CACD,KAAK,EAAE,WAAW,GAAG,cAAc,EACnC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GACnD,IAAI,CAAC;IAER;;OAEG;IACH,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACjD"}
|
package/dist/audience.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audience.js","sourceRoot":"","sources":["../src/audience.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 { EventEmitter } from \"events\";\nimport { IClient } from \"@fluidframework/protocol-definitions\";\n\n/**\n * Manages the state and the members for {@link IAudience}\n */\nexport interface IAudienceOwner extends IAudience {\n\t/**\n\t * Adds a new client to the audience\n\t */\n\taddMember(clientId: string, details: IClient): void;\n\n\t/**\n\t * Removes a client from the audience. Only emits an event if a client is actually removed\n\t * @returns if a client was removed from the audience\n\t */\n\tremoveMember(clientId: string): boolean;\n}\n\n/**\n * Audience represents all clients connected to the op stream, both read-only and read/write.\n *\n * See {@link https://nodejs.org/api/events.html#class-eventemitter | here} for an overview of the `EventEmitter`\n * class.\n */\nexport interface IAudience extends EventEmitter {\n\t/**\n\t * See {@link https://nodejs.dev/learn/the-nodejs-event-emitter | here} for an overview of `EventEmitter.on`.\n\t */\n\ton(\n\t\tevent: \"addMember\" | \"removeMember\",\n\t\tlistener: (clientId: string, client: IClient) => void,\n\t): this;\n\n\t/**\n\t * List all clients connected to the op stream, keyed off their clientId\n\t */\n\tgetMembers(): Map<string, IClient>;\n\n\t/**\n\t * Get details about the connected client with the specified clientId,\n\t * or undefined if the specified client isn't connected\n\t */\n\tgetMember(clientId: string): IClient | undefined;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"audience.js","sourceRoot":"","sources":["../src/audience.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n// False positive: this is an import from the `events` package, not from Node.\n// eslint-disable-next-line unicorn/prefer-node-protocol\nimport { EventEmitter } from \"events\";\nimport { IClient } from \"@fluidframework/protocol-definitions\";\n\n/**\n * Manages the state and the members for {@link IAudience}\n */\nexport interface IAudienceOwner extends IAudience {\n\t/**\n\t * Adds a new client to the audience\n\t */\n\taddMember(clientId: string, details: IClient): void;\n\n\t/**\n\t * Removes a client from the audience. Only emits an event if a client is actually removed\n\t * @returns if a client was removed from the audience\n\t */\n\tremoveMember(clientId: string): boolean;\n}\n\n/**\n * Audience represents all clients connected to the op stream, both read-only and read/write.\n *\n * See {@link https://nodejs.org/api/events.html#class-eventemitter | here} for an overview of the `EventEmitter`\n * class.\n */\nexport interface IAudience extends EventEmitter {\n\t/**\n\t * See {@link https://nodejs.dev/learn/the-nodejs-event-emitter | here} for an overview of `EventEmitter.on`.\n\t */\n\ton(\n\t\tevent: \"addMember\" | \"removeMember\",\n\t\tlistener: (clientId: string, client: IClient) => void,\n\t): this;\n\n\t/**\n\t * List all clients connected to the op stream, keyed off their clientId\n\t */\n\tgetMembers(): Map<string, IClient>;\n\n\t/**\n\t * Get details about the connected client with the specified clientId,\n\t * or undefined if the specified client isn't connected\n\t */\n\tgetMember(clientId: string): IClient | undefined;\n}\n"]}
|
package/dist/browserPackage.d.ts
CHANGED
|
@@ -46,5 +46,5 @@ export interface IFluidBrowserPackage extends IFluidPackage {
|
|
|
46
46
|
* Determines if any object is an IFluidBrowserPackage
|
|
47
47
|
* @param maybePkg - The object to check for compatibility with IFluidBrowserPackage
|
|
48
48
|
*/
|
|
49
|
-
export declare const isFluidBrowserPackage: (maybePkg:
|
|
49
|
+
export declare const isFluidBrowserPackage: (maybePkg: unknown) => maybePkg is Readonly<IFluidBrowserPackage>;
|
|
50
50
|
//# sourceMappingURL=browserPackage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserPackage.d.ts","sourceRoot":"","sources":["../src/browserPackage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAkB,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAEzF;;GAEG;AACH,MAAM,WAAW,+BAAgC,SAAQ,wBAAwB;IAChF;;;OAGG;IACH,GAAG,EAAE;QACJ;;;WAGG;QACH,KAAK,EAAE,MAAM,EAAE,CAAC;QAEhB;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IAC1D;;OAEG;IACH,KAAK,EAAE;QACN;;WAEG;QACH,OAAO,EAAE,+BAA+B,CAAC;QACzC;;WAEG;QACH,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC;KAChD,CAAC;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"browserPackage.d.ts","sourceRoot":"","sources":["../src/browserPackage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAkB,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAEzF;;GAEG;AACH,MAAM,WAAW,+BAAgC,SAAQ,wBAAwB;IAChF;;;OAGG;IACH,GAAG,EAAE;QACJ;;;WAGG;QACH,KAAK,EAAE,MAAM,EAAE,CAAC;QAEhB;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IAC1D;;OAEG;IACH,KAAK,EAAE;QACN;;WAEG;QACH,OAAO,EAAE,+BAA+B,CAAC;QACzC;;WAEG;QACH,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC;KAChD,CAAC;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,aACvB,OAAO,+CAIkC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserPackage.js","sourceRoot":"","sources":["../src/browserPackage.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iDAAyF;AA4CzF;;;GAGG;AACI,MAAM,qBAAqB,GAAG,
|
|
1
|
+
{"version":3,"file":"browserPackage.js","sourceRoot":"","sources":["../src/browserPackage.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iDAAyF;AA4CzF;;;GAGG;AACI,MAAM,qBAAqB,GAAG,CACpC,QAAiB,EAC4B,EAAE,CAC/C,IAAA,6BAAc,EAAC,QAAQ,CAAC;IACxB,OAAO,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,QAAQ;IAC1D,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AALxC,QAAA,qBAAqB,yBAKmB","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidPackage, isFluidPackage, IFluidPackageEnvironment } from \"./fluidPackage\";\n\n/**\n * A specific Fluid package environment for browsers\n */\nexport interface IFluidBrowserPackageEnvironment extends IFluidPackageEnvironment {\n\t/**\n\t * The Universal Module Definition (umd) target specifics the scripts necessary for\n\t * loading a packages in a browser environment and finding its entry point.\n\t */\n\tumd: {\n\t\t/**\n\t\t * The bundled js files for loading this package.\n\t\t * These files will be loaded and executed in order.\n\t\t */\n\t\tfiles: string[];\n\n\t\t/**\n\t\t * The global name that the script entry points will be exposed.\n\t\t * This entry point should be an {@link @fluidframework/container-definitions#IFluidModule}.\n\t\t */\n\t\tlibrary: string;\n\t};\n}\n\n/**\n * A Fluid package for specification for browser environments\n */\nexport interface IFluidBrowserPackage extends IFluidPackage {\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidPackage.fluid}\n\t */\n\tfluid: {\n\t\t/**\n\t\t * The browser specific package information for this package\n\t\t */\n\t\tbrowser: IFluidBrowserPackageEnvironment;\n\t\t/**\n\t\t * {@inheritDoc @fluidframework/core-interfaces#IFluidPackage.fluid.environment}\n\t\t */\n\t\t[environment: string]: IFluidPackageEnvironment;\n\t};\n}\n\n/**\n * Determines if any object is an IFluidBrowserPackage\n * @param maybePkg - The object to check for compatibility with IFluidBrowserPackage\n */\nexport const isFluidBrowserPackage = (\n\tmaybePkg: unknown,\n): maybePkg is Readonly<IFluidBrowserPackage> =>\n\tisFluidPackage(maybePkg) &&\n\ttypeof maybePkg?.fluid?.browser?.umd?.library === \"string\" &&\n\tArray.isArray(maybePkg?.fluid?.browser?.umd?.files);\n"]}
|
package/dist/deltas.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { IDisposable, IEventProvider, IEvent, IErrorEvent } from "@fluidframework/core-interfaces";
|
|
5
|
+
import { IDisposable, IEventProvider, IEvent, IErrorEvent, IErrorBase } from "@fluidframework/core-interfaces";
|
|
6
6
|
import { IAnyDriverError } from "@fluidframework/driver-definitions";
|
|
7
7
|
import { IClientConfiguration, IClientDetails, IDocumentMessage, ISequencedDocumentMessage, ISignalMessage, ITokenClaims } from "@fluidframework/protocol-definitions";
|
|
8
8
|
/**
|
|
@@ -96,45 +96,76 @@ export interface IDeltaManagerEvents extends IEvent {
|
|
|
96
96
|
*
|
|
97
97
|
* - `readonly`: Whether or not the delta manager is now read-only.
|
|
98
98
|
*/
|
|
99
|
-
(event: "readonly", listener: (readonly: boolean
|
|
99
|
+
(event: "readonly", listener: (readonly: boolean, readonlyConnectionReason?: {
|
|
100
|
+
reason: string;
|
|
101
|
+
error?: IErrorBase;
|
|
102
|
+
}) => void): any;
|
|
100
103
|
}
|
|
101
104
|
/**
|
|
102
105
|
* Manages the transmission of ops between the runtime and storage.
|
|
103
106
|
*/
|
|
104
107
|
export interface IDeltaManager<T, U> extends IEventProvider<IDeltaManagerEvents>, IDeltaSender {
|
|
105
|
-
/**
|
|
108
|
+
/**
|
|
109
|
+
* The queue of inbound delta messages
|
|
110
|
+
*/
|
|
106
111
|
readonly inbound: IDeltaQueue<T>;
|
|
107
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* The queue of outbound delta messages
|
|
114
|
+
*/
|
|
108
115
|
readonly outbound: IDeltaQueue<U[]>;
|
|
109
|
-
/**
|
|
116
|
+
/**
|
|
117
|
+
* The queue of inbound delta signals
|
|
118
|
+
*/
|
|
110
119
|
readonly inboundSignal: IDeltaQueue<ISignalMessage>;
|
|
111
|
-
/**
|
|
120
|
+
/**
|
|
121
|
+
* The current minimum sequence number
|
|
122
|
+
*/
|
|
112
123
|
readonly minimumSequenceNumber: number;
|
|
113
|
-
/**
|
|
124
|
+
/**
|
|
125
|
+
* The last sequence number processed by the delta manager
|
|
126
|
+
*/
|
|
114
127
|
readonly lastSequenceNumber: number;
|
|
115
|
-
/**
|
|
128
|
+
/**
|
|
129
|
+
* The last message processed by the delta manager
|
|
130
|
+
*/
|
|
116
131
|
readonly lastMessage: ISequencedDocumentMessage | undefined;
|
|
117
|
-
/**
|
|
132
|
+
/**
|
|
133
|
+
* The latest sequence number the delta manager is aware of
|
|
134
|
+
*/
|
|
118
135
|
readonly lastKnownSeqNumber: number;
|
|
119
|
-
/**
|
|
136
|
+
/**
|
|
137
|
+
* The initial sequence number set when attaching the op handler
|
|
138
|
+
*/
|
|
120
139
|
readonly initialSequenceNumber: number;
|
|
121
140
|
/**
|
|
122
141
|
* Tells if current connection has checkpoint information.
|
|
123
142
|
* I.e. we know how far behind the client was at the time of establishing connection
|
|
124
143
|
*/
|
|
125
144
|
readonly hasCheckpointSequenceNumber: boolean;
|
|
126
|
-
/**
|
|
145
|
+
/**
|
|
146
|
+
* Details of client
|
|
147
|
+
*/
|
|
127
148
|
readonly clientDetails: IClientDetails;
|
|
128
|
-
/**
|
|
149
|
+
/**
|
|
150
|
+
* Protocol version being used to communicate with the service
|
|
151
|
+
*/
|
|
129
152
|
readonly version: string;
|
|
130
|
-
/**
|
|
153
|
+
/**
|
|
154
|
+
* Max message size allowed to the delta manager
|
|
155
|
+
*/
|
|
131
156
|
readonly maxMessageSize: number;
|
|
132
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* Service configuration provided by the service.
|
|
159
|
+
*/
|
|
133
160
|
readonly serviceConfiguration: IClientConfiguration | undefined;
|
|
134
|
-
/**
|
|
161
|
+
/**
|
|
162
|
+
* Flag to indicate whether the client can write or not.
|
|
163
|
+
*/
|
|
135
164
|
readonly active: boolean;
|
|
136
165
|
readonly readOnlyInfo: ReadOnlyInfo;
|
|
137
|
-
/**
|
|
166
|
+
/**
|
|
167
|
+
* Submit a signal to the service to be broadcast to other connected clients, but not persisted
|
|
168
|
+
*/
|
|
138
169
|
submitSignal(content: any): void;
|
|
139
170
|
}
|
|
140
171
|
/**
|
|
@@ -220,18 +251,27 @@ export interface IDeltaQueue<T> extends IEventProvider<IDeltaQueueEvents<T>>, ID
|
|
|
220
251
|
duration: number;
|
|
221
252
|
}>;
|
|
222
253
|
}
|
|
223
|
-
export
|
|
254
|
+
export type ReadOnlyInfo = {
|
|
224
255
|
readonly readonly: false | undefined;
|
|
225
256
|
} | {
|
|
226
257
|
readonly readonly: true;
|
|
227
|
-
/**
|
|
258
|
+
/**
|
|
259
|
+
* Read-only because `forceReadOnly()` was called.
|
|
260
|
+
*/
|
|
228
261
|
readonly forced: boolean;
|
|
229
|
-
/**
|
|
262
|
+
/**
|
|
263
|
+
* Read-only because client does not have write permissions for document.
|
|
264
|
+
*/
|
|
230
265
|
readonly permissions: boolean | undefined;
|
|
231
|
-
/**
|
|
266
|
+
/**
|
|
267
|
+
* Read-only with no delta stream connection.
|
|
268
|
+
*/
|
|
232
269
|
readonly storageOnly: boolean;
|
|
233
|
-
/**
|
|
234
|
-
*
|
|
270
|
+
/**
|
|
271
|
+
* Extra info on why connection to delta stream is not possible.
|
|
272
|
+
*
|
|
273
|
+
* @remarks This info might be provided if {@link ReadOnlyInfo.storageOnly} is set to `true`.
|
|
274
|
+
*/
|
|
235
275
|
readonly storageOnlyReason?: string;
|
|
236
276
|
};
|
|
237
277
|
//# sourceMappingURL=deltas.d.ts.map
|
package/dist/deltas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deltas.d.ts","sourceRoot":"","sources":["../src/deltas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"deltas.d.ts","sourceRoot":"","sources":["../src/deltas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,WAAW,EACX,cAAc,EACd,MAAM,EACN,WAAW,EACX,UAAU,EACV,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EACN,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,EACd,YAAY,EACZ,MAAM,sCAAsC,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,oBAAoB,EAAE,oBAAoB,CAAC;IAE3C;;;;;;;;;OASG;IACH,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,MAAM;IAClD;;OAEG;IAEH,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,IAAI,OAAE;IAEjE;;OAEG;IACH,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,OAAE;IAEnE;;;;;;;;;;;;;;OAcG;IACH,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,OAAE;IAE9F;;OAEG;IACH,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,OAAE;IAErD;;;;;;;;;;;;;OAaG;IACH,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,OAAE;IAExF;;;;;;;OAOG;IACH,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,eAAe,KAAK,IAAI,OAAE;IAEnF;;;;;;OAMG;IACH,CACC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CACT,QAAQ,EAAE,OAAO,EACjB,wBAAwB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,KAC7D,IAAI,OACR;CACF;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,cAAc,CAAC,mBAAmB,CAAC,EAAE,YAAY;IAC7F;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAEpD;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAE5D;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEvC;;;OAGG;IACH,QAAQ,CAAC,2BAA2B,EAAE,OAAO,CAAC;IAE9C;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAEhE;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAEpC;;OAEG;IAGH,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,CAAE,SAAQ,WAAW;IACxD;;;;;;OAMG;IACH,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,OAAE;IAE7C;;;;;;;;;;;;OAYG;IACH,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,OAAE;IAE3C;;;;;;;;;;OAUG;IACH,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,OAAE;CACrE;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW;IACxF;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf;;OAEG;IACH,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC;IAEtB;;OAEG;IACH,OAAO,IAAI,CAAC,EAAE,CAAC;IAEf;;;OAGG;IACH,sBAAsB,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvE;AAED,MAAM,MAAM,YAAY,GACrB;IACA,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;CACpC,GACD;IACA,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC"}
|
package/dist/deltas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deltas.js","sourceRoot":"","sources":["../src/deltas.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 {
|
|
1
|
+
{"version":3,"file":"deltas.js","sourceRoot":"","sources":["../src/deltas.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 {\n\tIDisposable,\n\tIEventProvider,\n\tIEvent,\n\tIErrorEvent,\n\tIErrorBase,\n} from \"@fluidframework/core-interfaces\";\nimport { IAnyDriverError } from \"@fluidframework/driver-definitions\";\nimport {\n\tIClientConfiguration,\n\tIClientDetails,\n\tIDocumentMessage,\n\tISequencedDocumentMessage,\n\tISignalMessage,\n\tITokenClaims,\n} from \"@fluidframework/protocol-definitions\";\n\n/**\n * Contract representing the result of a newly established connection to the server for syncing deltas.\n */\nexport interface IConnectionDetails {\n\tclientId: string;\n\tclaims: ITokenClaims;\n\tserviceConfiguration: IClientConfiguration;\n\n\t/**\n\t * Last known sequence number to ordering service at the time of connection.\n\t *\n\t * @remarks\n\t *\n\t * It may lap actual last sequence number (quite a bit, if container is very active).\n\t * But it's the best information for client to figure out how far it is behind, at least\n\t * for \"read\" connections. \"write\" connections may use own \"join\" op to similar information,\n\t * that is likely to be more up-to-date.\n\t */\n\tcheckpointSequenceNumber: number | undefined;\n}\n\n/**\n * Contract supporting delivery of outbound messages to the server\n */\nexport interface IDeltaSender {\n\t/**\n\t * Flush all pending messages through the outbound queue\n\t */\n\tflush(): void;\n}\n\n/**\n * Events emitted by {@link IDeltaManager}.\n */\nexport interface IDeltaManagerEvents extends IEvent {\n\t/**\n\t * @deprecated No replacement API recommended.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t(event: \"prepareSend\", listener: (messageBuffer: any[]) => void);\n\n\t/**\n\t * @deprecated No replacement API recommended.\n\t */\n\t(event: \"submitOp\", listener: (message: IDocumentMessage) => void);\n\n\t/**\n\t * Emitted immediately after processing an incoming operation (op).\n\t *\n\t * @remarks\n\t *\n\t * Note: this event is not intended for general use.\n\t * Prefer to listen to events on the appropriate ultimate recipients of the ops, rather than listening to the\n\t * ops directly on the {@link IDeltaManager}.\n\t *\n\t * Listener parameters:\n\t *\n\t * - `message`: The op that was processed.\n\t *\n\t * - `processingTime`: The amount of time it took to process the inbound operation (op), expressed in milliseconds.\n\t */\n\t(event: \"op\", listener: (message: ISequencedDocumentMessage, processingTime: number) => void);\n\n\t/**\n\t * Emitted periodically with latest information on network roundtrip latency\n\t */\n\t(event: \"pong\", listener: (latency: number) => void);\n\n\t/**\n\t * Emitted when the {@link IDeltaManager} completes connecting to the Fluid service.\n\t *\n\t * @remarks\n\t * This occurs once we've received the connect_document_success message from the server,\n\t * and happens prior to the client's join message (if there is a join message).\n\t *\n\t * Listener parameters:\n\t *\n\t * - `details`: Connection metadata.\n\t *\n\t * - `opsBehind`: An estimate of far behind the client is relative to the service in terms of ops.\n\t * Will not be specified if an estimate cannot be determined.\n\t */\n\t(event: \"connect\", listener: (details: IConnectionDetails, opsBehind?: number) => void);\n\n\t/**\n\t * Emitted when the {@link IDeltaManager} becomes disconnected from the Fluid service.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `reason`: Describes the reason for which the delta manager was disconnected.\n\t * - `error` : error if any for the disconnect.\n\t */\n\t(event: \"disconnect\", listener: (reason: string, error?: IAnyDriverError) => void);\n\n\t/**\n\t * Emitted when read/write permissions change.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `readonly`: Whether or not the delta manager is now read-only.\n\t */\n\t(\n\t\tevent: \"readonly\",\n\t\tlistener: (\n\t\t\treadonly: boolean,\n\t\t\treadonlyConnectionReason?: { reason: string; error?: IErrorBase },\n\t\t) => void,\n\t);\n}\n\n/**\n * Manages the transmission of ops between the runtime and storage.\n */\nexport interface IDeltaManager<T, U> extends IEventProvider<IDeltaManagerEvents>, IDeltaSender {\n\t/**\n\t * The queue of inbound delta messages\n\t */\n\treadonly inbound: IDeltaQueue<T>;\n\n\t/**\n\t * The queue of outbound delta messages\n\t */\n\treadonly outbound: IDeltaQueue<U[]>;\n\n\t/**\n\t * The queue of inbound delta signals\n\t */\n\treadonly inboundSignal: IDeltaQueue<ISignalMessage>;\n\n\t/**\n\t * The current minimum sequence number\n\t */\n\treadonly minimumSequenceNumber: number;\n\n\t/**\n\t * The last sequence number processed by the delta manager\n\t */\n\treadonly lastSequenceNumber: number;\n\n\t/**\n\t * The last message processed by the delta manager\n\t */\n\treadonly lastMessage: ISequencedDocumentMessage | undefined;\n\n\t/**\n\t * The latest sequence number the delta manager is aware of\n\t */\n\treadonly lastKnownSeqNumber: number;\n\n\t/**\n\t * The initial sequence number set when attaching the op handler\n\t */\n\treadonly initialSequenceNumber: number;\n\n\t/**\n\t * Tells if current connection has checkpoint information.\n\t * I.e. we know how far behind the client was at the time of establishing connection\n\t */\n\treadonly hasCheckpointSequenceNumber: boolean;\n\n\t/**\n\t * Details of client\n\t */\n\treadonly clientDetails: IClientDetails;\n\n\t/**\n\t * Protocol version being used to communicate with the service\n\t */\n\treadonly version: string;\n\n\t/**\n\t * Max message size allowed to the delta manager\n\t */\n\treadonly maxMessageSize: number;\n\n\t/**\n\t * Service configuration provided by the service.\n\t */\n\treadonly serviceConfiguration: IClientConfiguration | undefined;\n\n\t/**\n\t * Flag to indicate whether the client can write or not.\n\t */\n\treadonly active: boolean;\n\n\treadonly readOnlyInfo: ReadOnlyInfo;\n\n\t/**\n\t * Submit a signal to the service to be broadcast to other connected clients, but not persisted\n\t */\n\t// TODO: use `unknown` instead (API breaking)\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tsubmitSignal(content: any): void;\n}\n\n/**\n * Events emitted by {@link IDeltaQueue}.\n */\nexport interface IDeltaQueueEvents<T> extends IErrorEvent {\n\t/**\n\t * Emitted when a task is enqueued.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `task`: The task being enqueued.\n\t */\n\t(event: \"push\", listener: (task: T) => void);\n\n\t/**\n\t * Emitted immediately after processing an enqueued task and removing it from the queue.\n\t *\n\t * @remarks\n\t *\n\t * Note: this event is not intended for general use.\n\t * Prefer to listen to events on the appropriate ultimate recipients of the ops, rather than listening to the\n\t * ops directly on the {@link IDeltaQueue}.\n\t *\n\t * Listener parameters:\n\t *\n\t * - `task`: The task that was processed.\n\t */\n\t(event: \"op\", listener: (task: T) => void);\n\n\t/**\n\t * Emitted when the queue of tasks to process is emptied.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `count`: The number of events (`T`) processed before becoming idle.\n\t *\n\t * - `duration`: The amount of time it took to process elements (in milliseconds).\n\t *\n\t * @see {@link IDeltaQueue.idle}\n\t */\n\t(event: \"idle\", listener: (count: number, duration: number) => void);\n}\n\n/**\n * Queue of ops to be sent to or processed from storage\n */\nexport interface IDeltaQueue<T> extends IEventProvider<IDeltaQueueEvents<T>>, IDisposable {\n\t/**\n\t * Flag indicating whether or not the queue was paused\n\t */\n\tpaused: boolean;\n\n\t/**\n\t * The number of messages remaining in the queue\n\t */\n\tlength: number;\n\n\t/**\n\t * Flag indicating whether or not the queue is idle.\n\t * I.e. there are no remaining messages to processes.\n\t */\n\tidle: boolean;\n\n\t/**\n\t * Pauses processing on the queue.\n\t *\n\t * @returns A promise which resolves when processing has been paused.\n\t */\n\tpause(): Promise<void>;\n\n\t/**\n\t * Resumes processing on the queue\n\t */\n\tresume(): void;\n\n\t/**\n\t * Peeks at the next message in the queue\n\t */\n\tpeek(): T | undefined;\n\n\t/**\n\t * Returns all the items in the queue as an array. Does not remove them from the queue.\n\t */\n\ttoArray(): T[];\n\n\t/**\n\t * returns number of ops processed and time it took to process these ops.\n\t * Zeros if queue did not process anything (had no messages, was paused or had hit an error before)\n\t */\n\twaitTillProcessingDone(): Promise<{ count: number; duration: number }>;\n}\n\nexport type ReadOnlyInfo =\n\t| {\n\t\t\treadonly readonly: false | undefined;\n\t }\n\t| {\n\t\t\treadonly readonly: true;\n\n\t\t\t/**\n\t\t\t * Read-only because `forceReadOnly()` was called.\n\t\t\t */\n\t\t\treadonly forced: boolean;\n\n\t\t\t/**\n\t\t\t * Read-only because client does not have write permissions for document.\n\t\t\t */\n\t\t\treadonly permissions: boolean | undefined;\n\n\t\t\t/**\n\t\t\t * Read-only with no delta stream connection.\n\t\t\t */\n\t\t\treadonly storageOnly: boolean;\n\n\t\t\t/**\n\t\t\t * Extra info on why connection to delta stream is not possible.\n\t\t\t *\n\t\t\t * @remarks This info might be provided if {@link ReadOnlyInfo.storageOnly} is set to `true`.\n\t\t\t */\n\t\t\treadonly storageOnlyReason?: string;\n\t };\n"]}
|
package/dist/error.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare const ContainerErrorTypes: {
|
|
|
18
18
|
readonly dataProcessingError: "dataProcessingError";
|
|
19
19
|
readonly usageError: "usageError";
|
|
20
20
|
};
|
|
21
|
-
export
|
|
21
|
+
export type ContainerErrorTypes = typeof ContainerErrorTypes[keyof typeof ContainerErrorTypes];
|
|
22
22
|
/**
|
|
23
23
|
* Different error types the Container may report out to the Host.
|
|
24
24
|
*
|
|
@@ -78,5 +78,5 @@ export interface ContainerWarning extends IErrorBase {
|
|
|
78
78
|
* - {@link @fluidframework/routerlicious-driver#RouterliciousErrorType}
|
|
79
79
|
*
|
|
80
80
|
*/
|
|
81
|
-
export
|
|
81
|
+
export type ICriticalContainerError = IErrorBase;
|
|
82
82
|
//# sourceMappingURL=error.d.ts.map
|
package/dist/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAmB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAE/B;;;OAGG;;;;;;;CAEM,CAAC;AACX,
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAmB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAE/B;;;OAGG;;;;;;;CAEM,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAE/F;;;;GAIG;AACH,oBAAY,kBAAkB;IAC7B;;OAEG;IACH,YAAY,iBAAiB;IAE7B;;OAEG;IACH,eAAe,oBAAoB;IAEnC;;OAEG;IACH,mBAAmB,wBAAwB;IAE3C;;OAEG;IACH,mBAAmB,wBAAwB;IAE3C;;OAEG;IACH,UAAU,eAAe;IAEzB;;;OAGG;IACH,yBAAyB,8BAA8B;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IACnD;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC"}
|
package/dist/error.js
CHANGED
|
@@ -49,5 +49,5 @@ var ContainerErrorType;
|
|
|
49
49
|
* aids in safely deleting unused objects.
|
|
50
50
|
*/
|
|
51
51
|
ContainerErrorType["clientSessionExpiredError"] = "clientSessionExpiredError";
|
|
52
|
-
})(ContainerErrorType
|
|
52
|
+
})(ContainerErrorType || (exports.ContainerErrorType = ContainerErrorType = {}));
|
|
53
53
|
//# sourceMappingURL=error.js.map
|
package/dist/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,qEAA8E;AAE9E;;GAEG;AACU,QAAA,mBAAmB,GAAG;IAClC,GAAG,iCAAe;IAClB;;;OAGG;IACH,yBAAyB,EAAE,2BAA2B;CAC7C,CAAC;AAGX;;;;GAIG;AACH,IAAY,kBA+BX;AA/BD,WAAY,kBAAkB;IAC7B;;OAEG;IACH,mDAA6B,CAAA;IAE7B;;OAEG;IACH,yDAAmC,CAAA;IAEnC;;OAEG;IACH,iEAA2C,CAAA;IAE3C;;OAEG;IACH,iEAA2C,CAAA;IAE3C;;OAEG;IACH,+CAAyB,CAAA;IAEzB;;;OAGG;IACH,6EAAuD,CAAA;AACxD,CAAC,EA/BW,kBAAkB,
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,qEAA8E;AAE9E;;GAEG;AACU,QAAA,mBAAmB,GAAG;IAClC,GAAG,iCAAe;IAClB;;;OAGG;IACH,yBAAyB,EAAE,2BAA2B;CAC7C,CAAC;AAGX;;;;GAIG;AACH,IAAY,kBA+BX;AA/BD,WAAY,kBAAkB;IAC7B;;OAEG;IACH,mDAA6B,CAAA;IAE7B;;OAEG;IACH,yDAAmC,CAAA;IAEnC;;OAEG;IACH,iEAA2C,CAAA;IAE3C;;OAEG;IACH,iEAA2C,CAAA;IAE3C;;OAEG;IACH,+CAAyB,CAAA;IAEzB;;;OAGG;IACH,6EAAuD,CAAA;AACxD,CAAC,EA/BW,kBAAkB,kCAAlB,kBAAkB,QA+B7B","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { FluidErrorTypes, IErrorBase } from \"@fluidframework/core-interfaces\";\n\n/**\n * Different error types the ClientSession may report out to the Host.\n */\nexport const ContainerErrorTypes = {\n\t...FluidErrorTypes,\n\t/**\n\t * Error indicating an client session has expired. Currently this only happens when GC is allowed on a document and\n\t * aids in safely deleting unused objects.\n\t */\n\tclientSessionExpiredError: \"clientSessionExpiredError\",\n} as const;\nexport type ContainerErrorTypes = typeof ContainerErrorTypes[keyof typeof ContainerErrorTypes];\n\n/**\n * Different error types the Container may report out to the Host.\n *\n * @deprecated ContainerErrorType is being deprecated as a public export. Please use {@link ContainerErrorTypes#clientSessionExpiredError} instead.\n */\nexport enum ContainerErrorType {\n\t/**\n\t * Some error, most likely an exception caught by runtime and propagated to container as critical error\n\t */\n\tgenericError = \"genericError\",\n\n\t/**\n\t * Throttling error from server. Server is busy and is asking not to reconnect for some time\n\t */\n\tthrottlingError = \"throttlingError\",\n\n\t/**\n\t * Data loss error detected by Container / DeltaManager. Likely points to storage issue.\n\t */\n\tdataCorruptionError = \"dataCorruptionError\",\n\n\t/**\n\t * Error encountered when processing an operation. May correlate with data corruption.\n\t */\n\tdataProcessingError = \"dataProcessingError\",\n\n\t/**\n\t * Error indicating an API is being used improperly resulting in an invalid operation.\n\t */\n\tusageError = \"usageError\",\n\n\t/**\n\t * Error indicating an client session has expired. Currently this only happens when GC is allowed on a document and\n\t * aids in safely deleting unused objects.\n\t */\n\tclientSessionExpiredError = \"clientSessionExpiredError\",\n}\n\n/**\n * Represents warnings raised on container.\n */\nexport interface ContainerWarning extends IErrorBase {\n\t/**\n\t * Whether this error has already been logged. Used to avoid logging errors twice.\n\t *\n\t * @defaultValue `false`\n\t */\n\tlogged?: boolean;\n}\n\n/**\n * Represents errors raised on container.\n *\n * @see\n *\n * The following are commonly thrown error types, but `errorType` could be any string.\n *\n * - {@link @fluidframework/core-interfaces#ContainerErrorType}\n *\n * - {@link @fluidframework/driver-definitions#DriverErrorType}\n *\n * - {@link @fluidframework/odsp-driver-definitions#OdspErrorType}\n *\n * - {@link @fluidframework/routerlicious-driver#RouterliciousErrorType}\n *\n */\nexport type ICriticalContainerError = IErrorBase;\n"]}
|
package/dist/fluidPackage.d.ts
CHANGED
|
@@ -57,7 +57,7 @@ export interface IFluidPackage {
|
|
|
57
57
|
* Check if the package.json defines a Fluid package
|
|
58
58
|
* @param pkg - the package json data to check if it is a Fluid package.
|
|
59
59
|
*/
|
|
60
|
-
export declare const isFluidPackage: (pkg:
|
|
60
|
+
export declare const isFluidPackage: (pkg: unknown) => pkg is Readonly<IFluidPackage>;
|
|
61
61
|
/**
|
|
62
62
|
* Package manager configuration. Provides a key value mapping of config values
|
|
63
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluidPackage.d.ts","sourceRoot":"","sources":["../src/fluidPackage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC;;;OAGG;IACH,CAAC,MAAM,EAAE,MAAM,GACZ,SAAS,GACT;QACA;;;;WAIG;QACH,KAAK,EAAE,MAAM,EAAE,CAAC;QAEhB;;;;WAIG;QACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACL;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,EAAE;QACN;;;WAGG;QACH,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,wBAAwB,CAAC;KAC5D,CAAC;IACF;;;;OAIG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAS,
|
|
1
|
+
{"version":3,"file":"fluidPackage.d.ts","sourceRoot":"","sources":["../src/fluidPackage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC;;;OAGG;IACH,CAAC,MAAM,EAAE,MAAM,GACZ,SAAS,GACT;QACA;;;;WAIG;QACH,KAAK,EAAE,MAAM,EAAE,CAAC;QAEhB;;;;WAIG;QACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACL;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,EAAE;QACN;;;WAGG;QACH,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,wBAAwB,CAAC;KAC5D,CAAC;IACF;;;;OAIG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAS,OAAO,mCAGgB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEnD;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAC1C;AAED,eAAO,MAAM,kBAAkB,YAAa,OAAO,2CAQlD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,MAAM,gCAClB,CAAC;AAE7B,MAAM,WAAW,gCAAgC;IAChD,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,gCAAgC;IAClF;;;;;OAKG;IACH,SAAS,CAAC,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzF;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACjF"}
|
package/dist/fluidPackage.js
CHANGED
|
@@ -9,7 +9,9 @@ exports.IFluidCodeDetailsComparer = exports.isFluidCodeDetails = exports.isFluid
|
|
|
9
9
|
* Check if the package.json defines a Fluid package
|
|
10
10
|
* @param pkg - the package json data to check if it is a Fluid package.
|
|
11
11
|
*/
|
|
12
|
-
const isFluidPackage = (pkg) => typeof pkg === "object" &&
|
|
12
|
+
const isFluidPackage = (pkg) => typeof pkg === "object" &&
|
|
13
|
+
typeof pkg?.name === "string" &&
|
|
14
|
+
typeof pkg?.fluid === "object";
|
|
13
15
|
exports.isFluidPackage = isFluidPackage;
|
|
14
16
|
const isFluidCodeDetails = (details) => {
|
|
15
17
|
const maybeCodeDetails = details;
|
package/dist/fluidPackage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluidPackage.js","sourceRoot":"","sources":["../src/fluidPackage.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA0DH;;;GAGG;AACI,MAAM,cAAc,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"fluidPackage.js","sourceRoot":"","sources":["../src/fluidPackage.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA0DH;;;GAGG;AACI,MAAM,cAAc,GAAG,CAAC,GAAY,EAAkC,EAAE,CAC9E,OAAO,GAAG,KAAK,QAAQ;IACvB,OAAQ,GAA8B,EAAE,IAAI,KAAK,QAAQ;IACzD,OAAQ,GAA8B,EAAE,KAAK,KAAK,QAAQ,CAAC;AAH/C,QAAA,cAAc,kBAGiC;AA4BrD,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAA0C,EAAE;IAC9F,MAAM,gBAAgB,GAAG,OAAiD,CAAC;IAC3E,OAAO,CACN,OAAO,gBAAgB,KAAK,QAAQ;QACpC,CAAC,OAAO,gBAAgB,EAAE,OAAO,KAAK,QAAQ;YAC7C,IAAA,sBAAc,EAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC,gBAAgB,EAAE,MAAM,KAAK,SAAS,IAAI,OAAO,gBAAgB,EAAE,MAAM,KAAK,QAAQ,CAAC,CACxF,CAAC;AACH,CAAC,CAAC;AARW,QAAA,kBAAkB,sBAQ7B;AAEW,QAAA,yBAAyB,GACrC,2BAA2B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Specifies an environment on Fluid property of a IFluidPackage.\n */\nexport interface IFluidPackageEnvironment {\n\t/**\n\t * The name of the target. For a browser environment, this could be umd for scripts\n\t * or css for styles.\n\t */\n\t[target: string]:\n\t\t| undefined\n\t\t| {\n\t\t\t\t/**\n\t\t\t\t * List of files for the target. These can be relative or absolute.\n\t\t\t\t * The code loader should resolve relative paths, and validate all\n\t\t\t\t * full urls.\n\t\t\t\t */\n\t\t\t\tfiles: string[];\n\n\t\t\t\t/**\n\t\t\t\t * General access for extended fields as specific usages will\n\t\t\t\t * likely have additional infornamation like a definition\n\t\t\t\t * of Library, the entrypoint for umd packages.\n\t\t\t\t */\n\t\t\t\t[key: string]: unknown;\n\t\t };\n}\n\n/**\n * Fluid-specific properties expected on a package to be loaded by the code loader.\n * While compatible with the npm package format it is not necessary that that package is an\n * npm package:\n * {@link https://stackoverflow.com/questions/10065564/add-custom-metadata-or-config-to-package-json-is-it-valid}\n */\nexport interface IFluidPackage {\n\t/**\n\t * The name of the package that this code represnets\n\t */\n\tname: string;\n\t/**\n\t * This object represents the Fluid specific properties of the package\n\t */\n\tfluid: {\n\t\t/**\n\t\t * The name of the of the environment. This should be something like browser, or node\n\t\t * and contain the necessary targets for loading this code in that environment.\n\t\t */\n\t\t[environment: string]: undefined | IFluidPackageEnvironment;\n\t};\n\t/**\n\t * General access for extended fields as specific usages will\n\t * likely have additional infornamation like a definition of\n\t * compatible versions, or deployment information like rings or rollouts.\n\t */\n\t[key: string]: unknown;\n}\n\n/**\n * Check if the package.json defines a Fluid package\n * @param pkg - the package json data to check if it is a Fluid package.\n */\nexport const isFluidPackage = (pkg: unknown): pkg is Readonly<IFluidPackage> =>\n\ttypeof pkg === \"object\" &&\n\ttypeof (pkg as Partial<IFluidPackage>)?.name === \"string\" &&\n\ttypeof (pkg as Partial<IFluidPackage>)?.fluid === \"object\";\n\n/**\n * Package manager configuration. Provides a key value mapping of config values\n */\nexport interface IFluidCodeDetailsConfig {\n\treadonly [key: string]: string;\n}\n\n/**\n * Data structure used to describe the code to load on the Fluid document\n */\nexport interface IFluidCodeDetails {\n\t/**\n\t * The code package to be used on the Fluid document. This is either the package name which will be loaded\n\t * from a package manager. Or the expanded Fluid package.\n\t */\n\treadonly package: string | Readonly<IFluidPackage>;\n\n\t/**\n\t * Configuration details. This includes links to the package manager and base CDNs.\n\t *\n\t * @remarks This is strictly consumer-defined data.\n\t * Its contents and semantics (including whether or not this data is present) are completely up to the consumer.\n\t */\n\treadonly config?: IFluidCodeDetailsConfig;\n}\n\nexport const isFluidCodeDetails = (details: unknown): details is Readonly<IFluidCodeDetails> => {\n\tconst maybeCodeDetails = details as Partial<IFluidCodeDetails> | undefined;\n\treturn (\n\t\ttypeof maybeCodeDetails === \"object\" &&\n\t\t(typeof maybeCodeDetails?.package === \"string\" ||\n\t\t\tisFluidPackage(maybeCodeDetails?.package)) &&\n\t\t(maybeCodeDetails?.config === undefined || typeof maybeCodeDetails?.config === \"object\")\n\t);\n};\n\nexport const IFluidCodeDetailsComparer: keyof IProvideFluidCodeDetailsComparer =\n\t\"IFluidCodeDetailsComparer\";\n\nexport interface IProvideFluidCodeDetailsComparer {\n\treadonly IFluidCodeDetailsComparer: IFluidCodeDetailsComparer;\n}\n\n/**\n * Provides capability to compare Fluid code details.\n */\nexport interface IFluidCodeDetailsComparer extends IProvideFluidCodeDetailsComparer {\n\t/**\n\t * Determines if the `candidate` code details satisfy the constraints specified in `constraint` code details.\n\t *\n\t * Similar semantics to:\n\t * {@link https://github.com/npm/node-semver#usage}\n\t */\n\tsatisfies(candidate: IFluidCodeDetails, constraint: IFluidCodeDetails): Promise<boolean>;\n\n\t/**\n\t * Return a number representing the ascending sort order of the `a` and `b` code details:\n\t *\n\t * - `< 0` if `a < b`.\n\t *\n\t * - `= 0` if `a === b`.\n\t *\n\t * - `> 0` if `a > b`.\n\t *\n\t * - `undefined` if `a` is not comparable to `b`.\n\t *\n\t * Similar semantics to:\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#description | Array.sort}\n\t */\n\tcompare(a: IFluidCodeDetails, b: IFluidCodeDetails): Promise<number | undefined>;\n}\n"]}
|
package/dist/loader.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ export interface ICodeDetailsLoader extends Partial<IProvideFluidCodeDetailsComp
|
|
|
36
36
|
* Load the code module (package) that can interact with the document.
|
|
37
37
|
*
|
|
38
38
|
* @param source - Code proposal that articulates the current schema the document is written in.
|
|
39
|
-
* @returns
|
|
39
|
+
* @returns Code module entry point along with the code details associated with it.
|
|
40
40
|
*/
|
|
41
41
|
load(source: IFluidCodeDetails): Promise<IFluidModuleWithDetails>;
|
|
42
42
|
}
|
|
@@ -65,7 +65,7 @@ export interface IFluidCodeResolver {
|
|
|
65
65
|
/**
|
|
66
66
|
* Resolves a Fluid code details into a form that can be loaded.
|
|
67
67
|
* @param details - The Fluid code details to resolve.
|
|
68
|
-
* @returns
|
|
68
|
+
* @returns A IResolvedFluidCodeDetails where the resolvedPackage's Fluid file entries are absolute urls, and
|
|
69
69
|
* an optional resolvedPackageCacheId if the loaded package should be cached.
|
|
70
70
|
*/
|
|
71
71
|
resolveCodeDetails(details: IFluidCodeDetails): Promise<IResolvedFluidCodeDetails>;
|
|
@@ -241,7 +241,7 @@ export declare namespace ConnectionState {
|
|
|
241
241
|
/**
|
|
242
242
|
* Type defining the different states of connectivity a Container can be in.
|
|
243
243
|
*/
|
|
244
|
-
export
|
|
244
|
+
export type ConnectionState = ConnectionState.Disconnected | ConnectionState.EstablishingConnection | ConnectionState.CatchingUp | ConnectionState.Connected;
|
|
245
245
|
/**
|
|
246
246
|
* The Host's view of a Container and its connection to storage
|
|
247
247
|
*/
|
|
@@ -330,9 +330,13 @@ export interface IContainer extends IEventProvider<IContainerEvents>, IFluidRout
|
|
|
330
330
|
*/
|
|
331
331
|
getAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;
|
|
332
332
|
/**
|
|
333
|
+
* @deprecated Requesting will not be supported in a future major release.
|
|
334
|
+
* Instead, access the objects in a Fluid Container using entryPoint, and then navigate from there using
|
|
335
|
+
* app-specific logic (e.g. retrieving handles from the entryPoint's DDSes, or a container's entryPoint object
|
|
336
|
+
* could implement a request paradigm itself)
|
|
337
|
+
*
|
|
333
338
|
* IMPORTANT: This overload is provided for back-compat where IContainer.request(\{ url: "/" \}) is already implemented and used.
|
|
334
339
|
* The functionality it can provide (if the Container implementation is built for it) is redundant with @see {@link IContainer.getEntryPoint}.
|
|
335
|
-
* Once that API is mandatory on IContainer, this overload will be deprecated.
|
|
336
340
|
*
|
|
337
341
|
* Refer to Removing-IFluidRouter.md for details on migrating from the request pattern to using entryPoint.
|
|
338
342
|
*
|
|
@@ -351,9 +355,6 @@ export interface IContainer extends IEventProvider<IContainerEvents>, IFluidRout
|
|
|
351
355
|
* app-specific logic (e.g. retrieving handles from the entryPoint's DDSes, or a container's entryPoint object
|
|
352
356
|
* could implement a request paradigm itself)
|
|
353
357
|
*
|
|
354
|
-
* NOTE: IContainer.request(\{url: "/"\}) is not yet deprecated. If and only if the Container implementation supports it,
|
|
355
|
-
* that overload may be used as a proxy for getting the entryPoint until {@link IContainer.getEntryPoint} is mandatory.
|
|
356
|
-
*
|
|
357
358
|
* Refer to Removing-IFluidRouter.md for details on migrating from the request pattern to using entryPoint.
|
|
358
359
|
*/
|
|
359
360
|
request(request: IRequest): Promise<IResponse>;
|
|
@@ -421,15 +422,8 @@ export interface IContainer extends IEventProvider<IContainerEvents>, IFluidRout
|
|
|
421
422
|
/**
|
|
422
423
|
* Exposes the entryPoint for the container.
|
|
423
424
|
* Use this as the primary way of getting access to the user-defined logic within the container.
|
|
424
|
-
* If the method is undefined or the returned promise returns undefined (meaning that exposing the entryPoint
|
|
425
|
-
* hasn't been implemented in a particular scenario) fall back to the current approach of requesting the default
|
|
426
|
-
* object of the container through the request pattern.
|
|
427
|
-
*
|
|
428
|
-
* @remarks The plan is that eventually IContainer will no longer implement IFluidRouter (and thus won't have a
|
|
429
|
-
* request() method), this method will no longer be optional, and it will become the only way to access
|
|
430
|
-
* the entryPoint for the container.
|
|
431
425
|
*/
|
|
432
|
-
getEntryPoint
|
|
426
|
+
getEntryPoint(): Promise<FluidObject | undefined>;
|
|
433
427
|
}
|
|
434
428
|
/**
|
|
435
429
|
* The Runtime's view of the Loader, used for loading Containers
|
|
@@ -469,7 +463,7 @@ export interface IHostLoader extends ILoader {
|
|
|
469
463
|
*/
|
|
470
464
|
rehydrateDetachedContainerFromSnapshot(snapshot: string): Promise<IContainer>;
|
|
471
465
|
}
|
|
472
|
-
export
|
|
466
|
+
export type ILoaderOptions = {
|
|
473
467
|
[key in string | number]: any;
|
|
474
468
|
} & {
|
|
475
469
|
/**
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,QAAQ,EACR,SAAS,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/loader.js
CHANGED
|
@@ -33,5 +33,5 @@ var LoaderHeader;
|
|
|
33
33
|
* otherwise, version sha to load snapshot
|
|
34
34
|
*/
|
|
35
35
|
LoaderHeader["version"] = "version";
|
|
36
|
-
})(LoaderHeader
|
|
36
|
+
})(LoaderHeader || (exports.LoaderHeader = LoaderHeader = {}));
|
|
37
37
|
//# sourceMappingURL=loader.js.map
|