@fluidframework/container-loader 2.0.0-rc.2.0.2 → 2.0.0-rc.3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/api-report/container-loader.api.md +13 -13
  3. package/dist/attachment.d.ts +6 -9
  4. package/dist/attachment.d.ts.map +1 -1
  5. package/dist/attachment.js +5 -5
  6. package/dist/attachment.js.map +1 -1
  7. package/dist/audience.d.ts +1 -1
  8. package/dist/audience.d.ts.map +1 -1
  9. package/dist/audience.js +4 -4
  10. package/dist/audience.js.map +1 -1
  11. package/dist/catchUpMonitor.d.ts +1 -1
  12. package/dist/catchUpMonitor.d.ts.map +1 -1
  13. package/dist/catchUpMonitor.js +2 -2
  14. package/dist/catchUpMonitor.js.map +1 -1
  15. package/dist/connectionManager.d.ts +4 -4
  16. package/dist/connectionManager.d.ts.map +1 -1
  17. package/dist/connectionManager.js +48 -43
  18. package/dist/connectionManager.js.map +1 -1
  19. package/dist/connectionStateHandler.d.ts +3 -3
  20. package/dist/connectionStateHandler.d.ts.map +1 -1
  21. package/dist/connectionStateHandler.js +27 -27
  22. package/dist/connectionStateHandler.js.map +1 -1
  23. package/dist/container.d.ts +9 -46
  24. package/dist/container.d.ts.map +1 -1
  25. package/dist/container.js +105 -116
  26. package/dist/container.js.map +1 -1
  27. package/dist/containerContext.d.ts +19 -7
  28. package/dist/containerContext.d.ts.map +1 -1
  29. package/dist/containerContext.js +7 -2
  30. package/dist/containerContext.js.map +1 -1
  31. package/dist/containerStorageAdapter.d.ts +3 -3
  32. package/dist/containerStorageAdapter.d.ts.map +1 -1
  33. package/dist/containerStorageAdapter.js +6 -6
  34. package/dist/containerStorageAdapter.js.map +1 -1
  35. package/dist/contracts.d.ts +4 -3
  36. package/dist/contracts.d.ts.map +1 -1
  37. package/dist/contracts.js +2 -2
  38. package/dist/contracts.js.map +1 -1
  39. package/dist/debugLogger.d.ts +2 -1
  40. package/dist/debugLogger.d.ts.map +1 -1
  41. package/dist/debugLogger.js +4 -4
  42. package/dist/debugLogger.js.map +1 -1
  43. package/dist/deltaManager.d.ts +11 -7
  44. package/dist/deltaManager.d.ts.map +1 -1
  45. package/dist/deltaManager.js +53 -50
  46. package/dist/deltaManager.js.map +1 -1
  47. package/dist/deltaQueue.d.ts +1 -1
  48. package/dist/deltaQueue.d.ts.map +1 -1
  49. package/dist/deltaQueue.js +5 -5
  50. package/dist/deltaQueue.js.map +1 -1
  51. package/dist/error.d.ts +3 -2
  52. package/dist/error.d.ts.map +1 -1
  53. package/dist/error.js +5 -5
  54. package/dist/error.js.map +1 -1
  55. package/dist/legacy.d.ts +29 -0
  56. package/dist/loader.d.ts +4 -4
  57. package/dist/loader.d.ts.map +1 -1
  58. package/dist/loader.js +23 -23
  59. package/dist/loader.js.map +1 -1
  60. package/dist/location-redirection-utilities/resolveWithLocationRedirection.d.ts +2 -2
  61. package/dist/location-redirection-utilities/resolveWithLocationRedirection.d.ts.map +1 -1
  62. package/dist/location-redirection-utilities/resolveWithLocationRedirection.js +2 -2
  63. package/dist/location-redirection-utilities/resolveWithLocationRedirection.js.map +1 -1
  64. package/dist/noopHeuristic.d.ts +1 -1
  65. package/dist/noopHeuristic.d.ts.map +1 -1
  66. package/dist/noopHeuristic.js +6 -6
  67. package/dist/noopHeuristic.js.map +1 -1
  68. package/dist/packageVersion.d.ts +1 -1
  69. package/dist/packageVersion.js +1 -1
  70. package/dist/packageVersion.js.map +1 -1
  71. package/dist/protocol.d.ts +1 -1
  72. package/dist/protocol.d.ts.map +1 -1
  73. package/dist/protocol.js +2 -2
  74. package/dist/protocol.js.map +1 -1
  75. package/dist/protocolTreeDocumentStorageService.d.ts +4 -4
  76. package/dist/protocolTreeDocumentStorageService.d.ts.map +1 -1
  77. package/dist/protocolTreeDocumentStorageService.js.map +1 -1
  78. package/dist/public.d.ts +14 -0
  79. package/dist/quorum.d.ts +1 -1
  80. package/dist/quorum.d.ts.map +1 -1
  81. package/dist/quorum.js +4 -0
  82. package/dist/quorum.js.map +1 -1
  83. package/dist/retriableDocumentStorageService.d.ts +2 -2
  84. package/dist/retriableDocumentStorageService.d.ts.map +1 -1
  85. package/dist/retriableDocumentStorageService.js +7 -7
  86. package/dist/retriableDocumentStorageService.js.map +1 -1
  87. package/dist/serializedStateManager.d.ts +86 -16
  88. package/dist/serializedStateManager.d.ts.map +1 -1
  89. package/dist/serializedStateManager.js +182 -82
  90. package/dist/serializedStateManager.js.map +1 -1
  91. package/dist/utils.d.ts +24 -9
  92. package/dist/utils.d.ts.map +1 -1
  93. package/dist/utils.js +82 -25
  94. package/dist/utils.js.map +1 -1
  95. package/internal.d.ts +11 -0
  96. package/legacy.d.ts +11 -0
  97. package/lib/attachment.d.ts +6 -9
  98. package/lib/attachment.d.ts.map +1 -1
  99. package/lib/attachment.js +1 -1
  100. package/lib/attachment.js.map +1 -1
  101. package/lib/audience.d.ts +1 -1
  102. package/lib/audience.d.ts.map +1 -1
  103. package/lib/audience.js +1 -1
  104. package/lib/audience.js.map +1 -1
  105. package/lib/catchUpMonitor.d.ts +1 -1
  106. package/lib/catchUpMonitor.d.ts.map +1 -1
  107. package/lib/catchUpMonitor.js +1 -1
  108. package/lib/catchUpMonitor.js.map +1 -1
  109. package/lib/connectionManager.d.ts +4 -4
  110. package/lib/connectionManager.d.ts.map +1 -1
  111. package/lib/connectionManager.js +11 -6
  112. package/lib/connectionManager.js.map +1 -1
  113. package/lib/connectionStateHandler.d.ts +3 -3
  114. package/lib/connectionStateHandler.d.ts.map +1 -1
  115. package/lib/connectionStateHandler.js +2 -2
  116. package/lib/connectionStateHandler.js.map +1 -1
  117. package/lib/container.d.ts +9 -46
  118. package/lib/container.d.ts.map +1 -1
  119. package/lib/container.js +37 -48
  120. package/lib/container.js.map +1 -1
  121. package/lib/containerContext.d.ts +19 -7
  122. package/lib/containerContext.d.ts.map +1 -1
  123. package/lib/containerContext.js +7 -2
  124. package/lib/containerContext.js.map +1 -1
  125. package/lib/containerStorageAdapter.d.ts +3 -3
  126. package/lib/containerStorageAdapter.d.ts.map +1 -1
  127. package/lib/containerStorageAdapter.js +2 -2
  128. package/lib/containerStorageAdapter.js.map +1 -1
  129. package/lib/contracts.d.ts +4 -3
  130. package/lib/contracts.d.ts.map +1 -1
  131. package/lib/contracts.js +1 -1
  132. package/lib/contracts.js.map +1 -1
  133. package/lib/debugLogger.d.ts +2 -1
  134. package/lib/debugLogger.d.ts.map +1 -1
  135. package/lib/debugLogger.js +1 -1
  136. package/lib/debugLogger.js.map +1 -1
  137. package/lib/deltaManager.d.ts +11 -7
  138. package/lib/deltaManager.d.ts.map +1 -1
  139. package/lib/deltaManager.js +13 -10
  140. package/lib/deltaManager.js.map +1 -1
  141. package/lib/deltaQueue.d.ts +1 -1
  142. package/lib/deltaQueue.d.ts.map +1 -1
  143. package/lib/deltaQueue.js +2 -2
  144. package/lib/deltaQueue.js.map +1 -1
  145. package/lib/error.d.ts +3 -2
  146. package/lib/error.d.ts.map +1 -1
  147. package/lib/error.js +2 -2
  148. package/lib/error.js.map +1 -1
  149. package/lib/legacy.d.ts +29 -0
  150. package/lib/loader.d.ts +4 -4
  151. package/lib/loader.d.ts.map +1 -1
  152. package/lib/loader.js +4 -4
  153. package/lib/loader.js.map +1 -1
  154. package/lib/location-redirection-utilities/resolveWithLocationRedirection.d.ts +2 -2
  155. package/lib/location-redirection-utilities/resolveWithLocationRedirection.d.ts.map +1 -1
  156. package/lib/location-redirection-utilities/resolveWithLocationRedirection.js +2 -2
  157. package/lib/location-redirection-utilities/resolveWithLocationRedirection.js.map +1 -1
  158. package/lib/noopHeuristic.d.ts +1 -1
  159. package/lib/noopHeuristic.d.ts.map +1 -1
  160. package/lib/noopHeuristic.js +2 -2
  161. package/lib/noopHeuristic.js.map +1 -1
  162. package/lib/packageVersion.d.ts +1 -1
  163. package/lib/packageVersion.js +1 -1
  164. package/lib/packageVersion.js.map +1 -1
  165. package/lib/protocol.d.ts +1 -1
  166. package/lib/protocol.d.ts.map +1 -1
  167. package/lib/protocol.js +1 -1
  168. package/lib/protocol.js.map +1 -1
  169. package/lib/protocolTreeDocumentStorageService.d.ts +4 -4
  170. package/lib/protocolTreeDocumentStorageService.d.ts.map +1 -1
  171. package/lib/protocolTreeDocumentStorageService.js.map +1 -1
  172. package/lib/public.d.ts +14 -0
  173. package/lib/quorum.d.ts +1 -1
  174. package/lib/quorum.d.ts.map +1 -1
  175. package/lib/quorum.js +4 -0
  176. package/lib/quorum.js.map +1 -1
  177. package/lib/retriableDocumentStorageService.d.ts +2 -2
  178. package/lib/retriableDocumentStorageService.d.ts.map +1 -1
  179. package/lib/retriableDocumentStorageService.js +3 -3
  180. package/lib/retriableDocumentStorageService.js.map +1 -1
  181. package/lib/serializedStateManager.d.ts +86 -16
  182. package/lib/serializedStateManager.d.ts.map +1 -1
  183. package/lib/serializedStateManager.js +174 -77
  184. package/lib/serializedStateManager.js.map +1 -1
  185. package/lib/utils.d.ts +24 -9
  186. package/lib/utils.d.ts.map +1 -1
  187. package/lib/utils.js +69 -15
  188. package/lib/utils.js.map +1 -1
  189. package/package.json +37 -58
  190. package/src/attachment.ts +10 -8
  191. package/src/audience.ts +3 -2
  192. package/src/catchUpMonitor.ts +2 -2
  193. package/src/connectionManager.ts +27 -20
  194. package/src/connectionStateHandler.ts +7 -7
  195. package/src/container.ts +90 -143
  196. package/src/containerContext.ts +22 -12
  197. package/src/containerStorageAdapter.ts +7 -6
  198. package/src/contracts.ts +4 -5
  199. package/src/debugLogger.ts +3 -4
  200. package/src/deltaManager.ts +40 -30
  201. package/src/deltaQueue.ts +2 -2
  202. package/src/error.ts +5 -4
  203. package/src/loader.ts +25 -23
  204. package/src/location-redirection-utilities/resolveWithLocationRedirection.ts +4 -4
  205. package/src/noopHeuristic.ts +3 -3
  206. package/src/packageVersion.ts +1 -1
  207. package/src/protocol.ts +2 -2
  208. package/src/protocolTreeDocumentStorageService.ts +4 -1
  209. package/src/quorum.ts +2 -1
  210. package/src/retriableDocumentStorageService.ts +6 -5
  211. package/src/serializedStateManager.ts +299 -111
  212. package/src/utils.ts +103 -24
  213. package/api-extractor-cjs.json +0 -8
  214. package/dist/container-loader-alpha.d.ts +0 -275
  215. package/dist/container-loader-beta.d.ts +0 -101
  216. package/dist/container-loader-public.d.ts +0 -101
  217. package/dist/container-loader-untrimmed.d.ts +0 -331
  218. package/lib/container-loader-alpha.d.ts +0 -275
  219. package/lib/container-loader-beta.d.ts +0 -101
  220. package/lib/container-loader-public.d.ts +0 -101
  221. package/lib/container-loader-untrimmed.d.ts +0 -331
  222. package/lib/test/attachment.spec.js +0 -380
  223. package/lib/test/attachment.spec.js.map +0 -1
  224. package/lib/test/catchUpMonitor.spec.js +0 -88
  225. package/lib/test/catchUpMonitor.spec.js.map +0 -1
  226. package/lib/test/connectionManager.spec.js +0 -201
  227. package/lib/test/connectionManager.spec.js.map +0 -1
  228. package/lib/test/connectionStateHandler.spec.js +0 -555
  229. package/lib/test/connectionStateHandler.spec.js.map +0 -1
  230. package/lib/test/container.spec.js +0 -64
  231. package/lib/test/container.spec.js.map +0 -1
  232. package/lib/test/deltaManager.spec.js +0 -405
  233. package/lib/test/deltaManager.spec.js.map +0 -1
  234. package/lib/test/loader.spec.js +0 -212
  235. package/lib/test/loader.spec.js.map +0 -1
  236. package/lib/test/locationRedirectionTests.spec.js +0 -44
  237. package/lib/test/locationRedirectionTests.spec.js.map +0 -1
  238. package/lib/test/serializedStateManager.spec.js +0 -148
  239. package/lib/test/serializedStateManager.spec.js.map +0 -1
  240. package/lib/test/snapshotConversionTest.spec.js +0 -79
  241. package/lib/test/snapshotConversionTest.spec.js.map +0 -1
  242. package/lib/test/types/validateContainerLoaderPrevious.generated.js +0 -38
  243. package/lib/test/types/validateContainerLoaderPrevious.generated.js.map +0 -1
  244. package/lib/test/utils.spec.js +0 -31
  245. package/lib/test/utils.spec.js.map +0 -1
  246. /package/{dist → lib}/tsdoc-metadata.json +0 -0
@@ -1,331 +0,0 @@
1
- import { FluidObject } from '@fluidframework/core-interfaces';
2
- import { IAudienceOwner } from '@fluidframework/container-definitions';
3
- import { IClientDetails } from '@fluidframework/protocol-definitions';
4
- import { IConfigProviderBase } from '@fluidframework/core-interfaces';
5
- import { IContainer } from '@fluidframework/container-definitions';
6
- import { IDocumentAttributes } from '@fluidframework/protocol-definitions';
7
- import { IDocumentServiceFactory } from '@fluidframework/driver-definitions';
8
- import { IDocumentStorageService } from '@fluidframework/driver-definitions';
9
- import { IFluidCodeDetails } from '@fluidframework/container-definitions';
10
- import { IFluidModule } from '@fluidframework/container-definitions';
11
- import { IHostLoader } from '@fluidframework/container-definitions';
12
- import { ILoaderOptions as ILoaderOptions_2 } from '@fluidframework/container-definitions';
13
- import { ILocationRedirectionError } from '@fluidframework/driver-definitions';
14
- import { IProtocolHandler as IProtocolHandler_2 } from '@fluidframework/protocol-base';
15
- import { IProvideFluidCodeDetailsComparer } from '@fluidframework/container-definitions';
16
- import { IQuorumSnapshot } from '@fluidframework/protocol-base';
17
- import { IRequest } from '@fluidframework/core-interfaces';
18
- import { ISignalMessage } from '@fluidframework/protocol-definitions';
19
- import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
20
- import { ITelemetryLoggerExt } from '@fluidframework/telemetry-utils';
21
- import { IUrlResolver } from '@fluidframework/driver-definitions';
22
-
23
- /**
24
- * The state of the Container's connection to the service.
25
- * @public
26
- */
27
- export declare enum ConnectionState {
28
- /**
29
- * The container is not connected to the ordering service
30
- * Note - When in this state the container may be about to reconnect,
31
- * or may remain disconnected until explicitly told to connect.
32
- */
33
- Disconnected = 0,
34
- /**
35
- * The container is disconnected but actively trying to establish a new connection
36
- * PLEASE NOTE that this numerical value falls out of the order you may expect for this state
37
- */
38
- EstablishingConnection = 3,
39
- /**
40
- * The container has an inbound connection only, and is catching up to the latest known state from the service.
41
- */
42
- CatchingUp = 1,
43
- /**
44
- * The container is fully connected and syncing
45
- */
46
- Connected = 2
47
- }
48
-
49
- /**
50
- * @deprecated ICodeDetailsLoader interface is moved to {@link @fluidframework/container-definitions#ICodeDetailsLoader}
51
- * to have code loading modules in one package. #8193
52
- * Fluid code loader resolves a code module matching the document schema, i.e. code details, such as
53
- * a package name and package version range.
54
- * @alpha
55
- */
56
- export declare interface ICodeDetailsLoader extends Partial<IProvideFluidCodeDetailsComparer> {
57
- /**
58
- * Load the code module (package) that is capable to interact with the document.
59
- *
60
- * @param source - Code proposal that articulates the current schema the document is written in.
61
- * @returns Code module entry point along with the code details associated with it.
62
- */
63
- load(source: IFluidCodeDetails): Promise<IFluidModuleWithDetails>;
64
- }
65
-
66
- /**
67
- * IContainer interface that includes experimental features still under development.
68
- * @internal
69
- */
70
- export declare interface IContainerExperimental extends IContainer {
71
- /**
72
- * Get pending state from container. WARNING: misuse of this API can result in duplicate op
73
- * submission and potential document corruption. The blob returned MUST be deleted if and when this
74
- * container emits a "connected" event.
75
- * @returns serialized blob that can be passed to Loader.resolve()
76
- */
77
- getPendingLocalState?(): Promise<string>;
78
- /**
79
- * Closes the container and returns serialized local state intended to be
80
- * given to a newly loaded container.
81
- */
82
- closeAndGetPendingLocalState?(stopBlobAttachingSignal?: AbortSignal): Promise<string>;
83
- }
84
-
85
- /**
86
- * Subset of IDocumentStorageService which only supports createBlob() and readBlob(). This is used to support
87
- * blobs in detached containers.
88
- * @alpha
89
- */
90
- export declare type IDetachedBlobStorage = Pick<IDocumentStorageService, "createBlob" | "readBlob"> & {
91
- size: number;
92
- /**
93
- * Return an array of all blob IDs present in storage
94
- */
95
- getBlobIds(): string[];
96
- };
97
-
98
- /**
99
- * @deprecated IFluidModuleWithDetails interface is moved to
100
- * {@link @fluidframework/container-definitions#IFluidModuleWithDetails}
101
- * to have all the code loading modules in one package. #8193
102
- * Encapsulates a module entry point with corresponding code details.
103
- * @alpha
104
- */
105
- export declare interface IFluidModuleWithDetails {
106
- /** Fluid code module that implements the runtime factory needed to instantiate the container runtime. */
107
- module: IFluidModule;
108
- /**
109
- * Code details associated with the module. Represents a document schema this module supports.
110
- * If the code loader implements the {@link @fluidframework/core-interfaces#IFluidCodeDetailsComparer} interface,
111
- * it'll be called to determine whether the module code details satisfy the new code proposal in the quorum.
112
- */
113
- details: IFluidCodeDetails;
114
- }
115
-
116
- /**
117
- * @alpha
118
- */
119
- export declare interface ILoaderOptions extends ILoaderOptions_2 {
120
- summarizeProtocolTree?: boolean;
121
- }
122
-
123
- /**
124
- * Services and properties necessary for creating a loader
125
- * @alpha
126
- */
127
- export declare interface ILoaderProps {
128
- /**
129
- * The url resolver used by the loader for resolving external urls
130
- * into Fluid urls such that the container specified by the
131
- * external url can be loaded.
132
- */
133
- readonly urlResolver: IUrlResolver;
134
- /**
135
- * The document service factory take the Fluid url provided
136
- * by the resolved url and constructs all the necessary services
137
- * for communication with the container's server.
138
- */
139
- readonly documentServiceFactory: IDocumentServiceFactory;
140
- /**
141
- * The code loader handles loading the necessary code
142
- * for running a container once it is loaded.
143
- */
144
- readonly codeLoader: ICodeDetailsLoader;
145
- /**
146
- * A property bag of options used by various layers
147
- * to control features
148
- */
149
- readonly options?: ILoaderOptions;
150
- /**
151
- * Scope is provided to all container and is a set of shared
152
- * services for container's to integrate with their host environment.
153
- */
154
- readonly scope?: FluidObject;
155
- /**
156
- * The logger that all telemetry should be pushed to.
157
- */
158
- readonly logger?: ITelemetryBaseLogger;
159
- /**
160
- * Blobs storage for detached containers.
161
- */
162
- readonly detachedBlobStorage?: IDetachedBlobStorage;
163
- /**
164
- * The configuration provider which may be used to control features.
165
- */
166
- readonly configProvider?: IConfigProviderBase;
167
- /**
168
- * Optional property for allowing the container to use a custom
169
- * protocol implementation for handling the quorum and/or the audience.
170
- */
171
- readonly protocolHandlerBuilder?: ProtocolHandlerBuilder;
172
- }
173
-
174
- /**
175
- * Services and properties used by and exposed by the loader
176
- * @alpha
177
- */
178
- export declare interface ILoaderServices {
179
- /**
180
- * The url resolver used by the loader for resolving external urls
181
- * into Fluid urls such that the container specified by the
182
- * external url can be loaded.
183
- */
184
- readonly urlResolver: IUrlResolver;
185
- /**
186
- * The document service factory take the Fluid url provided
187
- * by the resolved url and constructs all the necessary services
188
- * for communication with the container's server.
189
- */
190
- readonly documentServiceFactory: IDocumentServiceFactory;
191
- /**
192
- * The code loader handles loading the necessary code
193
- * for running a container once it is loaded.
194
- */
195
- readonly codeLoader: ICodeDetailsLoader;
196
- /**
197
- * A property bag of options used by various layers
198
- * to control features
199
- */
200
- readonly options: ILoaderOptions;
201
- /**
202
- * Scope is provided to all container and is a set of shared
203
- * services for container's to integrate with their host environment.
204
- */
205
- readonly scope: FluidObject;
206
- /**
207
- * The logger downstream consumers should construct their loggers from
208
- */
209
- readonly subLogger: ITelemetryLoggerExt;
210
- /**
211
- * Blobs storage for detached containers.
212
- */
213
- readonly detachedBlobStorage?: IDetachedBlobStorage;
214
- /**
215
- * Optional property for allowing the container to use a custom
216
- * protocol implementation for handling the quorum and/or the audience.
217
- */
218
- readonly protocolHandlerBuilder?: ProtocolHandlerBuilder;
219
- }
220
-
221
- /**
222
- * Interface to represent the parsed parts of IResolvedUrl.url to help
223
- * in getting info about different parts of the url.
224
- * May not be compatible or relevant for any Url Resolver
225
- * @internal
226
- */
227
- export declare interface IParsedUrl {
228
- /**
229
- * It is combination of tenantid/docId part of the url.
230
- */
231
- id: string;
232
- /**
233
- * It is the deep link path in the url.
234
- */
235
- path: string;
236
- /**
237
- * Query string part of the url.
238
- */
239
- query: string;
240
- /**
241
- * Undefined means load latest snapshot, otherwise it's version ID passed to IDocumentStorageService.getVersions()
242
- * to figure out what snapshot to use.
243
- */
244
- version: string | undefined;
245
- }
246
-
247
- /**
248
- * @alpha
249
- */
250
- export declare interface IProtocolHandler extends IProtocolHandler_2 {
251
- readonly audience: IAudienceOwner;
252
- processSignal(message: ISignalMessage): any;
253
- }
254
-
255
- /**
256
- * Checks if the error is location redirection error.
257
- * @param error - error whose type is to be determined.
258
- * @returns `true` is the error is location redirection error, otherwise `false`.
259
- * @internal
260
- */
261
- export declare function isLocationRedirectionError(error: any): error is ILocationRedirectionError;
262
-
263
- /**
264
- * Manages Fluid resource loading
265
- * @alpha
266
- */
267
- export declare class Loader implements IHostLoader {
268
- readonly services: ILoaderServices;
269
- private readonly mc;
270
- constructor(loaderProps: ILoaderProps);
271
- createDetachedContainer(codeDetails: IFluidCodeDetails, createDetachedProps?: {
272
- canReconnect?: boolean;
273
- clientDetailsOverride?: IClientDetails;
274
- }): Promise<IContainer>;
275
- rehydrateDetachedContainerFromSnapshot(snapshot: string, createDetachedProps?: {
276
- canReconnect?: boolean;
277
- clientDetailsOverride?: IClientDetails;
278
- }): Promise<IContainer>;
279
- resolve(request: IRequest, pendingLocalState?: string): Promise<IContainer>;
280
- private resolveCore;
281
- private loadContainer;
282
- }
283
-
284
- /**
285
- * Function to be used for creating a protocol handler.
286
- * @alpha
287
- */
288
- export declare type ProtocolHandlerBuilder = (attributes: IDocumentAttributes, snapshot: IQuorumSnapshot, sendProposal: (key: string, value: any) => number) => IProtocolHandler;
289
-
290
- /**
291
- * Handles location redirection while fulfilling the loader request.
292
- * @param api - Callback in which user can wrap the loader.resolve or loader.request call.
293
- * @param request - request to be resolved.
294
- * @param urlResolver - resolver used to resolve the url.
295
- * @param logger - logger to send events.
296
- * @returns Response from the API call.
297
- * @alpha
298
- */
299
- export declare function resolveWithLocationRedirectionHandling<T>(api: (request: IRequest) => Promise<T>, request: IRequest, urlResolver: IUrlResolver, logger?: ITelemetryBaseLogger): Promise<T>;
300
-
301
- /**
302
- * Utility api to parse the IResolvedUrl.url into specific parts like querystring, path to get
303
- * deep link info etc.
304
- * Warning - This function may not be compatible with any Url Resolver's resolved url. It works
305
- * with urls of type: protocol://<string>/.../..?<querystring>
306
- * @param url - This is the IResolvedUrl.url part of the resolved url.
307
- * @returns The IParsedUrl representing the input URL, or undefined if the format was not supported
308
- * @internal
309
- */
310
- export declare function tryParseCompatibleResolvedUrl(url: string): IParsedUrl | undefined;
311
-
312
- /**
313
- * Waits until container connects to delta storage and gets up-to-date.
314
- *
315
- * Useful when resolving URIs and hitting 404, due to container being loaded from (stale) snapshot and not being
316
- * up to date. Host may chose to wait in such case and retry resolving URI.
317
- *
318
- * Warning: Will wait infinitely for connection to establish if there is no connection.
319
- * May result in deadlock if Container.disconnect() is called and never followed by a call to Container.connect().
320
- *
321
- * @returns `true`: container is up to date, it processed all the ops that were know at the time of first connection.
322
- *
323
- * `false`: storage does not provide indication of how far the client is. Container processed all the ops known to it,
324
- * but it maybe still behind.
325
- *
326
- * @throws an error beginning with `"Container closed"` if the container is closed before it catches up.
327
- * @alpha
328
- */
329
- export declare function waitContainerToCatchUp(container: IContainer): Promise<boolean>;
330
-
331
- export { }
@@ -1,275 +0,0 @@
1
- import { FluidObject } from '@fluidframework/core-interfaces';
2
- import { IAudienceOwner } from '@fluidframework/container-definitions';
3
- import { IClientDetails } from '@fluidframework/protocol-definitions';
4
- import { IConfigProviderBase } from '@fluidframework/core-interfaces';
5
- import { IContainer } from '@fluidframework/container-definitions';
6
- import { IDocumentAttributes } from '@fluidframework/protocol-definitions';
7
- import { IDocumentServiceFactory } from '@fluidframework/driver-definitions';
8
- import { IDocumentStorageService } from '@fluidframework/driver-definitions';
9
- import { IFluidCodeDetails } from '@fluidframework/container-definitions';
10
- import { IFluidModule } from '@fluidframework/container-definitions';
11
- import { IHostLoader } from '@fluidframework/container-definitions';
12
- import { ILoaderOptions as ILoaderOptions_2 } from '@fluidframework/container-definitions';
13
- import { ILocationRedirectionError } from '@fluidframework/driver-definitions';
14
- import { IProtocolHandler as IProtocolHandler_2 } from '@fluidframework/protocol-base';
15
- import { IProvideFluidCodeDetailsComparer } from '@fluidframework/container-definitions';
16
- import { IQuorumSnapshot } from '@fluidframework/protocol-base';
17
- import { IRequest } from '@fluidframework/core-interfaces';
18
- import { ISignalMessage } from '@fluidframework/protocol-definitions';
19
- import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
20
- import { ITelemetryLoggerExt } from '@fluidframework/telemetry-utils';
21
- import { IUrlResolver } from '@fluidframework/driver-definitions';
22
-
23
- /**
24
- * The state of the Container's connection to the service.
25
- * @public
26
- */
27
- export declare enum ConnectionState {
28
- /**
29
- * The container is not connected to the ordering service
30
- * Note - When in this state the container may be about to reconnect,
31
- * or may remain disconnected until explicitly told to connect.
32
- */
33
- Disconnected = 0,
34
- /**
35
- * The container is disconnected but actively trying to establish a new connection
36
- * PLEASE NOTE that this numerical value falls out of the order you may expect for this state
37
- */
38
- EstablishingConnection = 3,
39
- /**
40
- * The container has an inbound connection only, and is catching up to the latest known state from the service.
41
- */
42
- CatchingUp = 1,
43
- /**
44
- * The container is fully connected and syncing
45
- */
46
- Connected = 2
47
- }
48
-
49
- /**
50
- * @deprecated ICodeDetailsLoader interface is moved to {@link @fluidframework/container-definitions#ICodeDetailsLoader}
51
- * to have code loading modules in one package. #8193
52
- * Fluid code loader resolves a code module matching the document schema, i.e. code details, such as
53
- * a package name and package version range.
54
- * @alpha
55
- */
56
- export declare interface ICodeDetailsLoader extends Partial<IProvideFluidCodeDetailsComparer> {
57
- /**
58
- * Load the code module (package) that is capable to interact with the document.
59
- *
60
- * @param source - Code proposal that articulates the current schema the document is written in.
61
- * @returns Code module entry point along with the code details associated with it.
62
- */
63
- load(source: IFluidCodeDetails): Promise<IFluidModuleWithDetails>;
64
- }
65
-
66
- /* Excluded from this release type: IContainerExperimental */
67
-
68
- /**
69
- * Subset of IDocumentStorageService which only supports createBlob() and readBlob(). This is used to support
70
- * blobs in detached containers.
71
- * @alpha
72
- */
73
- export declare type IDetachedBlobStorage = Pick<IDocumentStorageService, "createBlob" | "readBlob"> & {
74
- size: number;
75
- /**
76
- * Return an array of all blob IDs present in storage
77
- */
78
- getBlobIds(): string[];
79
- };
80
-
81
- /**
82
- * @deprecated IFluidModuleWithDetails interface is moved to
83
- * {@link @fluidframework/container-definitions#IFluidModuleWithDetails}
84
- * to have all the code loading modules in one package. #8193
85
- * Encapsulates a module entry point with corresponding code details.
86
- * @alpha
87
- */
88
- export declare interface IFluidModuleWithDetails {
89
- /** Fluid code module that implements the runtime factory needed to instantiate the container runtime. */
90
- module: IFluidModule;
91
- /**
92
- * Code details associated with the module. Represents a document schema this module supports.
93
- * If the code loader implements the {@link @fluidframework/core-interfaces#IFluidCodeDetailsComparer} interface,
94
- * it'll be called to determine whether the module code details satisfy the new code proposal in the quorum.
95
- */
96
- details: IFluidCodeDetails;
97
- }
98
-
99
- /**
100
- * @alpha
101
- */
102
- export declare interface ILoaderOptions extends ILoaderOptions_2 {
103
- summarizeProtocolTree?: boolean;
104
- }
105
-
106
- /**
107
- * Services and properties necessary for creating a loader
108
- * @alpha
109
- */
110
- export declare interface ILoaderProps {
111
- /**
112
- * The url resolver used by the loader for resolving external urls
113
- * into Fluid urls such that the container specified by the
114
- * external url can be loaded.
115
- */
116
- readonly urlResolver: IUrlResolver;
117
- /**
118
- * The document service factory take the Fluid url provided
119
- * by the resolved url and constructs all the necessary services
120
- * for communication with the container's server.
121
- */
122
- readonly documentServiceFactory: IDocumentServiceFactory;
123
- /**
124
- * The code loader handles loading the necessary code
125
- * for running a container once it is loaded.
126
- */
127
- readonly codeLoader: ICodeDetailsLoader;
128
- /**
129
- * A property bag of options used by various layers
130
- * to control features
131
- */
132
- readonly options?: ILoaderOptions;
133
- /**
134
- * Scope is provided to all container and is a set of shared
135
- * services for container's to integrate with their host environment.
136
- */
137
- readonly scope?: FluidObject;
138
- /**
139
- * The logger that all telemetry should be pushed to.
140
- */
141
- readonly logger?: ITelemetryBaseLogger;
142
- /**
143
- * Blobs storage for detached containers.
144
- */
145
- readonly detachedBlobStorage?: IDetachedBlobStorage;
146
- /**
147
- * The configuration provider which may be used to control features.
148
- */
149
- readonly configProvider?: IConfigProviderBase;
150
- /**
151
- * Optional property for allowing the container to use a custom
152
- * protocol implementation for handling the quorum and/or the audience.
153
- */
154
- readonly protocolHandlerBuilder?: ProtocolHandlerBuilder;
155
- }
156
-
157
- /**
158
- * Services and properties used by and exposed by the loader
159
- * @alpha
160
- */
161
- export declare interface ILoaderServices {
162
- /**
163
- * The url resolver used by the loader for resolving external urls
164
- * into Fluid urls such that the container specified by the
165
- * external url can be loaded.
166
- */
167
- readonly urlResolver: IUrlResolver;
168
- /**
169
- * The document service factory take the Fluid url provided
170
- * by the resolved url and constructs all the necessary services
171
- * for communication with the container's server.
172
- */
173
- readonly documentServiceFactory: IDocumentServiceFactory;
174
- /**
175
- * The code loader handles loading the necessary code
176
- * for running a container once it is loaded.
177
- */
178
- readonly codeLoader: ICodeDetailsLoader;
179
- /**
180
- * A property bag of options used by various layers
181
- * to control features
182
- */
183
- readonly options: ILoaderOptions;
184
- /**
185
- * Scope is provided to all container and is a set of shared
186
- * services for container's to integrate with their host environment.
187
- */
188
- readonly scope: FluidObject;
189
- /**
190
- * The logger downstream consumers should construct their loggers from
191
- */
192
- readonly subLogger: ITelemetryLoggerExt;
193
- /**
194
- * Blobs storage for detached containers.
195
- */
196
- readonly detachedBlobStorage?: IDetachedBlobStorage;
197
- /**
198
- * Optional property for allowing the container to use a custom
199
- * protocol implementation for handling the quorum and/or the audience.
200
- */
201
- readonly protocolHandlerBuilder?: ProtocolHandlerBuilder;
202
- }
203
-
204
- /* Excluded from this release type: IParsedUrl */
205
-
206
- /**
207
- * @alpha
208
- */
209
- export declare interface IProtocolHandler extends IProtocolHandler_2 {
210
- readonly audience: IAudienceOwner;
211
- processSignal(message: ISignalMessage): any;
212
- }
213
-
214
- /* Excluded from this release type: isLocationRedirectionError */
215
-
216
- /**
217
- * Manages Fluid resource loading
218
- * @alpha
219
- */
220
- export declare class Loader implements IHostLoader {
221
- readonly services: ILoaderServices;
222
- private readonly mc;
223
- constructor(loaderProps: ILoaderProps);
224
- createDetachedContainer(codeDetails: IFluidCodeDetails, createDetachedProps?: {
225
- canReconnect?: boolean;
226
- clientDetailsOverride?: IClientDetails;
227
- }): Promise<IContainer>;
228
- rehydrateDetachedContainerFromSnapshot(snapshot: string, createDetachedProps?: {
229
- canReconnect?: boolean;
230
- clientDetailsOverride?: IClientDetails;
231
- }): Promise<IContainer>;
232
- resolve(request: IRequest, pendingLocalState?: string): Promise<IContainer>;
233
- private resolveCore;
234
- private loadContainer;
235
- }
236
-
237
- /**
238
- * Function to be used for creating a protocol handler.
239
- * @alpha
240
- */
241
- export declare type ProtocolHandlerBuilder = (attributes: IDocumentAttributes, snapshot: IQuorumSnapshot, sendProposal: (key: string, value: any) => number) => IProtocolHandler;
242
-
243
- /**
244
- * Handles location redirection while fulfilling the loader request.
245
- * @param api - Callback in which user can wrap the loader.resolve or loader.request call.
246
- * @param request - request to be resolved.
247
- * @param urlResolver - resolver used to resolve the url.
248
- * @param logger - logger to send events.
249
- * @returns Response from the API call.
250
- * @alpha
251
- */
252
- export declare function resolveWithLocationRedirectionHandling<T>(api: (request: IRequest) => Promise<T>, request: IRequest, urlResolver: IUrlResolver, logger?: ITelemetryBaseLogger): Promise<T>;
253
-
254
- /* Excluded from this release type: tryParseCompatibleResolvedUrl */
255
-
256
- /**
257
- * Waits until container connects to delta storage and gets up-to-date.
258
- *
259
- * Useful when resolving URIs and hitting 404, due to container being loaded from (stale) snapshot and not being
260
- * up to date. Host may chose to wait in such case and retry resolving URI.
261
- *
262
- * Warning: Will wait infinitely for connection to establish if there is no connection.
263
- * May result in deadlock if Container.disconnect() is called and never followed by a call to Container.connect().
264
- *
265
- * @returns `true`: container is up to date, it processed all the ops that were know at the time of first connection.
266
- *
267
- * `false`: storage does not provide indication of how far the client is. Container processed all the ops known to it,
268
- * but it maybe still behind.
269
- *
270
- * @throws an error beginning with `"Container closed"` if the container is closed before it catches up.
271
- * @alpha
272
- */
273
- export declare function waitContainerToCatchUp(container: IContainer): Promise<boolean>;
274
-
275
- export { }