@fluidframework/container-definitions 0.48.1000-58906 → 0.48.1000
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/api-report/container-definitions.api.md +25 -29
- package/dist/browserPackage.d.ts +1 -1
- package/dist/browserPackage.d.ts.map +1 -1
- package/dist/browserPackage.js +2 -2
- package/dist/browserPackage.js.map +1 -1
- package/dist/fluidModule.d.ts +3 -2
- package/dist/fluidModule.d.ts.map +1 -1
- package/dist/fluidModule.js.map +1 -1
- package/dist/loader.d.ts +19 -3
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js.map +1 -1
- package/dist/runtime.d.ts +4 -7
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js.map +1 -1
- package/lib/browserPackage.d.ts +1 -1
- package/lib/browserPackage.d.ts.map +1 -1
- package/lib/browserPackage.js +1 -1
- package/lib/browserPackage.js.map +1 -1
- package/lib/fluidModule.d.ts +3 -2
- package/lib/fluidModule.d.ts.map +1 -1
- package/lib/fluidModule.js.map +1 -1
- package/lib/loader.d.ts +19 -3
- package/lib/loader.d.ts.map +1 -1
- package/lib/loader.js.map +1 -1
- package/lib/runtime.d.ts +4 -7
- package/lib/runtime.d.ts.map +1 -1
- package/lib/runtime.js.map +1 -1
- package/package.json +12 -459
- package/src/browserPackage.ts +1 -1
- package/src/fluidModule.ts +3 -2
- package/src/loader.ts +24 -5
- package/src/runtime.ts +3 -9
|
@@ -16,13 +16,8 @@ import { IDocumentStorageService } from '@fluidframework/driver-definitions';
|
|
|
16
16
|
import { IErrorEvent } from '@fluidframework/common-definitions';
|
|
17
17
|
import { IEvent } from '@fluidframework/common-definitions';
|
|
18
18
|
import { IEventProvider } from '@fluidframework/common-definitions';
|
|
19
|
-
import { IFluidCodeDetails as IFluidCodeDetails_2 } from '@fluidframework/core-interfaces';
|
|
20
|
-
import { IFluidObject } from '@fluidframework/core-interfaces';
|
|
21
|
-
import { IFluidPackage as IFluidPackage_2 } from '@fluidframework/core-interfaces';
|
|
22
|
-
import { IFluidPackageEnvironment as IFluidPackageEnvironment_2 } from '@fluidframework/core-interfaces';
|
|
23
19
|
import { IFluidResolvedUrl } from '@fluidframework/driver-definitions';
|
|
24
20
|
import { IFluidRouter } from '@fluidframework/core-interfaces';
|
|
25
|
-
import { IProvideFluidCodeDetailsComparer as IProvideFluidCodeDetailsComparer_2 } from '@fluidframework/core-interfaces';
|
|
26
21
|
import { IQuorumClients } from '@fluidframework/protocol-definitions';
|
|
27
22
|
import { IRequest } from '@fluidframework/core-interfaces';
|
|
28
23
|
import { IResolvedUrl } from '@fluidframework/driver-definitions';
|
|
@@ -96,13 +91,13 @@ export interface ICodeAllowList {
|
|
|
96
91
|
}
|
|
97
92
|
|
|
98
93
|
// @public
|
|
99
|
-
export interface ICodeDetailsLoader extends Partial<
|
|
100
|
-
load(source:
|
|
94
|
+
export interface ICodeDetailsLoader extends Partial<IProvideFluidCodeDetailsComparer> {
|
|
95
|
+
load(source: IFluidCodeDetails): Promise<IFluidModuleWithDetails>;
|
|
101
96
|
}
|
|
102
97
|
|
|
103
98
|
// @public @deprecated
|
|
104
|
-
export interface ICodeLoader extends Partial<
|
|
105
|
-
load(source:
|
|
99
|
+
export interface ICodeLoader extends Partial<IProvideFluidCodeDetailsComparer> {
|
|
100
|
+
load(source: IFluidCodeDetails): Promise<IFluidModule>;
|
|
106
101
|
}
|
|
107
102
|
|
|
108
103
|
// @public
|
|
@@ -134,24 +129,27 @@ export interface IContainer extends IEventProvider<IContainerEvents>, IFluidRout
|
|
|
134
129
|
close(error?: ICriticalContainerError): void;
|
|
135
130
|
closeAndGetPendingLocalState(): string;
|
|
136
131
|
readonly closed: boolean;
|
|
132
|
+
connect?(): void;
|
|
133
|
+
// @deprecated
|
|
137
134
|
readonly connected: boolean;
|
|
138
135
|
readonly connectionState: ConnectionState;
|
|
139
136
|
deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
|
|
137
|
+
disconnect?(): void;
|
|
140
138
|
// @alpha
|
|
141
139
|
forceReadonly?(readonly: boolean): any;
|
|
142
140
|
getAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;
|
|
143
|
-
getLoadedCodeDetails():
|
|
141
|
+
getLoadedCodeDetails(): IFluidCodeDetails | undefined;
|
|
144
142
|
getQuorum(): IQuorumClients;
|
|
145
|
-
getSpecifiedCodeDetails():
|
|
143
|
+
getSpecifiedCodeDetails(): IFluidCodeDetails | undefined;
|
|
146
144
|
readonly isDirty: boolean;
|
|
147
|
-
proposeCodeDetails(codeDetails:
|
|
145
|
+
proposeCodeDetails(codeDetails: IFluidCodeDetails): Promise<boolean>;
|
|
148
146
|
readonly readOnlyInfo: ReadOnlyInfo;
|
|
149
147
|
request(request: IRequest): Promise<IResponse>;
|
|
150
148
|
resolvedUrl: IResolvedUrl | undefined;
|
|
151
|
-
// @
|
|
149
|
+
// @deprecated
|
|
152
150
|
resume?(): void;
|
|
153
151
|
serialize(): string;
|
|
154
|
-
// @
|
|
152
|
+
// @deprecated
|
|
155
153
|
setAutoReconnect?(reconnect: boolean): void;
|
|
156
154
|
}
|
|
157
155
|
|
|
@@ -178,7 +176,7 @@ export interface IContainerContext extends IDisposable {
|
|
|
178
176
|
// (undocumented)
|
|
179
177
|
getLoadedFromVersion(): IVersion | undefined;
|
|
180
178
|
// @deprecated (undocumented)
|
|
181
|
-
getSpecifiedCodeDetails?():
|
|
179
|
+
getSpecifiedCodeDetails?(): IFluidCodeDetails | undefined;
|
|
182
180
|
// (undocumented)
|
|
183
181
|
readonly loader: ILoader;
|
|
184
182
|
// (undocumented)
|
|
@@ -187,9 +185,7 @@ export interface IContainerContext extends IDisposable {
|
|
|
187
185
|
pendingLocalState?: unknown;
|
|
188
186
|
// (undocumented)
|
|
189
187
|
readonly quorum: IQuorumClients;
|
|
190
|
-
|
|
191
|
-
raiseContainerWarning?(warning: ContainerWarning): void;
|
|
192
|
-
readonly scope: IFluidObject & FluidObject;
|
|
188
|
+
readonly scope: FluidObject;
|
|
193
189
|
// (undocumented)
|
|
194
190
|
readonly serviceConfiguration: IClientConfiguration | undefined;
|
|
195
191
|
// (undocumented)
|
|
@@ -211,9 +207,9 @@ export interface IContainerEvents extends IEvent {
|
|
|
211
207
|
// (undocumented)
|
|
212
208
|
(event: "connected", listener: (clientId: string) => void): any;
|
|
213
209
|
// (undocumented)
|
|
214
|
-
(event: "codeDetailsProposed", listener: (codeDetails:
|
|
210
|
+
(event: "codeDetailsProposed", listener: (codeDetails: IFluidCodeDetails, proposal: ISequencedProposal) => void): any;
|
|
215
211
|
// (undocumented)
|
|
216
|
-
(event: "contextChanged", listener: (codeDetails:
|
|
212
|
+
(event: "contextChanged", listener: (codeDetails: IFluidCodeDetails) => void): any;
|
|
217
213
|
// (undocumented)
|
|
218
214
|
(event: "disconnected" | "attached", listener: () => void): any;
|
|
219
215
|
// (undocumented)
|
|
@@ -324,16 +320,16 @@ export interface IErrorBase extends Partial<Error> {
|
|
|
324
320
|
}
|
|
325
321
|
|
|
326
322
|
// @public
|
|
327
|
-
export interface IFluidBrowserPackage extends
|
|
323
|
+
export interface IFluidBrowserPackage extends IFluidPackage {
|
|
328
324
|
// (undocumented)
|
|
329
325
|
fluid: {
|
|
330
326
|
browser: IFluidBrowserPackageEnvironment;
|
|
331
|
-
[environment: string]:
|
|
327
|
+
[environment: string]: IFluidPackageEnvironment;
|
|
332
328
|
};
|
|
333
329
|
}
|
|
334
330
|
|
|
335
331
|
// @public
|
|
336
|
-
export interface IFluidBrowserPackageEnvironment extends
|
|
332
|
+
export interface IFluidBrowserPackageEnvironment extends IFluidPackageEnvironment {
|
|
337
333
|
umd: {
|
|
338
334
|
files: string[];
|
|
339
335
|
library: string;
|
|
@@ -363,18 +359,18 @@ export interface IFluidCodeDetailsConfig {
|
|
|
363
359
|
|
|
364
360
|
// @public
|
|
365
361
|
export interface IFluidCodeResolver {
|
|
366
|
-
resolveCodeDetails(details:
|
|
362
|
+
resolveCodeDetails(details: IFluidCodeDetails): Promise<IResolvedFluidCodeDetails>;
|
|
367
363
|
}
|
|
368
364
|
|
|
369
365
|
// @public (undocumented)
|
|
370
366
|
export interface IFluidModule {
|
|
371
367
|
// (undocumented)
|
|
372
|
-
fluidExport:
|
|
368
|
+
fluidExport: FluidObject<IRuntimeFactory & IProvideFluidCodeDetailsComparer>;
|
|
373
369
|
}
|
|
374
370
|
|
|
375
371
|
// @public
|
|
376
372
|
export interface IFluidModuleWithDetails {
|
|
377
|
-
details:
|
|
373
|
+
details: IFluidCodeDetails;
|
|
378
374
|
module: IFluidModule;
|
|
379
375
|
}
|
|
380
376
|
|
|
@@ -416,7 +412,7 @@ export interface IGenericError extends IErrorBase {
|
|
|
416
412
|
|
|
417
413
|
// @public
|
|
418
414
|
export interface IHostLoader extends ILoader {
|
|
419
|
-
createDetachedContainer(codeDetails:
|
|
415
|
+
createDetachedContainer(codeDetails: IFluidCodeDetails): Promise<IContainer>;
|
|
420
416
|
rehydrateDetachedContainerFromSnapshot(snapshot: string): Promise<IContainer>;
|
|
421
417
|
}
|
|
422
418
|
|
|
@@ -497,8 +493,8 @@ export interface IProxyLoaderFactory {
|
|
|
497
493
|
}
|
|
498
494
|
|
|
499
495
|
// @public
|
|
500
|
-
export interface IResolvedFluidCodeDetails extends
|
|
501
|
-
readonly resolvedPackage: Readonly<
|
|
496
|
+
export interface IResolvedFluidCodeDetails extends IFluidCodeDetails {
|
|
497
|
+
readonly resolvedPackage: Readonly<IFluidPackage>;
|
|
502
498
|
readonly resolvedPackageCacheId: string | undefined;
|
|
503
499
|
}
|
|
504
500
|
|
package/dist/browserPackage.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 { IFluidPackage, IFluidPackageEnvironment } from "
|
|
5
|
+
import { IFluidPackage, IFluidPackageEnvironment } from "./fluidPackage";
|
|
6
6
|
/**
|
|
7
7
|
* A specific Fluid package environment for browsers
|
|
8
8
|
*/
|
|
@@ -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,
|
|
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;IAC7E;;;OAGG;IACH,GAAG,EAAE;QACD;;;WAGG;QACH,KAAK,EAAE,MAAM,EAAE,CAAC;QAEhB;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;KAEnB,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACvD;;OAEG;IACH,KAAK,EAAE;QACH;;WAEG;QACH,OAAO,EAAE,+BAA+B,CAAC;QACzC;;WAEG;QACH,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC;KACnD,CAAA;CACJ;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,aAAc,GAAG,+CAGO,CAAC"}
|
package/dist/browserPackage.js
CHANGED
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.isFluidBrowserPackage = void 0;
|
|
8
|
-
const
|
|
8
|
+
const fluidPackage_1 = require("./fluidPackage");
|
|
9
9
|
/**
|
|
10
10
|
* Determines if any object is an IFluidBrowserPackage
|
|
11
11
|
* @param maybePkg - The object to check for compatibility with IFluidBrowserPackage
|
|
12
12
|
*/
|
|
13
13
|
const isFluidBrowserPackage = (maybePkg) => {
|
|
14
14
|
var _a, _b, _c, _d, _e, _f;
|
|
15
|
-
return
|
|
15
|
+
return fluidPackage_1.isFluidPackage(maybePkg)
|
|
16
16
|
&& typeof ((_c = (_b = (_a = maybePkg === null || maybePkg === void 0 ? void 0 : maybePkg.fluid) === null || _a === void 0 ? void 0 : _a.browser) === null || _b === void 0 ? void 0 : _b.umd) === null || _c === void 0 ? void 0 : _c.library) === "string"
|
|
17
17
|
&& Array.isArray((_f = (_e = (_d = maybePkg === null || maybePkg === void 0 ? void 0 : maybePkg.fluid) === null || _d === void 0 ? void 0 : _d.browser) === null || _e === void 0 ? void 0 : _e.umd) === null || _f === void 0 ? void 0 : _f.files);
|
|
18
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserPackage.js","sourceRoot":"","sources":["../src/browserPackage.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"browserPackage.js","sourceRoot":"","sources":["../src/browserPackage.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iDAAyF;AA6CzF;;;GAGG;AACI,MAAM,qBAAqB,GAAG,CAAC,QAAa,EAA8C,EAAE;;IAC/F,OAAA,6BAAc,CAAC,QAAQ,CAAC;WACrB,0BAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,0CAAE,OAAO,0CAAE,GAAG,0CAAE,OAAO,CAAA,KAAK,QAAQ;WAC1D,KAAK,CAAC,OAAO,mBAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,0CAAE,OAAO,0CAAE,GAAG,0CAAE,KAAK,CAAC,CAAA;CAAA,CAAC;AAH9C,QAAA,qBAAqB,yBAGyB","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 /**\n * The Universal Module Definition (umd) target specifics the scripts necessary for\n * loading a packages in a browser environment and finding its entry point\n */\n umd: {\n /**\n * The bundled js files for loading this package. These files will be loaded\n * and executed in order\n */\n files: string[];\n\n /**\n * The global name that the script entry points will be exposed.\n * This entry point should be an IFluidModule\n */\n library: string;\n\n };\n}\n\n/**\n * A Fluid package for specification for browser environments\n */\nexport interface IFluidBrowserPackage extends IFluidPackage {\n /**\n * {@inheritDoc @fluidframework/core-interfaces#IFluidPackage.fluid}\n */\n fluid: {\n /**\n * The browser specific package information for this package\n */\n browser: IFluidBrowserPackageEnvironment;\n /**\n * {@inheritDoc @fluidframework/core-interfaces#IFluidPackage.fluid.environment}\n */\n [environment: string]: IFluidPackageEnvironment;\n }\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 = (maybePkg: any): maybePkg is Readonly<IFluidBrowserPackage> =>\n isFluidPackage(maybePkg)\n && typeof maybePkg?.fluid?.browser?.umd?.library === \"string\"\n && Array.isArray(maybePkg?.fluid?.browser?.umd?.files);\n"]}
|
package/dist/fluidModule.d.ts
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { FluidObject
|
|
5
|
+
import { FluidObject } from "@fluidframework/core-interfaces";
|
|
6
|
+
import { IProvideFluidCodeDetailsComparer } from "./fluidPackage";
|
|
6
7
|
import { IRuntimeFactory } from "./runtime";
|
|
7
8
|
export interface IFluidModule {
|
|
8
|
-
fluidExport:
|
|
9
|
+
fluidExport: FluidObject<IRuntimeFactory & IProvideFluidCodeDetailsComparer>;
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=fluidModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluidModule.d.ts","sourceRoot":"","sources":["../src/fluidModule.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"fluidModule.d.ts","sourceRoot":"","sources":["../src/fluidModule.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,WAAW,CAAC,eAAe,GAAG,gCAAgC,CAAC,CAAC;CAChF"}
|
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 { FluidObject
|
|
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 { FluidObject } from \"@fluidframework/core-interfaces\";\nimport { IProvideFluidCodeDetailsComparer } from \"./fluidPackage\";\nimport { IRuntimeFactory } from \"./runtime\";\n\nexport interface IFluidModule {\n fluidExport: FluidObject<IRuntimeFactory & IProvideFluidCodeDetailsComparer>;\n}\n"]}
|
package/dist/loader.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 { IRequest, IResponse, IFluidRouter
|
|
5
|
+
import { IRequest, IResponse, IFluidRouter } from "@fluidframework/core-interfaces";
|
|
6
6
|
import { IClientDetails, IDocumentMessage, IQuorumClients, ISequencedDocumentMessage, ISequencedProposal } from "@fluidframework/protocol-definitions";
|
|
7
7
|
import { IResolvedUrl } from "@fluidframework/driver-definitions";
|
|
8
8
|
import { IEvent, IEventProvider } from "@fluidframework/common-definitions";
|
|
@@ -11,6 +11,7 @@ import { IDeltaManager, ReadOnlyInfo } from "./deltas";
|
|
|
11
11
|
import { ICriticalContainerError, ContainerWarning } from "./error";
|
|
12
12
|
import { IFluidModule } from "./fluidModule";
|
|
13
13
|
import { AttachState } from "./runtime";
|
|
14
|
+
import { IFluidCodeDetails, IFluidPackage, IProvideFluidCodeDetailsComparer } from "./fluidPackage";
|
|
14
15
|
/**
|
|
15
16
|
* Code loading interface
|
|
16
17
|
*
|
|
@@ -208,18 +209,33 @@ export interface IContainer extends IEventProvider<IContainerEvents>, IFluidRout
|
|
|
208
209
|
readonly connectionState: ConnectionState;
|
|
209
210
|
/**
|
|
210
211
|
* Boolean indicating whether the container is currently connected or not
|
|
212
|
+
* @deprecated - 0.58, This API will be removed in 1.0
|
|
213
|
+
* Check `connectionState === ConnectionState.Connected` instead
|
|
214
|
+
* See https://github.com/microsoft/FluidFramework/issues/9167 for context
|
|
211
215
|
*/
|
|
212
216
|
readonly connected: boolean;
|
|
217
|
+
/**
|
|
218
|
+
* Attempts to connect the container to the delta stream and process ops
|
|
219
|
+
*/
|
|
220
|
+
connect?(): void;
|
|
221
|
+
/**
|
|
222
|
+
* Disconnects the container from the delta stream and stops processing ops
|
|
223
|
+
*/
|
|
224
|
+
disconnect?(): void;
|
|
213
225
|
/**
|
|
214
226
|
* Dictates whether or not the current container will automatically attempt to reconnect to the delta stream
|
|
215
227
|
* after receiving a disconnect event
|
|
216
228
|
* @param reconnect - Boolean indicating if reconnect should automatically occur
|
|
217
|
-
* @
|
|
229
|
+
* @deprecated - 0.58, This API will be removed in 1.0
|
|
230
|
+
* Use `connect()` and `disconnect()` instead of `setAutoReconnect(true)` and `setAutoReconnect(false)` respectively
|
|
231
|
+
* See https://github.com/microsoft/FluidFramework/issues/9167 for context
|
|
218
232
|
*/
|
|
219
233
|
setAutoReconnect?(reconnect: boolean): void;
|
|
220
234
|
/**
|
|
221
235
|
* Have the container attempt to resume processing ops
|
|
222
|
-
* @
|
|
236
|
+
* @deprecated - 0.58, This API will be removed in 1.0
|
|
237
|
+
* Use `connect()` instead
|
|
238
|
+
* See https://github.com/microsoft/FluidFramework/issues/9167 for context
|
|
223
239
|
*/
|
|
224
240
|
resume?(): void;
|
|
225
241
|
/**
|
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,EACH,QAAQ,EACR,SAAS,EACT,YAAY,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAuXH;;GAEG;AACH,IAAY,YAsBX;AAtBD,WAAY,YAAY;IACpB;;OAEG;IACH,qCAAqB,CAAA;IAErB,sDAAsC,CAAA;IAEtC;;OAEG;IACH,qCAAqB,CAAA;IACrB,6CAA6B,CAAA;IAC7B,wDAAwC,CAAA;IAExC;;;;;OAKG;IACH,mCAAmB,CAAA;AACvB,CAAC,EAtBW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAsBvB","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n IRequest,\n IResponse,\n IFluidRouter,\n IFluidCodeDetails,\n IFluidPackage,\n IProvideFluidCodeDetailsComparer,\n} from \"@fluidframework/core-interfaces\";\nimport {\n IClientDetails,\n IDocumentMessage,\n IQuorumClients,\n ISequencedDocumentMessage,\n ISequencedProposal,\n} from \"@fluidframework/protocol-definitions\";\nimport { IResolvedUrl } from \"@fluidframework/driver-definitions\";\nimport { IEvent, IEventProvider } from \"@fluidframework/common-definitions\";\nimport { IAudience } from \"./audience\";\nimport { IDeltaManager, ReadOnlyInfo } from \"./deltas\";\nimport { ICriticalContainerError, ContainerWarning } from \"./error\";\nimport { IFluidModule } from \"./fluidModule\";\nimport { AttachState } from \"./runtime\";\n\n/**\n * Code loading interface\n *\n * @deprecated in favor of {@link @fluidframework/container-loader#ICodeDetailsLoader}\n */\nexport interface ICodeLoader extends Partial<IProvideFluidCodeDetailsComparer> {\n /**\n * Loads the package specified by code details and returns a promise to its entry point exports.\n */\n load(source: IFluidCodeDetails): Promise<IFluidModule>;\n}\n\n/**\n * Encapsulates a module entry point with corresponding code details.\n */\nexport interface IFluidModuleWithDetails {\n /** Fluid code module that implements the runtime factory needed to instantiate the container runtime. */\n module: IFluidModule;\n /**\n * Code details associated with the module. Represents a document schema this module supports.\n * If the code loader implements the {@link @fluidframework/core-interfaces#IFluidCodeDetailsComparer} interface,\n * it'll be called to determine whether the module code details satisfy the new code proposal in the quorum.\n */\n details: 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 */\nexport interface ICodeDetailsLoader\n extends Partial<IProvideFluidCodeDetailsComparer> {\n /**\n * Load the code module (package) that is capable to interact with the document.\n *\n * @param source - Code proposal that articulates the current schema the document is written in.\n * @returns - Code module entry point along with the code details associated with it.\n */\n load(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 */\nexport interface IResolvedFluidCodeDetails extends IFluidCodeDetails {\n /**\n * A resolved version of the Fluid package. All Fluid browser file entries should be absolute urls.\n */\n readonly resolvedPackage: Readonly<IFluidPackage>;\n /**\n * If not undefined, this id will be used to cache the entry point for the code package\n */\n readonly 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 */\nexport interface IFluidCodeResolver {\n /**\n * Resolves a Fluid code details into a form that can be loaded\n * @param details - The Fluid code details to resolve\n * @returns - A IResolvedFluidCodeDetails where the\n * resolvedPackage's Fluid file entries are absolute urls, and\n * an optional resolvedPackageCacheId if the loaded package should be\n * cached.\n */\n resolveCodeDetails(details: IFluidCodeDetails): Promise<IResolvedFluidCodeDetails>;\n}\n\n/**\n * Code AllowListing Interface\n */\nexport interface ICodeAllowList {\n testSource(source: IResolvedFluidCodeDetails): Promise<boolean>;\n}\n\n/**\n * Events emitted by the Container \"upwards\" to the Loader and Host\n */\nexport interface IContainerEvents extends IEvent {\n (event: \"readonly\", listener: (readonly: boolean) => void): void;\n (event: \"connected\", listener: (clientId: string) => void);\n (event: \"codeDetailsProposed\", listener: (codeDetails: IFluidCodeDetails, proposal: ISequencedProposal) => void);\n (event: \"contextChanged\", listener: (codeDetails: IFluidCodeDetails) => void);\n (event: \"disconnected\" | \"attached\", listener: () => void);\n (event: \"closed\", listener: (error?: ICriticalContainerError) => void);\n (event: \"warning\", listener: (error: ContainerWarning) => void);\n (event: \"op\", listener: (message: ISequencedDocumentMessage) => void);\n (event: \"dirty\" | \"saved\", listener: (dirty: boolean) => void);\n}\n\n/**\n * Namespace for the different connection states a container can be in\n */\nexport namespace ConnectionState {\n /**\n * The document is no longer connected to the delta server\n */\n export type Disconnected = 0;\n\n /**\n * The document has an inbound connection but is still pending for outbound deltas\n */\n export type Connecting = 1;\n\n /**\n * The document is fully connected\n */\n export type Connected = 2;\n}\n\n/**\n * Type defining the different states of connectivity a container can be in\n */\nexport type ConnectionState = ConnectionState.Disconnected | ConnectionState.Connecting | ConnectionState.Connected;\n\n/**\n * The Host's view of the Container and its connection to storage\n */\nexport interface IContainer extends IEventProvider<IContainerEvents>, IFluidRouter {\n\n /**\n * The Delta Manager supporting the op stream for this Container\n */\n deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;\n\n /**\n * The collection of write clients which were connected as of the current sequence number.\n * Also contains a map of key-value pairs that must be agreed upon by all clients before being accepted.\n */\n getQuorum(): IQuorumClients;\n\n /**\n * Represents the resolved url to the Container\n */\n resolvedUrl: IResolvedUrl | undefined;\n\n /**\n * Indicates the attachment state of the container to a host service.\n */\n readonly attachState: AttachState;\n\n /**\n * Get the code details that are currently specified for the container.\n * @returns The current code details if any are specified, undefined if none are specified.\n */\n getSpecifiedCodeDetails(): IFluidCodeDetails | undefined;\n\n /**\n * Get the code details that were used to load the container.\n * @returns The code details that were used to load the container if it is loaded, undefined if it is not yet\n * loaded.\n */\n getLoadedCodeDetails(): IFluidCodeDetails | undefined;\n\n /**\n * Returns true if the container has been closed, otherwise false\n */\n readonly closed: boolean;\n\n /**\n * Returns true if the container is dirty, i.e. there are user changes that has not been saved\n * Closing container in this state results in data loss for user.\n * Container usually gets into this situation due to loss of connectivity.\n */\n readonly isDirty: boolean;\n\n /**\n * Closes the container\n */\n close(error?: ICriticalContainerError): void;\n\n /**\n * Closes the container and returns serialized local state intended to be\n * given to a newly loaded container\n */\n closeAndGetPendingLocalState(): string;\n\n /**\n * Propose new code details that define the code to be loaded\n * for this container's runtime. The returned promise will\n * be true when the proposal is accepted, and false if\n * the proposal is rejected.\n */\n proposeCodeDetails(codeDetails: IFluidCodeDetails): Promise<boolean>\n\n /**\n * Attaches the Container to the Container specified by the given Request.\n *\n * TODO - in the case of failure options should give a retry policy. Or some continuation function\n * that allows attachment to a secondary document.\n */\n attach(request: IRequest): Promise<void>;\n\n /**\n * Extract the snapshot from the detached container.\n */\n serialize(): string;\n\n /**\n * Get an absolute url for a provided container-relative request url.\n * If the container is not attached, this will return undefined.\n *\n * @param relativeUrl - A container-relative request URL\n */\n getAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;\n\n /**\n * Issue a request against the container for a resource.\n * @param request - The request to be issued against the container\n */\n request(request: IRequest): Promise<IResponse>;\n\n /**\n * Provides the current connected state of the container\n */\n readonly connectionState: ConnectionState;\n\n /**\n * Boolean indicating whether the container is currently connected or not\n */\n readonly connected: boolean;\n\n /**\n * Dictates whether or not the current container will automatically attempt to reconnect to the delta stream\n * after receiving a disconnect event\n * @param reconnect - Boolean indicating if reconnect should automatically occur\n * @alpha\n */\n setAutoReconnect?(reconnect: boolean): void;\n\n /**\n * Have the container attempt to resume processing ops\n * @alpha\n */\n resume?(): void;\n\n /**\n * The audience information for all clients currently associated with the document in the current session\n */\n readonly audience: IAudience;\n\n /**\n * The server provided ID of the client.\n * Set once this.connected is true, otherwise undefined\n * @alpha\n */\n readonly clientId?: string | undefined;\n\n /**\n * Tells if container is in read-only mode.\n * Data stores should listen for \"readonly\" notifications and disallow user making changes to data stores.\n * Readonly state can be because of no storage write permission,\n * or due to host forcing readonly mode for container.\n *\n * We do not differentiate here between no write access to storage vs. host disallowing changes to container -\n * in all cases container runtime and data stores should respect readonly state and not allow local changes.\n *\n * It is undefined if we have not yet established websocket connection\n * and do not know if user has write access to a file.\n */\n readonly readOnlyInfo: ReadOnlyInfo;\n\n /**\n * Allows the host to have the container force to be in read-only mode\n * @param readonly - Boolean that toggles if read-only policies will be enforced\n * @alpha\n */\n forceReadonly?(readonly: boolean);\n}\n\n/**\n * The Runtime's view of the Loader, used for loading Containers\n */\nexport interface ILoader extends IFluidRouter, Partial<IProvideLoader> {\n /**\n * Resolves the resource specified by the URL + headers contained in the request object\n * to the underlying container that will resolve the request.\n *\n * An analogy for this is resolve is a DNS resolve of a Fluid container. Request then executes\n * a request against the server found from the resolve step.\n */\n resolve(request: IRequest, pendingLocalState?: string): Promise<IContainer>;\n}\n\n/**\n * The Host's view of the Loader, used for loading Containers\n */\nexport interface IHostLoader extends ILoader {\n /**\n * Creates a new container using the specified chaincode but in an unattached state. While unattached all\n * updates will only be local until the user explicitly attaches the container to a service provider.\n */\n createDetachedContainer(codeDetails: IFluidCodeDetails): Promise<IContainer>;\n\n /**\n * Creates a new container using the specified snapshot but in an unattached state. While unattached all\n * updates will only be local until the user explicitly attaches the container to a service provider.\n */\n rehydrateDetachedContainerFromSnapshot(snapshot: string): Promise<IContainer>;\n}\n\nexport type ILoaderOptions = {\n [key in string | number]: any;\n} & {\n /**\n * Set caching behavior for the loader. If true, we will load a container from cache if one\n * with the same id/version exists or create a new container and cache it if it does not. If\n * false, always load a new container and don't cache it. If the container has already been\n * closed, it will not be cached. A cache option in the LoaderHeader for an individual\n * request will override the Loader's value.\n * Defaults to true.\n */\n cache?: boolean;\n\n /**\n * Provide the current Loader through the scope object when creating Containers. It is added\n * as the `ILoader` property, and will overwrite an existing property of the same name on the\n * scope. Useful for when the host wants to provide the current Loader's functionality to\n * individual Data Stores, which is typically expected when creating with a Loader.\n * Defaults to true.\n */\n provideScopeLoader?: boolean;\n\n // Below two are the options based on which we decide how often client needs to send noops in case of active\n // connection which is not sending any op. The end result is the \"AND\" of these 2 options. So the client\n // should hit the min time and count to send the noop.\n /**\n * Set min time(in ms) frequency with which noops would be sent in case of active connection which is\n * not sending any op.\n */\n noopTimeFrequency?: number;\n\n /**\n * Set min op frequency with which noops would be sent in case of active connection which is not sending any op.\n */\n noopCountFrequency?: number;\n\n /**\n * Max time(in ms) container will wait for a leave message of a disconnected client.\n */\n maxClientLeaveWaitTime?: number,\n};\n\n/**\n * Accepted header keys for requests coming to the Loader\n */\nexport enum LoaderHeader {\n /**\n * Override the Loader's default caching behavior for this container.\n */\n cache = \"fluid-cache\",\n\n clientDetails = \"fluid-client-details\",\n\n /**\n * Start the container in a paused, unconnected state. Defaults to false\n */\n loadMode = \"loadMode\",\n reconnect = \"fluid-reconnect\",\n sequenceNumber = \"fluid-sequence-number\",\n\n /**\n * One of the following:\n * null or \"null\": use ops, no snapshots\n * undefined: fetch latest snapshot\n * otherwise, version sha to load snapshot\n */\n version = \"version\",\n}\n\nexport interface IContainerLoadMode {\n opsBeforeReturn?:\n /*\n * No trailing ops are applied before container is returned.\n * Default value.\n */\n | undefined\n /*\n * Only cached trailing ops are applied before returning container.\n * Caching is optional and could be implemented by the driver.\n * If driver does not implement any kind of local caching strategy, this is same as above.\n * Driver may cache a lot of ops, so care needs to be exercised (see below).\n */\n | \"cached\"\n /*\n * All trailing ops in storage are fetched and applied before container is returned\n * This mode might have significant impact on boot speed (depends on storage perf characteristics)\n * Also there might be a lot of trailing ops and applying them might take time, so hosts are\n * recommended to have some progress UX / cancellation built into loading flow when using this option.\n */\n | \"all\"\n deltaConnection?:\n /*\n * Connection to delta stream is made only when Container.resume() call is made. Op processing\n * is paused (when container is returned from Loader.resolve()) until Container.resume() call is made.\n */\n | \"none\"\n /*\n * Connection to delta stream is made only when Container.resume() call is made.\n * Op fetching from storage is performed and ops are applied as they come in.\n * This is useful option if connection to delta stream is expensive and thus it's beneficial to move it\n * out from critical boot sequence, but it's beneficial to allow catch up to happen as fast as possible.\n */\n | \"delayed\"\n /*\n * Connection to delta stream is made right away.\n * Ops processing is enabled and ops are flowing through the system.\n * Default value.\n */\n | undefined\n}\n\n/**\n * Set of Request Headers that the Loader understands and may inspect or modify\n */\nexport interface ILoaderHeader {\n [LoaderHeader.cache]: boolean;\n [LoaderHeader.clientDetails]: IClientDetails;\n [LoaderHeader.loadMode]: IContainerLoadMode;\n [LoaderHeader.sequenceNumber]: number;\n [LoaderHeader.reconnect]: boolean;\n [LoaderHeader.version]: string | undefined;\n}\n\nexport interface IProvideLoader {\n readonly ILoader: ILoader;\n}\n\ndeclare module \"@fluidframework/core-interfaces\" {\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n export interface IRequestHeader extends Partial<ILoaderHeader> { }\n\n export interface IFluidObject {\n /**\n * @deprecated - use `FluidObject<ILoader>` instead\n */\n readonly ILoader?: ILoader;\n }\n}\n\nexport interface IPendingLocalState {\n url: string;\n pendingRuntimeState: unknown;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA0YH;;GAEG;AACH,IAAY,YAsBX;AAtBD,WAAY,YAAY;IACpB;;OAEG;IACH,qCAAqB,CAAA;IAErB,sDAAsC,CAAA;IAEtC;;OAEG;IACH,qCAAqB,CAAA;IACrB,6CAA6B,CAAA;IAC7B,wDAAwC,CAAA;IAExC;;;;;OAKG;IACH,mCAAmB,CAAA;AACvB,CAAC,EAtBW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAsBvB","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n IRequest,\n IResponse,\n IFluidRouter,\n} from \"@fluidframework/core-interfaces\";\nimport {\n IClientDetails,\n IDocumentMessage,\n IQuorumClients,\n ISequencedDocumentMessage,\n ISequencedProposal,\n} from \"@fluidframework/protocol-definitions\";\nimport { IResolvedUrl } from \"@fluidframework/driver-definitions\";\nimport { IEvent, IEventProvider } from \"@fluidframework/common-definitions\";\nimport { IAudience } from \"./audience\";\nimport { IDeltaManager, ReadOnlyInfo } from \"./deltas\";\nimport { ICriticalContainerError, ContainerWarning } from \"./error\";\nimport { IFluidModule } from \"./fluidModule\";\nimport { AttachState } from \"./runtime\";\nimport {\n IFluidCodeDetails,\n IFluidPackage,\n IProvideFluidCodeDetailsComparer,\n} from \"./fluidPackage\";\n\n/**\n * Code loading interface\n *\n * @deprecated in favor of {@link @fluidframework/container-loader#ICodeDetailsLoader}\n */\nexport interface ICodeLoader extends Partial<IProvideFluidCodeDetailsComparer> {\n /**\n * Loads the package specified by code details and returns a promise to its entry point exports.\n */\n load(source: IFluidCodeDetails): Promise<IFluidModule>;\n}\n\n/**\n * Encapsulates a module entry point with corresponding code details.\n */\nexport interface IFluidModuleWithDetails {\n /** Fluid code module that implements the runtime factory needed to instantiate the container runtime. */\n module: IFluidModule;\n /**\n * Code details associated with the module. Represents a document schema this module supports.\n * If the code loader implements the {@link @fluidframework/core-interfaces#IFluidCodeDetailsComparer} interface,\n * it'll be called to determine whether the module code details satisfy the new code proposal in the quorum.\n */\n details: 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 */\nexport interface ICodeDetailsLoader\n extends Partial<IProvideFluidCodeDetailsComparer> {\n /**\n * Load the code module (package) that is capable to interact with the document.\n *\n * @param source - Code proposal that articulates the current schema the document is written in.\n * @returns - Code module entry point along with the code details associated with it.\n */\n load(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 */\nexport interface IResolvedFluidCodeDetails extends IFluidCodeDetails {\n /**\n * A resolved version of the Fluid package. All Fluid browser file entries should be absolute urls.\n */\n readonly resolvedPackage: Readonly<IFluidPackage>;\n /**\n * If not undefined, this id will be used to cache the entry point for the code package\n */\n readonly 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 */\nexport interface IFluidCodeResolver {\n /**\n * Resolves a Fluid code details into a form that can be loaded\n * @param details - The Fluid code details to resolve\n * @returns - A IResolvedFluidCodeDetails where the\n * resolvedPackage's Fluid file entries are absolute urls, and\n * an optional resolvedPackageCacheId if the loaded package should be\n * cached.\n */\n resolveCodeDetails(details: IFluidCodeDetails): Promise<IResolvedFluidCodeDetails>;\n}\n\n/**\n * Code AllowListing Interface\n */\nexport interface ICodeAllowList {\n testSource(source: IResolvedFluidCodeDetails): Promise<boolean>;\n}\n\n/**\n * Events emitted by the Container \"upwards\" to the Loader and Host\n */\nexport interface IContainerEvents extends IEvent {\n (event: \"readonly\", listener: (readonly: boolean) => void): void;\n (event: \"connected\", listener: (clientId: string) => void);\n (event: \"codeDetailsProposed\", listener: (codeDetails: IFluidCodeDetails, proposal: ISequencedProposal) => void);\n (event: \"contextChanged\", listener: (codeDetails: IFluidCodeDetails) => void);\n (event: \"disconnected\" | \"attached\", listener: () => void);\n (event: \"closed\", listener: (error?: ICriticalContainerError) => void);\n (event: \"warning\", listener: (error: ContainerWarning) => void);\n (event: \"op\", listener: (message: ISequencedDocumentMessage) => void);\n (event: \"dirty\" | \"saved\", listener: (dirty: boolean) => void);\n}\n\n/**\n * Namespace for the different connection states a container can be in\n */\nexport namespace ConnectionState {\n /**\n * The document is no longer connected to the delta server\n */\n export type Disconnected = 0;\n\n /**\n * The document has an inbound connection but is still pending for outbound deltas\n */\n export type Connecting = 1;\n\n /**\n * The document is fully connected\n */\n export type Connected = 2;\n}\n\n/**\n * Type defining the different states of connectivity a container can be in\n */\nexport type ConnectionState = ConnectionState.Disconnected | ConnectionState.Connecting | ConnectionState.Connected;\n\n/**\n * The Host's view of the Container and its connection to storage\n */\nexport interface IContainer extends IEventProvider<IContainerEvents>, IFluidRouter {\n\n /**\n * The Delta Manager supporting the op stream for this Container\n */\n deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;\n\n /**\n * The collection of write clients which were connected as of the current sequence number.\n * Also contains a map of key-value pairs that must be agreed upon by all clients before being accepted.\n */\n getQuorum(): IQuorumClients;\n\n /**\n * Represents the resolved url to the Container\n */\n resolvedUrl: IResolvedUrl | undefined;\n\n /**\n * Indicates the attachment state of the container to a host service.\n */\n readonly attachState: AttachState;\n\n /**\n * Get the code details that are currently specified for the container.\n * @returns The current code details if any are specified, undefined if none are specified.\n */\n getSpecifiedCodeDetails(): IFluidCodeDetails | undefined;\n\n /**\n * Get the code details that were used to load the container.\n * @returns The code details that were used to load the container if it is loaded, undefined if it is not yet\n * loaded.\n */\n getLoadedCodeDetails(): IFluidCodeDetails | undefined;\n\n /**\n * Returns true if the container has been closed, otherwise false\n */\n readonly closed: boolean;\n\n /**\n * Returns true if the container is dirty, i.e. there are user changes that has not been saved\n * Closing container in this state results in data loss for user.\n * Container usually gets into this situation due to loss of connectivity.\n */\n readonly isDirty: boolean;\n\n /**\n * Closes the container\n */\n close(error?: ICriticalContainerError): void;\n\n /**\n * Closes the container and returns serialized local state intended to be\n * given to a newly loaded container\n */\n closeAndGetPendingLocalState(): string;\n\n /**\n * Propose new code details that define the code to be loaded\n * for this container's runtime. The returned promise will\n * be true when the proposal is accepted, and false if\n * the proposal is rejected.\n */\n proposeCodeDetails(codeDetails: IFluidCodeDetails): Promise<boolean>\n\n /**\n * Attaches the Container to the Container specified by the given Request.\n *\n * TODO - in the case of failure options should give a retry policy. Or some continuation function\n * that allows attachment to a secondary document.\n */\n attach(request: IRequest): Promise<void>;\n\n /**\n * Extract the snapshot from the detached container.\n */\n serialize(): string;\n\n /**\n * Get an absolute url for a provided container-relative request url.\n * If the container is not attached, this will return undefined.\n *\n * @param relativeUrl - A container-relative request URL\n */\n getAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;\n\n /**\n * Issue a request against the container for a resource.\n * @param request - The request to be issued against the container\n */\n request(request: IRequest): Promise<IResponse>;\n\n /**\n * Provides the current connected state of the container\n */\n readonly connectionState: ConnectionState;\n\n /**\n * Boolean indicating whether the container is currently connected or not\n * @deprecated - 0.58, This API will be removed in 1.0\n * Check `connectionState === ConnectionState.Connected` instead\n * See https://github.com/microsoft/FluidFramework/issues/9167 for context\n */\n readonly connected: boolean;\n\n /**\n * Attempts to connect the container to the delta stream and process ops\n */\n connect?(): void;\n\n /**\n * Disconnects the container from the delta stream and stops processing ops\n */\n disconnect?(): void;\n\n /**\n * Dictates whether or not the current container will automatically attempt to reconnect to the delta stream\n * after receiving a disconnect event\n * @param reconnect - Boolean indicating if reconnect should automatically occur\n * @deprecated - 0.58, This API will be removed in 1.0\n * Use `connect()` and `disconnect()` instead of `setAutoReconnect(true)` and `setAutoReconnect(false)` respectively\n * See https://github.com/microsoft/FluidFramework/issues/9167 for context\n */\n setAutoReconnect?(reconnect: boolean): void;\n\n /**\n * Have the container attempt to resume processing ops\n * @deprecated - 0.58, This API will be removed in 1.0\n * Use `connect()` instead\n * See https://github.com/microsoft/FluidFramework/issues/9167 for context\n */\n resume?(): void;\n\n /**\n * The audience information for all clients currently associated with the document in the current session\n */\n readonly audience: IAudience;\n\n /**\n * The server provided ID of the client.\n * Set once this.connected is true, otherwise undefined\n * @alpha\n */\n readonly clientId?: string | undefined;\n\n /**\n * Tells if container is in read-only mode.\n * Data stores should listen for \"readonly\" notifications and disallow user making changes to data stores.\n * Readonly state can be because of no storage write permission,\n * or due to host forcing readonly mode for container.\n *\n * We do not differentiate here between no write access to storage vs. host disallowing changes to container -\n * in all cases container runtime and data stores should respect readonly state and not allow local changes.\n *\n * It is undefined if we have not yet established websocket connection\n * and do not know if user has write access to a file.\n */\n readonly readOnlyInfo: ReadOnlyInfo;\n\n /**\n * Allows the host to have the container force to be in read-only mode\n * @param readonly - Boolean that toggles if read-only policies will be enforced\n * @alpha\n */\n forceReadonly?(readonly: boolean);\n}\n\n/**\n * The Runtime's view of the Loader, used for loading Containers\n */\nexport interface ILoader extends IFluidRouter, Partial<IProvideLoader> {\n /**\n * Resolves the resource specified by the URL + headers contained in the request object\n * to the underlying container that will resolve the request.\n *\n * An analogy for this is resolve is a DNS resolve of a Fluid container. Request then executes\n * a request against the server found from the resolve step.\n */\n resolve(request: IRequest, pendingLocalState?: string): Promise<IContainer>;\n}\n\n/**\n * The Host's view of the Loader, used for loading Containers\n */\nexport interface IHostLoader extends ILoader {\n /**\n * Creates a new container using the specified chaincode but in an unattached state. While unattached all\n * updates will only be local until the user explicitly attaches the container to a service provider.\n */\n createDetachedContainer(codeDetails: IFluidCodeDetails): Promise<IContainer>;\n\n /**\n * Creates a new container using the specified snapshot but in an unattached state. While unattached all\n * updates will only be local until the user explicitly attaches the container to a service provider.\n */\n rehydrateDetachedContainerFromSnapshot(snapshot: string): Promise<IContainer>;\n}\n\nexport type ILoaderOptions = {\n [key in string | number]: any;\n} & {\n /**\n * Set caching behavior for the loader. If true, we will load a container from cache if one\n * with the same id/version exists or create a new container and cache it if it does not. If\n * false, always load a new container and don't cache it. If the container has already been\n * closed, it will not be cached. A cache option in the LoaderHeader for an individual\n * request will override the Loader's value.\n * Defaults to true.\n */\n cache?: boolean;\n\n /**\n * Provide the current Loader through the scope object when creating Containers. It is added\n * as the `ILoader` property, and will overwrite an existing property of the same name on the\n * scope. Useful for when the host wants to provide the current Loader's functionality to\n * individual Data Stores, which is typically expected when creating with a Loader.\n * Defaults to true.\n */\n provideScopeLoader?: boolean;\n\n // Below two are the options based on which we decide how often client needs to send noops in case of active\n // connection which is not sending any op. The end result is the \"AND\" of these 2 options. So the client\n // should hit the min time and count to send the noop.\n /**\n * Set min time(in ms) frequency with which noops would be sent in case of active connection which is\n * not sending any op.\n */\n noopTimeFrequency?: number;\n\n /**\n * Set min op frequency with which noops would be sent in case of active connection which is not sending any op.\n */\n noopCountFrequency?: number;\n\n /**\n * Max time(in ms) container will wait for a leave message of a disconnected client.\n */\n maxClientLeaveWaitTime?: number,\n};\n\n/**\n * Accepted header keys for requests coming to the Loader\n */\nexport enum LoaderHeader {\n /**\n * Override the Loader's default caching behavior for this container.\n */\n cache = \"fluid-cache\",\n\n clientDetails = \"fluid-client-details\",\n\n /**\n * Start the container in a paused, unconnected state. Defaults to false\n */\n loadMode = \"loadMode\",\n reconnect = \"fluid-reconnect\",\n sequenceNumber = \"fluid-sequence-number\",\n\n /**\n * One of the following:\n * null or \"null\": use ops, no snapshots\n * undefined: fetch latest snapshot\n * otherwise, version sha to load snapshot\n */\n version = \"version\",\n}\n\nexport interface IContainerLoadMode {\n opsBeforeReturn?:\n /*\n * No trailing ops are applied before container is returned.\n * Default value.\n */\n | undefined\n /*\n * Only cached trailing ops are applied before returning container.\n * Caching is optional and could be implemented by the driver.\n * If driver does not implement any kind of local caching strategy, this is same as above.\n * Driver may cache a lot of ops, so care needs to be exercised (see below).\n */\n | \"cached\"\n /*\n * All trailing ops in storage are fetched and applied before container is returned\n * This mode might have significant impact on boot speed (depends on storage perf characteristics)\n * Also there might be a lot of trailing ops and applying them might take time, so hosts are\n * recommended to have some progress UX / cancellation built into loading flow when using this option.\n */\n | \"all\"\n deltaConnection?:\n /*\n * Connection to delta stream is made only when Container.resume() call is made. Op processing\n * is paused (when container is returned from Loader.resolve()) until Container.resume() call is made.\n */\n | \"none\"\n /*\n * Connection to delta stream is made only when Container.resume() call is made.\n * Op fetching from storage is performed and ops are applied as they come in.\n * This is useful option if connection to delta stream is expensive and thus it's beneficial to move it\n * out from critical boot sequence, but it's beneficial to allow catch up to happen as fast as possible.\n */\n | \"delayed\"\n /*\n * Connection to delta stream is made right away.\n * Ops processing is enabled and ops are flowing through the system.\n * Default value.\n */\n | undefined\n}\n\n/**\n * Set of Request Headers that the Loader understands and may inspect or modify\n */\nexport interface ILoaderHeader {\n [LoaderHeader.cache]: boolean;\n [LoaderHeader.clientDetails]: IClientDetails;\n [LoaderHeader.loadMode]: IContainerLoadMode;\n [LoaderHeader.sequenceNumber]: number;\n [LoaderHeader.reconnect]: boolean;\n [LoaderHeader.version]: string | undefined;\n}\n\nexport interface IProvideLoader {\n readonly ILoader: ILoader;\n}\n\ndeclare module \"@fluidframework/core-interfaces\" {\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n export interface IRequestHeader extends Partial<ILoaderHeader> { }\n\n export interface IFluidObject {\n /**\n * @deprecated - use `FluidObject<ILoader>` instead\n */\n readonly ILoader?: ILoader;\n }\n}\n\nexport interface IPendingLocalState {\n url: string;\n pendingRuntimeState: unknown;\n}\n"]}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { ITelemetryBaseLogger, IDisposable } from "@fluidframework/common-definitions";
|
|
6
|
-
import { FluidObject,
|
|
6
|
+
import { FluidObject, IRequest, IResponse } from "@fluidframework/core-interfaces";
|
|
7
7
|
import { IDocumentStorageService } from "@fluidframework/driver-definitions";
|
|
8
8
|
import { IClientConfiguration, IClientDetails, ISequencedDocumentMessage, ISnapshotTree, MessageType, ISummaryTree, IVersion, IDocumentMessage, IQuorumClients } from "@fluidframework/protocol-definitions";
|
|
9
9
|
import { IAudience } from "./audience";
|
|
10
10
|
import { IDeltaManager } from "./deltas";
|
|
11
|
-
import { ICriticalContainerError
|
|
11
|
+
import { ICriticalContainerError } from "./error";
|
|
12
12
|
import { ILoader, ILoaderOptions } from "./loader";
|
|
13
|
+
import { IFluidCodeDetails } from "./fluidPackage";
|
|
13
14
|
/**
|
|
14
15
|
* The attachment state of some Fluid data (e.g. a container or data store), denoting whether it is uploaded to the
|
|
15
16
|
* service. The transition from detached to attached state is a one-way transition.
|
|
@@ -111,11 +112,7 @@ export interface IContainerContext extends IDisposable {
|
|
|
111
112
|
/**
|
|
112
113
|
* Ambient services provided with the context
|
|
113
114
|
*/
|
|
114
|
-
readonly scope:
|
|
115
|
-
/**
|
|
116
|
-
* @deprecated 0.56, will be removed in the next release
|
|
117
|
-
*/
|
|
118
|
-
raiseContainerWarning?(warning: ContainerWarning): void;
|
|
115
|
+
readonly scope: FluidObject;
|
|
119
116
|
/**
|
|
120
117
|
* Get an absolute url for a provided container-relative request.
|
|
121
118
|
* @param relativeUrl - A relative request within the container
|
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,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EACH,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA0BH;;;GAGG;AACH,IAAY,WAiBX;AAjBD,WAAY,WAAW;IACnB;;;OAGG;IACH,oCAAqB,CAAA;IAErB;;OAEG;IACH,sCAAuB,CAAA;IAEvB;;;OAGG;IACH,oCAAqB,CAAA;AACzB,CAAC,EAjBW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAiBtB;AAED,2CAA2C;AAC3C,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,kCAAqB,CAAA;IACrB,gCAAmB,CAAA;IACnB,4BAAe,CAAA;AACnB,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB;AA4GY,QAAA,eAAe,GAAiC,iBAAiB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryBaseLogger, IDisposable } from \"@fluidframework/common-definitions\";\nimport {\n FluidObject,\n IRequest,\n IResponse,\n} from \"@fluidframework/core-interfaces\";\nimport { IDocumentStorageService } from \"@fluidframework/driver-definitions\";\nimport {\n IClientConfiguration,\n IClientDetails,\n ISequencedDocumentMessage,\n ISnapshotTree,\n MessageType,\n ISummaryTree,\n IVersion,\n IDocumentMessage,\n IQuorumClients,\n} from \"@fluidframework/protocol-definitions\";\nimport { IAudience } from \"./audience\";\nimport { IDeltaManager } from \"./deltas\";\nimport { ICriticalContainerError } from \"./error\";\nimport { ILoader, ILoaderOptions } from \"./loader\";\nimport { IFluidCodeDetails } from \"./fluidPackage\";\n\n/**\n * The attachment state of some Fluid data (e.g. a container or data store), denoting whether it is uploaded to the\n * service. The transition from detached to attached state is a one-way transition.\n */\nexport enum AttachState {\n /**\n * In detached state, the data is only present on the local client's machine. It has not yet been uploaded\n * to the service.\n */\n Detached = \"Detached\",\n\n /**\n * In attaching state, the data has started the upload to the service, but has not yet completed.\n */\n Attaching = \"Attaching\",\n\n /**\n * In attached state, the data has completed upload to the service. It can be accessed by other clients after\n * reaching attached state.\n */\n Attached = \"Attached\",\n}\n\n// Represents the bind state of the entity.\nexport enum BindState {\n NotBound = \"NotBound\",\n Binding = \"Binding\",\n Bound = \"Bound\",\n}\n\n/**\n * The IRuntime represents an instantiation of a code package within a Container.\n * Primarily held by the ContainerContext to be able to interact with the running instance of the Container.\n */\nexport interface IRuntime extends IDisposable {\n\n /**\n * Executes a request against the runtime\n */\n request(request: IRequest): Promise<IResponse>;\n\n /**\n * Notifies the runtime of a change in the connection state\n */\n setConnectionState(connected: boolean, clientId?: string);\n\n /**\n * Processes the given op (message)\n */\n process(message: ISequencedDocumentMessage, local: boolean, context: any);\n\n /**\n * Processes the given signal\n */\n processSignal(message: any, local: boolean);\n\n /**\n * Create a summary. Used when attaching or serializing a detached container.\n *\n * @param blobRedirectTable - A table passed during the attach process. While detached, blob upload is supported\n * using IDs generated locally. After attach, these IDs cannot be used, so this table maps the old local IDs to the\n * new storage IDs so requests can be redirected.\n */\n createSummary(blobRedirectTable?: Map<string, string>): ISummaryTree;\n\n /**\n * Propagate the container state when container is attaching or attached.\n * @param attachState - State of the container.\n */\n setAttachState(attachState: AttachState.Attaching | AttachState.Attached): void;\n\n /**\n * Get pending local state in a serializable format to be given back to a newly loaded container\n */\n getPendingLocalState(): unknown;\n}\n\n/**\n * The ContainerContext is a proxy standing between the Container and the Container's IRuntime.\n * This allows the Container to terminate the connection to the IRuntime.\n *\n * Specifically, there is an event on Container, onContextChanged, which mean a new code proposal has been loaded,\n * so the old IRuntime is no longer valid, as its ContainerContext has been revoked,\n * and the Container has created a new ContainerContext.\n */\nexport interface IContainerContext extends IDisposable {\n readonly existing: boolean | undefined;\n readonly options: ILoaderOptions;\n readonly clientId: string | undefined;\n readonly clientDetails: IClientDetails;\n readonly storage: IDocumentStorageService;\n readonly connected: boolean;\n readonly baseSnapshot: ISnapshotTree | undefined;\n readonly submitFn: (type: MessageType, contents: any, batch: boolean, appData?: any) => number;\n readonly submitSignalFn: (contents: any) => void;\n readonly closeFn: (error?: ICriticalContainerError) => void;\n readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;\n readonly quorum: IQuorumClients;\n /**\n * @deprecated This method is provided as a migration tool for customers currently reading the code details\n * from within the Container by directly accessing the Quorum proposals. The code details should not be accessed\n * from within the Container as this requires coupling between the container contents and the code loader.\n * Direct access to Quorum proposals will be removed in an upcoming release, and in a further future release this\n * migration tool will be removed.\n */\n getSpecifiedCodeDetails?(): IFluidCodeDetails | undefined;\n readonly audience: IAudience | undefined;\n readonly loader: ILoader;\n // The logger implementation, which would support tagged events, should be provided by the loader.\n readonly taggedLogger: ITelemetryBaseLogger;\n readonly serviceConfiguration: IClientConfiguration | undefined;\n pendingLocalState?: unknown;\n\n /**\n * Ambient services provided with the context\n */\n readonly scope: FluidObject;\n\n /**\n * Get an absolute url for a provided container-relative request.\n * @param relativeUrl - A relative request within the container\n *\n * TODO: Optional for backwards compatibility. Make non-optional in version 0.19\n */\n getAbsoluteUrl?(relativeUrl: string): Promise<string | undefined>;\n\n /**\n * Indicates the attachment state of the container to a host service.\n */\n readonly attachState: AttachState;\n\n getLoadedFromVersion(): IVersion | undefined;\n\n updateDirtyContainerState(dirty: boolean): void;\n}\n\nexport const IRuntimeFactory: keyof IProvideRuntimeFactory = \"IRuntimeFactory\";\n\nexport interface IProvideRuntimeFactory {\n readonly IRuntimeFactory: IRuntimeFactory;\n}\n\n/**\n * Exported module definition\n *\n * Provides the entry point for the ContainerContext to load the proper IRuntime\n * to start up the running instance of the Container.\n */\nexport interface IRuntimeFactory extends IProvideRuntimeFactory {\n /**\n * Instantiates a new IRuntime for the given IContainerContext to proxy to\n * This is the main entry point to the Container's business logic\n *\n * @param context - container context to be supplied to the runtime\n * @param existing - whether to instantiate for the first time or from an existing context\n */\n instantiateRuntime(context: IContainerContext, existing?: boolean): Promise<IRuntime>;\n}\n"]}
|
package/lib/browserPackage.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 { IFluidPackage, IFluidPackageEnvironment } from "
|
|
5
|
+
import { IFluidPackage, IFluidPackageEnvironment } from "./fluidPackage";
|
|
6
6
|
/**
|
|
7
7
|
* A specific Fluid package environment for browsers
|
|
8
8
|
*/
|
|
@@ -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,
|
|
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;IAC7E;;;OAGG;IACH,GAAG,EAAE;QACD;;;WAGG;QACH,KAAK,EAAE,MAAM,EAAE,CAAC;QAEhB;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;KAEnB,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACvD;;OAEG;IACH,KAAK,EAAE;QACH;;WAEG;QACH,OAAO,EAAE,+BAA+B,CAAC;QACzC;;WAEG;QACH,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC;KACnD,CAAA;CACJ;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,aAAc,GAAG,+CAGO,CAAC"}
|
package/lib/browserPackage.js
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 { isFluidPackage } from "
|
|
5
|
+
import { isFluidPackage } from "./fluidPackage";
|
|
6
6
|
/**
|
|
7
7
|
* Determines if any object is an IFluidBrowserPackage
|
|
8
8
|
* @param maybePkg - The object to check for compatibility with IFluidBrowserPackage
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserPackage.js","sourceRoot":"","sources":["../src/browserPackage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAiB,cAAc,EAA4B,MAAM,
|
|
1
|
+
{"version":3,"file":"browserPackage.js","sourceRoot":"","sources":["../src/browserPackage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAiB,cAAc,EAA4B,MAAM,gBAAgB,CAAC;AA6CzF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAa,EAA8C,EAAE;;IAC/F,OAAA,cAAc,CAAC,QAAQ,CAAC;WACrB,0BAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,0CAAE,OAAO,0CAAE,GAAG,0CAAE,OAAO,CAAA,KAAK,QAAQ;WAC1D,KAAK,CAAC,OAAO,mBAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,0CAAE,OAAO,0CAAE,GAAG,0CAAE,KAAK,CAAC,CAAA;CAAA,CAAC","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 /**\n * The Universal Module Definition (umd) target specifics the scripts necessary for\n * loading a packages in a browser environment and finding its entry point\n */\n umd: {\n /**\n * The bundled js files for loading this package. These files will be loaded\n * and executed in order\n */\n files: string[];\n\n /**\n * The global name that the script entry points will be exposed.\n * This entry point should be an IFluidModule\n */\n library: string;\n\n };\n}\n\n/**\n * A Fluid package for specification for browser environments\n */\nexport interface IFluidBrowserPackage extends IFluidPackage {\n /**\n * {@inheritDoc @fluidframework/core-interfaces#IFluidPackage.fluid}\n */\n fluid: {\n /**\n * The browser specific package information for this package\n */\n browser: IFluidBrowserPackageEnvironment;\n /**\n * {@inheritDoc @fluidframework/core-interfaces#IFluidPackage.fluid.environment}\n */\n [environment: string]: IFluidPackageEnvironment;\n }\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 = (maybePkg: any): maybePkg is Readonly<IFluidBrowserPackage> =>\n isFluidPackage(maybePkg)\n && typeof maybePkg?.fluid?.browser?.umd?.library === \"string\"\n && Array.isArray(maybePkg?.fluid?.browser?.umd?.files);\n"]}
|
package/lib/fluidModule.d.ts
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { FluidObject
|
|
5
|
+
import { FluidObject } from "@fluidframework/core-interfaces";
|
|
6
|
+
import { IProvideFluidCodeDetailsComparer } from "./fluidPackage";
|
|
6
7
|
import { IRuntimeFactory } from "./runtime";
|
|
7
8
|
export interface IFluidModule {
|
|
8
|
-
fluidExport:
|
|
9
|
+
fluidExport: FluidObject<IRuntimeFactory & IProvideFluidCodeDetailsComparer>;
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=fluidModule.d.ts.map
|
package/lib/fluidModule.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluidModule.d.ts","sourceRoot":"","sources":["../src/fluidModule.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"fluidModule.d.ts","sourceRoot":"","sources":["../src/fluidModule.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,WAAW,CAAC,eAAe,GAAG,gCAAgC,CAAC,CAAC;CAChF"}
|
package/lib/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 { FluidObject
|
|
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 { FluidObject } from \"@fluidframework/core-interfaces\";\nimport { IProvideFluidCodeDetailsComparer } from \"./fluidPackage\";\nimport { IRuntimeFactory } from \"./runtime\";\n\nexport interface IFluidModule {\n fluidExport: FluidObject<IRuntimeFactory & IProvideFluidCodeDetailsComparer>;\n}\n"]}
|