@fluidframework/container-definitions 2.53.0 → 2.60.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/CHANGELOG.md +4 -0
- package/api-report/{container-definitions.legacy.alpha.api.md → container-definitions.legacy.beta.api.md} +44 -44
- package/dist/audience.d.ts +1 -2
- package/dist/audience.d.ts.map +1 -1
- package/dist/audience.js.map +1 -1
- package/dist/browserPackage.d.ts +3 -6
- package/dist/browserPackage.d.ts.map +1 -1
- package/dist/browserPackage.js +1 -2
- package/dist/browserPackage.js.map +1 -1
- package/dist/deltas.d.ts +7 -14
- package/dist/deltas.d.ts.map +1 -1
- package/dist/deltas.js.map +1 -1
- package/dist/error.d.ts +3 -6
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +1 -2
- package/dist/error.js.map +1 -1
- package/dist/fluidModule.d.ts +1 -2
- package/dist/fluidModule.d.ts.map +1 -1
- package/dist/fluidModule.js.map +1 -1
- package/dist/fluidPackage.d.ts +8 -16
- package/dist/fluidPackage.d.ts.map +1 -1
- package/dist/fluidPackage.js +2 -4
- package/dist/fluidPackage.js.map +1 -1
- package/dist/loader.d.ts +12 -24
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +1 -2
- package/dist/loader.js.map +1 -1
- package/dist/runtime.d.ts +8 -16
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +1 -2
- package/dist/runtime.js.map +1 -1
- package/lib/audience.d.ts +1 -2
- package/lib/audience.d.ts.map +1 -1
- package/lib/audience.js.map +1 -1
- package/lib/browserPackage.d.ts +3 -6
- package/lib/browserPackage.d.ts.map +1 -1
- package/lib/browserPackage.js +1 -2
- package/lib/browserPackage.js.map +1 -1
- package/lib/deltas.d.ts +7 -14
- package/lib/deltas.d.ts.map +1 -1
- package/lib/deltas.js.map +1 -1
- package/lib/error.d.ts +3 -6
- package/lib/error.d.ts.map +1 -1
- package/lib/error.js +1 -2
- package/lib/error.js.map +1 -1
- package/lib/fluidModule.d.ts +1 -2
- package/lib/fluidModule.d.ts.map +1 -1
- package/lib/fluidModule.js.map +1 -1
- package/lib/fluidPackage.d.ts +8 -16
- package/lib/fluidPackage.d.ts.map +1 -1
- package/lib/fluidPackage.js +2 -4
- package/lib/fluidPackage.js.map +1 -1
- package/lib/loader.d.ts +12 -24
- package/lib/loader.d.ts.map +1 -1
- package/lib/loader.js +1 -2
- package/lib/loader.js.map +1 -1
- package/lib/runtime.d.ts +8 -16
- package/lib/runtime.d.ts.map +1 -1
- package/lib/runtime.js +1 -2
- package/lib/runtime.js.map +1 -1
- package/package.json +5 -5
- package/src/audience.ts +1 -2
- package/src/browserPackage.ts +3 -6
- package/src/deltas.ts +7 -14
- package/src/error.ts +3 -6
- package/src/fluidModule.ts +1 -2
- package/src/fluidPackage.ts +8 -16
- package/src/loader.ts +12 -24
- package/src/runtime.ts +8 -16
package/dist/error.js
CHANGED
|
@@ -8,8 +8,7 @@ exports.ContainerErrorTypes = void 0;
|
|
|
8
8
|
const internal_1 = require("@fluidframework/core-interfaces/internal");
|
|
9
9
|
/**
|
|
10
10
|
* Different error types the ClientSession may report out to the Host.
|
|
11
|
-
* @legacy
|
|
12
|
-
* @alpha
|
|
11
|
+
* @legacy @beta
|
|
13
12
|
*/
|
|
14
13
|
exports.ContainerErrorTypes = {
|
|
15
14
|
...internal_1.FluidErrorTypes,
|
package/dist/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,uEAA2E;AAE3E
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,uEAA2E;AAE3E;;;GAGG;AACU,QAAA,mBAAmB,GAAG;IAClC,GAAG,0BAAe;IAClB;;;OAGG;IACH,yBAAyB,EAAE,2BAA2B;CAC7C,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IErrorBase } from \"@fluidframework/core-interfaces\";\nimport { FluidErrorTypes } from \"@fluidframework/core-interfaces/internal\";\n\n/**\n * Different error types the ClientSession may report out to the Host.\n * @legacy @beta\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;\n\n/**\n * {@inheritDoc (ContainerErrorTypes:variable)}\n * @legacy @beta\n */\nexport type ContainerErrorTypes =\n\t(typeof ContainerErrorTypes)[keyof typeof ContainerErrorTypes];\n\n/**\n * Represents warnings raised on container.\n * @legacy @beta\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 * @remarks\n *\n * The following are commonly thrown error types, but `errorType` could be any string.\n *\n * - {@link @fluidframework/core-interfaces#FluidErrorTypes}\n *\n * - {@link @fluidframework/driver-definitions#(DriverErrorTypes:variable)}\n *\n * @public\n */\nexport type ICriticalContainerError = IErrorBase;\n"]}
|
package/dist/fluidModule.d.ts
CHANGED
|
@@ -6,8 +6,7 @@ import type { FluidObject } from "@fluidframework/core-interfaces";
|
|
|
6
6
|
import type { IProvideFluidCodeDetailsComparer } from "./fluidPackage.js";
|
|
7
7
|
import type { IRuntimeFactory } from "./runtime.js";
|
|
8
8
|
/**
|
|
9
|
-
* @legacy
|
|
10
|
-
* @alpha
|
|
9
|
+
* @legacy @beta
|
|
11
10
|
*/
|
|
12
11
|
export interface IFluidModule {
|
|
13
12
|
fluidExport: FluidObject<IRuntimeFactory & IProvideFluidCodeDetailsComparer>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluidModule.d.ts","sourceRoot":"","sources":["../src/fluidModule.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD
|
|
1
|
+
{"version":3,"file":"fluidModule.d.ts","sourceRoot":"","sources":["../src/fluidModule.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,WAAW,EAAE,WAAW,CAAC,eAAe,GAAG,gCAAgC,CAAC,CAAC;CAC7E"}
|
package/dist/fluidModule.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluidModule.js","sourceRoot":"","sources":["../src/fluidModule.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 type { FluidObject } from \"@fluidframework/core-interfaces\";\n\nimport type { IProvideFluidCodeDetailsComparer } from \"./fluidPackage.js\";\nimport type { IRuntimeFactory } from \"./runtime.js\";\n\n/**\n * @legacy
|
|
1
|
+
{"version":3,"file":"fluidModule.js","sourceRoot":"","sources":["../src/fluidModule.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 type { FluidObject } from \"@fluidframework/core-interfaces\";\n\nimport type { IProvideFluidCodeDetailsComparer } from \"./fluidPackage.js\";\nimport type { IRuntimeFactory } from \"./runtime.js\";\n\n/**\n * @legacy @beta\n */\nexport interface IFluidModule {\n\tfluidExport: FluidObject<IRuntimeFactory & IProvideFluidCodeDetailsComparer>;\n}\n"]}
|
package/dist/fluidPackage.d.ts
CHANGED
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
6
|
* Specifies an environment on Fluid property of a IFluidPackage.
|
|
7
|
-
* @legacy
|
|
8
|
-
* @alpha
|
|
7
|
+
* @legacy @beta
|
|
9
8
|
*/
|
|
10
9
|
export interface IFluidPackageEnvironment {
|
|
11
10
|
/**
|
|
@@ -32,8 +31,7 @@ export interface IFluidPackageEnvironment {
|
|
|
32
31
|
* While compatible with the npm package format it is not necessary that that package is an
|
|
33
32
|
* npm package:
|
|
34
33
|
* {@link https://stackoverflow.com/questions/10065564/add-custom-metadata-or-config-to-package-json-is-it-valid}
|
|
35
|
-
* @legacy
|
|
36
|
-
* @alpha
|
|
34
|
+
* @legacy @beta
|
|
37
35
|
*/
|
|
38
36
|
export interface IFluidPackage {
|
|
39
37
|
/**
|
|
@@ -60,22 +58,19 @@ export interface IFluidPackage {
|
|
|
60
58
|
/**
|
|
61
59
|
* Check if the package.json defines a Fluid package
|
|
62
60
|
* @param pkg - the package json data to check if it is a Fluid package.
|
|
63
|
-
* @legacy
|
|
64
|
-
* @alpha
|
|
61
|
+
* @legacy @beta
|
|
65
62
|
*/
|
|
66
63
|
export declare const isFluidPackage: (pkg: unknown) => pkg is Readonly<IFluidPackage>;
|
|
67
64
|
/**
|
|
68
65
|
* Package manager configuration. Provides a key value mapping of config values
|
|
69
|
-
* @legacy
|
|
70
|
-
* @alpha
|
|
66
|
+
* @legacy @beta
|
|
71
67
|
*/
|
|
72
68
|
export interface IFluidCodeDetailsConfig {
|
|
73
69
|
readonly [key: string]: string;
|
|
74
70
|
}
|
|
75
71
|
/**
|
|
76
72
|
* Data structure used to describe the code to load on the Fluid document
|
|
77
|
-
* @legacy
|
|
78
|
-
* @alpha
|
|
73
|
+
* @legacy @beta
|
|
79
74
|
*/
|
|
80
75
|
export interface IFluidCodeDetails {
|
|
81
76
|
/**
|
|
@@ -97,21 +92,18 @@ export interface IFluidCodeDetails {
|
|
|
97
92
|
*/
|
|
98
93
|
export declare const isFluidCodeDetails: (details: unknown) => details is Readonly<IFluidCodeDetails>;
|
|
99
94
|
/**
|
|
100
|
-
* @legacy
|
|
101
|
-
* @alpha
|
|
95
|
+
* @legacy @beta
|
|
102
96
|
*/
|
|
103
97
|
export declare const IFluidCodeDetailsComparer: keyof IProvideFluidCodeDetailsComparer;
|
|
104
98
|
/**
|
|
105
|
-
* @legacy
|
|
106
|
-
* @alpha
|
|
99
|
+
* @legacy @beta
|
|
107
100
|
*/
|
|
108
101
|
export interface IProvideFluidCodeDetailsComparer {
|
|
109
102
|
readonly IFluidCodeDetailsComparer: IFluidCodeDetailsComparer;
|
|
110
103
|
}
|
|
111
104
|
/**
|
|
112
105
|
* Provides capability to compare Fluid code details.
|
|
113
|
-
* @legacy
|
|
114
|
-
* @alpha
|
|
106
|
+
* @legacy @beta
|
|
115
107
|
*/
|
|
116
108
|
export interface IFluidCodeDetailsComparer extends IProvideFluidCodeDetailsComparer {
|
|
117
109
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluidPackage.d.ts","sourceRoot":"","sources":["../src/fluidPackage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH
|
|
1
|
+
{"version":3,"file":"fluidPackage.d.ts","sourceRoot":"","sources":["../src/fluidPackage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;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;;;;;;GAMG;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;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAS,OAAO,mCAGgB,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACvC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B;AAED;;;GAGG;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;;;GAGG;AACH,eAAO,MAAM,kBAAkB,YACrB,OAAO,2CAShB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,gCAClB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAChD,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;CAC9D;AAED;;;GAGG;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
|
@@ -8,8 +8,7 @@ exports.IFluidCodeDetailsComparer = exports.isFluidCodeDetails = exports.isFluid
|
|
|
8
8
|
/**
|
|
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
|
-
* @legacy
|
|
12
|
-
* @alpha
|
|
11
|
+
* @legacy @beta
|
|
13
12
|
*/
|
|
14
13
|
const isFluidPackage = (pkg) => typeof pkg === "object" &&
|
|
15
14
|
typeof pkg?.name === "string" &&
|
|
@@ -28,8 +27,7 @@ const isFluidCodeDetails = (details) => {
|
|
|
28
27
|
};
|
|
29
28
|
exports.isFluidCodeDetails = isFluidCodeDetails;
|
|
30
29
|
/**
|
|
31
|
-
* @legacy
|
|
32
|
-
* @alpha
|
|
30
|
+
* @legacy @beta
|
|
33
31
|
*/
|
|
34
32
|
exports.IFluidCodeDetailsComparer = "IFluidCodeDetailsComparer";
|
|
35
33
|
//# sourceMappingURL=fluidPackage.js.map
|
package/dist/fluidPackage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluidPackage.js","sourceRoot":"","sources":["../src/fluidPackage.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"fluidPackage.js","sourceRoot":"","sources":["../src/fluidPackage.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA4DH;;;;GAIG;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;AA8B5D;;;GAGG;AACI,MAAM,kBAAkB,GAAG,CACjC,OAAgB,EACyB,EAAE;IAC3C,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;AAVW,QAAA,kBAAkB,sBAU7B;AAEF;;GAEG;AACU,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 * @legacy @beta\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 * @legacy @beta\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 * @legacy @beta\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 * @legacy @beta\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 * @legacy @beta\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\n/**\n * Determines if any object is an IFluidCodeDetails\n * @internal\n */\nexport const isFluidCodeDetails = (\n\tdetails: unknown,\n): 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\n/**\n * @legacy @beta\n */\nexport const IFluidCodeDetailsComparer: keyof IProvideFluidCodeDetailsComparer =\n\t\"IFluidCodeDetailsComparer\";\n\n/**\n * @legacy @beta\n */\nexport interface IProvideFluidCodeDetailsComparer {\n\treadonly IFluidCodeDetailsComparer: IFluidCodeDetailsComparer;\n}\n\n/**\n * Provides capability to compare Fluid code details.\n * @legacy @beta\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
|
@@ -13,8 +13,7 @@ import type { IFluidCodeDetails, IFluidPackage, IProvideFluidCodeDetailsComparer
|
|
|
13
13
|
import type { AttachState } from "./runtime.js";
|
|
14
14
|
/**
|
|
15
15
|
* Encapsulates a module entry point with corresponding code details.
|
|
16
|
-
* @legacy
|
|
17
|
-
* @alpha
|
|
16
|
+
* @legacy @beta
|
|
18
17
|
*/
|
|
19
18
|
export interface IFluidModuleWithDetails {
|
|
20
19
|
/**
|
|
@@ -32,8 +31,7 @@ export interface IFluidModuleWithDetails {
|
|
|
32
31
|
/**
|
|
33
32
|
* Fluid code loader resolves a code module matching the document schema, i.e. code details, such as
|
|
34
33
|
* a package name and package version range.
|
|
35
|
-
* @legacy
|
|
36
|
-
* @alpha
|
|
34
|
+
* @legacy @beta
|
|
37
35
|
*/
|
|
38
36
|
export interface ICodeDetailsLoader extends Partial<IProvideFluidCodeDetailsComparer> {
|
|
39
37
|
/**
|
|
@@ -78,8 +76,7 @@ export interface IFluidCodeResolver {
|
|
|
78
76
|
}
|
|
79
77
|
/**
|
|
80
78
|
* Events emitted by the {@link IContainer} "upwards" to the Loader and Host.
|
|
81
|
-
* @legacy
|
|
82
|
-
* @alpha
|
|
79
|
+
* @legacy @beta
|
|
83
80
|
*/
|
|
84
81
|
export interface IContainerEvents extends IEvent {
|
|
85
82
|
/**
|
|
@@ -280,8 +277,7 @@ export declare namespace ConnectionState {
|
|
|
280
277
|
export type ConnectionState = ConnectionState.Disconnected | ConnectionState.EstablishingConnection | ConnectionState.CatchingUp | ConnectionState.Connected;
|
|
281
278
|
/**
|
|
282
279
|
* The Host's view of a Container and its connection to storage
|
|
283
|
-
* @legacy
|
|
284
|
-
* @alpha
|
|
280
|
+
* @legacy @beta
|
|
285
281
|
*/
|
|
286
282
|
export interface IContainer extends IEventProvider<IContainerEvents> {
|
|
287
283
|
/**
|
|
@@ -467,8 +463,7 @@ export interface IContainer extends IEventProvider<IContainerEvents> {
|
|
|
467
463
|
}
|
|
468
464
|
/**
|
|
469
465
|
* The Runtime's view of the Loader, used for loading Containers
|
|
470
|
-
* @legacy
|
|
471
|
-
* @alpha
|
|
466
|
+
* @legacy @beta
|
|
472
467
|
*/
|
|
473
468
|
export interface ILoader extends Partial<IProvideLoader> {
|
|
474
469
|
/**
|
|
@@ -484,8 +479,7 @@ export interface ILoader extends Partial<IProvideLoader> {
|
|
|
484
479
|
}
|
|
485
480
|
/**
|
|
486
481
|
* The Host's view of the Loader, used for loading Containers
|
|
487
|
-
* @legacy
|
|
488
|
-
* @alpha
|
|
482
|
+
* @legacy @beta
|
|
489
483
|
*/
|
|
490
484
|
export interface IHostLoader extends ILoader {
|
|
491
485
|
/**
|
|
@@ -507,8 +501,7 @@ export interface IHostLoader extends ILoader {
|
|
|
507
501
|
}
|
|
508
502
|
/**
|
|
509
503
|
* Options to configure various behaviors of the ILoader.
|
|
510
|
-
* @legacy
|
|
511
|
-
* @alpha
|
|
504
|
+
* @legacy @beta
|
|
512
505
|
*/
|
|
513
506
|
export type ILoaderOptions = {
|
|
514
507
|
/**
|
|
@@ -544,8 +537,7 @@ export type ILoaderOptions = {
|
|
|
544
537
|
};
|
|
545
538
|
/**
|
|
546
539
|
* Policies to have various behaviors during container create and load.
|
|
547
|
-
* @legacy
|
|
548
|
-
* @alpha
|
|
540
|
+
* @legacy @beta
|
|
549
541
|
*/
|
|
550
542
|
export type IContainerPolicies = {
|
|
551
543
|
/**
|
|
@@ -555,8 +547,7 @@ export type IContainerPolicies = {
|
|
|
555
547
|
};
|
|
556
548
|
/**
|
|
557
549
|
* Accepted header keys for requests coming to the Loader
|
|
558
|
-
* @legacy
|
|
559
|
-
* @alpha
|
|
550
|
+
* @legacy @beta
|
|
560
551
|
*/
|
|
561
552
|
export declare enum LoaderHeader {
|
|
562
553
|
/**
|
|
@@ -584,8 +575,7 @@ export declare enum LoaderHeader {
|
|
|
584
575
|
version = "version"
|
|
585
576
|
}
|
|
586
577
|
/**
|
|
587
|
-
* @legacy
|
|
588
|
-
* @alpha
|
|
578
|
+
* @legacy @beta
|
|
589
579
|
*/
|
|
590
580
|
export interface IContainerLoadMode {
|
|
591
581
|
opsBeforeReturn?: undefined | "cached" | "all";
|
|
@@ -602,8 +592,7 @@ export interface ILoaderHeader {
|
|
|
602
592
|
[LoaderHeader.version]: string | undefined;
|
|
603
593
|
}
|
|
604
594
|
/**
|
|
605
|
-
* @legacy
|
|
606
|
-
* @alpha
|
|
595
|
+
* @legacy @beta
|
|
607
596
|
*/
|
|
608
597
|
export interface IProvideLoader {
|
|
609
598
|
readonly ILoader: ILoader;
|
|
@@ -613,8 +602,7 @@ export interface IProvideLoader {
|
|
|
613
602
|
* in separate property: {@link ISnapshotTreeWithBlobContents.blobsContents}.
|
|
614
603
|
*
|
|
615
604
|
* @remarks This is used as the `ContainerContext`'s base snapshot when attaching.
|
|
616
|
-
* @legacy
|
|
617
|
-
* @alpha
|
|
605
|
+
* @legacy @beta
|
|
618
606
|
*/
|
|
619
607
|
export interface ISnapshotTreeWithBlobContents extends ISnapshotTree {
|
|
620
608
|
blobsContents?: {
|
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,KAAK,EACX,WAAW,EACX,MAAM,EACN,cAAc,EACd,QAAQ,EACR,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACX,OAAO,EACP,cAAc,EACd,cAAc,EACd,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACX,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EACX,iBAAiB,EACjB,aAAa,EACb,gCAAgC,EAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/loader.js
CHANGED
|
@@ -39,8 +39,7 @@ var ConnectionState;
|
|
|
39
39
|
})(ConnectionState || (exports.ConnectionState = ConnectionState = {}));
|
|
40
40
|
/**
|
|
41
41
|
* Accepted header keys for requests coming to the Loader
|
|
42
|
-
* @legacy
|
|
43
|
-
* @alpha
|
|
42
|
+
* @legacy @beta
|
|
44
43
|
*/
|
|
45
44
|
var LoaderHeader;
|
|
46
45
|
(function (LoaderHeader) {
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA6QH;;;;GAIG;AACH,2DAA2D;AAC3D,IAAiB,eAAe,CA2C/B;AA3CD,WAAiB,eAAe;IAC/B;;;;;OAKG;IACU,4BAAY,GAAG,CAAC,CAAC;IAM9B;;;;OAIG;IACU,sCAAsB,GAAG,CAAC,CAAC;IAMxC;;;OAGG;IACU,0BAAU,GAAG,CAAC,CAAC;IAM5B;;;OAGG;IACU,yBAAS,GAAG,CAAC,CAAC;AAK5B,CAAC,EA3CgB,eAAe,+BAAf,eAAe,QA2C/B;AAyUD;;;;GAIG;AACH,IAAY,YA2BX;AA3BD,WAAY,YAAY;IACvB;;;OAGG;IACH,qCAAqB,CAAA;IAErB,sDAAsC,CAAA;IAEtC;;OAEG;IACH,qCAAqB,CAAA;IACrB,6CAA6B,CAAA;IAC7B;;;OAGG;IACH,wDAAwC,CAAA;IAExC;;;;;OAKG;IACH,mCAAmB,CAAA;AACpB,CAAC,EA3BW,YAAY,4BAAZ,YAAY,QA2BvB","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type {\n\tFluidObject,\n\tIEvent,\n\tIEventProvider,\n\tIRequest,\n} from \"@fluidframework/core-interfaces\";\nimport type {\n\tIClient,\n\tIClientDetails,\n\tIQuorumClients,\n} from \"@fluidframework/driver-definitions\";\nimport type {\n\tIResolvedUrl,\n\tIDocumentMessage,\n\tISequencedProposal,\n\tISnapshotTree,\n\tISequencedDocumentMessage,\n} from \"@fluidframework/driver-definitions/internal\";\n\nimport type { IAudience } from \"./audience.js\";\nimport type { IDeltaManager, ReadOnlyInfo } from \"./deltas.js\";\nimport type { ContainerWarning, ICriticalContainerError } from \"./error.js\";\nimport type { IFluidModule } from \"./fluidModule.js\";\nimport type {\n\tIFluidCodeDetails,\n\tIFluidPackage,\n\tIProvideFluidCodeDetailsComparer,\n} from \"./fluidPackage.js\";\nimport type { AttachState } from \"./runtime.js\";\n\n/**\n * Encapsulates a module entry point with corresponding code details.\n * @legacy\n * @alpha\n */\nexport interface IFluidModuleWithDetails {\n\t/**\n\t * Fluid code module that implements the runtime factory needed to instantiate the container runtime.\n\t */\n\tmodule: IFluidModule;\n\n\t/**\n\t * Code details associated with the module. Represents a document schema this module supports.\n\t * If the code loader implements the {@link @fluidframework/core-interfaces#(IFluidCodeDetailsComparer:interface)}\n\t * interface, it'll be called to determine whether the module code details satisfy the new code proposal in the\n\t * quorum.\n\t */\n\tdetails: IFluidCodeDetails;\n}\n\n/**\n * Fluid code loader resolves a code module matching the document schema, i.e. code details, such as\n * a package name and package version range.\n * @legacy\n * @alpha\n */\nexport interface ICodeDetailsLoader extends Partial<IProvideFluidCodeDetailsComparer> {\n\t/**\n\t * Load the code module (package) that can interact with the document.\n\t *\n\t * @param source - Code proposal that articulates the current schema the document is written in.\n\t * @returns Code module entry point along with the code details associated with it.\n\t */\n\tload(source: IFluidCodeDetails): Promise<IFluidModuleWithDetails>;\n}\n\n/**\n * The interface returned from a IFluidCodeResolver which represents IFluidCodeDetails\n * that have been resolved and are ready to load\n * @internal\n */\nexport interface IResolvedFluidCodeDetails extends IFluidCodeDetails {\n\t/**\n\t * A resolved version of the Fluid package. All Fluid browser file entries should be absolute urls.\n\t */\n\treadonly resolvedPackage: Readonly<IFluidPackage>;\n\t/**\n\t * If not undefined, this id will be used to cache the entry point for the code package\n\t */\n\treadonly resolvedPackageCacheId: string | undefined;\n}\n\n/**\n * Fluid code resolvers take a Fluid code details, and resolve the\n * full Fluid package including absolute urls for the browser file entries.\n * The Fluid code resolver is coupled to a specific cdn and knows how to resolve\n * the code detail for loading from that cdn. This include resolving to the most recent\n * version of package that supports the provided code details.\n * @internal\n */\nexport interface IFluidCodeResolver {\n\t/**\n\t * Resolves a Fluid code details into a form that can be loaded.\n\t * @param details - The Fluid code details to resolve.\n\t * @returns A IResolvedFluidCodeDetails where the resolvedPackage's Fluid file entries are absolute urls, and\n\t * an optional resolvedPackageCacheId if the loaded package should be cached.\n\t */\n\tresolveCodeDetails(details: IFluidCodeDetails): Promise<IResolvedFluidCodeDetails>;\n}\n\n/**\n * Events emitted by the {@link IContainer} \"upwards\" to the Loader and Host.\n * @legacy\n * @alpha\n */\nexport interface IContainerEvents extends IEvent {\n\t/**\n\t * Emitted when the readonly state of the container changes.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `readonly`: Whether or not the container is now in a readonly state.\n\t *\n\t * @see {@link IContainer.readOnlyInfo}\n\t */\n\t(event: \"readonly\", listener: (readonly: boolean) => void): void;\n\n\t/**\n\t * Emitted when the {@link IContainer} completes connecting to the Fluid service.\n\t *\n\t * @remarks Reflects connection state changes against the (delta) service acknowledging ops/edits.\n\t *\n\t * @see\n\t *\n\t * - {@link IContainer.connectionState}\n\t *\n\t * - {@link IContainer.connect}\n\t */\n\t(event: \"connected\", listener: (clientId: string) => void);\n\n\t/**\n\t * Fires when new container code details have been proposed, prior to acceptance.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `codeDetails`: The code details being proposed.\n\t *\n\t * - `proposal`: NOT RECOMMENDED FOR USE.\n\t *\n\t * @see {@link IContainer.proposeCodeDetails}\n\t */\n\t(\n\t\tevent: \"codeDetailsProposed\",\n\t\tlistener: (codeDetails: IFluidCodeDetails, proposal: ISequencedProposal) => void,\n\t);\n\n\t/**\n\t * Emitted when the {@link IContainer} becomes disconnected from the Fluid service.\n\t *\n\t * @remarks Reflects connection state changes against the (delta) service acknowledging ops/edits.\n\t *\n\t * @see\n\t *\n\t * - {@link IContainer.connectionState}\n\t *\n\t * - {@link IContainer.disconnect}\n\t */\n\t(event: \"disconnected\", listener: () => void);\n\n\t/**\n\t * Emitted when a {@link AttachState.Detached | detached} container begins the process of\n\t * {@link AttachState.Attaching | attached} to the Fluid service.\n\t *\n\t * @see\n\t *\n\t * - {@link IContainer.attachState}\n\t *\n\t * - {@link IContainer.attach}\n\t */\n\t(event: \"attaching\", listener: () => void);\n\n\t/**\n\t * Emitted when the {@link AttachState.Attaching | attaching} process is complete and the container is\n\t * {@link AttachState.Attached | attached} to the Fluid service.\n\t *\n\t * @see\n\t *\n\t * - {@link IContainer.attachState}\n\t *\n\t * - {@link IContainer.attach}\n\t */\n\t(event: \"attached\", listener: () => void);\n\n\t/**\n\t * Emitted when the {@link IContainer} is closed, which permanently disables it.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `error`: If the container was closed due to error, this will contain details about the error that caused it.\n\t *\n\t * @see {@link IContainer.close}\n\t */\n\t(event: \"closed\", listener: (error?: ICriticalContainerError) => void);\n\n\t/**\n\t * Emitted when the {@link IContainer} is disposed, which permanently disables it.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `error`: If the container was disposed due to error, this will contain details about the error that caused it.\n\t *\n\t * @see {@link IContainer.dispose}\n\t */\n\t(event: \"disposed\", listener: (error?: ICriticalContainerError) => void);\n\n\t/**\n\t * Emitted when the container encounters a state which may lead to errors, which may be actionable by the consumer.\n\t *\n\t * @remarks\n\t *\n\t * Note: this event is not intended for general use.\n\t * The longer-term intention is to surface warnings more directly on the APIs that produce them.\n\t * For now, use of this should be avoided when possible.\n\t *\n\t * Listener parameters:\n\t *\n\t * - `error`: The warning describing the encountered state.\n\t */\n\t(event: \"warning\", listener: (error: ContainerWarning) => 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 IContainer}.\n\t *\n\t * Listener parameters:\n\t *\n\t * - `message`: The op that was processed.\n\t */\n\t(event: \"op\", listener: (message: ISequencedDocumentMessage) => void);\n\n\t/**\n\t * Emitted upon the first local change while the Container is in the \"saved\" state.\n\t * That is, when {@link IContainer.isDirty} transitions from `true` to `false`.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `dirty`: DEPRECATED. This parameter will be removed in a future release.\n\t *\n\t * @see {@link IContainer.isDirty}\n\t */\n\t(event: \"dirty\", listener: (dirty: boolean) => void);\n\n\t/**\n\t * Emitted when all local changes/edits have been acknowledged by the service.\n\t * I.e., when {@link IContainer.isDirty} transitions from `false` to `true`.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `dirty`: DEPRECATED. This parameter will be removed in a future release.\n\t *\n\t * @see {@link IContainer.isDirty}\n\t */\n\t(event: \"saved\", listener: (dirty: boolean) => void);\n\n\t/**\n\t * Emitted when the some of the properties related to the container are initialized or updated.\n\t * This emitted metadata will the props which are updated. If consumer wants to read full set of\n\t * metadata then they can read it off the container from {@link IContainer.containerMetadata} prop.\n\t */\n\t(event: \"metadataUpdate\", listener: (metadata: Record<string, string>) => void);\n}\n\n/**\n * Namespace for the different connection states a container can be in.\n * PLEASE NOTE: The sequence of the numerical values does no correspond to the typical connection state progression.\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace ConnectionState {\n\t/**\n\t * The container is not connected to the delta server.\n\t * Note - When in this state the container may be about to reconnect,\n\t * or may remain disconnected until explicitly told to connect.\n\t * @public\n\t */\n\texport const Disconnected = 0;\n\t/**\n\t * {@inheritdoc @fluidframework/container-definitions#(ConnectionState:namespace).(Disconnected:variable)}\n\t */\n\texport type Disconnected = typeof Disconnected;\n\n\t/**\n\t * The container is disconnected but actively trying to establish a new connection.\n\t * PLEASE NOTE that this numerical value falls out of the order you may expect for this state.\n\t * @public\n\t */\n\texport const EstablishingConnection = 3;\n\t/**\n\t * {@inheritdoc @fluidframework/container-definitions#(ConnectionState:namespace).(EstablishingConnection:variable)}\n\t */\n\texport type EstablishingConnection = typeof EstablishingConnection;\n\n\t/**\n\t * The container has an inbound connection only, and is catching up to the latest known state from the service.\n\t * @public\n\t */\n\texport const CatchingUp = 1;\n\t/**\n\t * {@inheritdoc @fluidframework/container-definitions#(ConnectionState:namespace).(CatchingUp:variable)}\n\t */\n\texport type CatchingUp = typeof CatchingUp;\n\n\t/**\n\t * The container is fully connected and syncing.\n\t * @public\n\t */\n\texport const Connected = 2;\n\t/**\n\t * {@inheritdoc @fluidframework/container-definitions#(ConnectionState:namespace).(Connected:variable)}\n\t */\n\texport type Connected = typeof Connected;\n}\n\n/**\n * Type defining the different states of connectivity a Container can be in.\n * @public\n */\nexport type ConnectionState =\n\t| ConnectionState.Disconnected\n\t| ConnectionState.EstablishingConnection\n\t| ConnectionState.CatchingUp\n\t| ConnectionState.Connected;\n\n/**\n * The Host's view of a Container and its connection to storage\n * @legacy\n * @alpha\n */\nexport interface IContainer extends IEventProvider<IContainerEvents> {\n\t/**\n\t * The Delta Manager supporting the op stream for this Container\n\t */\n\tdeltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;\n\n\t/**\n\t * The collection of write clients which were connected as of the current sequence number.\n\t * Also contains a map of key-value pairs that must be agreed upon by all clients before being accepted.\n\t */\n\tgetQuorum(): IQuorumClients;\n\n\t/**\n\t * Represents the resolved url to the Container.\n\t * Will be undefined only when the container is in the {@link AttachState.Detached | detached} state.\n\t */\n\tresolvedUrl: IResolvedUrl | undefined;\n\n\t/**\n\t * Indicates the attachment state of the container to a host service.\n\t */\n\treadonly attachState: AttachState;\n\n\t/**\n\t * Get the code details that are currently specified for the container.\n\t * @returns The current code details if any are specified, undefined if none are specified.\n\t */\n\tgetSpecifiedCodeDetails(): IFluidCodeDetails | undefined;\n\n\t/**\n\t * Get the code details that were used to load the container.\n\t * @returns The code details that were used to load the container if it is loaded, undefined if it is not yet\n\t * loaded.\n\t */\n\tgetLoadedCodeDetails(): IFluidCodeDetails | undefined;\n\n\t/**\n\t * Returns true if the container has been closed and/or disposed, otherwise false.\n\t */\n\treadonly closed: boolean;\n\n\t/**\n\t * Returns true if the container has been disposed, otherwise false.\n\t */\n\treadonly disposed?: boolean;\n\n\t/**\n\t * Whether or not there are any local changes that have not been saved.\n\t */\n\treadonly isDirty: boolean;\n\n\t/**\n\t * Disposes the container. If not already closed, this acts as a closure and then disposes runtime resources.\n\t * The container is not expected to be used anymore once it is disposed.\n\t *\n\t * @param error - If the container is being disposed due to error, this provides details about the error that\n\t * resulted in disposing it.\n\t */\n\tdispose(error?: ICriticalContainerError): void;\n\n\t/**\n\t * Closes the container.\n\t *\n\t * @param error - If the container is being closed due to error, this provides details about the error that\n\t * resulted in closing it.\n\t */\n\tclose(error?: ICriticalContainerError): void;\n\n\t/**\n\t * Propose new code details that define the code to be loaded for this container's runtime.\n\t *\n\t * The returned promise will be true when the proposal is accepted, and false if the proposal is rejected.\n\t */\n\tproposeCodeDetails(codeDetails: IFluidCodeDetails): Promise<boolean>;\n\n\t/**\n\t * When a container is created in Fluid it starts in detached state,\n\t * which means it is not yet uploaded to server storage and unavailable for other users to open or collaborate with.\n\t * A detached container can be serialized, stored, and rehydrated by the application.\n\t *\n\t * To finish the creation of a container and make it available for other users to open and collaborate with it must be attached,\n\t * which means it is uploaded to server storage. This function accomplishes that.\n\t *\n\t * Use the functionality provided by the driver to craft the IRequest parameter.\n\t * This is usually a free function called createCreateNewRequest, which takes\n\t * strongly typed arguments related to your driver and server.\n\t *\n\t * By default, the container will close if attach fails.\n\t * However, closure can now be avoided in most cased by setting:\n\t * Fluid.Container.RetryOnAttachFailure to true\n\t * via the config provider passed to the loader.\n\t *\n\t * If attach fails, check the closed property to discover if retry is possible.\n\t * If the container is not closed, it is safe to continue editing the container, calling serialize to capture the container's state,\n\t * or try calling attach again.\n\t *\n\t */\n\tattach(\n\t\trequest: IRequest,\n\t\tattachProps?: { deltaConnection?: \"none\" | \"delayed\" },\n\t): Promise<void>;\n\n\t/**\n\t * Capture the state of a container that is not attached or closed.\n\t * This is useful in draft-like scenarios. For example, think of an email draft, where a user can make changes over time,\n\t * but no other users can see or have access to that draft.\n\t *\n\t * This method can only be called when\n\t * the container's closed property is false, and the attachState is not AttachState.Attached.\n\t *\n\t * This method will return a string that includes the full serialized state of the\n\t * container. This string must not be inspected or modified, as the format of the content is not guaranteed.\n\t * @remarks\n\t * Fluid supports rehydrating from strings generated by previous versions, but does not support the content itself being leveraged.\n\t *\n\t * Consider storing this string somewhere durable (e.g. localStorage or IndexedDB) to enable your application to recover it after tab close.\n\t *\n\t * To reload a container from a string your application previously stored, use the Loader method rehydrateDetachedContainerFromSnapshot.\n\t * That method will create a new detached container which matches the state of the previously serialized container.\n\t */\n\tserialize(): string;\n\n\t/**\n\t * Get an absolute URL for a provided container-relative request URL.\n\t * If the container is not attached, this will return undefined.\n\t *\n\t * @param relativeUrl - A container-relative request URL.\n\t */\n\tgetAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;\n\n\t/**\n\t * Provides the current state of the container's connection to the ordering service.\n\t *\n\t * @remarks Consumers can listen for state changes via the \"connected\" and \"disconnected\" events.\n\t */\n\treadonly connectionState: ConnectionState;\n\n\t/**\n\t * Attempts to connect the container to the delta stream and process ops.\n\t *\n\t * @remarks\n\t *\n\t * {@link IContainer.connectionState} will be set to {@link (ConnectionState:namespace).(Connected:variable)}, and the\n\t * \"connected\" event will be fired if/when connection succeeds.\n\t */\n\tconnect(): void;\n\n\t/**\n\t * Disconnects the container from the delta stream and stops processing ops.\n\t *\n\t * @remarks\n\t *\n\t * {@link IContainer.connectionState} will be set to {@link (ConnectionState:namespace).(Disconnected:variable)}, and the\n\t * \"disconnected\" event will be fired when disconnection completes.\n\t */\n\tdisconnect(): void;\n\n\t/**\n\t * The audience information for all clients currently associated with the document in the current session.\n\t */\n\treadonly audience: IAudience;\n\n\t/**\n\t * The server provided ID of the client.\n\t *\n\t * Set once {@link IContainer.connectionState} is {@link (ConnectionState:namespace).(Connected:variable)},\n\t * otherwise will be `undefined`.\n\t */\n\treadonly clientId?: string | undefined;\n\n\t/**\n\t * Tells if container is in read-only mode.\n\t *\n\t * @remarks\n\t *\n\t * Data stores should listen for \"readonly\" notifications and disallow user making changes to data stores.\n\t * Readonly state can be because of no storage write permission,\n\t * or due to host forcing readonly mode for container.\n\t *\n\t * We do not differentiate here between no write access to storage vs. host disallowing changes to container -\n\t * in all cases container runtime and data stores should respect readonly state and not allow local changes.\n\t *\n\t * It is undefined if we have not yet established websocket connection\n\t * and do not know if user has write access to a file.\n\t */\n\treadonly readOnlyInfo: ReadOnlyInfo;\n\n\t/**\n\t * Allows the host to have the container force to be in read-only mode\n\t * @param readonly - Boolean that toggles if read-only policies will be enforced\n\t */\n\tforceReadonly?(readonly: boolean);\n\n\t/**\n\t * Exposes the entryPoint for the container.\n\t * Use this as the primary way of getting access to the user-defined logic within the container.\n\t */\n\tgetEntryPoint(): Promise<FluidObject>;\n\n\t/**\n\t * Exposes any metadata/props related to the container. This is full set of metadata props which the container wants to\n\t * expose. Whenever container receives updates from `IContainerEvents.metadataUpdate` event, we overwrite only those\n\t * updated props in the update and rest remains the same.\n\t */\n\tcontainerMetadata: Record<string, string>;\n}\n\n/**\n * The Runtime's view of the Loader, used for loading Containers\n * @legacy\n * @alpha\n */\nexport interface ILoader extends Partial<IProvideLoader> {\n\t/**\n\t * Resolves the resource specified by the URL + headers contained in the request object\n\t * to the underlying container that will resolve the request.\n\t *\n\t * @remarks\n\t *\n\t * An analogy for this is resolve is a DNS resolve of a Fluid container. Request then executes\n\t * a request against the server found from the resolve step.\n\t */\n\tresolve(request: IRequest, pendingLocalState?: string): Promise<IContainer>;\n}\n\n/**\n * The Host's view of the Loader, used for loading Containers\n * @legacy\n * @alpha\n */\nexport interface IHostLoader extends ILoader {\n\t/**\n\t * Creates a new container using the specified chaincode but in an unattached state. While unattached all\n\t * updates will only be local until the user explicitly attaches the container to a service provider.\n\t */\n\tcreateDetachedContainer(\n\t\tcodeDetails: IFluidCodeDetails,\n\t\tcreateDetachedProps?: {\n\t\t\tcanReconnect?: boolean;\n\t\t\tclientDetailsOverride?: IClientDetails;\n\t\t},\n\t): Promise<IContainer>;\n\n\t/**\n\t * Creates a new container using the specified snapshot but in an unattached state. While unattached all\n\t * updates will only be local until the user explicitly attaches the container to a service provider.\n\t */\n\trehydrateDetachedContainerFromSnapshot(\n\t\tsnapshot: string,\n\t\tcreateDetachedProps?: {\n\t\t\tcanReconnect?: boolean;\n\t\t\tclientDetailsOverride?: IClientDetails;\n\t\t},\n\t): Promise<IContainer>;\n}\n\n/**\n * Options to configure various behaviors of the ILoader.\n * @legacy\n * @alpha\n */\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\nexport type ILoaderOptions = {\n\t/**\n\t * @deprecated This option has been deprecated and will be removed in a future release\n\t * Set caching behavior for the loader. If true, we will load a container from cache if one\n\t * with the same id/version exists or create a new container and cache it if it does not. If\n\t * false, always load a new container and don't cache it. If the container has already been\n\t * closed, it will not be cached. A cache option in the LoaderHeader for an individual\n\t * request will override the Loader's value.\n\t * Defaults to false.\n\t */\n\tcache?: boolean;\n\n\t/**\n\t * @deprecated Do not use.\n\t */\n\tclient?: IClient;\n\n\t/**\n\t * @deprecated Do not use.\n\t */\n\tenableOfflineLoad?: boolean;\n\n\t/**\n\t * Provide the current Loader through the scope object when creating Containers. It is added\n\t * as the `ILoader` property, and will overwrite an existing property of the same name on the\n\t * scope. Useful for when the host wants to provide the current Loader's functionality to\n\t * individual Data Stores, which is typically expected when creating with a Loader.\n\t * Defaults to true.\n\t */\n\tprovideScopeLoader?: boolean;\n\n\t/**\n\t * Max time (in ms) container will wait for a leave message of a disconnected client.\n\t */\n\tmaxClientLeaveWaitTime?: number;\n};\n\n/**\n * Policies to have various behaviors during container create and load.\n * @legacy\n * @alpha\n */\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\nexport type IContainerPolicies = {\n\t/**\n\t * Max time (in ms) container will wait for a leave message of a disconnected client.\n\t */\n\tmaxClientLeaveWaitTime?: number;\n};\n\n/**\n * Accepted header keys for requests coming to the Loader\n * @legacy\n * @alpha\n */\nexport enum LoaderHeader {\n\t/**\n\t * @deprecated This header has been deprecated and will be removed in a future release\n\t * Override the Loader's default caching behavior for this container.\n\t */\n\tcache = \"fluid-cache\",\n\n\tclientDetails = \"fluid-client-details\",\n\n\t/**\n\t * Start the container in a paused, unconnected state. Defaults to false\n\t */\n\tloadMode = \"loadMode\",\n\treconnect = \"fluid-reconnect\",\n\t/**\n\t * Loads the container to at least the specified sequence number.\n\t * If not defined, behavior will fall back to `IContainerLoadMode.opsBeforeReturn`.\n\t */\n\tsequenceNumber = \"fluid-sequence-number\",\n\n\t/**\n\t * One of the following:\n\t * null or \"null\": use ops, no snapshots\n\t * undefined: fetch latest snapshot\n\t * otherwise, version sha to load snapshot\n\t */\n\tversion = \"version\",\n}\n\n/**\n * @legacy\n * @alpha\n */\nexport interface IContainerLoadMode {\n\topsBeforeReturn?: /*\n\t * No trailing ops are applied before container is returned.\n\t * Default value.\n\t */\n\t\t| undefined\n\t\t/*\n\t\t * Only cached trailing ops are applied before returning container.\n\t\t * Caching is optional and could be implemented by the driver.\n\t\t * If driver does not implement any kind of local caching strategy, this is same as above.\n\t\t * Driver may cache a lot of ops, so care needs to be exercised (see below).\n\t\t */\n\t\t| \"cached\"\n\t\t/*\n\t\t * All trailing ops in storage are fetched and applied before container is returned\n\t\t * This mode might have significant impact on boot speed (depends on storage perf characteristics)\n\t\t * Also there might be a lot of trailing ops and applying them might take time, so hosts are\n\t\t * recommended to have some progress UX / cancellation built into loading flow when using this option.\n\t\t * WARNING: This is the only option that may result in unbound wait. If machine is offline or hits some other\n\t\t * errors (like 429s), it may get into inifinite retry loop, with no ability to observe or cancel that process.\n\t\t */\n\t\t| \"all\";\n\n\tdeltaConnection?: /*\n\t * Connection to delta stream is made only when Container.connect() call is made. Op processing\n\t * is paused (when container is returned from Loader.resolve()) until Container.connect() call is made.\n\t */\n\t\t| \"none\"\n\t\t/*\n\t\t * Connection to delta stream is made only when Container.connect() call is made.\n\t\t * Op fetching from storage is performed and ops are applied as they come in.\n\t\t * This is useful option if connection to delta stream is expensive and thus it's beneficial to move it\n\t\t * out from critical boot sequence, but it's beneficial to allow catch up to happen as fast as possible.\n\t\t */\n\t\t| \"delayed\"\n\t\t/*\n\t\t * Connection to delta stream is made right away.\n\t\t * Ops processing is enabled and ops are flowing through the system.\n\t\t * Default value.\n\t\t */\n\t\t| undefined;\n}\n\n/**\n * Set of Request Headers that the Loader understands and may inspect or modify\n * @internal\n */\nexport interface ILoaderHeader {\n\t[LoaderHeader.clientDetails]: IClientDetails;\n\t[LoaderHeader.loadMode]: IContainerLoadMode;\n\t[LoaderHeader.reconnect]: boolean;\n\t[LoaderHeader.version]: string | undefined;\n}\n\n/**\n * @legacy\n * @alpha\n */\nexport interface IProvideLoader {\n\treadonly ILoader: ILoader;\n}\n\n/**\n * This is used when we rehydrate a container from the snapshot. Here we put the blob contents\n * in separate property: {@link ISnapshotTreeWithBlobContents.blobsContents}.\n *\n * @remarks This is used as the `ContainerContext`'s base snapshot when attaching.\n * @legacy\n * @alpha\n */\nexport interface ISnapshotTreeWithBlobContents extends ISnapshotTree {\n\tblobsContents?: { [path: string]: ArrayBufferLike };\n\ttrees: { [path: string]: ISnapshotTreeWithBlobContents };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA0QH;;;;GAIG;AACH,2DAA2D;AAC3D,IAAiB,eAAe,CA2C/B;AA3CD,WAAiB,eAAe;IAC/B;;;;;OAKG;IACU,4BAAY,GAAG,CAAC,CAAC;IAM9B;;;;OAIG;IACU,sCAAsB,GAAG,CAAC,CAAC;IAMxC;;;OAGG;IACU,0BAAU,GAAG,CAAC,CAAC;IAM5B;;;OAGG;IACU,yBAAS,GAAG,CAAC,CAAC;AAK5B,CAAC,EA3CgB,eAAe,+BAAf,eAAe,QA2C/B;AAoUD;;;GAGG;AACH,IAAY,YA2BX;AA3BD,WAAY,YAAY;IACvB;;;OAGG;IACH,qCAAqB,CAAA;IAErB,sDAAsC,CAAA;IAEtC;;OAEG;IACH,qCAAqB,CAAA;IACrB,6CAA6B,CAAA;IAC7B;;;OAGG;IACH,wDAAwC,CAAA;IAExC;;;;;OAKG;IACH,mCAAmB,CAAA;AACpB,CAAC,EA3BW,YAAY,4BAAZ,YAAY,QA2BvB","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type {\n\tFluidObject,\n\tIEvent,\n\tIEventProvider,\n\tIRequest,\n} from \"@fluidframework/core-interfaces\";\nimport type {\n\tIClient,\n\tIClientDetails,\n\tIQuorumClients,\n} from \"@fluidframework/driver-definitions\";\nimport type {\n\tIResolvedUrl,\n\tIDocumentMessage,\n\tISequencedProposal,\n\tISnapshotTree,\n\tISequencedDocumentMessage,\n} from \"@fluidframework/driver-definitions/internal\";\n\nimport type { IAudience } from \"./audience.js\";\nimport type { IDeltaManager, ReadOnlyInfo } from \"./deltas.js\";\nimport type { ContainerWarning, ICriticalContainerError } from \"./error.js\";\nimport type { IFluidModule } from \"./fluidModule.js\";\nimport type {\n\tIFluidCodeDetails,\n\tIFluidPackage,\n\tIProvideFluidCodeDetailsComparer,\n} from \"./fluidPackage.js\";\nimport type { AttachState } from \"./runtime.js\";\n\n/**\n * Encapsulates a module entry point with corresponding code details.\n * @legacy @beta\n */\nexport interface IFluidModuleWithDetails {\n\t/**\n\t * Fluid code module that implements the runtime factory needed to instantiate the container runtime.\n\t */\n\tmodule: IFluidModule;\n\n\t/**\n\t * Code details associated with the module. Represents a document schema this module supports.\n\t * If the code loader implements the {@link @fluidframework/core-interfaces#(IFluidCodeDetailsComparer:interface)}\n\t * interface, it'll be called to determine whether the module code details satisfy the new code proposal in the\n\t * quorum.\n\t */\n\tdetails: IFluidCodeDetails;\n}\n\n/**\n * Fluid code loader resolves a code module matching the document schema, i.e. code details, such as\n * a package name and package version range.\n * @legacy @beta\n */\nexport interface ICodeDetailsLoader extends Partial<IProvideFluidCodeDetailsComparer> {\n\t/**\n\t * Load the code module (package) that can interact with the document.\n\t *\n\t * @param source - Code proposal that articulates the current schema the document is written in.\n\t * @returns Code module entry point along with the code details associated with it.\n\t */\n\tload(source: IFluidCodeDetails): Promise<IFluidModuleWithDetails>;\n}\n\n/**\n * The interface returned from a IFluidCodeResolver which represents IFluidCodeDetails\n * that have been resolved and are ready to load\n * @internal\n */\nexport interface IResolvedFluidCodeDetails extends IFluidCodeDetails {\n\t/**\n\t * A resolved version of the Fluid package. All Fluid browser file entries should be absolute urls.\n\t */\n\treadonly resolvedPackage: Readonly<IFluidPackage>;\n\t/**\n\t * If not undefined, this id will be used to cache the entry point for the code package\n\t */\n\treadonly resolvedPackageCacheId: string | undefined;\n}\n\n/**\n * Fluid code resolvers take a Fluid code details, and resolve the\n * full Fluid package including absolute urls for the browser file entries.\n * The Fluid code resolver is coupled to a specific cdn and knows how to resolve\n * the code detail for loading from that cdn. This include resolving to the most recent\n * version of package that supports the provided code details.\n * @internal\n */\nexport interface IFluidCodeResolver {\n\t/**\n\t * Resolves a Fluid code details into a form that can be loaded.\n\t * @param details - The Fluid code details to resolve.\n\t * @returns A IResolvedFluidCodeDetails where the resolvedPackage's Fluid file entries are absolute urls, and\n\t * an optional resolvedPackageCacheId if the loaded package should be cached.\n\t */\n\tresolveCodeDetails(details: IFluidCodeDetails): Promise<IResolvedFluidCodeDetails>;\n}\n\n/**\n * Events emitted by the {@link IContainer} \"upwards\" to the Loader and Host.\n * @legacy @beta\n */\nexport interface IContainerEvents extends IEvent {\n\t/**\n\t * Emitted when the readonly state of the container changes.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `readonly`: Whether or not the container is now in a readonly state.\n\t *\n\t * @see {@link IContainer.readOnlyInfo}\n\t */\n\t(event: \"readonly\", listener: (readonly: boolean) => void): void;\n\n\t/**\n\t * Emitted when the {@link IContainer} completes connecting to the Fluid service.\n\t *\n\t * @remarks Reflects connection state changes against the (delta) service acknowledging ops/edits.\n\t *\n\t * @see\n\t *\n\t * - {@link IContainer.connectionState}\n\t *\n\t * - {@link IContainer.connect}\n\t */\n\t(event: \"connected\", listener: (clientId: string) => void);\n\n\t/**\n\t * Fires when new container code details have been proposed, prior to acceptance.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `codeDetails`: The code details being proposed.\n\t *\n\t * - `proposal`: NOT RECOMMENDED FOR USE.\n\t *\n\t * @see {@link IContainer.proposeCodeDetails}\n\t */\n\t(\n\t\tevent: \"codeDetailsProposed\",\n\t\tlistener: (codeDetails: IFluidCodeDetails, proposal: ISequencedProposal) => void,\n\t);\n\n\t/**\n\t * Emitted when the {@link IContainer} becomes disconnected from the Fluid service.\n\t *\n\t * @remarks Reflects connection state changes against the (delta) service acknowledging ops/edits.\n\t *\n\t * @see\n\t *\n\t * - {@link IContainer.connectionState}\n\t *\n\t * - {@link IContainer.disconnect}\n\t */\n\t(event: \"disconnected\", listener: () => void);\n\n\t/**\n\t * Emitted when a {@link AttachState.Detached | detached} container begins the process of\n\t * {@link AttachState.Attaching | attached} to the Fluid service.\n\t *\n\t * @see\n\t *\n\t * - {@link IContainer.attachState}\n\t *\n\t * - {@link IContainer.attach}\n\t */\n\t(event: \"attaching\", listener: () => void);\n\n\t/**\n\t * Emitted when the {@link AttachState.Attaching | attaching} process is complete and the container is\n\t * {@link AttachState.Attached | attached} to the Fluid service.\n\t *\n\t * @see\n\t *\n\t * - {@link IContainer.attachState}\n\t *\n\t * - {@link IContainer.attach}\n\t */\n\t(event: \"attached\", listener: () => void);\n\n\t/**\n\t * Emitted when the {@link IContainer} is closed, which permanently disables it.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `error`: If the container was closed due to error, this will contain details about the error that caused it.\n\t *\n\t * @see {@link IContainer.close}\n\t */\n\t(event: \"closed\", listener: (error?: ICriticalContainerError) => void);\n\n\t/**\n\t * Emitted when the {@link IContainer} is disposed, which permanently disables it.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `error`: If the container was disposed due to error, this will contain details about the error that caused it.\n\t *\n\t * @see {@link IContainer.dispose}\n\t */\n\t(event: \"disposed\", listener: (error?: ICriticalContainerError) => void);\n\n\t/**\n\t * Emitted when the container encounters a state which may lead to errors, which may be actionable by the consumer.\n\t *\n\t * @remarks\n\t *\n\t * Note: this event is not intended for general use.\n\t * The longer-term intention is to surface warnings more directly on the APIs that produce them.\n\t * For now, use of this should be avoided when possible.\n\t *\n\t * Listener parameters:\n\t *\n\t * - `error`: The warning describing the encountered state.\n\t */\n\t(event: \"warning\", listener: (error: ContainerWarning) => 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 IContainer}.\n\t *\n\t * Listener parameters:\n\t *\n\t * - `message`: The op that was processed.\n\t */\n\t(event: \"op\", listener: (message: ISequencedDocumentMessage) => void);\n\n\t/**\n\t * Emitted upon the first local change while the Container is in the \"saved\" state.\n\t * That is, when {@link IContainer.isDirty} transitions from `true` to `false`.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `dirty`: DEPRECATED. This parameter will be removed in a future release.\n\t *\n\t * @see {@link IContainer.isDirty}\n\t */\n\t(event: \"dirty\", listener: (dirty: boolean) => void);\n\n\t/**\n\t * Emitted when all local changes/edits have been acknowledged by the service.\n\t * I.e., when {@link IContainer.isDirty} transitions from `false` to `true`.\n\t *\n\t * @remarks Listener parameters:\n\t *\n\t * - `dirty`: DEPRECATED. This parameter will be removed in a future release.\n\t *\n\t * @see {@link IContainer.isDirty}\n\t */\n\t(event: \"saved\", listener: (dirty: boolean) => void);\n\n\t/**\n\t * Emitted when the some of the properties related to the container are initialized or updated.\n\t * This emitted metadata will the props which are updated. If consumer wants to read full set of\n\t * metadata then they can read it off the container from {@link IContainer.containerMetadata} prop.\n\t */\n\t(event: \"metadataUpdate\", listener: (metadata: Record<string, string>) => void);\n}\n\n/**\n * Namespace for the different connection states a container can be in.\n * PLEASE NOTE: The sequence of the numerical values does no correspond to the typical connection state progression.\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace ConnectionState {\n\t/**\n\t * The container is not connected to the delta server.\n\t * Note - When in this state the container may be about to reconnect,\n\t * or may remain disconnected until explicitly told to connect.\n\t * @public\n\t */\n\texport const Disconnected = 0;\n\t/**\n\t * {@inheritdoc @fluidframework/container-definitions#(ConnectionState:namespace).(Disconnected:variable)}\n\t */\n\texport type Disconnected = typeof Disconnected;\n\n\t/**\n\t * The container is disconnected but actively trying to establish a new connection.\n\t * PLEASE NOTE that this numerical value falls out of the order you may expect for this state.\n\t * @public\n\t */\n\texport const EstablishingConnection = 3;\n\t/**\n\t * {@inheritdoc @fluidframework/container-definitions#(ConnectionState:namespace).(EstablishingConnection:variable)}\n\t */\n\texport type EstablishingConnection = typeof EstablishingConnection;\n\n\t/**\n\t * The container has an inbound connection only, and is catching up to the latest known state from the service.\n\t * @public\n\t */\n\texport const CatchingUp = 1;\n\t/**\n\t * {@inheritdoc @fluidframework/container-definitions#(ConnectionState:namespace).(CatchingUp:variable)}\n\t */\n\texport type CatchingUp = typeof CatchingUp;\n\n\t/**\n\t * The container is fully connected and syncing.\n\t * @public\n\t */\n\texport const Connected = 2;\n\t/**\n\t * {@inheritdoc @fluidframework/container-definitions#(ConnectionState:namespace).(Connected:variable)}\n\t */\n\texport type Connected = typeof Connected;\n}\n\n/**\n * Type defining the different states of connectivity a Container can be in.\n * @public\n */\nexport type ConnectionState =\n\t| ConnectionState.Disconnected\n\t| ConnectionState.EstablishingConnection\n\t| ConnectionState.CatchingUp\n\t| ConnectionState.Connected;\n\n/**\n * The Host's view of a Container and its connection to storage\n * @legacy @beta\n */\nexport interface IContainer extends IEventProvider<IContainerEvents> {\n\t/**\n\t * The Delta Manager supporting the op stream for this Container\n\t */\n\tdeltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;\n\n\t/**\n\t * The collection of write clients which were connected as of the current sequence number.\n\t * Also contains a map of key-value pairs that must be agreed upon by all clients before being accepted.\n\t */\n\tgetQuorum(): IQuorumClients;\n\n\t/**\n\t * Represents the resolved url to the Container.\n\t * Will be undefined only when the container is in the {@link AttachState.Detached | detached} state.\n\t */\n\tresolvedUrl: IResolvedUrl | undefined;\n\n\t/**\n\t * Indicates the attachment state of the container to a host service.\n\t */\n\treadonly attachState: AttachState;\n\n\t/**\n\t * Get the code details that are currently specified for the container.\n\t * @returns The current code details if any are specified, undefined if none are specified.\n\t */\n\tgetSpecifiedCodeDetails(): IFluidCodeDetails | undefined;\n\n\t/**\n\t * Get the code details that were used to load the container.\n\t * @returns The code details that were used to load the container if it is loaded, undefined if it is not yet\n\t * loaded.\n\t */\n\tgetLoadedCodeDetails(): IFluidCodeDetails | undefined;\n\n\t/**\n\t * Returns true if the container has been closed and/or disposed, otherwise false.\n\t */\n\treadonly closed: boolean;\n\n\t/**\n\t * Returns true if the container has been disposed, otherwise false.\n\t */\n\treadonly disposed?: boolean;\n\n\t/**\n\t * Whether or not there are any local changes that have not been saved.\n\t */\n\treadonly isDirty: boolean;\n\n\t/**\n\t * Disposes the container. If not already closed, this acts as a closure and then disposes runtime resources.\n\t * The container is not expected to be used anymore once it is disposed.\n\t *\n\t * @param error - If the container is being disposed due to error, this provides details about the error that\n\t * resulted in disposing it.\n\t */\n\tdispose(error?: ICriticalContainerError): void;\n\n\t/**\n\t * Closes the container.\n\t *\n\t * @param error - If the container is being closed due to error, this provides details about the error that\n\t * resulted in closing it.\n\t */\n\tclose(error?: ICriticalContainerError): void;\n\n\t/**\n\t * Propose new code details that define the code to be loaded for this container's runtime.\n\t *\n\t * The returned promise will be true when the proposal is accepted, and false if the proposal is rejected.\n\t */\n\tproposeCodeDetails(codeDetails: IFluidCodeDetails): Promise<boolean>;\n\n\t/**\n\t * When a container is created in Fluid it starts in detached state,\n\t * which means it is not yet uploaded to server storage and unavailable for other users to open or collaborate with.\n\t * A detached container can be serialized, stored, and rehydrated by the application.\n\t *\n\t * To finish the creation of a container and make it available for other users to open and collaborate with it must be attached,\n\t * which means it is uploaded to server storage. This function accomplishes that.\n\t *\n\t * Use the functionality provided by the driver to craft the IRequest parameter.\n\t * This is usually a free function called createCreateNewRequest, which takes\n\t * strongly typed arguments related to your driver and server.\n\t *\n\t * By default, the container will close if attach fails.\n\t * However, closure can now be avoided in most cased by setting:\n\t * Fluid.Container.RetryOnAttachFailure to true\n\t * via the config provider passed to the loader.\n\t *\n\t * If attach fails, check the closed property to discover if retry is possible.\n\t * If the container is not closed, it is safe to continue editing the container, calling serialize to capture the container's state,\n\t * or try calling attach again.\n\t *\n\t */\n\tattach(\n\t\trequest: IRequest,\n\t\tattachProps?: { deltaConnection?: \"none\" | \"delayed\" },\n\t): Promise<void>;\n\n\t/**\n\t * Capture the state of a container that is not attached or closed.\n\t * This is useful in draft-like scenarios. For example, think of an email draft, where a user can make changes over time,\n\t * but no other users can see or have access to that draft.\n\t *\n\t * This method can only be called when\n\t * the container's closed property is false, and the attachState is not AttachState.Attached.\n\t *\n\t * This method will return a string that includes the full serialized state of the\n\t * container. This string must not be inspected or modified, as the format of the content is not guaranteed.\n\t * @remarks\n\t * Fluid supports rehydrating from strings generated by previous versions, but does not support the content itself being leveraged.\n\t *\n\t * Consider storing this string somewhere durable (e.g. localStorage or IndexedDB) to enable your application to recover it after tab close.\n\t *\n\t * To reload a container from a string your application previously stored, use the Loader method rehydrateDetachedContainerFromSnapshot.\n\t * That method will create a new detached container which matches the state of the previously serialized container.\n\t */\n\tserialize(): string;\n\n\t/**\n\t * Get an absolute URL for a provided container-relative request URL.\n\t * If the container is not attached, this will return undefined.\n\t *\n\t * @param relativeUrl - A container-relative request URL.\n\t */\n\tgetAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;\n\n\t/**\n\t * Provides the current state of the container's connection to the ordering service.\n\t *\n\t * @remarks Consumers can listen for state changes via the \"connected\" and \"disconnected\" events.\n\t */\n\treadonly connectionState: ConnectionState;\n\n\t/**\n\t * Attempts to connect the container to the delta stream and process ops.\n\t *\n\t * @remarks\n\t *\n\t * {@link IContainer.connectionState} will be set to {@link (ConnectionState:namespace).(Connected:variable)}, and the\n\t * \"connected\" event will be fired if/when connection succeeds.\n\t */\n\tconnect(): void;\n\n\t/**\n\t * Disconnects the container from the delta stream and stops processing ops.\n\t *\n\t * @remarks\n\t *\n\t * {@link IContainer.connectionState} will be set to {@link (ConnectionState:namespace).(Disconnected:variable)}, and the\n\t * \"disconnected\" event will be fired when disconnection completes.\n\t */\n\tdisconnect(): void;\n\n\t/**\n\t * The audience information for all clients currently associated with the document in the current session.\n\t */\n\treadonly audience: IAudience;\n\n\t/**\n\t * The server provided ID of the client.\n\t *\n\t * Set once {@link IContainer.connectionState} is {@link (ConnectionState:namespace).(Connected:variable)},\n\t * otherwise will be `undefined`.\n\t */\n\treadonly clientId?: string | undefined;\n\n\t/**\n\t * Tells if container is in read-only mode.\n\t *\n\t * @remarks\n\t *\n\t * Data stores should listen for \"readonly\" notifications and disallow user making changes to data stores.\n\t * Readonly state can be because of no storage write permission,\n\t * or due to host forcing readonly mode for container.\n\t *\n\t * We do not differentiate here between no write access to storage vs. host disallowing changes to container -\n\t * in all cases container runtime and data stores should respect readonly state and not allow local changes.\n\t *\n\t * It is undefined if we have not yet established websocket connection\n\t * and do not know if user has write access to a file.\n\t */\n\treadonly readOnlyInfo: ReadOnlyInfo;\n\n\t/**\n\t * Allows the host to have the container force to be in read-only mode\n\t * @param readonly - Boolean that toggles if read-only policies will be enforced\n\t */\n\tforceReadonly?(readonly: boolean);\n\n\t/**\n\t * Exposes the entryPoint for the container.\n\t * Use this as the primary way of getting access to the user-defined logic within the container.\n\t */\n\tgetEntryPoint(): Promise<FluidObject>;\n\n\t/**\n\t * Exposes any metadata/props related to the container. This is full set of metadata props which the container wants to\n\t * expose. Whenever container receives updates from `IContainerEvents.metadataUpdate` event, we overwrite only those\n\t * updated props in the update and rest remains the same.\n\t */\n\tcontainerMetadata: Record<string, string>;\n}\n\n/**\n * The Runtime's view of the Loader, used for loading Containers\n * @legacy @beta\n */\nexport interface ILoader extends Partial<IProvideLoader> {\n\t/**\n\t * Resolves the resource specified by the URL + headers contained in the request object\n\t * to the underlying container that will resolve the request.\n\t *\n\t * @remarks\n\t *\n\t * An analogy for this is resolve is a DNS resolve of a Fluid container. Request then executes\n\t * a request against the server found from the resolve step.\n\t */\n\tresolve(request: IRequest, pendingLocalState?: string): Promise<IContainer>;\n}\n\n/**\n * The Host's view of the Loader, used for loading Containers\n * @legacy @beta\n */\nexport interface IHostLoader extends ILoader {\n\t/**\n\t * Creates a new container using the specified chaincode but in an unattached state. While unattached all\n\t * updates will only be local until the user explicitly attaches the container to a service provider.\n\t */\n\tcreateDetachedContainer(\n\t\tcodeDetails: IFluidCodeDetails,\n\t\tcreateDetachedProps?: {\n\t\t\tcanReconnect?: boolean;\n\t\t\tclientDetailsOverride?: IClientDetails;\n\t\t},\n\t): Promise<IContainer>;\n\n\t/**\n\t * Creates a new container using the specified snapshot but in an unattached state. While unattached all\n\t * updates will only be local until the user explicitly attaches the container to a service provider.\n\t */\n\trehydrateDetachedContainerFromSnapshot(\n\t\tsnapshot: string,\n\t\tcreateDetachedProps?: {\n\t\t\tcanReconnect?: boolean;\n\t\t\tclientDetailsOverride?: IClientDetails;\n\t\t},\n\t): Promise<IContainer>;\n}\n\n/**\n * Options to configure various behaviors of the ILoader.\n * @legacy @beta\n */\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\nexport type ILoaderOptions = {\n\t/**\n\t * @deprecated This option has been deprecated and will be removed in a future release\n\t * Set caching behavior for the loader. If true, we will load a container from cache if one\n\t * with the same id/version exists or create a new container and cache it if it does not. If\n\t * false, always load a new container and don't cache it. If the container has already been\n\t * closed, it will not be cached. A cache option in the LoaderHeader for an individual\n\t * request will override the Loader's value.\n\t * Defaults to false.\n\t */\n\tcache?: boolean;\n\n\t/**\n\t * @deprecated Do not use.\n\t */\n\tclient?: IClient;\n\n\t/**\n\t * @deprecated Do not use.\n\t */\n\tenableOfflineLoad?: boolean;\n\n\t/**\n\t * Provide the current Loader through the scope object when creating Containers. It is added\n\t * as the `ILoader` property, and will overwrite an existing property of the same name on the\n\t * scope. Useful for when the host wants to provide the current Loader's functionality to\n\t * individual Data Stores, which is typically expected when creating with a Loader.\n\t * Defaults to true.\n\t */\n\tprovideScopeLoader?: boolean;\n\n\t/**\n\t * Max time (in ms) container will wait for a leave message of a disconnected client.\n\t */\n\tmaxClientLeaveWaitTime?: number;\n};\n\n/**\n * Policies to have various behaviors during container create and load.\n * @legacy @beta\n */\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\nexport type IContainerPolicies = {\n\t/**\n\t * Max time (in ms) container will wait for a leave message of a disconnected client.\n\t */\n\tmaxClientLeaveWaitTime?: number;\n};\n\n/**\n * Accepted header keys for requests coming to the Loader\n * @legacy @beta\n */\nexport enum LoaderHeader {\n\t/**\n\t * @deprecated This header has been deprecated and will be removed in a future release\n\t * Override the Loader's default caching behavior for this container.\n\t */\n\tcache = \"fluid-cache\",\n\n\tclientDetails = \"fluid-client-details\",\n\n\t/**\n\t * Start the container in a paused, unconnected state. Defaults to false\n\t */\n\tloadMode = \"loadMode\",\n\treconnect = \"fluid-reconnect\",\n\t/**\n\t * Loads the container to at least the specified sequence number.\n\t * If not defined, behavior will fall back to `IContainerLoadMode.opsBeforeReturn`.\n\t */\n\tsequenceNumber = \"fluid-sequence-number\",\n\n\t/**\n\t * One of the following:\n\t * null or \"null\": use ops, no snapshots\n\t * undefined: fetch latest snapshot\n\t * otherwise, version sha to load snapshot\n\t */\n\tversion = \"version\",\n}\n\n/**\n * @legacy @beta\n */\nexport interface IContainerLoadMode {\n\topsBeforeReturn?: /*\n\t * No trailing ops are applied before container is returned.\n\t * Default value.\n\t */\n\t\t| undefined\n\t\t/*\n\t\t * Only cached trailing ops are applied before returning container.\n\t\t * Caching is optional and could be implemented by the driver.\n\t\t * If driver does not implement any kind of local caching strategy, this is same as above.\n\t\t * Driver may cache a lot of ops, so care needs to be exercised (see below).\n\t\t */\n\t\t| \"cached\"\n\t\t/*\n\t\t * All trailing ops in storage are fetched and applied before container is returned\n\t\t * This mode might have significant impact on boot speed (depends on storage perf characteristics)\n\t\t * Also there might be a lot of trailing ops and applying them might take time, so hosts are\n\t\t * recommended to have some progress UX / cancellation built into loading flow when using this option.\n\t\t * WARNING: This is the only option that may result in unbound wait. If machine is offline or hits some other\n\t\t * errors (like 429s), it may get into inifinite retry loop, with no ability to observe or cancel that process.\n\t\t */\n\t\t| \"all\";\n\n\tdeltaConnection?: /*\n\t * Connection to delta stream is made only when Container.connect() call is made. Op processing\n\t * is paused (when container is returned from Loader.resolve()) until Container.connect() call is made.\n\t */\n\t\t| \"none\"\n\t\t/*\n\t\t * Connection to delta stream is made only when Container.connect() call is made.\n\t\t * Op fetching from storage is performed and ops are applied as they come in.\n\t\t * This is useful option if connection to delta stream is expensive and thus it's beneficial to move it\n\t\t * out from critical boot sequence, but it's beneficial to allow catch up to happen as fast as possible.\n\t\t */\n\t\t| \"delayed\"\n\t\t/*\n\t\t * Connection to delta stream is made right away.\n\t\t * Ops processing is enabled and ops are flowing through the system.\n\t\t * Default value.\n\t\t */\n\t\t| undefined;\n}\n\n/**\n * Set of Request Headers that the Loader understands and may inspect or modify\n * @internal\n */\nexport interface ILoaderHeader {\n\t[LoaderHeader.clientDetails]: IClientDetails;\n\t[LoaderHeader.loadMode]: IContainerLoadMode;\n\t[LoaderHeader.reconnect]: boolean;\n\t[LoaderHeader.version]: string | undefined;\n}\n\n/**\n * @legacy @beta\n */\nexport interface IProvideLoader {\n\treadonly ILoader: ILoader;\n}\n\n/**\n * This is used when we rehydrate a container from the snapshot. Here we put the blob contents\n * in separate property: {@link ISnapshotTreeWithBlobContents.blobsContents}.\n *\n * @remarks This is used as the `ContainerContext`'s base snapshot when attaching.\n * @legacy @beta\n */\nexport interface ISnapshotTreeWithBlobContents extends ISnapshotTree {\n\tblobsContents?: { [path: string]: ArrayBufferLike };\n\ttrees: { [path: string]: ISnapshotTreeWithBlobContents };\n}\n"]}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -34,8 +34,7 @@ export declare enum AttachState {
|
|
|
34
34
|
* The IRuntime represents an instantiation of a code package within a Container.
|
|
35
35
|
* Primarily held by the ContainerContext to be able to interact with the running instance of the Container.
|
|
36
36
|
*
|
|
37
|
-
* @legacy
|
|
38
|
-
* @alpha
|
|
37
|
+
* @legacy @beta
|
|
39
38
|
*/
|
|
40
39
|
export interface IRuntime extends IDisposable {
|
|
41
40
|
/**
|
|
@@ -86,8 +85,7 @@ export interface IRuntime extends IDisposable {
|
|
|
86
85
|
}
|
|
87
86
|
/**
|
|
88
87
|
* Payload type for IContainerContext.submitBatchFn()
|
|
89
|
-
* @legacy
|
|
90
|
-
* @alpha
|
|
88
|
+
* @legacy @beta
|
|
91
89
|
*/
|
|
92
90
|
export interface IBatchMessage {
|
|
93
91
|
contents?: string;
|
|
@@ -103,8 +101,7 @@ export interface IBatchMessage {
|
|
|
103
101
|
* allows the Runtime to not support layer compatibility with the Driver layer. Instead, it supports compatibility
|
|
104
102
|
* with the Loader layer which it already does.
|
|
105
103
|
*
|
|
106
|
-
* @legacy
|
|
107
|
-
* @alpha
|
|
104
|
+
* @legacy @beta
|
|
108
105
|
*/
|
|
109
106
|
export interface IContainerStorageService {
|
|
110
107
|
/**
|
|
@@ -196,8 +193,7 @@ export interface IContainerStorageService {
|
|
|
196
193
|
* TODO: once `@alpha` tag is removed, `unknown` should be removed from submitSignalFn.
|
|
197
194
|
* See {@link https://dev.azure.com/fluidframework/internal/_workitems/edit/7462}
|
|
198
195
|
*
|
|
199
|
-
* @legacy
|
|
200
|
-
* @alpha
|
|
196
|
+
* @legacy @beta
|
|
201
197
|
*/
|
|
202
198
|
export interface IContainerContext {
|
|
203
199
|
/**
|
|
@@ -276,13 +272,11 @@ export interface IContainerContext {
|
|
|
276
272
|
readonly snapshotWithContents?: ISnapshot;
|
|
277
273
|
}
|
|
278
274
|
/**
|
|
279
|
-
* @legacy
|
|
280
|
-
* @alpha
|
|
275
|
+
* @legacy @beta
|
|
281
276
|
*/
|
|
282
277
|
export declare const IRuntimeFactory: keyof IProvideRuntimeFactory;
|
|
283
278
|
/**
|
|
284
|
-
* @legacy
|
|
285
|
-
* @alpha
|
|
279
|
+
* @legacy @beta
|
|
286
280
|
*/
|
|
287
281
|
export interface IProvideRuntimeFactory {
|
|
288
282
|
readonly IRuntimeFactory: IRuntimeFactory;
|
|
@@ -292,8 +286,7 @@ export interface IProvideRuntimeFactory {
|
|
|
292
286
|
*
|
|
293
287
|
* Provides the entry point for the ContainerContext to load the proper IRuntime
|
|
294
288
|
* to start up the running instance of the Container.
|
|
295
|
-
* @legacy
|
|
296
|
-
* @alpha
|
|
289
|
+
* @legacy @beta
|
|
297
290
|
*/
|
|
298
291
|
export interface IRuntimeFactory extends IProvideRuntimeFactory {
|
|
299
292
|
/**
|
|
@@ -307,8 +300,7 @@ export interface IRuntimeFactory extends IProvideRuntimeFactory {
|
|
|
307
300
|
}
|
|
308
301
|
/**
|
|
309
302
|
* Defines list of properties expected for getPendingLocalState
|
|
310
|
-
* @legacy
|
|
311
|
-
* @alpha
|
|
303
|
+
* @legacy @beta
|
|
312
304
|
*/
|
|
313
305
|
export interface IGetPendingLocalStateProps {
|
|
314
306
|
/**
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACX,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,WAAW,EACX,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,+BAA+B,EAC/B,cAAc,EACd,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;GAIG;AACH,oBAAY,WAAW;IACtB;;;OAGG;IACH,QAAQ,aAAa;IAErB;;OAEG;IACH,SAAS,cAAc;IAEvB;;;OAGG;IACH,QAAQ,aAAa;CACrB;AAED
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACX,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,WAAW,EACX,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,+BAA+B,EAC/B,cAAc,EACd,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;GAIG;AACH,oBAAY,WAAW;IACtB;;;OAGG;IACH,QAAQ,aAAa;IAErB;;OAEG;IACH,SAAS,cAAc;IAEvB;;;OAGG;IACH,QAAQ,aAAa;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,QAAS,SAAQ,WAAW;IAC5C;;;;OAIG;IACH,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,OAAE;IAE3D;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,yBAAyB,EAAE,KAAK,EAAE,OAAO,OAAE;IAE5D;;OAEG;IAGH,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,OAAE;IAE5C;;;;;;OAMG;IACH,aAAa,CAAC,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC;IAErE;;;OAGG;IACH,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;IAEhF;;OAEG;IACH,oBAAoB,CAAC,KAAK,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC;IAElE;;;OAGG;IACH,cAAc,CAAC,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE;;;;;OAKG;IACH,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,wBAAwB;IACxC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;;;OAOG;IACH,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAE9B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,+BAA+B,GAAG,SAAS,CAAC;IAEhE;;OAEG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,+BAA+B,CAAC,wBAAwB,CAAC,CAAC;IAE5F;;;;;OAKG;IAGH,eAAe,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAE1F;;;;;OAKG;IACH,WAAW,CAAC,CAAC,oBAAoB,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE/E;;;;;;;;;;OAUG;IACH,WAAW,CAGV,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEvB;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhE;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAE/C;;;;;OAKG;IACH,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3F;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iBAAiB;IACjC;;;;;OAKG;IAEH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,aAAa,GAAG,SAAS,CAAC;IAEjD;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,eAAe,CAAC;IACpD;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAClB,IAAI,EAAE,WAAW,EAEjB,QAAQ,EAAE,GAAG,EACb,KAAK,EAAE,OAAO,EAEd,OAAO,CAAC,EAAE,GAAG,KACT,MAAM,CAAC;IACZ;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,uBAAuB,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7F,QAAQ,CAAC,eAAe,EAAE,CACzB,SAAS,EAAE,eAAe,EAC1B,uBAAuB,CAAC,EAAE,MAAM,KAC5B,MAAM,CAAC;IACZ,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9E,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAC5D,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;IAClF,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAE5B;;;;;OAKG;IACH,cAAc,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAElE;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC,oBAAoB,IAAI,QAAQ,GAAG,SAAS,CAAC;IAE7C,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAEhD;;OAEG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1D;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC;CAC1C;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,sBAA0C,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAgB,SAAQ,sBAAsB;IAC9D;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACrF;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IAC1C;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IAExC;;;;;;OAMG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,WAAW,CAAC;IAE/C;;;OAGG;IACH,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACzC"}
|
package/dist/runtime.js
CHANGED
|
@@ -28,8 +28,7 @@ var AttachState;
|
|
|
28
28
|
AttachState["Attached"] = "Attached";
|
|
29
29
|
})(AttachState || (exports.AttachState = AttachState = {}));
|
|
30
30
|
/**
|
|
31
|
-
* @legacy
|
|
32
|
-
* @alpha
|
|
31
|
+
* @legacy @beta
|
|
33
32
|
*/
|
|
34
33
|
exports.IRuntimeFactory = "IRuntimeFactory";
|
|
35
34
|
//# sourceMappingURL=runtime.js.map
|