@fluidframework/container-definitions 2.0.0-dev.3.1.0.125672 → 2.0.0-dev.4.1.0.148229

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.
Files changed (49) hide show
  1. package/dist/deltas.d.ts +8 -16
  2. package/dist/deltas.d.ts.map +1 -1
  3. package/dist/deltas.js.map +1 -1
  4. package/dist/error.d.ts +13 -0
  5. package/dist/error.d.ts.map +1 -1
  6. package/dist/error.js.map +1 -1
  7. package/dist/index.d.ts +1 -2
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -3
  10. package/dist/index.js.map +1 -1
  11. package/dist/loader.d.ts +36 -2
  12. package/dist/loader.d.ts.map +1 -1
  13. package/dist/loader.js +1 -0
  14. package/dist/loader.js.map +1 -1
  15. package/dist/runtime.d.ts +28 -2
  16. package/dist/runtime.d.ts.map +1 -1
  17. package/dist/runtime.js.map +1 -1
  18. package/lib/deltas.d.ts +8 -16
  19. package/lib/deltas.d.ts.map +1 -1
  20. package/lib/deltas.js.map +1 -1
  21. package/lib/error.d.ts +13 -0
  22. package/lib/error.d.ts.map +1 -1
  23. package/lib/error.js.map +1 -1
  24. package/lib/index.d.ts +1 -2
  25. package/lib/index.d.ts.map +1 -1
  26. package/lib/index.js +0 -1
  27. package/lib/index.js.map +1 -1
  28. package/lib/loader.d.ts +36 -2
  29. package/lib/loader.d.ts.map +1 -1
  30. package/lib/loader.js +1 -0
  31. package/lib/loader.js.map +1 -1
  32. package/lib/runtime.d.ts +28 -2
  33. package/lib/runtime.d.ts.map +1 -1
  34. package/lib/runtime.js.map +1 -1
  35. package/package.json +28 -33
  36. package/src/deltas.ts +9 -20
  37. package/src/error.ts +13 -0
  38. package/src/index.ts +1 -1
  39. package/src/loader.ts +38 -2
  40. package/src/runtime.ts +36 -2
  41. package/dist/tokenProvider.d.ts +0 -14
  42. package/dist/tokenProvider.d.ts.map +0 -1
  43. package/dist/tokenProvider.js +0 -9
  44. package/dist/tokenProvider.js.map +0 -1
  45. package/lib/tokenProvider.d.ts +0 -14
  46. package/lib/tokenProvider.d.ts.map +0 -1
  47. package/lib/tokenProvider.js +0 -6
  48. package/lib/tokenProvider.js.map +0 -1
  49. package/src/tokenProvider.ts +0 -14
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/container-definitions",
3
- "version": "2.0.0-dev.3.1.0.125672",
3
+ "version": "2.0.0-dev.4.1.0.148229",
4
4
  "description": "Fluid container definitions",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -14,6 +14,31 @@
14
14
  "main": "dist/index.js",
15
15
  "module": "lib/index.js",
16
16
  "types": "dist/index.d.ts",
17
+ "dependencies": {
18
+ "@fluidframework/common-definitions": "^0.20.1",
19
+ "@fluidframework/core-interfaces": "2.0.0-dev.4.1.0.148229",
20
+ "@fluidframework/driver-definitions": "2.0.0-dev.4.1.0.148229",
21
+ "@fluidframework/protocol-definitions": "^1.1.0",
22
+ "events": "^3.1.0"
23
+ },
24
+ "devDependencies": {
25
+ "@fluid-tools/build-cli": "^0.13.1",
26
+ "@fluidframework/build-common": "^1.1.0",
27
+ "@fluidframework/build-tools": "^0.13.1",
28
+ "@fluidframework/container-definitions-previous": "npm:@fluidframework/container-definitions@2.0.0-internal.4.0.0",
29
+ "@fluidframework/eslint-config-fluid": "^2.0.0",
30
+ "@microsoft/api-extractor": "^7.34.4",
31
+ "@types/events": "^3.0.0",
32
+ "concurrently": "^7.6.0",
33
+ "copyfiles": "^2.4.1",
34
+ "eslint": "~8.6.0",
35
+ "prettier": "~2.6.2",
36
+ "rimraf": "^4.4.0",
37
+ "typescript": "~4.5.5"
38
+ },
39
+ "typeValidation": {
40
+ "broken": {}
41
+ },
17
42
  "scripts": {
18
43
  "build": "concurrently npm:build:compile npm:lint && npm run build:docs",
19
44
  "build:commonjs": "npm run tsc && npm run typetests:gen && npm run build:test",
@@ -37,37 +62,7 @@
37
62
  "prettier:fix": "prettier --write . --ignore-path ../../../.prettierignore",
38
63
  "tsc": "tsc",
39
64
  "tsc:watch": "tsc --watch",
40
- "typetests:gen": "flub generate typetests --generate --dir .",
65
+ "typetests:gen": "fluid-type-test-generator",
41
66
  "typetests:prepare": "flub generate typetests --prepare --dir . --pin"
42
- },
43
- "dependencies": {
44
- "@fluidframework/common-definitions": "^0.20.1",
45
- "@fluidframework/core-interfaces": ">=2.0.0-dev.3.1.0.125672 <2.0.0-dev.4.0.0",
46
- "@fluidframework/driver-definitions": ">=2.0.0-dev.3.1.0.125672 <2.0.0-dev.4.0.0",
47
- "@fluidframework/protocol-definitions": "^1.1.0",
48
- "events": "^3.1.0"
49
- },
50
- "devDependencies": {
51
- "@fluid-tools/build-cli": "^0.8.0",
52
- "@fluidframework/build-common": "^1.1.0",
53
- "@fluidframework/build-tools": "^0.8.0",
54
- "@fluidframework/container-definitions-previous": "npm:@fluidframework/container-definitions@2.0.0-internal.3.0.0",
55
- "@fluidframework/eslint-config-fluid": "^2.0.0",
56
- "@microsoft/api-extractor": "^7.22.2",
57
- "@rushstack/eslint-config": "^2.5.1",
58
- "@types/events": "^3.0.0",
59
- "concurrently": "^6.2.0",
60
- "copyfiles": "^2.4.1",
61
- "eslint": "~8.6.0",
62
- "prettier": "~2.6.2",
63
- "rimraf": "^2.6.2",
64
- "typescript": "~4.5.5"
65
- },
66
- "typeValidation": {
67
- "version": "2.0.0-internal.3.1.0",
68
- "previousVersionStyle": "~previousMinor",
69
- "baselineRange": ">=2.0.0-internal.3.0.0 <2.0.0-internal.3.1.0",
70
- "baselineVersion": "2.0.0-internal.3.0.0",
71
- "broken": {}
72
67
  }
73
- }
68
+ }
package/src/deltas.ts CHANGED
@@ -26,26 +26,6 @@ import {
26
26
  export interface IConnectionDetails {
27
27
  clientId: string;
28
28
  claims: ITokenClaims;
29
-
30
- /**
31
- * @deprecated No replacement API recommended.
32
- */
33
- existing: boolean;
34
-
35
- /**
36
- * @deprecated No replacement API recommended.
37
- */
38
- mode: ConnectionMode;
39
-
40
- /**
41
- * @deprecated No replacement API recommended.
42
- */
43
- version: string;
44
-
45
- /**
46
- * @deprecated No replacement API recommended.
47
- */
48
- initialClients: ISignalClient[];
49
29
  serviceConfiguration: IClientConfiguration;
50
30
 
51
31
  /**
@@ -61,6 +41,15 @@ export interface IConnectionDetails {
61
41
  checkpointSequenceNumber: number | undefined;
62
42
  }
63
43
 
44
+ /**
45
+ * Internal version of IConnectionDetails with props are only exposed internally
46
+ */
47
+ export interface IConnectionDetailsInternal extends IConnectionDetails {
48
+ mode: ConnectionMode;
49
+ version: string;
50
+ initialClients: ISignalClient[];
51
+ }
52
+
64
53
  /**
65
54
  * Interface used to define a strategy for handling incoming delta messages
66
55
  */
package/src/error.ts CHANGED
@@ -84,6 +84,19 @@ export interface ContainerWarning extends IErrorBase {
84
84
 
85
85
  /**
86
86
  * Represents errors raised on container.
87
+ *
88
+ * @see
89
+ *
90
+ * The following are commonly thrown error types, but `errorType` could be any string.
91
+ *
92
+ * - {@link @fluidframework/container-definitions#ContainerErrorType}
93
+ *
94
+ * - {@link @fluidframework/driver-definitions#DriverErrorType}
95
+ *
96
+ * - {@link @fluidframework/odsp-driver-definitions#OdspErrorType}
97
+ *
98
+ * - {@link @fluidframework/routerlicious-driver#RouterliciousErrorType}
99
+ *
87
100
  */
88
101
  export type ICriticalContainerError = IErrorBase;
89
102
 
package/src/index.ts CHANGED
@@ -17,6 +17,7 @@ export {
17
17
  } from "./browserPackage";
18
18
  export {
19
19
  IConnectionDetails,
20
+ IConnectionDetailsInternal,
20
21
  IDeltaHandlerStrategy,
21
22
  IDeltaManager,
22
23
  IDeltaManagerEvents,
@@ -72,4 +73,3 @@ export {
72
73
  IRuntime,
73
74
  IRuntimeFactory,
74
75
  } from "./runtime";
75
- export { IFluidTokenProvider, IProvideFluidTokenProvider } from "./tokenProvider";
package/src/loader.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { IRequest, IResponse, IFluidRouter } from "@fluidframework/core-interfaces";
6
+ import { IRequest, IResponse, IFluidRouter, FluidObject } from "@fluidframework/core-interfaces";
7
7
  import {
8
8
  IClientDetails,
9
9
  IDocumentMessage,
@@ -87,8 +87,13 @@ export interface IFluidCodeResolver {
87
87
 
88
88
  /**
89
89
  * Code AllowListing Interface
90
+ *
91
+ * @deprecated 2.0.0-internal.3.2.0 Fluid does not prescribe a particular code validation approach. Will be removed in an upcoming release.
90
92
  */
91
93
  export interface ICodeAllowList {
94
+ /**
95
+ * @deprecated 2.0.0-internal.3.2.0 Fluid does not prescribe a particular code validation approach. Will be removed in an upcoming release.
96
+ */
92
97
  testSource(source: IResolvedFluidCodeDetails): Promise<boolean>;
93
98
  }
94
99
 
@@ -155,7 +160,19 @@ export interface IContainerEvents extends IEvent {
155
160
  (event: "disconnected", listener: () => void);
156
161
 
157
162
  /**
158
- * Emitted when a {@link AttachState.Detached | detached} container is
163
+ * Emitted when a {@link AttachState.Detached | detached} container begins the process of
164
+ * {@link AttachState.Attaching | attached} to the Fluid service.
165
+ *
166
+ * @see
167
+ *
168
+ * - {@link IContainer.attachState}
169
+ *
170
+ * - {@link IContainer.attach}
171
+ */
172
+ (event: "attaching", listener: () => void);
173
+
174
+ /**
175
+ * Emitted when the {@link AttachState.Attaching | attaching} process is complete and the container is
159
176
  * {@link AttachState.Attached | attached} to the Fluid service.
160
177
  *
161
178
  * @see
@@ -351,6 +368,8 @@ export interface IContainer extends IEventProvider<IContainerEvents>, IFluidRout
351
368
  /**
352
369
  * Closes the container and returns serialized local state intended to be
353
370
  * given to a newly loaded container.
371
+ * @experimental
372
+ * {@link https://github.com/microsoft/FluidFramework/packages/tree/main/loader/container-loader/closeAndGetPendingLocalState.md}
354
373
  */
355
374
  closeAndGetPendingLocalState(): string;
356
375
 
@@ -454,6 +473,19 @@ export interface IContainer extends IEventProvider<IContainerEvents>, IFluidRout
454
473
  * @alpha
455
474
  */
456
475
  forceReadonly?(readonly: boolean);
476
+
477
+ /**
478
+ * Exposes the entryPoint for the container.
479
+ * Use this as the primary way of getting access to the user-defined logic within the container.
480
+ * If the method is undefined or the returned promise returns undefined (meaning that exposing the entryPoint
481
+ * hasn't been implemented in a particular scenario) fall back to the current approach of requesting the default
482
+ * object of the container through the request pattern.
483
+ *
484
+ * @remarks The plan is that eventually IContainer will no longer implement IFluidRouter (and thus won't have a
485
+ * request() method), this method will no longer be optional, and it will become the only way to access
486
+ * the entryPoint for the container.
487
+ */
488
+ getEntryPoint?(): Promise<FluidObject | undefined>;
457
489
  }
458
490
 
459
491
  /**
@@ -522,6 +554,7 @@ export type ILoaderOptions = {
522
554
  */
523
555
  export enum LoaderHeader {
524
556
  /**
557
+ * @deprecated In next release, all caching functionality will be removed, and this is not useful anymore
525
558
  * Override the Loader's default caching behavior for this container.
526
559
  */
527
560
  cache = "fluid-cache",
@@ -589,6 +622,9 @@ export interface IContainerLoadMode {
589
622
  * Set of Request Headers that the Loader understands and may inspect or modify
590
623
  */
591
624
  export interface ILoaderHeader {
625
+ /**
626
+ * @deprecated In next release, all caching functionality will be removed, and this is not useful anymore
627
+ */
592
628
  [LoaderHeader.cache]: boolean;
593
629
  [LoaderHeader.clientDetails]: IClientDetails;
594
630
  [LoaderHeader.loadMode]: IContainerLoadMode;
package/src/runtime.ts CHANGED
@@ -89,14 +89,34 @@ export interface IRuntime extends IDisposable {
89
89
 
90
90
  /**
91
91
  * Get pending local state in a serializable format to be given back to a newly loaded container
92
+ * @experimental
93
+ * {@link https://github.com/microsoft/FluidFramework/packages/tree/main/loader/container-loader/closeAndGetPendingLocalState.md}
92
94
  */
93
95
  getPendingLocalState(): unknown;
94
96
 
95
97
  /**
96
98
  * Notify runtime that container is moving to "Attaching" state
97
99
  * @param snapshot - snapshot created at attach time
100
+ * @deprecated - not necessary after op replay moved to Container
98
101
  */
99
102
  notifyAttaching(snapshot: ISnapshotTreeWithBlobContents): void;
103
+
104
+ /**
105
+ * Notify runtime that we have processed a saved message, so that it can do async work (applying
106
+ * stashed ops) after having processed it.
107
+ */
108
+ notifyOpReplay?(message: ISequencedDocumentMessage): Promise<void>;
109
+
110
+ /**
111
+ * Exposes the entryPoint for the container runtime.
112
+ * Use this as the primary way of getting access to the user-defined logic within the container runtime.
113
+ *
114
+ * @see {@link IContainer.getEntryPoint}
115
+ *
116
+ * @remarks The plan is that eventually IRuntime will no longer have a request() method, this method will no
117
+ * longer be optional, and it will become the only way to access the entryPoint for the runtime.
118
+ */
119
+ getEntryPoint?(): Promise<FluidObject | undefined>;
100
120
  }
101
121
 
102
122
  /**
@@ -106,6 +126,7 @@ export interface IBatchMessage {
106
126
  contents?: string;
107
127
  metadata: Record<string, unknown> | undefined;
108
128
  compression?: string;
129
+ referenceSequenceNumber?: number;
109
130
  }
110
131
 
111
132
  /**
@@ -128,8 +149,11 @@ export interface IContainerContext extends IDisposable {
128
149
  /** @deprecated Please use submitBatchFn & submitSummaryFn */
129
150
  readonly submitFn: (type: MessageType, contents: any, batch: boolean, appData?: any) => number;
130
151
  /** @returns clientSequenceNumber of last message in a batch */
131
- readonly submitBatchFn: (batch: IBatchMessage[]) => number;
132
- readonly submitSummaryFn: (summaryOp: ISummaryContent) => number;
152
+ readonly submitBatchFn: (batch: IBatchMessage[], referenceSequenceNumber?: number) => number;
153
+ readonly submitSummaryFn: (
154
+ summaryOp: ISummaryContent,
155
+ referenceSequenceNumber?: number,
156
+ ) => number;
133
157
  readonly submitSignalFn: (contents: any) => void;
134
158
  readonly disposeFn?: (error?: ICriticalContainerError) => void;
135
159
  readonly closeFn: (error?: ICriticalContainerError) => void;
@@ -171,12 +195,22 @@ export interface IContainerContext extends IDisposable {
171
195
  getLoadedFromVersion(): IVersion | undefined;
172
196
 
173
197
  updateDirtyContainerState(dirty: boolean): void;
198
+
199
+ readonly supportedFeatures?: ReadonlyMap<string, unknown>;
200
+
174
201
  /**
175
202
  * WARNING: this id is meant for telemetry usages ONLY, not recommended for other consumption
176
203
  * This id is not supposed to be exposed anywhere else. It is dependant on usage or drivers
177
204
  * and scenarios which can change in the future.
178
205
  */
179
206
  readonly id: string;
207
+
208
+ /**
209
+ * Proxy for {@link IRuntime.getEntryPoint}, the entryPoint defined in the container's runtime.
210
+ *
211
+ * @see {@link IContainer.getEntryPoint}
212
+ */
213
+ getEntryPoint?(): Promise<FluidObject | undefined>;
180
214
  }
181
215
 
182
216
  export const IRuntimeFactory: keyof IProvideRuntimeFactory = "IRuntimeFactory";
@@ -1,14 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- export declare const IFluidTokenProvider: keyof IProvideFluidTokenProvider;
6
- export interface IProvideFluidTokenProvider {
7
- readonly IFluidTokenProvider: IFluidTokenProvider;
8
- }
9
- export interface IFluidTokenProvider extends IProvideFluidTokenProvider {
10
- intelligence: {
11
- [service: string]: any;
12
- };
13
- }
14
- //# sourceMappingURL=tokenProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokenProvider.d.ts","sourceRoot":"","sources":["../src/tokenProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,mBAAmB,EAAE,MAAM,0BAAkD,CAAC;AAE3F,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;CAClD;AAED,MAAM,WAAW,mBAAoB,SAAQ,0BAA0B;IACtE,YAAY,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CACzC"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- /*!
3
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
- * Licensed under the MIT License.
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.IFluidTokenProvider = void 0;
8
- exports.IFluidTokenProvider = "IFluidTokenProvider";
9
- //# sourceMappingURL=tokenProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokenProvider.js","sourceRoot":"","sources":["../src/tokenProvider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEU,QAAA,mBAAmB,GAAqC,qBAAqB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport const IFluidTokenProvider: keyof IProvideFluidTokenProvider = \"IFluidTokenProvider\";\n\nexport interface IProvideFluidTokenProvider {\n\treadonly IFluidTokenProvider: IFluidTokenProvider;\n}\n\nexport interface IFluidTokenProvider extends IProvideFluidTokenProvider {\n\tintelligence: { [service: string]: any };\n}\n"]}
@@ -1,14 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- export declare const IFluidTokenProvider: keyof IProvideFluidTokenProvider;
6
- export interface IProvideFluidTokenProvider {
7
- readonly IFluidTokenProvider: IFluidTokenProvider;
8
- }
9
- export interface IFluidTokenProvider extends IProvideFluidTokenProvider {
10
- intelligence: {
11
- [service: string]: any;
12
- };
13
- }
14
- //# sourceMappingURL=tokenProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokenProvider.d.ts","sourceRoot":"","sources":["../src/tokenProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,mBAAmB,EAAE,MAAM,0BAAkD,CAAC;AAE3F,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;CAClD;AAED,MAAM,WAAW,mBAAoB,SAAQ,0BAA0B;IACtE,YAAY,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CACzC"}
@@ -1,6 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- export const IFluidTokenProvider = "IFluidTokenProvider";
6
- //# sourceMappingURL=tokenProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokenProvider.js","sourceRoot":"","sources":["../src/tokenProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAqC,qBAAqB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport const IFluidTokenProvider: keyof IProvideFluidTokenProvider = \"IFluidTokenProvider\";\n\nexport interface IProvideFluidTokenProvider {\n\treadonly IFluidTokenProvider: IFluidTokenProvider;\n}\n\nexport interface IFluidTokenProvider extends IProvideFluidTokenProvider {\n\tintelligence: { [service: string]: any };\n}\n"]}
@@ -1,14 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
-
6
- export const IFluidTokenProvider: keyof IProvideFluidTokenProvider = "IFluidTokenProvider";
7
-
8
- export interface IProvideFluidTokenProvider {
9
- readonly IFluidTokenProvider: IFluidTokenProvider;
10
- }
11
-
12
- export interface IFluidTokenProvider extends IProvideFluidTokenProvider {
13
- intelligence: { [service: string]: any };
14
- }