@fluidframework/container-loader 2.114.0 → 2.115.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/api-report/container-loader.legacy.alpha.api.md +10 -0
- package/dist/container.d.ts +1 -0
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js +8 -0
- package/dist/container.js.map +1 -1
- package/dist/containerContext.d.ts +4 -2
- package/dist/containerContext.d.ts.map +1 -1
- package/dist/containerContext.js +1 -0
- package/dist/containerContext.js.map +1 -1
- package/dist/legacyAlpha.d.ts +2 -0
- package/dist/loadContainerToSequenceNumber.d.ts +10 -6
- package/dist/loadContainerToSequenceNumber.d.ts.map +1 -1
- package/dist/loadContainerToSequenceNumber.js +9 -5
- package/dist/loadContainerToSequenceNumber.js.map +1 -1
- package/dist/loaderLayerCompatState.d.ts +2 -2
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/lib/container.d.ts +1 -0
- package/lib/container.d.ts.map +1 -1
- package/lib/container.js +8 -0
- package/lib/container.js.map +1 -1
- package/lib/containerContext.d.ts +4 -2
- package/lib/containerContext.d.ts.map +1 -1
- package/lib/containerContext.js +1 -0
- package/lib/containerContext.js.map +1 -1
- package/lib/legacyAlpha.d.ts +2 -0
- package/lib/loadContainerToSequenceNumber.d.ts +10 -6
- package/lib/loadContainerToSequenceNumber.d.ts.map +1 -1
- package/lib/loadContainerToSequenceNumber.js +9 -5
- package/lib/loadContainerToSequenceNumber.js.map +1 -1
- package/lib/loaderLayerCompatState.d.ts +2 -2
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/package.json +11 -11
- package/src/container.ts +13 -0
- package/src/containerContext.ts +7 -0
- package/src/loadContainerToSequenceNumber.ts +11 -7
- package/src/packageVersion.ts +1 -1
- package/src/pointInTime/DEV.md +237 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { ILayerCompatDetails, IProvideLayerCompatDetails } from "@fluid-internal/client-utils";
|
|
6
6
|
import type { AttachState, IAudience, ICriticalContainerError } from "@fluidframework/container-definitions";
|
|
7
|
-
import type { IBatchMessage, IContainerContext, ILoader, ILoaderOptions, IDeltaManager, IContainerStorageService } from "@fluidframework/container-definitions/internal";
|
|
7
|
+
import type { IBatchMessage, IContainerContext, IContainerContextInternal, ILoader, ILoaderOptions, IDeltaManager, IContainerStorageService } from "@fluidframework/container-definitions/internal";
|
|
8
8
|
import type { FluidObject } from "@fluidframework/core-interfaces";
|
|
9
9
|
import type { ISignalEnvelope } from "@fluidframework/core-interfaces/internal";
|
|
10
10
|
import type { IClientDetails, IQuorumClients } from "@fluidframework/driver-definitions";
|
|
@@ -30,11 +30,12 @@ export interface IContainerContextConfig extends Readonly<Required<Omit<IContain
|
|
|
30
30
|
readonly existing: boolean;
|
|
31
31
|
readonly taggedLogger: TelemetryLoggerExt;
|
|
32
32
|
readonly snapshotWithContents: IContainerContext["snapshotWithContents"] | undefined;
|
|
33
|
+
readonly fetchOps: IContainerContextInternal["fetchOps"];
|
|
33
34
|
}
|
|
34
35
|
/**
|
|
35
36
|
* {@inheritDoc @fluidframework/container-definitions#IContainerContext}
|
|
36
37
|
*/
|
|
37
|
-
export declare class ContainerContext implements Required<Omit<IContainerContext, "snapshotWithContents">>, Pick<IContainerContext, "snapshotWithContents">, IProvideLayerCompatDetails {
|
|
38
|
+
export declare class ContainerContext implements Required<Omit<IContainerContext, "snapshotWithContents">>, Pick<IContainerContext, "snapshotWithContents">, Pick<IContainerContextInternal, "fetchOps">, IProvideLayerCompatDetails {
|
|
38
39
|
/**
|
|
39
40
|
* @deprecated This has been replaced by ILayerCompatDetails.
|
|
40
41
|
*/
|
|
@@ -60,6 +61,7 @@ export declare class ContainerContext implements Required<Omit<IContainerContext
|
|
|
60
61
|
* Any changes to submitSignalFn `content` should be checked internally by temporarily changing IContainerContext and removing all `unknown`s
|
|
61
62
|
*/
|
|
62
63
|
readonly submitSignalFn: (content: unknown | ISignalEnvelope, targetClientId?: string) => void;
|
|
64
|
+
readonly fetchOps: IContainerContextInternal["fetchOps"];
|
|
63
65
|
readonly disposeFn: (error?: ICriticalContainerError) => void;
|
|
64
66
|
readonly closeFn: (error?: ICriticalContainerError) => void;
|
|
65
67
|
readonly updateDirtyContainerState: (dirty: boolean) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerContext.d.ts","sourceRoot":"","sources":["../src/containerContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,mBAAmB,EACnB,0BAA0B,EAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACX,WAAW,EACX,SAAS,EACT,uBAAuB,EACvB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EACX,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzF,OAAO,KAAK,EACX,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,WAAW,EACX,yBAAyB,EACzB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAEnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D;;;;;;;;GAQG;AACH,MAAM,WAAW,uBAChB,SAAQ,QAAQ,CACf,QAAQ,CACP,IAAI,CACH,iBAAiB,EACf,UAAU,GACV,WAAW,GACX,aAAa,GACb,sBAAsB,GACtB,mBAAmB,GACnB,IAAI,GACJ,sBAAsB,CACxB,CACD,CACD;IAED,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,cAAc,EAAE,MAAM,WAAW,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAE1C,QAAQ,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"containerContext.d.ts","sourceRoot":"","sources":["../src/containerContext.ts"],"names":[],"mappings":"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"}
|
package/lib/containerContext.js
CHANGED
|
@@ -55,6 +55,7 @@ export class ContainerContext {
|
|
|
55
55
|
this.submitSummaryFn = config.submitSummaryFn;
|
|
56
56
|
this.submitBatchFn = config.submitBatchFn;
|
|
57
57
|
this.submitSignalFn = config.submitSignalFn;
|
|
58
|
+
this.fetchOps = config.fetchOps;
|
|
58
59
|
this.disposeFn = config.disposeFn;
|
|
59
60
|
this.closeFn = config.closeFn;
|
|
60
61
|
this.updateDirtyContainerState = config.updateDirtyContainerState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerContext.js","sourceRoot":"","sources":["../src/containerContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkCH,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAuC5E;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAuE5B,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAW,EAAE;QACZ,OAAO,IAAI,CAAC,yBAAyB,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,IAAW,mBAAmB;QAC7B,OAAO,6BAA6B,CAAC;IACtC,CAAC;IAED,YAAY,MAA+B;QA5F3C;;WAEG;QACa,sBAAiB,GAAiC,IAAI,GAAG,CAAC;YACzE;;;;eAIG;YACH,CAAC,0BAA0B,EAAE,IAAI,CAAC;SAClC,CAAC,CAAC;QAmFF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,CAAC;QAClE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAClD,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAC/C,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACpD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,wBAAwB,CAAC;QACjE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;IAEM,oBAAoB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,IAAW,WAAW;QACrB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAC/B,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type {\n\tILayerCompatDetails,\n\tIProvideLayerCompatDetails,\n} from \"@fluid-internal/client-utils\";\nimport type {\n\tAttachState,\n\tIAudience,\n\tICriticalContainerError,\n} from \"@fluidframework/container-definitions\";\nimport type {\n\tIBatchMessage,\n\tIContainerContext,\n\tILoader,\n\tILoaderOptions,\n\tIDeltaManager,\n\tIContainerStorageService,\n} from \"@fluidframework/container-definitions/internal\";\nimport type { FluidObject } from \"@fluidframework/core-interfaces\";\nimport type { ISignalEnvelope } from \"@fluidframework/core-interfaces/internal\";\nimport type { IClientDetails, IQuorumClients } from \"@fluidframework/driver-definitions\";\nimport type {\n\tISnapshot,\n\tIDocumentMessage,\n\tISnapshotTree,\n\tISummaryContent,\n\tIVersion,\n\tMessageType,\n\tISequencedDocumentMessage,\n} from \"@fluidframework/driver-definitions/internal\";\nimport type { TelemetryLoggerExt } from \"@fluidframework/telemetry-utils/internal\";\n\nimport type { ConnectionState } from \"./connectionState.js\";\nimport { loaderCompatDetailsForRuntime } from \"./loaderLayerCompatState.js\";\n\n/**\n * Configuration object for ContainerContext constructor.\n *\n * @remarks\n * A large subset of properties are from {@link IContainerContext}. Select\n * properties are explicitly omitted so that, as {@link ContainerContext} is\n * extended, newly added properties are not overlooked (but may also be\n * explicitly omitted here by adding to the list).\n */\nexport interface IContainerContextConfig\n\textends Readonly<\n\t\tRequired<\n\t\t\tOmit<\n\t\t\t\tIContainerContext,\n\t\t\t\t| \"clientId\"\n\t\t\t\t| \"connected\"\n\t\t\t\t| \"attachState\"\n\t\t\t\t| \"getLoadedFromVersion\"\n\t\t\t\t| \"supportedFeatures\"\n\t\t\t\t| \"id\"\n\t\t\t\t| \"snapshotWithContents\"\n\t\t\t>\n\t\t>\n\t> {\n\t// This overrides IContainerContext.options with specific type.\n\treadonly options: ILoaderOptions;\n\treadonly version: IVersion | undefined;\n\treadonly getContainerDiagnosticId: () => string | undefined;\n\treadonly getClientId: () => string | undefined;\n\treadonly getAttachState: () => AttachState;\n\treadonly getConnected: () => boolean;\n\treadonly existing: boolean;\n\treadonly taggedLogger: TelemetryLoggerExt;\n\t// This \"overrides\" IContainerContext.snapshotWithContents to be required but allow `undefined`.\n\treadonly snapshotWithContents: IContainerContext[\"snapshotWithContents\"] | undefined;\n}\n\n/**\n * {@inheritDoc @fluidframework/container-definitions#IContainerContext}\n */\nexport class ContainerContext\n\timplements\n\t\tRequired<Omit<IContainerContext, \"snapshotWithContents\">>,\n\t\tPick<IContainerContext, \"snapshotWithContents\">,\n\t\tIProvideLayerCompatDetails\n{\n\t/**\n\t * @deprecated This has been replaced by ILayerCompatDetails.\n\t */\n\tpublic readonly supportedFeatures: ReadonlyMap<string, unknown> = new Map([\n\t\t/**\n\t\t * This version of the loader accepts `referenceSequenceNumber`, provided by the container runtime,\n\t\t * as a parameter to the `submitBatchFn` and `submitSummaryFn` functions.\n\t\t * This is then used to set the reference sequence numbers of the submitted ops in the DeltaManager.\n\t\t */\n\t\t[\"referenceSequenceNumbers\", true],\n\t]);\n\n\tpublic readonly options: ILoaderOptions;\n\tpublic readonly scope: FluidObject;\n\tpublic readonly baseSnapshot: ISnapshotTree | undefined;\n\tpublic readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;\n\tpublic readonly storage: IContainerStorageService;\n\tpublic readonly quorum: IQuorumClients;\n\tpublic readonly audience: IAudience;\n\tpublic readonly signalAudience: IAudience;\n\tpublic readonly loader: ILoader;\n\tpublic readonly submitFn: (\n\t\ttype: MessageType,\n\t\tcontents: unknown,\n\t\tbatch: boolean,\n\t\tappData: unknown,\n\t) => number;\n\tpublic readonly submitSummaryFn: (\n\t\tsummaryOp: ISummaryContent,\n\t\treferenceSequenceNumber?: number,\n\t) => number;\n\t/**\n\t * @returns clientSequenceNumber of last message in a batch\n\t */\n\tpublic readonly submitBatchFn: (\n\t\tbatch: IBatchMessage[],\n\t\treferenceSequenceNumber?: number,\n\t) => number;\n\t/**\n\t * `unknown` should be removed once `@alpha` tag is removed from IContainerContext\n\t * @see {@link https://dev.azure.com/fluidframework/internal/_workitems/edit/7462}\n\t * Any changes to submitSignalFn `content` should be checked internally by temporarily changing IContainerContext and removing all `unknown`s\n\t */\n\tpublic readonly submitSignalFn: (\n\t\tcontent: unknown | ISignalEnvelope,\n\t\ttargetClientId?: string,\n\t) => void;\n\tpublic readonly disposeFn: (error?: ICriticalContainerError) => void;\n\tpublic readonly closeFn: (error?: ICriticalContainerError) => void;\n\tpublic readonly updateDirtyContainerState: (dirty: boolean) => void;\n\tpublic readonly getAbsoluteUrl: (relativeUrl: string) => Promise<string | undefined>;\n\tpublic readonly clientDetails: IClientDetails;\n\tpublic readonly existing: boolean;\n\tpublic readonly taggedLogger: TelemetryLoggerExt;\n\tpublic readonly pendingLocalState: unknown;\n\tpublic readonly snapshotWithContents?: ISnapshot;\n\n\tpublic readonly getConnectionState: () => ConnectionState;\n\n\tprivate readonly _getClientId: () => string | undefined;\n\tprivate readonly _getContainerDiagnosticId: () => string | undefined;\n\tprivate readonly _getConnected: () => boolean;\n\tprivate readonly _getAttachState: () => AttachState;\n\tprivate readonly version: IVersion | undefined;\n\n\tpublic get clientId(): string | undefined {\n\t\treturn this._getClientId();\n\t}\n\n\t/**\n\t * DISCLAIMER: this id is only for telemetry purposes. Not suitable for any other usages.\n\t */\n\tpublic get id(): string {\n\t\treturn this._getContainerDiagnosticId() ?? \"\";\n\t}\n\n\t/**\n\t * When true, ops are free to flow\n\t * When false, ops should be kept as pending or rejected\n\t */\n\tpublic get connected(): boolean {\n\t\treturn this._getConnected();\n\t}\n\n\t/**\n\t * The compatibility details of the Loader layer that is exposed to the Runtime layer\n\t * for validating Runtime-Loader compatibility.\n\t */\n\tpublic get ILayerCompatDetails(): ILayerCompatDetails {\n\t\treturn loaderCompatDetailsForRuntime;\n\t}\n\n\tconstructor(config: IContainerContextConfig) {\n\t\tthis.options = config.options;\n\t\tthis.scope = config.scope;\n\t\tthis.baseSnapshot = config.baseSnapshot;\n\t\tthis.deltaManager = config.deltaManager;\n\t\tthis.storage = config.storage;\n\t\tthis.quorum = config.quorum;\n\t\tthis.audience = config.audience;\n\t\tthis.signalAudience = config.signalAudience;\n\t\tthis.loader = config.loader;\n\t\tthis.submitFn = config.submitFn;\n\t\tthis.submitSummaryFn = config.submitSummaryFn;\n\t\tthis.submitBatchFn = config.submitBatchFn;\n\t\tthis.submitSignalFn = config.submitSignalFn;\n\t\tthis.disposeFn = config.disposeFn;\n\t\tthis.closeFn = config.closeFn;\n\t\tthis.updateDirtyContainerState = config.updateDirtyContainerState;\n\t\tthis.getAbsoluteUrl = config.getAbsoluteUrl;\n\t\tthis.clientDetails = config.clientDetails;\n\t\tthis.existing = config.existing;\n\t\tthis.taggedLogger = config.taggedLogger;\n\t\tthis.pendingLocalState = config.pendingLocalState;\n\t\tif (config.snapshotWithContents !== undefined) {\n\t\t\tthis.snapshotWithContents = config.snapshotWithContents;\n\t\t}\n\n\t\tthis.getConnectionState = config.getConnectionState;\n\t\tthis._getClientId = config.getClientId;\n\t\tthis._getContainerDiagnosticId = config.getContainerDiagnosticId;\n\t\tthis._getConnected = config.getConnected;\n\t\tthis._getAttachState = config.getAttachState;\n\t\tthis.version = config.version;\n\t}\n\n\tpublic getLoadedFromVersion(): IVersion | undefined {\n\t\treturn this.version;\n\t}\n\n\tpublic get attachState(): AttachState {\n\t\treturn this._getAttachState();\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"containerContext.js","sourceRoot":"","sources":["../src/containerContext.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type {\n\tILayerCompatDetails,\n\tIProvideLayerCompatDetails,\n} from \"@fluid-internal/client-utils\";\nimport type {\n\tAttachState,\n\tIAudience,\n\tICriticalContainerError,\n} from \"@fluidframework/container-definitions\";\nimport type {\n\tIBatchMessage,\n\tIContainerContext,\n\tIContainerContextInternal,\n\tILoader,\n\tILoaderOptions,\n\tIDeltaManager,\n\tIContainerStorageService,\n} from \"@fluidframework/container-definitions/internal\";\nimport type { FluidObject } from \"@fluidframework/core-interfaces\";\nimport type { ISignalEnvelope } from \"@fluidframework/core-interfaces/internal\";\nimport type { IClientDetails, IQuorumClients } from \"@fluidframework/driver-definitions\";\nimport type {\n\tISnapshot,\n\tIDocumentMessage,\n\tISnapshotTree,\n\tISummaryContent,\n\tIVersion,\n\tMessageType,\n\tISequencedDocumentMessage,\n} from \"@fluidframework/driver-definitions/internal\";\nimport type { TelemetryLoggerExt } from \"@fluidframework/telemetry-utils/internal\";\n\nimport type { ConnectionState } from \"./connectionState.js\";\nimport { loaderCompatDetailsForRuntime } from \"./loaderLayerCompatState.js\";\n\n/**\n * Configuration object for ContainerContext constructor.\n *\n * @remarks\n * A large subset of properties are from {@link IContainerContext}. Select\n * properties are explicitly omitted so that, as {@link ContainerContext} is\n * extended, newly added properties are not overlooked (but may also be\n * explicitly omitted here by adding to the list).\n */\nexport interface IContainerContextConfig\n\textends Readonly<\n\t\tRequired<\n\t\t\tOmit<\n\t\t\t\tIContainerContext,\n\t\t\t\t| \"clientId\"\n\t\t\t\t| \"connected\"\n\t\t\t\t| \"attachState\"\n\t\t\t\t| \"getLoadedFromVersion\"\n\t\t\t\t| \"supportedFeatures\"\n\t\t\t\t| \"id\"\n\t\t\t\t| \"snapshotWithContents\"\n\t\t\t>\n\t\t>\n\t> {\n\t// This overrides IContainerContext.options with specific type.\n\treadonly options: ILoaderOptions;\n\treadonly version: IVersion | undefined;\n\treadonly getContainerDiagnosticId: () => string | undefined;\n\treadonly getClientId: () => string | undefined;\n\treadonly getAttachState: () => AttachState;\n\treadonly getConnected: () => boolean;\n\treadonly existing: boolean;\n\treadonly taggedLogger: TelemetryLoggerExt;\n\t// This \"overrides\" IContainerContext.snapshotWithContents to be required but allow `undefined`.\n\treadonly snapshotWithContents: IContainerContext[\"snapshotWithContents\"] | undefined;\n\t// fetchOps is an internal-only capability (IContainerContextInternal), not part of the public\n\t// IContainerContext contract. Optional: hosts may not provide op reading.\n\treadonly fetchOps: IContainerContextInternal[\"fetchOps\"];\n}\n\n/**\n * {@inheritDoc @fluidframework/container-definitions#IContainerContext}\n */\nexport class ContainerContext\n\timplements\n\t\tRequired<Omit<IContainerContext, \"snapshotWithContents\">>,\n\t\tPick<IContainerContext, \"snapshotWithContents\">,\n\t\tPick<IContainerContextInternal, \"fetchOps\">,\n\t\tIProvideLayerCompatDetails\n{\n\t/**\n\t * @deprecated This has been replaced by ILayerCompatDetails.\n\t */\n\tpublic readonly supportedFeatures: ReadonlyMap<string, unknown> = new Map([\n\t\t/**\n\t\t * This version of the loader accepts `referenceSequenceNumber`, provided by the container runtime,\n\t\t * as a parameter to the `submitBatchFn` and `submitSummaryFn` functions.\n\t\t * This is then used to set the reference sequence numbers of the submitted ops in the DeltaManager.\n\t\t */\n\t\t[\"referenceSequenceNumbers\", true],\n\t]);\n\n\tpublic readonly options: ILoaderOptions;\n\tpublic readonly scope: FluidObject;\n\tpublic readonly baseSnapshot: ISnapshotTree | undefined;\n\tpublic readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;\n\tpublic readonly storage: IContainerStorageService;\n\tpublic readonly quorum: IQuorumClients;\n\tpublic readonly audience: IAudience;\n\tpublic readonly signalAudience: IAudience;\n\tpublic readonly loader: ILoader;\n\tpublic readonly submitFn: (\n\t\ttype: MessageType,\n\t\tcontents: unknown,\n\t\tbatch: boolean,\n\t\tappData: unknown,\n\t) => number;\n\tpublic readonly submitSummaryFn: (\n\t\tsummaryOp: ISummaryContent,\n\t\treferenceSequenceNumber?: number,\n\t) => number;\n\t/**\n\t * @returns clientSequenceNumber of last message in a batch\n\t */\n\tpublic readonly submitBatchFn: (\n\t\tbatch: IBatchMessage[],\n\t\treferenceSequenceNumber?: number,\n\t) => number;\n\t/**\n\t * `unknown` should be removed once `@alpha` tag is removed from IContainerContext\n\t * @see {@link https://dev.azure.com/fluidframework/internal/_workitems/edit/7462}\n\t * Any changes to submitSignalFn `content` should be checked internally by temporarily changing IContainerContext and removing all `unknown`s\n\t */\n\tpublic readonly submitSignalFn: (\n\t\tcontent: unknown | ISignalEnvelope,\n\t\ttargetClientId?: string,\n\t) => void;\n\tpublic readonly fetchOps: IContainerContextInternal[\"fetchOps\"];\n\tpublic readonly disposeFn: (error?: ICriticalContainerError) => void;\n\tpublic readonly closeFn: (error?: ICriticalContainerError) => void;\n\tpublic readonly updateDirtyContainerState: (dirty: boolean) => void;\n\tpublic readonly getAbsoluteUrl: (relativeUrl: string) => Promise<string | undefined>;\n\tpublic readonly clientDetails: IClientDetails;\n\tpublic readonly existing: boolean;\n\tpublic readonly taggedLogger: TelemetryLoggerExt;\n\tpublic readonly pendingLocalState: unknown;\n\tpublic readonly snapshotWithContents?: ISnapshot;\n\n\tpublic readonly getConnectionState: () => ConnectionState;\n\n\tprivate readonly _getClientId: () => string | undefined;\n\tprivate readonly _getContainerDiagnosticId: () => string | undefined;\n\tprivate readonly _getConnected: () => boolean;\n\tprivate readonly _getAttachState: () => AttachState;\n\tprivate readonly version: IVersion | undefined;\n\n\tpublic get clientId(): string | undefined {\n\t\treturn this._getClientId();\n\t}\n\n\t/**\n\t * DISCLAIMER: this id is only for telemetry purposes. Not suitable for any other usages.\n\t */\n\tpublic get id(): string {\n\t\treturn this._getContainerDiagnosticId() ?? \"\";\n\t}\n\n\t/**\n\t * When true, ops are free to flow\n\t * When false, ops should be kept as pending or rejected\n\t */\n\tpublic get connected(): boolean {\n\t\treturn this._getConnected();\n\t}\n\n\t/**\n\t * The compatibility details of the Loader layer that is exposed to the Runtime layer\n\t * for validating Runtime-Loader compatibility.\n\t */\n\tpublic get ILayerCompatDetails(): ILayerCompatDetails {\n\t\treturn loaderCompatDetailsForRuntime;\n\t}\n\n\tconstructor(config: IContainerContextConfig) {\n\t\tthis.options = config.options;\n\t\tthis.scope = config.scope;\n\t\tthis.baseSnapshot = config.baseSnapshot;\n\t\tthis.deltaManager = config.deltaManager;\n\t\tthis.storage = config.storage;\n\t\tthis.quorum = config.quorum;\n\t\tthis.audience = config.audience;\n\t\tthis.signalAudience = config.signalAudience;\n\t\tthis.loader = config.loader;\n\t\tthis.submitFn = config.submitFn;\n\t\tthis.submitSummaryFn = config.submitSummaryFn;\n\t\tthis.submitBatchFn = config.submitBatchFn;\n\t\tthis.submitSignalFn = config.submitSignalFn;\n\t\tthis.fetchOps = config.fetchOps;\n\t\tthis.disposeFn = config.disposeFn;\n\t\tthis.closeFn = config.closeFn;\n\t\tthis.updateDirtyContainerState = config.updateDirtyContainerState;\n\t\tthis.getAbsoluteUrl = config.getAbsoluteUrl;\n\t\tthis.clientDetails = config.clientDetails;\n\t\tthis.existing = config.existing;\n\t\tthis.taggedLogger = config.taggedLogger;\n\t\tthis.pendingLocalState = config.pendingLocalState;\n\t\tif (config.snapshotWithContents !== undefined) {\n\t\t\tthis.snapshotWithContents = config.snapshotWithContents;\n\t\t}\n\n\t\tthis.getConnectionState = config.getConnectionState;\n\t\tthis._getClientId = config.getClientId;\n\t\tthis._getContainerDiagnosticId = config.getContainerDiagnosticId;\n\t\tthis._getConnected = config.getConnected;\n\t\tthis._getAttachState = config.getAttachState;\n\t\tthis.version = config.version;\n\t}\n\n\tpublic getLoadedFromVersion(): IVersion | undefined {\n\t\treturn this.version;\n\t}\n\n\tpublic get attachState(): AttachState {\n\t\treturn this._getAttachState();\n\t}\n}\n"]}
|
package/lib/legacyAlpha.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export {
|
|
|
45
45
|
// #region @legacyAlpha APIs
|
|
46
46
|
ContainerAlpha,
|
|
47
47
|
ICaptureFullContainerStateProps,
|
|
48
|
+
ILoadContainerToSequenceNumberProps,
|
|
48
49
|
ILoadFrozenContainerFromPendingStateProps,
|
|
49
50
|
ILoadSummarizerContainerProps,
|
|
50
51
|
LoadSummarizerSummaryResult,
|
|
@@ -54,6 +55,7 @@ export {
|
|
|
54
55
|
asLegacyAlpha,
|
|
55
56
|
captureFullContainerState,
|
|
56
57
|
createFrozenDocumentServiceFactory,
|
|
58
|
+
loadContainerToSequenceNumber,
|
|
57
59
|
loadFrozenContainerFromPendingState,
|
|
58
60
|
loadSummarizerContainerAndMakeSummary
|
|
59
61
|
// #endregion
|
|
@@ -13,9 +13,9 @@ import type { IContainerDriverServices, IContainerHostProps } from "./createAndL
|
|
|
13
13
|
* {@link IContainerDriverServices.documentServiceFactory} must be able to materialize the document
|
|
14
14
|
* at {@link ILoadContainerToSequenceNumberProps.loadToSequenceNumber} - i.e. it must implement the
|
|
15
15
|
* point-in-time capability the loader detects. For ODSP, pass an
|
|
16
|
-
* `
|
|
16
|
+
* `IPointInTimeDocumentServiceFactory` created by `getOdspPointInTimeDocumentServiceFactory`.
|
|
17
17
|
*
|
|
18
|
-
* @
|
|
18
|
+
* @legacy @alpha
|
|
19
19
|
*/
|
|
20
20
|
export interface ILoadContainerToSequenceNumberProps extends IContainerHostProps, IContainerDriverServices {
|
|
21
21
|
/**
|
|
@@ -41,11 +41,15 @@ export interface ILoadContainerToSequenceNumberProps extends IContainerHostProps
|
|
|
41
41
|
* The supplied {@link IContainerDriverServices.documentServiceFactory} must support point-in-time
|
|
42
42
|
* loading: it must be able to serve a snapshot at or before
|
|
43
43
|
* {@link ILoadContainerToSequenceNumberProps.loadToSequenceNumber} and replay the document forward
|
|
44
|
-
* through that sequence number. For ODSP, pass
|
|
45
|
-
* `@fluidframework/odsp-driver`) directly - the
|
|
46
|
-
* so no wrapping or decoration is required.
|
|
44
|
+
* through that sequence number. For ODSP, pass the result of
|
|
45
|
+
* `getOdspPointInTimeDocumentServiceFactory` (from `@fluidframework/odsp-driver`) directly - the
|
|
46
|
+
* loader materializes the point-in-time view itself, so no wrapping or decoration is required.
|
|
47
47
|
*
|
|
48
|
-
* @
|
|
48
|
+
* @param props - The load options, point-in-time-capable driver services, target sequence number, and
|
|
49
|
+
* optional cancellation signal.
|
|
50
|
+
* @returns A disconnected, read-only container materialized at the requested sequence number.
|
|
51
|
+
*
|
|
52
|
+
* @legacy @alpha
|
|
49
53
|
*/
|
|
50
54
|
export declare function loadContainerToSequenceNumber(props: ILoadContainerToSequenceNumberProps): Promise<IContainer>;
|
|
51
55
|
//# sourceMappingURL=loadContainerToSequenceNumber.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadContainerToSequenceNumber.d.ts","sourceRoot":"","sources":["../src/loadContainerToSequenceNumber.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAGhE,OAAO,KAAK,EACX,wBAAwB,EACxB,mBAAmB,EACnB,MAAM,kCAAkC,CAAC;AAO1C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mCAChB,SAAQ,mBAAmB,EAC1B,wBAAwB;IACzB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAC1C;AAED
|
|
1
|
+
{"version":3,"file":"loadContainerToSequenceNumber.d.ts","sourceRoot":"","sources":["../src/loadContainerToSequenceNumber.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAGhE,OAAO,KAAK,EACX,wBAAwB,EACxB,mBAAmB,EACnB,MAAM,kCAAkC,CAAC;AAO1C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mCAChB,SAAQ,mBAAmB,EAC1B,wBAAwB;IACzB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,6BAA6B,CAClD,KAAK,EAAE,mCAAmC,GACxC,OAAO,CAAC,UAAU,CAAC,CA4BrB"}
|
|
@@ -15,11 +15,15 @@ import { asPointInTimeCapableFactory, PointInTimeDocumentServiceFactory, } from
|
|
|
15
15
|
* The supplied {@link IContainerDriverServices.documentServiceFactory} must support point-in-time
|
|
16
16
|
* loading: it must be able to serve a snapshot at or before
|
|
17
17
|
* {@link ILoadContainerToSequenceNumberProps.loadToSequenceNumber} and replay the document forward
|
|
18
|
-
* through that sequence number. For ODSP, pass
|
|
19
|
-
* `@fluidframework/odsp-driver`) directly - the
|
|
20
|
-
* so no wrapping or decoration is required.
|
|
18
|
+
* through that sequence number. For ODSP, pass the result of
|
|
19
|
+
* `getOdspPointInTimeDocumentServiceFactory` (from `@fluidframework/odsp-driver`) directly - the
|
|
20
|
+
* loader materializes the point-in-time view itself, so no wrapping or decoration is required.
|
|
21
21
|
*
|
|
22
|
-
* @
|
|
22
|
+
* @param props - The load options, point-in-time-capable driver services, target sequence number, and
|
|
23
|
+
* optional cancellation signal.
|
|
24
|
+
* @returns A disconnected, read-only container materialized at the requested sequence number.
|
|
25
|
+
*
|
|
26
|
+
* @legacy @alpha
|
|
23
27
|
*/
|
|
24
28
|
export async function loadContainerToSequenceNumber(props) {
|
|
25
29
|
const { loadToSequenceNumber, documentServiceFactory } = props;
|
|
@@ -28,7 +32,7 @@ export async function loadContainerToSequenceNumber(props) {
|
|
|
28
32
|
}
|
|
29
33
|
const capableFactory = asPointInTimeCapableFactory(documentServiceFactory);
|
|
30
34
|
if (capableFactory === undefined) {
|
|
31
|
-
throw new UsageError("The provided documentServiceFactory does not support point-in-time loading. For ODSP, pass
|
|
35
|
+
throw new UsageError("The provided documentServiceFactory does not support point-in-time loading. For ODSP, pass the result of getOdspPointInTimeDocumentServiceFactory.");
|
|
32
36
|
}
|
|
33
37
|
// The loader owns materializing the target: it routes the container's createDocumentService call
|
|
34
38
|
// to the driver's point-in-time service, so the caller never wraps their factory.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadContainerToSequenceNumber.js","sourceRoot":"","sources":["../src/loadContainerToSequenceNumber.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAMnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACN,2BAA2B,EAC3B,iCAAiC,GACjC,MAAM,0BAA0B,CAAC;AAiClC
|
|
1
|
+
{"version":3,"file":"loadContainerToSequenceNumber.js","sourceRoot":"","sources":["../src/loadContainerToSequenceNumber.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAMnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACN,2BAA2B,EAC3B,iCAAiC,GACjC,MAAM,0BAA0B,CAAC;AAiClC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAClD,KAA0C;IAE1C,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,GAAG,KAAK,CAAC;IAC/D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,UAAU,CACnB,4DAA4D,oBAAoB,GAAG,CACnF,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,2BAA2B,CAAC,sBAAsB,CAAC,CAAC;IAC3E,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,UAAU,CACnB,oJAAoJ,CACpJ,CAAC;IACH,CAAC;IAED,iGAAiG;IACjG,kFAAkF;IAClF,MAAM,kBAAkB,GAAG,IAAI,iCAAiC,CAC/D,cAAc,EACd,oBAAoB,CACpB,CAAC;IAEF,OAAO,mBAAmB,CACzB,EAAE,GAAG,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,EACxD,KAAK,CAAC,OAAO,EACb,oBAAoB,EACpB,KAAK,CAAC,MAAM,CACZ,CAAC;AACH,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IContainer } from \"@fluidframework/container-definitions/internal\";\nimport type { IRequest } from \"@fluidframework/core-interfaces\";\nimport { UsageError } from \"@fluidframework/driver-utils/internal\";\n\nimport type {\n\tIContainerDriverServices,\n\tIContainerHostProps,\n} from \"./createAndLoadContainerUtils.js\";\nimport { loadContainerPaused } from \"./loadPaused.js\";\nimport {\n\tasPointInTimeCapableFactory,\n\tPointInTimeDocumentServiceFactory,\n} from \"./pointInTimeServices.js\";\n\n/**\n * Properties used to materialize a container at a point in document history.\n *\n * @remarks\n * This is distinct from normal container loading. The supplied\n * {@link IContainerDriverServices.documentServiceFactory} must be able to materialize the document\n * at {@link ILoadContainerToSequenceNumberProps.loadToSequenceNumber} - i.e. it must implement the\n * point-in-time capability the loader detects. For ODSP, pass an\n * `IPointInTimeDocumentServiceFactory` created by `getOdspPointInTimeDocumentServiceFactory`.\n *\n * @legacy @alpha\n */\nexport interface ILoadContainerToSequenceNumberProps\n\textends IContainerHostProps,\n\t\tIContainerDriverServices {\n\t/**\n\t * The request identifying the container instance.\n\t */\n\treadonly request: IRequest;\n\n\t/**\n\t * The sequence number at which to materialize the container.\n\t */\n\treadonly loadToSequenceNumber: number;\n\n\t/**\n\t * Cancels replay while waiting for the target sequence number.\n\t */\n\treadonly signal?: AbortSignal | undefined;\n}\n\n/**\n * Loads a read-only container at a target sequence number.\n *\n * @remarks\n * The returned container is disconnected with inbound and outbound processing paused. It is a\n * historical view and must not be used as a normal collaborative container.\n *\n * The supplied {@link IContainerDriverServices.documentServiceFactory} must support point-in-time\n * loading: it must be able to serve a snapshot at or before\n * {@link ILoadContainerToSequenceNumberProps.loadToSequenceNumber} and replay the document forward\n * through that sequence number. For ODSP, pass the result of\n * `getOdspPointInTimeDocumentServiceFactory` (from `@fluidframework/odsp-driver`) directly - the\n * loader materializes the point-in-time view itself, so no wrapping or decoration is required.\n *\n * @param props - The load options, point-in-time-capable driver services, target sequence number, and\n * optional cancellation signal.\n * @returns A disconnected, read-only container materialized at the requested sequence number.\n *\n * @legacy @alpha\n */\nexport async function loadContainerToSequenceNumber(\n\tprops: ILoadContainerToSequenceNumberProps,\n): Promise<IContainer> {\n\tconst { loadToSequenceNumber, documentServiceFactory } = props;\n\tif (!Number.isInteger(loadToSequenceNumber) || loadToSequenceNumber < 0) {\n\t\tthrow new UsageError(\n\t\t\t`loadToSequenceNumber must be a non-negative integer, got ${loadToSequenceNumber}.`,\n\t\t);\n\t}\n\n\tconst capableFactory = asPointInTimeCapableFactory(documentServiceFactory);\n\tif (capableFactory === undefined) {\n\t\tthrow new UsageError(\n\t\t\t\"The provided documentServiceFactory does not support point-in-time loading. For ODSP, pass the result of getOdspPointInTimeDocumentServiceFactory.\",\n\t\t);\n\t}\n\n\t// The loader owns materializing the target: it routes the container's createDocumentService call\n\t// to the driver's point-in-time service, so the caller never wraps their factory.\n\tconst pointInTimeFactory = new PointInTimeDocumentServiceFactory(\n\t\tcapableFactory,\n\t\tloadToSequenceNumber,\n\t);\n\n\treturn loadContainerPaused(\n\t\t{ ...props, documentServiceFactory: pointInTimeFactory },\n\t\tprops.request,\n\t\tloadToSequenceNumber,\n\t\tprops.signal,\n\t);\n}\n"]}
|
|
@@ -13,11 +13,11 @@ export declare const loaderCoreCompatDetails: {
|
|
|
13
13
|
/**
|
|
14
14
|
* The package version of the Loader layer.
|
|
15
15
|
*/
|
|
16
|
-
readonly pkgVersion: "2.
|
|
16
|
+
readonly pkgVersion: "2.115.0";
|
|
17
17
|
/**
|
|
18
18
|
* The current generation of the Loader layer.
|
|
19
19
|
*/
|
|
20
|
-
readonly generation:
|
|
20
|
+
readonly generation: 9;
|
|
21
21
|
};
|
|
22
22
|
/**
|
|
23
23
|
* Loader's compatibility details that is exposed to the Runtime layer.
|
package/lib/packageVersion.d.ts
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
|
|
6
6
|
*/
|
|
7
7
|
export declare const pkgName = "@fluidframework/container-loader";
|
|
8
|
-
export declare const pkgVersion = "2.
|
|
8
|
+
export declare const pkgVersion = "2.115.0";
|
|
9
9
|
//# sourceMappingURL=packageVersion.d.ts.map
|
package/lib/packageVersion.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,kCAAkC,CAAC;AAC1D,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/container-loader\";\nexport const pkgVersion = \"2.
|
|
1
|
+
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,kCAAkC,CAAC;AAC1D,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/container-loader\";\nexport const pkgVersion = \"2.115.0\";\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/container-loader",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.115.0",
|
|
4
4
|
"description": "Fluid container loader",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -129,13 +129,13 @@
|
|
|
129
129
|
"temp-directory": "nyc/.nyc_output"
|
|
130
130
|
},
|
|
131
131
|
"dependencies": {
|
|
132
|
-
"@fluid-internal/client-utils": "~2.
|
|
133
|
-
"@fluidframework/container-definitions": "~2.
|
|
134
|
-
"@fluidframework/core-interfaces": "~2.
|
|
135
|
-
"@fluidframework/core-utils": "~2.
|
|
136
|
-
"@fluidframework/driver-definitions": "~2.
|
|
137
|
-
"@fluidframework/driver-utils": "~2.
|
|
138
|
-
"@fluidframework/telemetry-utils": "~2.
|
|
132
|
+
"@fluid-internal/client-utils": "~2.115.0",
|
|
133
|
+
"@fluidframework/container-definitions": "~2.115.0",
|
|
134
|
+
"@fluidframework/core-interfaces": "~2.115.0",
|
|
135
|
+
"@fluidframework/core-utils": "~2.115.0",
|
|
136
|
+
"@fluidframework/driver-definitions": "~2.115.0",
|
|
137
|
+
"@fluidframework/driver-utils": "~2.115.0",
|
|
138
|
+
"@fluidframework/telemetry-utils": "~2.115.0",
|
|
139
139
|
"debug": "^4.3.4",
|
|
140
140
|
"double-ended-queue": "^2.1.0-0",
|
|
141
141
|
"events_pkg": "npm:events@^3.1.0",
|
|
@@ -144,9 +144,9 @@
|
|
|
144
144
|
"devDependencies": {
|
|
145
145
|
"@arethetypeswrong/cli": "^0.18.2",
|
|
146
146
|
"@biomejs/biome": "~2.4.5",
|
|
147
|
-
"@fluid-internal/client-utils": "~2.
|
|
148
|
-
"@fluid-internal/mocha-test-setup": "~2.
|
|
149
|
-
"@fluid-private/test-loader-utils": "~2.
|
|
147
|
+
"@fluid-internal/client-utils": "~2.115.0",
|
|
148
|
+
"@fluid-internal/mocha-test-setup": "~2.115.0",
|
|
149
|
+
"@fluid-private/test-loader-utils": "~2.115.0",
|
|
150
150
|
"@fluid-tools/build-cli": "^0.65.0",
|
|
151
151
|
"@fluidframework/build-common": "^2.0.3",
|
|
152
152
|
"@fluidframework/build-tools": "^0.65.0",
|
package/src/container.ts
CHANGED
|
@@ -20,6 +20,7 @@ import type {
|
|
|
20
20
|
IBatchMessage,
|
|
21
21
|
ICodeDetailsLoader,
|
|
22
22
|
IContainer,
|
|
23
|
+
IContainerContextInternal,
|
|
23
24
|
IContainerEvents,
|
|
24
25
|
IContainerLoadMode,
|
|
25
26
|
IDeltaManager,
|
|
@@ -534,6 +535,17 @@ export class Container
|
|
|
534
535
|
|
|
535
536
|
private readonly _deltaManager: DeltaManager<ConnectionManager>;
|
|
536
537
|
private service: IDocumentService | undefined;
|
|
538
|
+
private readonly fetchOps: NonNullable<IContainerContextInternal["fetchOps"]> = async (
|
|
539
|
+
from,
|
|
540
|
+
to,
|
|
541
|
+
abortSignal,
|
|
542
|
+
) => {
|
|
543
|
+
const deltaStorage = await this.service?.connectToDeltaStorage();
|
|
544
|
+
if (deltaStorage === undefined) {
|
|
545
|
+
throw new Error("Cannot fetch ops: delta storage is unavailable");
|
|
546
|
+
}
|
|
547
|
+
return deltaStorage.fetchMessages(from, to, abortSignal);
|
|
548
|
+
};
|
|
537
549
|
|
|
538
550
|
private _runtime: IRuntime | undefined;
|
|
539
551
|
private get runtime(): IRuntime {
|
|
@@ -2443,6 +2455,7 @@ export class Container
|
|
|
2443
2455
|
this.submitBatch(batch, referenceSequenceNumber),
|
|
2444
2456
|
submitSignalFn: (content, targetClientId) =>
|
|
2445
2457
|
this.submitSignal(content, targetClientId),
|
|
2458
|
+
fetchOps: this.fetchOps,
|
|
2446
2459
|
disposeFn: (error?: ICriticalContainerError) => this.dispose(error),
|
|
2447
2460
|
closeFn: (error?: ICriticalContainerError) => this.close(error),
|
|
2448
2461
|
updateDirtyContainerState: this.updateDirtyContainerState,
|
package/src/containerContext.ts
CHANGED
|
@@ -15,6 +15,7 @@ import type {
|
|
|
15
15
|
import type {
|
|
16
16
|
IBatchMessage,
|
|
17
17
|
IContainerContext,
|
|
18
|
+
IContainerContextInternal,
|
|
18
19
|
ILoader,
|
|
19
20
|
ILoaderOptions,
|
|
20
21
|
IDeltaManager,
|
|
@@ -72,6 +73,9 @@ export interface IContainerContextConfig
|
|
|
72
73
|
readonly taggedLogger: TelemetryLoggerExt;
|
|
73
74
|
// This "overrides" IContainerContext.snapshotWithContents to be required but allow `undefined`.
|
|
74
75
|
readonly snapshotWithContents: IContainerContext["snapshotWithContents"] | undefined;
|
|
76
|
+
// fetchOps is an internal-only capability (IContainerContextInternal), not part of the public
|
|
77
|
+
// IContainerContext contract. Optional: hosts may not provide op reading.
|
|
78
|
+
readonly fetchOps: IContainerContextInternal["fetchOps"];
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
/**
|
|
@@ -81,6 +85,7 @@ export class ContainerContext
|
|
|
81
85
|
implements
|
|
82
86
|
Required<Omit<IContainerContext, "snapshotWithContents">>,
|
|
83
87
|
Pick<IContainerContext, "snapshotWithContents">,
|
|
88
|
+
Pick<IContainerContextInternal, "fetchOps">,
|
|
84
89
|
IProvideLayerCompatDetails
|
|
85
90
|
{
|
|
86
91
|
/**
|
|
@@ -130,6 +135,7 @@ export class ContainerContext
|
|
|
130
135
|
content: unknown | ISignalEnvelope,
|
|
131
136
|
targetClientId?: string,
|
|
132
137
|
) => void;
|
|
138
|
+
public readonly fetchOps: IContainerContextInternal["fetchOps"];
|
|
133
139
|
public readonly disposeFn: (error?: ICriticalContainerError) => void;
|
|
134
140
|
public readonly closeFn: (error?: ICriticalContainerError) => void;
|
|
135
141
|
public readonly updateDirtyContainerState: (dirty: boolean) => void;
|
|
@@ -189,6 +195,7 @@ export class ContainerContext
|
|
|
189
195
|
this.submitSummaryFn = config.submitSummaryFn;
|
|
190
196
|
this.submitBatchFn = config.submitBatchFn;
|
|
191
197
|
this.submitSignalFn = config.submitSignalFn;
|
|
198
|
+
this.fetchOps = config.fetchOps;
|
|
192
199
|
this.disposeFn = config.disposeFn;
|
|
193
200
|
this.closeFn = config.closeFn;
|
|
194
201
|
this.updateDirtyContainerState = config.updateDirtyContainerState;
|
|
@@ -25,9 +25,9 @@ import {
|
|
|
25
25
|
* {@link IContainerDriverServices.documentServiceFactory} must be able to materialize the document
|
|
26
26
|
* at {@link ILoadContainerToSequenceNumberProps.loadToSequenceNumber} - i.e. it must implement the
|
|
27
27
|
* point-in-time capability the loader detects. For ODSP, pass an
|
|
28
|
-
* `
|
|
28
|
+
* `IPointInTimeDocumentServiceFactory` created by `getOdspPointInTimeDocumentServiceFactory`.
|
|
29
29
|
*
|
|
30
|
-
* @
|
|
30
|
+
* @legacy @alpha
|
|
31
31
|
*/
|
|
32
32
|
export interface ILoadContainerToSequenceNumberProps
|
|
33
33
|
extends IContainerHostProps,
|
|
@@ -58,11 +58,15 @@ export interface ILoadContainerToSequenceNumberProps
|
|
|
58
58
|
* The supplied {@link IContainerDriverServices.documentServiceFactory} must support point-in-time
|
|
59
59
|
* loading: it must be able to serve a snapshot at or before
|
|
60
60
|
* {@link ILoadContainerToSequenceNumberProps.loadToSequenceNumber} and replay the document forward
|
|
61
|
-
* through that sequence number. For ODSP, pass
|
|
62
|
-
* `@fluidframework/odsp-driver`) directly - the
|
|
63
|
-
* so no wrapping or decoration is required.
|
|
61
|
+
* through that sequence number. For ODSP, pass the result of
|
|
62
|
+
* `getOdspPointInTimeDocumentServiceFactory` (from `@fluidframework/odsp-driver`) directly - the
|
|
63
|
+
* loader materializes the point-in-time view itself, so no wrapping or decoration is required.
|
|
64
64
|
*
|
|
65
|
-
* @
|
|
65
|
+
* @param props - The load options, point-in-time-capable driver services, target sequence number, and
|
|
66
|
+
* optional cancellation signal.
|
|
67
|
+
* @returns A disconnected, read-only container materialized at the requested sequence number.
|
|
68
|
+
*
|
|
69
|
+
* @legacy @alpha
|
|
66
70
|
*/
|
|
67
71
|
export async function loadContainerToSequenceNumber(
|
|
68
72
|
props: ILoadContainerToSequenceNumberProps,
|
|
@@ -77,7 +81,7 @@ export async function loadContainerToSequenceNumber(
|
|
|
77
81
|
const capableFactory = asPointInTimeCapableFactory(documentServiceFactory);
|
|
78
82
|
if (capableFactory === undefined) {
|
|
79
83
|
throw new UsageError(
|
|
80
|
-
"The provided documentServiceFactory does not support point-in-time loading. For ODSP, pass
|
|
84
|
+
"The provided documentServiceFactory does not support point-in-time loading. For ODSP, pass the result of getOdspPointInTimeDocumentServiceFactory.",
|
|
81
85
|
);
|
|
82
86
|
}
|
|
83
87
|
|
package/src/packageVersion.ts
CHANGED