@fluidframework/test-utils 2.22.1 → 2.23.0-325054

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 (62) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/TestSummaryUtils.d.ts +2 -2
  3. package/dist/TestSummaryUtils.d.ts.map +1 -1
  4. package/dist/TestSummaryUtils.js +17 -17
  5. package/dist/TestSummaryUtils.js.map +1 -1
  6. package/dist/containerRuntimeFactories.d.ts +80 -0
  7. package/dist/containerRuntimeFactories.d.ts.map +1 -0
  8. package/dist/containerRuntimeFactories.js +94 -0
  9. package/dist/containerRuntimeFactories.js.map +1 -0
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/localCodeLoader.d.ts.map +1 -1
  14. package/dist/localCodeLoader.js +6 -4
  15. package/dist/localCodeLoader.js.map +1 -1
  16. package/dist/packageVersion.d.ts +1 -1
  17. package/dist/packageVersion.d.ts.map +1 -1
  18. package/dist/packageVersion.js +1 -1
  19. package/dist/packageVersion.js.map +1 -1
  20. package/dist/testContainerRuntimeFactoryWithDefaultDataStore.d.ts +42 -10
  21. package/dist/testContainerRuntimeFactoryWithDefaultDataStore.d.ts.map +1 -1
  22. package/dist/testContainerRuntimeFactoryWithDefaultDataStore.js +9 -7
  23. package/dist/testContainerRuntimeFactoryWithDefaultDataStore.js.map +1 -1
  24. package/dist/testFluidObject.d.ts +1 -0
  25. package/dist/testFluidObject.d.ts.map +1 -1
  26. package/dist/testFluidObject.js +5 -4
  27. package/dist/testFluidObject.js.map +1 -1
  28. package/lib/TestSummaryUtils.d.ts +2 -2
  29. package/lib/TestSummaryUtils.d.ts.map +1 -1
  30. package/lib/TestSummaryUtils.js +8 -8
  31. package/lib/TestSummaryUtils.js.map +1 -1
  32. package/lib/containerRuntimeFactories.d.ts +80 -0
  33. package/lib/containerRuntimeFactories.d.ts.map +1 -0
  34. package/lib/containerRuntimeFactories.js +92 -0
  35. package/lib/containerRuntimeFactories.js.map +1 -0
  36. package/lib/index.d.ts +1 -1
  37. package/lib/index.d.ts.map +1 -1
  38. package/lib/index.js +1 -1
  39. package/lib/index.js.map +1 -1
  40. package/lib/localCodeLoader.d.ts.map +1 -1
  41. package/lib/localCodeLoader.js +3 -1
  42. package/lib/localCodeLoader.js.map +1 -1
  43. package/lib/packageVersion.d.ts +1 -1
  44. package/lib/packageVersion.d.ts.map +1 -1
  45. package/lib/packageVersion.js +1 -1
  46. package/lib/packageVersion.js.map +1 -1
  47. package/lib/testContainerRuntimeFactoryWithDefaultDataStore.d.ts +42 -10
  48. package/lib/testContainerRuntimeFactoryWithDefaultDataStore.d.ts.map +1 -1
  49. package/lib/testContainerRuntimeFactoryWithDefaultDataStore.js +9 -7
  50. package/lib/testContainerRuntimeFactoryWithDefaultDataStore.js.map +1 -1
  51. package/lib/testFluidObject.d.ts +1 -0
  52. package/lib/testFluidObject.d.ts.map +1 -1
  53. package/lib/testFluidObject.js +5 -4
  54. package/lib/testFluidObject.js.map +1 -1
  55. package/package.json +23 -24
  56. package/src/TestSummaryUtils.ts +9 -6
  57. package/src/containerRuntimeFactories.ts +183 -0
  58. package/src/index.ts +5 -1
  59. package/src/localCodeLoader.ts +4 -1
  60. package/src/packageVersion.ts +1 -1
  61. package/src/testContainerRuntimeFactoryWithDefaultDataStore.ts +57 -17
  62. package/src/testFluidObject.ts +8 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # @fluidframework/test-utils
2
2
 
3
+ ## 2.23.0
4
+
5
+ Dependency updates only.
6
+
3
7
  ## 2.22.0
4
8
 
5
9
  Dependency updates only.
@@ -2,12 +2,12 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { ContainerRuntimeFactoryWithDefaultDataStore } from "@fluidframework/aqueduct/internal";
6
5
  import { IContainer, IHostLoader } from "@fluidframework/container-definitions/internal";
7
6
  import { IOnDemandSummarizeOptions, ISummarizer } from "@fluidframework/container-runtime/internal";
8
7
  import { IConfigProviderBase, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
9
8
  import { ISummaryTree } from "@fluidframework/driver-definitions";
10
9
  import { IFluidDataStoreFactory, NamedFluidDataStoreRegistryEntries } from "@fluidframework/runtime-definitions/internal";
10
+ import { type ContainerRuntimeFactoryWithDefaultDataStoreConstructor } from "./testContainerRuntimeFactoryWithDefaultDataStore.js";
11
11
  import { ITestContainerConfig, ITestObjectProvider } from "./testObjectProvider.js";
12
12
  /** @internal */
13
13
  export declare function createSummarizerCore(container: IContainer, loader: IHostLoader, summaryVersion?: string): Promise<{
@@ -20,7 +20,7 @@ export declare function createSummarizerCore(container: IContainer, loader: IHos
20
20
  * The ISummarizer can be used to generate on-demand summaries. The IContainer can be used to fetch data stores, etc.
21
21
  * @internal
22
22
  */
23
- export declare function createSummarizerFromFactory(provider: ITestObjectProvider, container: IContainer, dataStoreFactory: IFluidDataStoreFactory, summaryVersion?: string, containerRuntimeFactoryType?: typeof ContainerRuntimeFactoryWithDefaultDataStore, registryEntries?: NamedFluidDataStoreRegistryEntries, logger?: ITelemetryBaseLogger, configProvider?: IConfigProviderBase): Promise<{
23
+ export declare function createSummarizerFromFactory(provider: ITestObjectProvider, container: IContainer, dataStoreFactory: IFluidDataStoreFactory, summaryVersion?: string, containerRuntimeFactoryType?: ContainerRuntimeFactoryWithDefaultDataStoreConstructor, registryEntries?: NamedFluidDataStoreRegistryEntries, logger?: ITelemetryBaseLogger, configProvider?: IConfigProviderBase): Promise<{
24
24
  container: IContainer;
25
25
  summarizer: ISummarizer;
26
26
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"TestSummaryUtils.d.ts","sourceRoot":"","sources":["../src/TestSummaryUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,2CAA2C,EAAE,MAAM,mCAAmC,CAAC;AAChG,OAAO,EACN,UAAU,EACV,WAAW,EAEX,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAEN,yBAAyB,EACzB,WAAW,EAEX,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACN,mBAAmB,EAGnB,oBAAoB,EACpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EACN,sBAAsB,EACtB,kCAAkC,EAClC,MAAM,8CAA8C,CAAC;AAKtD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AA2BpF,gBAAgB;AAChB,wBAAsB,oBAAoB,CACzC,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE,WAAW,EACnB,cAAc,CAAC,EAAE,MAAM;;;GAiCvB;AAWD;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAChD,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,UAAU,EACrB,gBAAgB,EAAE,sBAAsB,EACxC,cAAc,CAAC,EAAE,MAAM,EACvB,2BAA2B,qDAA8C,EACzE,eAAe,CAAC,EAAE,kCAAkC,EACpD,MAAM,CAAC,EAAE,oBAAoB,EAC7B,cAAc,GAAE,mBAAgD,GAC9D,OAAO,CAAC;IAAE,SAAS,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,WAAW,CAAA;CAAE,CAAC,CAiB7D;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACrC,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,UAAU,EACrB,MAAM,CAAC,EAAE,oBAAoB,EAC7B,cAAc,CAAC,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,oBAAoB,GAC3B,OAAO,CAAC;IAAE,SAAS,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,WAAW,CAAA;CAAE,CAAC,CAe7D;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CACjC,UAAU,EAAE,WAAW,EAEvB,MAAM,GAAE,MAAM,GAAG,yBAA6C,GAC5D,OAAO,CAAC,WAAW,CAAC,CAuCtB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B;;OAEG;IACH,WAAW,EAAE,YAAY,CAAC;IAC1B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"TestSummaryUtils.d.ts","sourceRoot":"","sources":["../src/TestSummaryUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,UAAU,EACV,WAAW,EAEX,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAEN,yBAAyB,EACzB,WAAW,EAEX,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACN,mBAAmB,EAGnB,oBAAoB,EACpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EACN,sBAAsB,EACtB,kCAAkC,EAClC,MAAM,8CAA8C,CAAC;AAMtD,OAAO,EACN,KAAK,sDAAsD,EAE3D,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AA2BpF,gBAAgB;AAChB,wBAAsB,oBAAoB,CACzC,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE,WAAW,EACnB,cAAc,CAAC,EAAE,MAAM;;;GAiCvB;AAWD;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAChD,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,UAAU,EACrB,gBAAgB,EAAE,sBAAsB,EACxC,cAAc,CAAC,EAAE,MAAM,EACvB,2BAA2B,CAAC,EAAE,sDAAsD,EACpF,eAAe,CAAC,EAAE,kCAAkC,EACpD,MAAM,CAAC,EAAE,oBAAoB,EAC7B,cAAc,GAAE,mBAAgD,GAC9D,OAAO,CAAC;IAAE,SAAS,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,WAAW,CAAA;CAAE,CAAC,CAkB7D;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACrC,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,UAAU,EACrB,MAAM,CAAC,EAAE,oBAAoB,EAC7B,cAAc,CAAC,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,oBAAoB,GAC3B,OAAO,CAAC;IAAE,SAAS,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,WAAW,CAAA;CAAE,CAAC,CAe7D;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CACjC,UAAU,EAAE,WAAW,EACvB,MAAM,GAAE,MAAM,GAAG,yBAA6C,GAC5D,OAAO,CAAC,WAAW,CAAC,CAsCtB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B;;OAEG;IACH,WAAW,EAAE,YAAY,CAAC;IAC1B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;CACtB"}
@@ -5,11 +5,12 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.summarizeNow = exports.createSummarizer = exports.createSummarizerFromFactory = exports.createSummarizerCore = void 0;
8
- const internal_1 = require("@fluidframework/aqueduct/internal");
9
- const internal_2 = require("@fluidframework/container-definitions/internal");
10
- const internal_3 = require("@fluidframework/core-utils/internal");
11
- const internal_4 = require("@fluidframework/driver-definitions/internal");
8
+ const internal_1 = require("@fluidframework/container-definitions/internal");
9
+ const internal_2 = require("@fluidframework/core-utils/internal");
10
+ const internal_3 = require("@fluidframework/driver-definitions/internal");
12
11
  const TestConfigs_js_1 = require("./TestConfigs.js");
12
+ // eslint-disable-next-line import/no-deprecated
13
+ const containerRuntimeFactories_js_1 = require("./containerRuntimeFactories.js");
13
14
  const containerUtils_js_1 = require("./containerUtils.js");
14
15
  const testContainerRuntimeFactoryWithDefaultDataStore_js_1 = require("./testContainerRuntimeFactoryWithDefaultDataStore.js");
15
16
  const timeoutUtils_js_1 = require("./timeoutUtils.js");
@@ -32,7 +33,7 @@ async function getSummarizerBackCompat(container) {
32
33
  }
33
34
  }
34
35
  const response = await container.request({ url: "_summarizer" });
35
- (0, internal_3.assert)(response.status === 200, "requesting '/' should return default data object");
36
+ (0, internal_2.assert)(response.status === 200, "requesting '/' should return default data object");
36
37
  return response.value;
37
38
  }
38
39
  /** @internal */
@@ -43,13 +44,13 @@ async function createSummarizerCore(container, loader, summaryVersion) {
43
44
  }
44
45
  const request = {
45
46
  headers: {
46
- [internal_2.LoaderHeader.cache]: false,
47
- [internal_2.LoaderHeader.clientDetails]: {
47
+ [internal_1.LoaderHeader.cache]: false,
48
+ [internal_1.LoaderHeader.clientDetails]: {
48
49
  capabilities: { interactive: false },
49
50
  type: summarizerClientType,
50
51
  },
51
- [internal_4.DriverHeader.summarizingClient]: true,
52
- [internal_2.LoaderHeader.version]: summaryVersion,
52
+ [internal_3.DriverHeader.summarizingClient]: true,
53
+ [internal_1.LoaderHeader.version]: summaryVersion,
53
54
  },
54
55
  url: absoluteUrl,
55
56
  };
@@ -81,8 +82,10 @@ const defaultSummaryOptions = {
81
82
  * The ISummarizer can be used to generate on-demand summaries. The IContainer can be used to fetch data stores, etc.
82
83
  * @internal
83
84
  */
84
- async function createSummarizerFromFactory(provider, container, dataStoreFactory, summaryVersion, containerRuntimeFactoryType = internal_1.ContainerRuntimeFactoryWithDefaultDataStore, registryEntries, logger, configProvider = (0, TestConfigs_js_1.createTestConfigProvider)()) {
85
- const runtimeFactory = (0, testContainerRuntimeFactoryWithDefaultDataStore_js_1.createContainerRuntimeFactoryWithDefaultDataStore)(containerRuntimeFactoryType, {
85
+ async function createSummarizerFromFactory(provider, container, dataStoreFactory, summaryVersion, containerRuntimeFactoryType, registryEntries, logger, configProvider = (0, TestConfigs_js_1.createTestConfigProvider)()) {
86
+ const runtimeFactory = (0, testContainerRuntimeFactoryWithDefaultDataStore_js_1.createContainerRuntimeFactoryWithDefaultDataStore)(
87
+ // eslint-disable-next-line import/no-deprecated
88
+ containerRuntimeFactoryType ?? containerRuntimeFactories_js_1.ContainerRuntimeFactoryWithDefaultDataStore, {
86
89
  defaultFactory: dataStoreFactory,
87
90
  registryEntries: registryEntries ?? [
88
91
  [dataStoreFactory.type, Promise.resolve(dataStoreFactory)],
@@ -129,10 +132,7 @@ exports.createSummarizer = createSummarizer;
129
132
  * Defaults to the reason "end-to-end test".
130
133
  * @internal
131
134
  */
132
- async function summarizeNow(summarizer,
133
- // eslint-disable-next-line import/no-deprecated
134
- inputs = "end-to-end test") {
135
- // eslint-disable-next-line import/no-deprecated
135
+ async function summarizeNow(summarizer, inputs = "end-to-end test") {
136
136
  const options = typeof inputs === "string" ? { reason: inputs } : inputs;
137
137
  const result = summarizer.summarizeOnDemand(options);
138
138
  const submitResult = await (0, timeoutUtils_js_1.timeoutAwait)(result.summarySubmitted, {
@@ -141,8 +141,8 @@ inputs = "end-to-end test") {
141
141
  if (!submitResult.success) {
142
142
  throw submitResult.error;
143
143
  }
144
- (0, internal_3.assert)(submitResult.data.stage === "submit", "on-demand summary submitted data stage should be submit");
145
- (0, internal_3.assert)(submitResult.data.summaryTree !== undefined, "summary tree should exist");
144
+ (0, internal_2.assert)(submitResult.data.stage === "submit", "on-demand summary submitted data stage should be submit");
145
+ (0, internal_2.assert)(submitResult.data.summaryTree !== undefined, "summary tree should exist");
146
146
  const broadcastResult = await (0, timeoutUtils_js_1.timeoutAwait)(result.summaryOpBroadcasted, {
147
147
  errorMsg: "Promise timed out: summaryOpBroadcasted",
148
148
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TestSummaryUtils.js","sourceRoot":"","sources":["../src/TestSummaryUtils.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 { ContainerRuntimeFactoryWithDefaultDataStore } from \"@fluidframework/aqueduct/internal\";\nimport {\n\tIContainer,\n\tIHostLoader,\n\tLoaderHeader,\n} from \"@fluidframework/container-definitions/internal\";\nimport {\n\t// eslint-disable-next-line import/no-deprecated\n\tIOnDemandSummarizeOptions,\n\tISummarizer,\n\tISummaryRuntimeOptions,\n} from \"@fluidframework/container-runtime/internal\";\nimport {\n\tIConfigProviderBase,\n\tIRequest,\n\tIResponse,\n\tITelemetryBaseLogger,\n} from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport { ISummaryTree } from \"@fluidframework/driver-definitions\";\nimport { DriverHeader } from \"@fluidframework/driver-definitions/internal\";\nimport {\n\tIFluidDataStoreFactory,\n\tNamedFluidDataStoreRegistryEntries,\n} from \"@fluidframework/runtime-definitions/internal\";\n\nimport { createTestConfigProvider } from \"./TestConfigs.js\";\nimport { waitForContainerConnection } from \"./containerUtils.js\";\nimport { createContainerRuntimeFactoryWithDefaultDataStore } from \"./testContainerRuntimeFactoryWithDefaultDataStore.js\";\nimport { ITestContainerConfig, ITestObjectProvider } from \"./testObjectProvider.js\";\nimport { timeoutAwait } from \"./timeoutUtils.js\";\n\nconst summarizerClientType = \"summarizer\";\n\n/**\n * This function should ONLY be used for back compat purposes\n * LTS versions of the Loader/Container will not have the \"getEntryPoint\" method, so we need to fallback to \"request\"\n * This function can be removed once LTS version of Loader moves to 2.0.0-internal.7.0.0\n * @internal\n */\nasync function getSummarizerBackCompat(container: IContainer): Promise<ISummarizer> {\n\tif (container.getEntryPoint !== undefined) {\n\t\tconst entryPoint = await container.getEntryPoint();\n\t\t// Note: We need to also check if the result of `getEntryPoint()` is defined. This is because when running\n\t\t// cross version compat testing scenarios, if we create with 1.X container and load with 2.X then the\n\t\t// function container.getEntryPoint will be defined for the 2.X container. However, it will not return undefined\n\t\t// since the container's runtime will be on version 1.X, which does not have an entry point defined.\n\t\tif (entryPoint !== undefined) {\n\t\t\treturn entryPoint as ISummarizer;\n\t\t}\n\t}\n\tconst response: IResponse = await (container as any).request({ url: \"_summarizer\" });\n\tassert(response.status === 200, \"requesting '/' should return default data object\");\n\treturn response.value as ISummarizer;\n}\n\n/** @internal */\nexport async function createSummarizerCore(\n\tcontainer: IContainer,\n\tloader: IHostLoader,\n\tsummaryVersion?: string,\n) {\n\tconst absoluteUrl = await container.getAbsoluteUrl(\"\");\n\tif (absoluteUrl === undefined) {\n\t\tthrow new Error(\"URL could not be resolved\");\n\t}\n\n\tconst request: IRequest = {\n\t\theaders: {\n\t\t\t[LoaderHeader.cache]: false,\n\t\t\t[LoaderHeader.clientDetails]: {\n\t\t\t\tcapabilities: { interactive: false },\n\t\t\t\ttype: summarizerClientType,\n\t\t\t},\n\t\t\t[DriverHeader.summarizingClient]: true,\n\t\t\t[LoaderHeader.version]: summaryVersion,\n\t\t},\n\t\turl: absoluteUrl,\n\t};\n\tconst summarizerContainer = await loader.resolve(request);\n\tawait waitForContainerConnection(summarizerContainer);\n\n\t// Old loaders will not have getEntryPoint API on the container. So, use getSummarizerBackCompat which\n\t// will use request pattern to get the summarizer in these old loaders.\n\tconst fluidObject = await getSummarizerBackCompat(summarizerContainer);\n\tif (fluidObject.ISummarizer === undefined) {\n\t\tthrow new Error(\"Fluid object does not implement ISummarizer\");\n\t}\n\n\treturn {\n\t\tcontainer: summarizerContainer,\n\t\tsummarizer: fluidObject.ISummarizer,\n\t};\n}\n\nconst defaultSummaryOptions: ISummaryRuntimeOptions = {\n\tsummaryConfigOverrides: {\n\t\tstate: \"disableHeuristics\",\n\t\tmaxAckWaitTime: 20000, // Some of the AFR tests take a long time to ack.\n\t\tmaxOpsSinceLastSummary: 7000,\n\t\tinitialSummarizerDelayMs: 0,\n\t},\n};\n\n/**\n * Creates a summarizer client from the given container and data store factory, and returns the summarizer client's\n * IContainer and ISummarizer.\n * The ISummarizer can be used to generate on-demand summaries. The IContainer can be used to fetch data stores, etc.\n * @internal\n */\nexport async function createSummarizerFromFactory(\n\tprovider: ITestObjectProvider,\n\tcontainer: IContainer,\n\tdataStoreFactory: IFluidDataStoreFactory,\n\tsummaryVersion?: string,\n\tcontainerRuntimeFactoryType = ContainerRuntimeFactoryWithDefaultDataStore,\n\tregistryEntries?: NamedFluidDataStoreRegistryEntries,\n\tlogger?: ITelemetryBaseLogger,\n\tconfigProvider: IConfigProviderBase = createTestConfigProvider(),\n): Promise<{ container: IContainer; summarizer: ISummarizer }> {\n\tconst runtimeFactory = createContainerRuntimeFactoryWithDefaultDataStore(\n\t\tcontainerRuntimeFactoryType,\n\t\t{\n\t\t\tdefaultFactory: dataStoreFactory,\n\t\t\tregistryEntries: registryEntries ?? [\n\t\t\t\t[dataStoreFactory.type, Promise.resolve(dataStoreFactory)],\n\t\t\t],\n\t\t\truntimeOptions: { summaryOptions: defaultSummaryOptions },\n\t\t},\n\t);\n\n\tconst loader = provider.createLoader([[provider.defaultCodeDetails, runtimeFactory]], {\n\t\tconfigProvider,\n\t\tlogger,\n\t});\n\treturn createSummarizerCore(container, loader, summaryVersion);\n}\n\n/**\n * Creates a summarizer client from the given container and returns the summarizer client's IContainer and ISummarizer.\n * The ISummarizer can be used to generate on-demand summaries. The IContainer can be used to fetch data stores, etc.\n *\n * Can pass in a test config provider to enable/disable features.\n * @internal\n */\nexport async function createSummarizer(\n\tprovider: ITestObjectProvider,\n\tcontainer: IContainer,\n\tconfig?: ITestContainerConfig,\n\tsummaryVersion?: string,\n\tlogger?: ITelemetryBaseLogger,\n): Promise<{ container: IContainer; summarizer: ISummarizer }> {\n\tconst testContainerConfig: ITestContainerConfig = {\n\t\t...config,\n\t\truntimeOptions: {\n\t\t\t...config?.runtimeOptions,\n\t\t\tsummaryOptions: config?.runtimeOptions?.summaryOptions ?? defaultSummaryOptions,\n\t\t},\n\t\tloaderProps: {\n\t\t\t...config?.loaderProps,\n\t\t\tconfigProvider: config?.loaderProps?.configProvider ?? createTestConfigProvider(),\n\t\t\tlogger,\n\t\t},\n\t};\n\tconst loader = provider.makeTestLoader(testContainerConfig);\n\treturn createSummarizerCore(container, loader, summaryVersion);\n}\n\n/**\n * Summarizes on demand and returns the summary tree, the version number and the reference sequence number of the\n * submitted summary.\n *\n * @param summarizer - The ISummarizer to use to summarize on demand\n * @param inputs - Either the reason string or the full IOnDemandSummarizeOptions.\n * Defaults to the reason \"end-to-end test\".\n * @internal\n */\nexport async function summarizeNow(\n\tsummarizer: ISummarizer,\n\t// eslint-disable-next-line import/no-deprecated\n\tinputs: string | IOnDemandSummarizeOptions = \"end-to-end test\",\n): Promise<SummaryInfo> {\n\t// eslint-disable-next-line import/no-deprecated\n\tconst options: IOnDemandSummarizeOptions =\n\t\ttypeof inputs === \"string\" ? { reason: inputs } : inputs;\n\tconst result = summarizer.summarizeOnDemand(options);\n\n\tconst submitResult = await timeoutAwait(result.summarySubmitted, {\n\t\terrorMsg: \"Promise timed out: summarySubmitted\",\n\t});\n\tif (!submitResult.success) {\n\t\tthrow submitResult.error;\n\t}\n\tassert(\n\t\tsubmitResult.data.stage === \"submit\",\n\t\t\"on-demand summary submitted data stage should be submit\",\n\t);\n\tassert(submitResult.data.summaryTree !== undefined, \"summary tree should exist\");\n\n\tconst broadcastResult = await timeoutAwait(result.summaryOpBroadcasted, {\n\t\terrorMsg: \"Promise timed out: summaryOpBroadcasted\",\n\t});\n\tif (!broadcastResult.success) {\n\t\tthrow broadcastResult.error;\n\t}\n\n\tconst ackNackResult = await timeoutAwait(result.receivedSummaryAckOrNack, {\n\t\terrorMsg: \"Promise timed out: receivedSummaryAckOrNack\",\n\t});\n\tif (!ackNackResult.success) {\n\t\tthrow ackNackResult.error;\n\t}\n\n\tawait new Promise((resolve) => process.nextTick(resolve));\n\n\treturn {\n\t\tsummaryTree: submitResult.data.summaryTree,\n\t\tsummaryVersion: ackNackResult.data.summaryAckOp.contents.handle,\n\t\tsummaryRefSeq: submitResult.data.referenceSequenceNumber,\n\t};\n}\n\n/**\n * Summary information containing the summary tree, summary version, and summary sequence number.\n * @internal\n */\nexport interface SummaryInfo {\n\t/**\n\t * The summary tree generated\n\t */\n\tsummaryTree: ISummaryTree;\n\t/**\n\t * Handle of the completed summary\n\t */\n\tsummaryVersion: string;\n\t/**\n\t * Reference sequence number of the current summary generation\n\t */\n\tsummaryRefSeq: number;\n}\n"]}
1
+ {"version":3,"file":"TestSummaryUtils.js","sourceRoot":"","sources":["../src/TestSummaryUtils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6EAIwD;AAaxD,kEAA6D;AAE7D,0EAA2E;AAM3E,qDAA4D;AAC5D,gDAAgD;AAChD,iFAA6F;AAC7F,2DAAiE;AACjE,6HAG8D;AAE9D,uDAAiD;AAEjD,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAE1C;;;;;GAKG;AACH,KAAK,UAAU,uBAAuB,CAAC,SAAqB;IAC3D,IAAI,SAAS,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC;QACnD,0GAA0G;QAC1G,qGAAqG;QACrG,gHAAgH;QAChH,oGAAoG;QACpG,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,UAAyB,CAAC;QAClC,CAAC;IACF,CAAC;IACD,MAAM,QAAQ,GAAc,MAAO,SAAiB,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;IACrF,IAAA,iBAAM,EAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,kDAAkD,CAAC,CAAC;IACpF,OAAO,QAAQ,CAAC,KAAoB,CAAC;AACtC,CAAC;AAED,gBAAgB;AACT,KAAK,UAAU,oBAAoB,CACzC,SAAqB,EACrB,MAAmB,EACnB,cAAuB;IAEvB,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACvD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,OAAO,GAAa;QACzB,OAAO,EAAE;YACR,CAAC,uBAAY,CAAC,KAAK,CAAC,EAAE,KAAK;YAC3B,CAAC,uBAAY,CAAC,aAAa,CAAC,EAAE;gBAC7B,YAAY,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBACpC,IAAI,EAAE,oBAAoB;aAC1B;YACD,CAAC,uBAAY,CAAC,iBAAiB,CAAC,EAAE,IAAI;YACtC,CAAC,uBAAY,CAAC,OAAO,CAAC,EAAE,cAAc;SACtC;QACD,GAAG,EAAE,WAAW;KAChB,CAAC;IACF,MAAM,mBAAmB,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,IAAA,8CAA0B,EAAC,mBAAmB,CAAC,CAAC;IAEtD,sGAAsG;IACtG,uEAAuE;IACvE,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IACvE,IAAI,WAAW,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChE,CAAC;IAED,OAAO;QACN,SAAS,EAAE,mBAAmB;QAC9B,UAAU,EAAE,WAAW,CAAC,WAAW;KACnC,CAAC;AACH,CAAC;AApCD,oDAoCC;AAED,MAAM,qBAAqB,GAA2B;IACrD,sBAAsB,EAAE;QACvB,KAAK,EAAE,mBAAmB;QAC1B,cAAc,EAAE,KAAK,EAAE,iDAAiD;QACxE,sBAAsB,EAAE,IAAI;QAC5B,wBAAwB,EAAE,CAAC;KAC3B;CACD,CAAC;AAEF;;;;;GAKG;AACI,KAAK,UAAU,2BAA2B,CAChD,QAA6B,EAC7B,SAAqB,EACrB,gBAAwC,EACxC,cAAuB,EACvB,2BAAoF,EACpF,eAAoD,EACpD,MAA6B,EAC7B,iBAAsC,IAAA,yCAAwB,GAAE;IAEhE,MAAM,cAAc,GAAG,IAAA,sGAAiD;IACvE,gDAAgD;IAChD,2BAA2B,IAAI,0EAA2C,EAC1E;QACC,cAAc,EAAE,gBAAgB;QAChC,eAAe,EAAE,eAAe,IAAI;YACnC,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;SAC1D;QACD,cAAc,EAAE,EAAE,cAAc,EAAE,qBAAqB,EAAE;KACzD,CACD,CAAC;IAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC,EAAE;QACrF,cAAc;QACd,MAAM;KACN,CAAC,CAAC;IACH,OAAO,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;AAChE,CAAC;AA3BD,kEA2BC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,gBAAgB,CACrC,QAA6B,EAC7B,SAAqB,EACrB,MAA6B,EAC7B,cAAuB,EACvB,MAA6B;IAE7B,MAAM,mBAAmB,GAAyB;QACjD,GAAG,MAAM;QACT,cAAc,EAAE;YACf,GAAG,MAAM,EAAE,cAAc;YACzB,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,IAAI,qBAAqB;SAC/E;QACD,WAAW,EAAE;YACZ,GAAG,MAAM,EAAE,WAAW;YACtB,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,IAAI,IAAA,yCAAwB,GAAE;YACjF,MAAM;SACN;KACD,CAAC;IACF,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAC5D,OAAO,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;AAChE,CAAC;AArBD,4CAqBC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,YAAY,CACjC,UAAuB,EACvB,SAA6C,iBAAiB;IAE9D,MAAM,OAAO,GACZ,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,MAAM,IAAA,8BAAY,EAAC,MAAM,CAAC,gBAAgB,EAAE;QAChE,QAAQ,EAAE,qCAAqC;KAC/C,CAAC,CAAC;IACH,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,YAAY,CAAC,KAAK,CAAC;IAC1B,CAAC;IACD,IAAA,iBAAM,EACL,YAAY,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EACpC,yDAAyD,CACzD,CAAC;IACF,IAAA,iBAAM,EAAC,YAAY,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,2BAA2B,CAAC,CAAC;IAEjF,MAAM,eAAe,GAAG,MAAM,IAAA,8BAAY,EAAC,MAAM,CAAC,oBAAoB,EAAE;QACvE,QAAQ,EAAE,yCAAyC;KACnD,CAAC,CAAC;IACH,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,eAAe,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,IAAA,8BAAY,EAAC,MAAM,CAAC,wBAAwB,EAAE;QACzE,QAAQ,EAAE,6CAA6C;KACvD,CAAC,CAAC;IACH,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,aAAa,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAE1D,OAAO;QACN,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,WAAW;QAC1C,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM;QAC/D,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,uBAAuB;KACxD,CAAC;AACH,CAAC;AAzCD,oCAyCC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tIContainer,\n\tIHostLoader,\n\tLoaderHeader,\n} from \"@fluidframework/container-definitions/internal\";\nimport {\n\t// eslint-disable-next-line import/no-deprecated\n\tIOnDemandSummarizeOptions,\n\tISummarizer,\n\tISummaryRuntimeOptions,\n} from \"@fluidframework/container-runtime/internal\";\nimport {\n\tIConfigProviderBase,\n\tIRequest,\n\tIResponse,\n\tITelemetryBaseLogger,\n} from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport { ISummaryTree } from \"@fluidframework/driver-definitions\";\nimport { DriverHeader } from \"@fluidframework/driver-definitions/internal\";\nimport {\n\tIFluidDataStoreFactory,\n\tNamedFluidDataStoreRegistryEntries,\n} from \"@fluidframework/runtime-definitions/internal\";\n\nimport { createTestConfigProvider } from \"./TestConfigs.js\";\n// eslint-disable-next-line import/no-deprecated\nimport { ContainerRuntimeFactoryWithDefaultDataStore } from \"./containerRuntimeFactories.js\";\nimport { waitForContainerConnection } from \"./containerUtils.js\";\nimport {\n\ttype ContainerRuntimeFactoryWithDefaultDataStoreConstructor,\n\tcreateContainerRuntimeFactoryWithDefaultDataStore,\n} from \"./testContainerRuntimeFactoryWithDefaultDataStore.js\";\nimport { ITestContainerConfig, ITestObjectProvider } from \"./testObjectProvider.js\";\nimport { timeoutAwait } from \"./timeoutUtils.js\";\n\nconst summarizerClientType = \"summarizer\";\n\n/**\n * This function should ONLY be used for back compat purposes\n * LTS versions of the Loader/Container will not have the \"getEntryPoint\" method, so we need to fallback to \"request\"\n * This function can be removed once LTS version of Loader moves to 2.0.0-internal.7.0.0\n * @internal\n */\nasync function getSummarizerBackCompat(container: IContainer): Promise<ISummarizer> {\n\tif (container.getEntryPoint !== undefined) {\n\t\tconst entryPoint = await container.getEntryPoint();\n\t\t// Note: We need to also check if the result of `getEntryPoint()` is defined. This is because when running\n\t\t// cross version compat testing scenarios, if we create with 1.X container and load with 2.X then the\n\t\t// function container.getEntryPoint will be defined for the 2.X container. However, it will not return undefined\n\t\t// since the container's runtime will be on version 1.X, which does not have an entry point defined.\n\t\tif (entryPoint !== undefined) {\n\t\t\treturn entryPoint as ISummarizer;\n\t\t}\n\t}\n\tconst response: IResponse = await (container as any).request({ url: \"_summarizer\" });\n\tassert(response.status === 200, \"requesting '/' should return default data object\");\n\treturn response.value as ISummarizer;\n}\n\n/** @internal */\nexport async function createSummarizerCore(\n\tcontainer: IContainer,\n\tloader: IHostLoader,\n\tsummaryVersion?: string,\n) {\n\tconst absoluteUrl = await container.getAbsoluteUrl(\"\");\n\tif (absoluteUrl === undefined) {\n\t\tthrow new Error(\"URL could not be resolved\");\n\t}\n\n\tconst request: IRequest = {\n\t\theaders: {\n\t\t\t[LoaderHeader.cache]: false,\n\t\t\t[LoaderHeader.clientDetails]: {\n\t\t\t\tcapabilities: { interactive: false },\n\t\t\t\ttype: summarizerClientType,\n\t\t\t},\n\t\t\t[DriverHeader.summarizingClient]: true,\n\t\t\t[LoaderHeader.version]: summaryVersion,\n\t\t},\n\t\turl: absoluteUrl,\n\t};\n\tconst summarizerContainer = await loader.resolve(request);\n\tawait waitForContainerConnection(summarizerContainer);\n\n\t// Old loaders will not have getEntryPoint API on the container. So, use getSummarizerBackCompat which\n\t// will use request pattern to get the summarizer in these old loaders.\n\tconst fluidObject = await getSummarizerBackCompat(summarizerContainer);\n\tif (fluidObject.ISummarizer === undefined) {\n\t\tthrow new Error(\"Fluid object does not implement ISummarizer\");\n\t}\n\n\treturn {\n\t\tcontainer: summarizerContainer,\n\t\tsummarizer: fluidObject.ISummarizer,\n\t};\n}\n\nconst defaultSummaryOptions: ISummaryRuntimeOptions = {\n\tsummaryConfigOverrides: {\n\t\tstate: \"disableHeuristics\",\n\t\tmaxAckWaitTime: 20000, // Some of the AFR tests take a long time to ack.\n\t\tmaxOpsSinceLastSummary: 7000,\n\t\tinitialSummarizerDelayMs: 0,\n\t},\n};\n\n/**\n * Creates a summarizer client from the given container and data store factory, and returns the summarizer client's\n * IContainer and ISummarizer.\n * The ISummarizer can be used to generate on-demand summaries. The IContainer can be used to fetch data stores, etc.\n * @internal\n */\nexport async function createSummarizerFromFactory(\n\tprovider: ITestObjectProvider,\n\tcontainer: IContainer,\n\tdataStoreFactory: IFluidDataStoreFactory,\n\tsummaryVersion?: string,\n\tcontainerRuntimeFactoryType?: ContainerRuntimeFactoryWithDefaultDataStoreConstructor,\n\tregistryEntries?: NamedFluidDataStoreRegistryEntries,\n\tlogger?: ITelemetryBaseLogger,\n\tconfigProvider: IConfigProviderBase = createTestConfigProvider(),\n): Promise<{ container: IContainer; summarizer: ISummarizer }> {\n\tconst runtimeFactory = createContainerRuntimeFactoryWithDefaultDataStore(\n\t\t// eslint-disable-next-line import/no-deprecated\n\t\tcontainerRuntimeFactoryType ?? ContainerRuntimeFactoryWithDefaultDataStore,\n\t\t{\n\t\t\tdefaultFactory: dataStoreFactory,\n\t\t\tregistryEntries: registryEntries ?? [\n\t\t\t\t[dataStoreFactory.type, Promise.resolve(dataStoreFactory)],\n\t\t\t],\n\t\t\truntimeOptions: { summaryOptions: defaultSummaryOptions },\n\t\t},\n\t);\n\n\tconst loader = provider.createLoader([[provider.defaultCodeDetails, runtimeFactory]], {\n\t\tconfigProvider,\n\t\tlogger,\n\t});\n\treturn createSummarizerCore(container, loader, summaryVersion);\n}\n\n/**\n * Creates a summarizer client from the given container and returns the summarizer client's IContainer and ISummarizer.\n * The ISummarizer can be used to generate on-demand summaries. The IContainer can be used to fetch data stores, etc.\n *\n * Can pass in a test config provider to enable/disable features.\n * @internal\n */\nexport async function createSummarizer(\n\tprovider: ITestObjectProvider,\n\tcontainer: IContainer,\n\tconfig?: ITestContainerConfig,\n\tsummaryVersion?: string,\n\tlogger?: ITelemetryBaseLogger,\n): Promise<{ container: IContainer; summarizer: ISummarizer }> {\n\tconst testContainerConfig: ITestContainerConfig = {\n\t\t...config,\n\t\truntimeOptions: {\n\t\t\t...config?.runtimeOptions,\n\t\t\tsummaryOptions: config?.runtimeOptions?.summaryOptions ?? defaultSummaryOptions,\n\t\t},\n\t\tloaderProps: {\n\t\t\t...config?.loaderProps,\n\t\t\tconfigProvider: config?.loaderProps?.configProvider ?? createTestConfigProvider(),\n\t\t\tlogger,\n\t\t},\n\t};\n\tconst loader = provider.makeTestLoader(testContainerConfig);\n\treturn createSummarizerCore(container, loader, summaryVersion);\n}\n\n/**\n * Summarizes on demand and returns the summary tree, the version number and the reference sequence number of the\n * submitted summary.\n *\n * @param summarizer - The ISummarizer to use to summarize on demand\n * @param inputs - Either the reason string or the full IOnDemandSummarizeOptions.\n * Defaults to the reason \"end-to-end test\".\n * @internal\n */\nexport async function summarizeNow(\n\tsummarizer: ISummarizer,\n\tinputs: string | IOnDemandSummarizeOptions = \"end-to-end test\",\n): Promise<SummaryInfo> {\n\tconst options: IOnDemandSummarizeOptions =\n\t\ttypeof inputs === \"string\" ? { reason: inputs } : inputs;\n\tconst result = summarizer.summarizeOnDemand(options);\n\n\tconst submitResult = await timeoutAwait(result.summarySubmitted, {\n\t\terrorMsg: \"Promise timed out: summarySubmitted\",\n\t});\n\tif (!submitResult.success) {\n\t\tthrow submitResult.error;\n\t}\n\tassert(\n\t\tsubmitResult.data.stage === \"submit\",\n\t\t\"on-demand summary submitted data stage should be submit\",\n\t);\n\tassert(submitResult.data.summaryTree !== undefined, \"summary tree should exist\");\n\n\tconst broadcastResult = await timeoutAwait(result.summaryOpBroadcasted, {\n\t\terrorMsg: \"Promise timed out: summaryOpBroadcasted\",\n\t});\n\tif (!broadcastResult.success) {\n\t\tthrow broadcastResult.error;\n\t}\n\n\tconst ackNackResult = await timeoutAwait(result.receivedSummaryAckOrNack, {\n\t\terrorMsg: \"Promise timed out: receivedSummaryAckOrNack\",\n\t});\n\tif (!ackNackResult.success) {\n\t\tthrow ackNackResult.error;\n\t}\n\n\tawait new Promise((resolve) => process.nextTick(resolve));\n\n\treturn {\n\t\tsummaryTree: submitResult.data.summaryTree,\n\t\tsummaryVersion: ackNackResult.data.summaryAckOp.contents.handle,\n\t\tsummaryRefSeq: submitResult.data.referenceSequenceNumber,\n\t};\n}\n\n/**\n * Summary information containing the summary tree, summary version, and summary sequence number.\n * @internal\n */\nexport interface SummaryInfo {\n\t/**\n\t * The summary tree generated\n\t */\n\tsummaryTree: ISummaryTree;\n\t/**\n\t * Handle of the completed summary\n\t */\n\tsummaryVersion: string;\n\t/**\n\t * Reference sequence number of the current summary generation\n\t */\n\tsummaryRefSeq: number;\n}\n"]}
@@ -0,0 +1,80 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import type { IContainerContext, IRuntime } from "@fluidframework/container-definitions/internal";
6
+ import { type IContainerRuntimeOptions } from "@fluidframework/container-runtime/internal";
7
+ import type { IContainerRuntime } from "@fluidframework/container-runtime-definitions/internal";
8
+ import type { FluidObject } from "@fluidframework/core-interfaces";
9
+ import type { IFluidDataStoreFactory, IFluidDataStoreRegistry, IProvideFluidDataStoreRegistry, NamedFluidDataStoreRegistryEntries } from "@fluidframework/runtime-definitions/internal";
10
+ import { RuntimeFactoryHelper } from "@fluidframework/runtime-utils/internal";
11
+ /**
12
+ * {@link ContainerRuntimeFactoryWithDefaultDataStore} construction properties.
13
+ *
14
+ * @deprecated See notice on {@link ContainerRuntimeFactoryWithDefaultDataStore}.
15
+ */
16
+ export interface ContainerRuntimeFactoryWithDefaultDataStoreProps {
17
+ readonly defaultFactory: IFluidDataStoreFactory;
18
+ /**
19
+ * The data store registry for containers produced.
20
+ */
21
+ readonly registryEntries: NamedFluidDataStoreRegistryEntries;
22
+ /**
23
+ * The runtime options passed to the IContainerRuntime when instantiating it
24
+ */
25
+ readonly runtimeOptions?: IContainerRuntimeOptions;
26
+ /**
27
+ * Function that will initialize the entryPoint of the IContainerRuntime instances
28
+ * created with this factory
29
+ */
30
+ readonly provideEntryPoint?: (runtime: IContainerRuntime) => Promise<FluidObject>;
31
+ }
32
+ /**
33
+ * A ContainerRuntimeFactory that initializes Containers with a single default data store, which can be requested from
34
+ * the container with an empty URL.
35
+ *
36
+ * @deprecated
37
+ * Do not reference this type directly. It will be removed in the future.
38
+ * E.g. use {@link IRuntimeFactory} instead.
39
+ */
40
+ export declare class ContainerRuntimeFactoryWithDefaultDataStore extends RuntimeFactoryHelper implements IProvideFluidDataStoreRegistry {
41
+ static readonly defaultDataStoreId = "default";
42
+ /**
43
+ * {@inheritDoc @fluidframework/runtime-definitions#IProvideFluidDataStoreRegistry.IFluidDataStoreRegistry}
44
+ */
45
+ get IFluidDataStoreRegistry(): IFluidDataStoreRegistry;
46
+ protected readonly defaultFactory: IFluidDataStoreFactory;
47
+ private readonly registry;
48
+ /**
49
+ * {@inheritDoc ContainerRuntimeFactoryWithDefaultDataStoreProps.registryEntries}
50
+ */
51
+ private readonly registryEntries;
52
+ /**
53
+ * {@inheritDoc ContainerRuntimeFactoryWithDefaultDataStoreProps.runtimeOptions}
54
+ */
55
+ private readonly runtimeOptions?;
56
+ private readonly requestHandlers;
57
+ /**
58
+ * {@inheritDoc ContainerRuntimeFactoryWithDefaultDataStoreProps.provideEntryPoint}
59
+ */
60
+ private readonly provideEntryPoint;
61
+ constructor(props: ContainerRuntimeFactoryWithDefaultDataStoreProps);
62
+ instantiateFirstTime(runtime: IContainerRuntime): Promise<void>;
63
+ instantiateFromExisting(runtime: IContainerRuntime): Promise<void>;
64
+ preInitialize(context: IContainerContext, existing: boolean): Promise<IContainerRuntime & IRuntime>;
65
+ /**
66
+ * Subclasses may override containerInitializingFirstTime to perform any setup steps at the time the container
67
+ * is created. This likely includes creating any initial data stores that are expected to be there at the outset.
68
+ * @param runtime - The container runtime for the container being initialized.
69
+ * @virtual
70
+ */
71
+ protected containerInitializingFirstTime(runtime: IContainerRuntime): Promise<void>;
72
+ /**
73
+ * Subclasses may override containerHasInitialized to perform any steps after the container has initialized.
74
+ * This likely includes loading any data stores that are expected to be there at the outset.
75
+ * @param runtime - The container runtime for the container being initialized.
76
+ * @virtual
77
+ */
78
+ protected containerHasInitialized(runtime: IContainerRuntime): Promise<void>;
79
+ }
80
+ //# sourceMappingURL=containerRuntimeFactories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containerRuntimeFactories.d.ts","sourceRoot":"","sources":["../src/containerRuntimeFactories.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,iBAAiB,EACjB,QAAQ,EACR,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAGN,KAAK,wBAAwB,EAC7B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACX,iBAAiB,EAGjB,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,iCAAiC,CAAC;AAOxF,OAAO,KAAK,EACX,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,kCAAkC,EAClC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAiB,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAY7F;;;;GAIG;AACH,MAAM,WAAW,gDAAgD;IAChE,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAEhD;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,kCAAkC,CAAC;IAE7D;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAEnD;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;CAClF;AAED;;;;;;;GAOG;AACH,qBAAa,2CACZ,SAAQ,oBACR,YAAW,8BAA8B;IAEzC,gBAAuB,kBAAkB,aAAsB;IAE/D;;OAEG;IACH,IAAW,uBAAuB,IAAI,uBAAuB,CAE5D;IAED,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAE1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IAEnD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqC;IAErE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA2B;IAG3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IAEnE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuD;gBAEtE,KAAK,EAAE,gDAAgD;IA2B7D,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/D,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,aAAa,CACzB,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,OAAO,GACf,OAAO,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IAaxC;;;;;OAKG;cACa,8BAA8B,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzF;;;;;OAKG;cACa,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAClF"}
@@ -0,0 +1,94 @@
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.ContainerRuntimeFactoryWithDefaultDataStore = void 0;
8
+ const internal_1 = require("@fluidframework/container-runtime/internal");
9
+ const internal_2 = require("@fluidframework/request-handler/internal");
10
+ const internal_3 = require("@fluidframework/runtime-utils/internal");
11
+ const defaultDataStoreId = "default";
12
+ async function getDefaultFluidObject(runtime) {
13
+ const entryPoint = await runtime.getAliasedDataStoreEntryPoint("default");
14
+ if (entryPoint === undefined) {
15
+ throw new Error("default dataStore must exist");
16
+ }
17
+ return entryPoint.get();
18
+ }
19
+ /**
20
+ * A ContainerRuntimeFactory that initializes Containers with a single default data store, which can be requested from
21
+ * the container with an empty URL.
22
+ *
23
+ * @deprecated
24
+ * Do not reference this type directly. It will be removed in the future.
25
+ * E.g. use {@link IRuntimeFactory} instead.
26
+ */
27
+ class ContainerRuntimeFactoryWithDefaultDataStore extends internal_3.RuntimeFactoryHelper {
28
+ /**
29
+ * {@inheritDoc @fluidframework/runtime-definitions#IProvideFluidDataStoreRegistry.IFluidDataStoreRegistry}
30
+ */
31
+ get IFluidDataStoreRegistry() {
32
+ return this.registry;
33
+ }
34
+ constructor(props) {
35
+ super();
36
+ const getDefaultObject = async (request, runtime) => {
37
+ const parser = internal_3.RequestParser.create(request);
38
+ if (parser.pathParts.length === 0) {
39
+ // This cast is safe as loadContainerRuntime is called in the base class
40
+ // eslint-disable-next-line import/no-deprecated
41
+ return runtime.resolveHandle({
42
+ url: `/${defaultDataStoreId}${parser.query}`,
43
+ headers: request.headers,
44
+ });
45
+ }
46
+ return undefined; // continue search
47
+ };
48
+ this.defaultFactory = props.defaultFactory;
49
+ this.registryEntries = props.registryEntries;
50
+ this.runtimeOptions = props.runtimeOptions;
51
+ this.provideEntryPoint = props.provideEntryPoint ?? getDefaultFluidObject;
52
+ this.requestHandlers = [getDefaultObject];
53
+ this.registry = new internal_1.FluidDataStoreRegistry(this.registryEntries);
54
+ }
55
+ async instantiateFirstTime(runtime) {
56
+ await this.containerInitializingFirstTime(runtime);
57
+ await this.containerHasInitialized(runtime);
58
+ }
59
+ async instantiateFromExisting(runtime) {
60
+ await this.containerHasInitialized(runtime);
61
+ }
62
+ async preInitialize(context, existing) {
63
+ return (0, internal_1.loadContainerRuntime)({
64
+ context,
65
+ existing,
66
+ runtimeOptions: this.runtimeOptions,
67
+ registryEntries: this.registryEntries,
68
+ containerScope: context.scope,
69
+ // eslint-disable-next-line import/no-deprecated
70
+ requestHandler: (0, internal_2.buildRuntimeRequestHandler)(...this.requestHandlers),
71
+ provideEntryPoint: this.provideEntryPoint,
72
+ });
73
+ }
74
+ /**
75
+ * Subclasses may override containerInitializingFirstTime to perform any setup steps at the time the container
76
+ * is created. This likely includes creating any initial data stores that are expected to be there at the outset.
77
+ * @param runtime - The container runtime for the container being initialized.
78
+ * @virtual
79
+ */
80
+ async containerInitializingFirstTime(runtime) {
81
+ const dataStore = await runtime.createDataStore(this.defaultFactory.type);
82
+ await dataStore.trySetAlias(defaultDataStoreId);
83
+ }
84
+ /**
85
+ * Subclasses may override containerHasInitialized to perform any steps after the container has initialized.
86
+ * This likely includes loading any data stores that are expected to be there at the outset.
87
+ * @param runtime - The container runtime for the container being initialized.
88
+ * @virtual
89
+ */
90
+ async containerHasInitialized(runtime) { }
91
+ }
92
+ exports.ContainerRuntimeFactoryWithDefaultDataStore = ContainerRuntimeFactoryWithDefaultDataStore;
93
+ ContainerRuntimeFactoryWithDefaultDataStore.defaultDataStoreId = defaultDataStoreId;
94
+ //# sourceMappingURL=containerRuntimeFactories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containerRuntimeFactories.js","sourceRoot":"","sources":["../src/containerRuntimeFactories.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\tIContainerContext,\n\tIRuntime,\n} from \"@fluidframework/container-definitions/internal\";\nimport {\n\tFluidDataStoreRegistry,\n\tloadContainerRuntime,\n\ttype IContainerRuntimeOptions,\n} from \"@fluidframework/container-runtime/internal\";\nimport type {\n\tIContainerRuntime,\n\t// eslint-disable-next-line import/no-deprecated\n\tIContainerRuntimeWithResolveHandle_Deprecated,\n} from \"@fluidframework/container-runtime-definitions/internal\";\nimport type { FluidObject, IRequest, IResponse } from \"@fluidframework/core-interfaces\";\nimport {\n\t// eslint-disable-next-line import/no-deprecated\n\ttype RuntimeRequestHandler,\n\t// eslint-disable-next-line import/no-deprecated\n\tbuildRuntimeRequestHandler,\n} from \"@fluidframework/request-handler/internal\";\nimport type {\n\tIFluidDataStoreFactory,\n\tIFluidDataStoreRegistry,\n\tIProvideFluidDataStoreRegistry,\n\tNamedFluidDataStoreRegistryEntries,\n} from \"@fluidframework/runtime-definitions/internal\";\nimport { RequestParser, RuntimeFactoryHelper } from \"@fluidframework/runtime-utils/internal\";\n\nconst defaultDataStoreId = \"default\";\n\nasync function getDefaultFluidObject(runtime: IContainerRuntime): Promise<FluidObject> {\n\tconst entryPoint = await runtime.getAliasedDataStoreEntryPoint(\"default\");\n\tif (entryPoint === undefined) {\n\t\tthrow new Error(\"default dataStore must exist\");\n\t}\n\treturn entryPoint.get();\n}\n\n/**\n * {@link ContainerRuntimeFactoryWithDefaultDataStore} construction properties.\n *\n * @deprecated See notice on {@link ContainerRuntimeFactoryWithDefaultDataStore}.\n */\nexport interface ContainerRuntimeFactoryWithDefaultDataStoreProps {\n\treadonly defaultFactory: IFluidDataStoreFactory;\n\n\t/**\n\t * The data store registry for containers produced.\n\t */\n\treadonly registryEntries: NamedFluidDataStoreRegistryEntries;\n\n\t/**\n\t * The runtime options passed to the IContainerRuntime when instantiating it\n\t */\n\treadonly runtimeOptions?: IContainerRuntimeOptions;\n\n\t/**\n\t * Function that will initialize the entryPoint of the IContainerRuntime instances\n\t * created with this factory\n\t */\n\treadonly provideEntryPoint?: (runtime: IContainerRuntime) => Promise<FluidObject>;\n}\n\n/**\n * A ContainerRuntimeFactory that initializes Containers with a single default data store, which can be requested from\n * the container with an empty URL.\n *\n * @deprecated\n * Do not reference this type directly. It will be removed in the future.\n * E.g. use {@link IRuntimeFactory} instead.\n */\nexport class ContainerRuntimeFactoryWithDefaultDataStore\n\textends RuntimeFactoryHelper\n\timplements IProvideFluidDataStoreRegistry\n{\n\tpublic static readonly defaultDataStoreId = defaultDataStoreId;\n\n\t/**\n\t * {@inheritDoc @fluidframework/runtime-definitions#IProvideFluidDataStoreRegistry.IFluidDataStoreRegistry}\n\t */\n\tpublic get IFluidDataStoreRegistry(): IFluidDataStoreRegistry {\n\t\treturn this.registry;\n\t}\n\n\tprotected readonly defaultFactory: IFluidDataStoreFactory;\n\n\tprivate readonly registry: IFluidDataStoreRegistry;\n\n\t/**\n\t * {@inheritDoc ContainerRuntimeFactoryWithDefaultDataStoreProps.registryEntries}\n\t */\n\tprivate readonly registryEntries: NamedFluidDataStoreRegistryEntries;\n\n\t/**\n\t * {@inheritDoc ContainerRuntimeFactoryWithDefaultDataStoreProps.runtimeOptions}\n\t */\n\tprivate readonly runtimeOptions?: IContainerRuntimeOptions;\n\n\t// eslint-disable-next-line import/no-deprecated\n\tprivate readonly requestHandlers: readonly RuntimeRequestHandler[];\n\n\t/**\n\t * {@inheritDoc ContainerRuntimeFactoryWithDefaultDataStoreProps.provideEntryPoint}\n\t */\n\tprivate readonly provideEntryPoint: (runtime: IContainerRuntime) => Promise<FluidObject>;\n\n\tpublic constructor(props: ContainerRuntimeFactoryWithDefaultDataStoreProps) {\n\t\tsuper();\n\n\t\tconst getDefaultObject = async (\n\t\t\trequest: IRequest,\n\t\t\truntime: IContainerRuntime,\n\t\t): Promise<IResponse | undefined> => {\n\t\t\tconst parser = RequestParser.create(request);\n\t\t\tif (parser.pathParts.length === 0) {\n\t\t\t\t// This cast is safe as loadContainerRuntime is called in the base class\n\t\t\t\t// eslint-disable-next-line import/no-deprecated\n\t\t\t\treturn (runtime as IContainerRuntimeWithResolveHandle_Deprecated).resolveHandle({\n\t\t\t\t\turl: `/${defaultDataStoreId}${parser.query}`,\n\t\t\t\t\theaders: request.headers,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn undefined; // continue search\n\t\t};\n\n\t\tthis.defaultFactory = props.defaultFactory;\n\t\tthis.registryEntries = props.registryEntries;\n\t\tthis.runtimeOptions = props.runtimeOptions;\n\t\tthis.provideEntryPoint = props.provideEntryPoint ?? getDefaultFluidObject;\n\t\tthis.requestHandlers = [getDefaultObject];\n\t\tthis.registry = new FluidDataStoreRegistry(this.registryEntries);\n\t}\n\n\tpublic async instantiateFirstTime(runtime: IContainerRuntime): Promise<void> {\n\t\tawait this.containerInitializingFirstTime(runtime);\n\t\tawait this.containerHasInitialized(runtime);\n\t}\n\n\tpublic async instantiateFromExisting(runtime: IContainerRuntime): Promise<void> {\n\t\tawait this.containerHasInitialized(runtime);\n\t}\n\n\tpublic async preInitialize(\n\t\tcontext: IContainerContext,\n\t\texisting: boolean,\n\t): Promise<IContainerRuntime & IRuntime> {\n\t\treturn loadContainerRuntime({\n\t\t\tcontext,\n\t\t\texisting,\n\t\t\truntimeOptions: this.runtimeOptions,\n\t\t\tregistryEntries: this.registryEntries,\n\t\t\tcontainerScope: context.scope,\n\t\t\t// eslint-disable-next-line import/no-deprecated\n\t\t\trequestHandler: buildRuntimeRequestHandler(...this.requestHandlers),\n\t\t\tprovideEntryPoint: this.provideEntryPoint,\n\t\t});\n\t}\n\n\t/**\n\t * Subclasses may override containerInitializingFirstTime to perform any setup steps at the time the container\n\t * is created. This likely includes creating any initial data stores that are expected to be there at the outset.\n\t * @param runtime - The container runtime for the container being initialized.\n\t * @virtual\n\t */\n\tprotected async containerInitializingFirstTime(runtime: IContainerRuntime): Promise<void> {\n\t\tconst dataStore = await runtime.createDataStore(this.defaultFactory.type);\n\t\tawait dataStore.trySetAlias(defaultDataStoreId);\n\t}\n\n\t/**\n\t * Subclasses may override containerHasInitialized to perform any steps after the container has initialized.\n\t * This likely includes loading any data stores that are expected to be there at the outset.\n\t * @param runtime - The container runtime for the container being initialized.\n\t * @virtual\n\t */\n\tprotected async containerHasInitialized(runtime: IContainerRuntime): Promise<void> {}\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -14,5 +14,5 @@ export { createDocumentId, DataObjectFactoryType, EventAndErrorTrackingLogger, t
14
14
  export { createSummarizer, createSummarizerCore, createSummarizerFromFactory, summarizeNow, SummaryInfo, } from "./TestSummaryUtils.js";
15
15
  export { timeoutAwait, timeoutPromise, type TimeoutDurationOption, type TimeoutWithError, type TimeoutWithValue, } from "./timeoutUtils.js";
16
16
  export { toIDeltaManagerFull, waitForContainerConnection, getContainerEntryPointBackCompat, getDataStoreEntryPointBackCompat, } from "./containerUtils.js";
17
- export { createContainerRuntimeFactoryWithDefaultDataStore } from "./testContainerRuntimeFactoryWithDefaultDataStore.js";
17
+ export { type ContainerRuntimeFactoryWithDefaultDataStoreConstructor, type ContainerRuntimeFactoryWithDefaultDataStoreProps, createContainerRuntimeFactoryWithDefaultDataStore, } from "./testContainerRuntimeFactoryWithDefaultDataStore.js";
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EACN,eAAe,EACf,eAAe,EACf,yBAAyB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,kCAAkC,GAClC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EACN,iCAAiC,EACjC,2BAA2B,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,sBAAsB,EACtB,eAAe,EACf,sBAAsB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,EAC3B,KAAK,4BAA4B,EACjC,8BAA8B,EAC9B,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,mCAAmC,GACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,YAAY,EACZ,WAAW,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,YAAY,EACZ,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,mBAAmB,EACnB,0BAA0B,EAC1B,gCAAgC,EAChC,gCAAgC,GAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iDAAiD,EAAE,MAAM,sDAAsD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EACN,eAAe,EACf,eAAe,EACf,yBAAyB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,kCAAkC,GAClC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EACN,iCAAiC,EACjC,2BAA2B,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,sBAAsB,EACtB,eAAe,EACf,sBAAsB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,EAC3B,KAAK,4BAA4B,EACjC,8BAA8B,EAC9B,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,mCAAmC,GACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,YAAY,EACZ,WAAW,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,YAAY,EACZ,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,mBAAmB,EACnB,0BAA0B,EAC1B,gCAAgC,EAChC,gCAAgC,GAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,KAAK,sDAAsD,EAC3D,KAAK,gDAAgD,EACrD,iDAAiD,GACjD,MAAM,sDAAsD,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,yEAAqE;AAA5D,mIAAA,sBAAsB,OAAA;AAC/B,2DAI8B;AAF7B,qHAAA,eAAe,OAAA;AAGhB,mDAK0B;AAJzB,0HAAA,wBAAwB,OAAA;AACxB,8GAAA,YAAY,OAAA;AACZ,mHAAA,iBAAiB,OAAA;AACjB,oIAAA,kCAAkC,OAAA;AAEnC,uCAAoD;AAA3C,kHAAA,sBAAsB,OAAA;AAC/B,mDAAiF;AAAxE,0HAAA,wBAAwB,OAAA;AACjC,mFAG0C;AAFzC,mJAAA,iCAAiC,OAAA;AACjC,6IAAA,2BAA2B,OAAA;AAE5B,2DAI8B;AAF7B,qHAAA,eAAe,OAAA;AACf,4HAAA,sBAAsB,OAAA;AAEvB,iEAYiC;AAXhC,yHAAA,gBAAgB,OAAA;AAChB,8HAAA,qBAAqB,OAAA;AACrB,oIAAA,2BAA2B,OAAA;AAE3B,uIAAA,8BAA8B,OAAA;AAK9B,2HAAA,kBAAkB,OAAA;AAClB,4IAAA,mCAAmC,OAAA;AAEpC,6DAM+B;AAL9B,uHAAA,gBAAgB,OAAA;AAChB,2HAAA,oBAAoB,OAAA;AACpB,kIAAA,2BAA2B,OAAA;AAC3B,mHAAA,YAAY,OAAA;AAGb,qDAM2B;AAL1B,+GAAA,YAAY,OAAA;AACZ,iHAAA,cAAc,OAAA;AAKf,yDAK6B;AAJ5B,wHAAA,mBAAmB,OAAA;AACnB,+HAAA,0BAA0B,OAAA;AAC1B,qIAAA,gCAAgC,OAAA;AAChC,qIAAA,gCAAgC,OAAA;AAEjC,2HAAyH;AAAhH,uLAAA,iDAAiD,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { IProvideTestFluidObject, ITestFluidObject } from \"./interfaces.js\";\nexport { LoaderContainerTracker } from \"./loaderContainerTracker.js\";\nexport {\n\tfluidEntryPoint,\n\tLocalCodeLoader,\n\tSupportedExportInterfaces,\n} from \"./localCodeLoader.js\";\nexport {\n\tcreateAndAttachContainer,\n\tcreateLoader,\n\tcreateLoaderProps,\n\tcreateAndAttachContainerUsingProps,\n} from \"./localLoader.js\";\nexport { retryWithEventualValue } from \"./retry.js\";\nexport { createTestConfigProvider, ITestConfigProvider } from \"./TestConfigs.js\";\nexport {\n\tcreateTestContainerRuntimeFactory,\n\tTestContainerRuntimeFactory,\n} from \"./testContainerRuntimeFactory.js\";\nexport {\n\tChannelFactoryRegistry,\n\tTestFluidObject,\n\tTestFluidObjectFactory,\n} from \"./testFluidObject.js\";\nexport {\n\tcreateDocumentId,\n\tDataObjectFactoryType,\n\tEventAndErrorTrackingLogger,\n\ttype IEventAndErrorTrackingLogger,\n\tgetUnexpectedLogErrorException,\n\tIDocumentIdStrategy,\n\tIOpProcessingController,\n\tITestContainerConfig,\n\tITestObjectProvider,\n\tTestObjectProvider,\n\tTestObjectProviderWithVersionedLoad,\n} from \"./testObjectProvider.js\";\nexport {\n\tcreateSummarizer,\n\tcreateSummarizerCore,\n\tcreateSummarizerFromFactory,\n\tsummarizeNow,\n\tSummaryInfo,\n} from \"./TestSummaryUtils.js\";\nexport {\n\ttimeoutAwait,\n\ttimeoutPromise,\n\ttype TimeoutDurationOption,\n\ttype TimeoutWithError,\n\ttype TimeoutWithValue,\n} from \"./timeoutUtils.js\";\nexport {\n\ttoIDeltaManagerFull,\n\twaitForContainerConnection,\n\tgetContainerEntryPointBackCompat,\n\tgetDataStoreEntryPointBackCompat,\n} from \"./containerUtils.js\";\nexport { createContainerRuntimeFactoryWithDefaultDataStore } from \"./testContainerRuntimeFactoryWithDefaultDataStore.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,yEAAqE;AAA5D,mIAAA,sBAAsB,OAAA;AAC/B,2DAI8B;AAF7B,qHAAA,eAAe,OAAA;AAGhB,mDAK0B;AAJzB,0HAAA,wBAAwB,OAAA;AACxB,8GAAA,YAAY,OAAA;AACZ,mHAAA,iBAAiB,OAAA;AACjB,oIAAA,kCAAkC,OAAA;AAEnC,uCAAoD;AAA3C,kHAAA,sBAAsB,OAAA;AAC/B,mDAAiF;AAAxE,0HAAA,wBAAwB,OAAA;AACjC,mFAG0C;AAFzC,mJAAA,iCAAiC,OAAA;AACjC,6IAAA,2BAA2B,OAAA;AAE5B,2DAI8B;AAF7B,qHAAA,eAAe,OAAA;AACf,4HAAA,sBAAsB,OAAA;AAEvB,iEAYiC;AAXhC,yHAAA,gBAAgB,OAAA;AAChB,8HAAA,qBAAqB,OAAA;AACrB,oIAAA,2BAA2B,OAAA;AAE3B,uIAAA,8BAA8B,OAAA;AAK9B,2HAAA,kBAAkB,OAAA;AAClB,4IAAA,mCAAmC,OAAA;AAEpC,6DAM+B;AAL9B,uHAAA,gBAAgB,OAAA;AAChB,2HAAA,oBAAoB,OAAA;AACpB,kIAAA,2BAA2B,OAAA;AAC3B,mHAAA,YAAY,OAAA;AAGb,qDAM2B;AAL1B,+GAAA,YAAY,OAAA;AACZ,iHAAA,cAAc,OAAA;AAKf,yDAK6B;AAJ5B,wHAAA,mBAAmB,OAAA;AACnB,+HAAA,0BAA0B,OAAA;AAC1B,qIAAA,gCAAgC,OAAA;AAChC,qIAAA,gCAAgC,OAAA;AAEjC,2HAI8D;AAD7D,uLAAA,iDAAiD,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { IProvideTestFluidObject, ITestFluidObject } from \"./interfaces.js\";\nexport { LoaderContainerTracker } from \"./loaderContainerTracker.js\";\nexport {\n\tfluidEntryPoint,\n\tLocalCodeLoader,\n\tSupportedExportInterfaces,\n} from \"./localCodeLoader.js\";\nexport {\n\tcreateAndAttachContainer,\n\tcreateLoader,\n\tcreateLoaderProps,\n\tcreateAndAttachContainerUsingProps,\n} from \"./localLoader.js\";\nexport { retryWithEventualValue } from \"./retry.js\";\nexport { createTestConfigProvider, ITestConfigProvider } from \"./TestConfigs.js\";\nexport {\n\tcreateTestContainerRuntimeFactory,\n\tTestContainerRuntimeFactory,\n} from \"./testContainerRuntimeFactory.js\";\nexport {\n\tChannelFactoryRegistry,\n\tTestFluidObject,\n\tTestFluidObjectFactory,\n} from \"./testFluidObject.js\";\nexport {\n\tcreateDocumentId,\n\tDataObjectFactoryType,\n\tEventAndErrorTrackingLogger,\n\ttype IEventAndErrorTrackingLogger,\n\tgetUnexpectedLogErrorException,\n\tIDocumentIdStrategy,\n\tIOpProcessingController,\n\tITestContainerConfig,\n\tITestObjectProvider,\n\tTestObjectProvider,\n\tTestObjectProviderWithVersionedLoad,\n} from \"./testObjectProvider.js\";\nexport {\n\tcreateSummarizer,\n\tcreateSummarizerCore,\n\tcreateSummarizerFromFactory,\n\tsummarizeNow,\n\tSummaryInfo,\n} from \"./TestSummaryUtils.js\";\nexport {\n\ttimeoutAwait,\n\ttimeoutPromise,\n\ttype TimeoutDurationOption,\n\ttype TimeoutWithError,\n\ttype TimeoutWithValue,\n} from \"./timeoutUtils.js\";\nexport {\n\ttoIDeltaManagerFull,\n\twaitForContainerConnection,\n\tgetContainerEntryPointBackCompat,\n\tgetDataStoreEntryPointBackCompat,\n} from \"./containerUtils.js\";\nexport {\n\ttype ContainerRuntimeFactoryWithDefaultDataStoreConstructor,\n\ttype ContainerRuntimeFactoryWithDefaultDataStoreProps,\n\tcreateContainerRuntimeFactoryWithDefaultDataStore,\n} from \"./testContainerRuntimeFactoryWithDefaultDataStore.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"localCodeLoader.d.ts","sourceRoot":"","sources":["../src/localCodeLoader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,gCAAgC,EAChC,sBAAsB,EACtB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EACN,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,8CAA8C,CAAC;AAGtD;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC9C,sBAAsB,GACrB,6BAA6B,GAC7B,8BAA8B,GAC9B,gCAAgC,CACjC,CAAC;AAGF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,yBAAyB,GAAG,YAAY,CAAC;AAEvE;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,kBAAkB;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8C;gBAG/E,cAAc,EAAE,QAAQ,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,EAC9D,cAAc,CAAC,EAAE,wBAAwB;IA6C1C;;;;OAIG;IACU,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAe9E"}
1
+ {"version":3,"file":"localCodeLoader.d.ts","sourceRoot":"","sources":["../src/localCodeLoader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,gCAAgC,EAChC,sBAAsB,EACtB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EACN,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,8CAA8C,CAAC;AAMtD;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC9C,sBAAsB,GACrB,6BAA6B,GAC7B,8BAA8B,GAC9B,gCAAgC,CACjC,CAAC;AAGF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,yBAAyB,GAAG,YAAY,CAAC;AAEvE;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,kBAAkB;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8C;gBAG/E,cAAc,EAAE,QAAQ,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,EAC9D,cAAc,CAAC,EAAE,wBAAwB;IA8C1C;;;;OAIG;IACU,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAe9E"}
@@ -9,8 +9,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.LocalCodeLoader = void 0;
11
11
  const assert_1 = __importDefault(require("assert"));
12
- const internal_1 = require("@fluidframework/aqueduct/internal");
13
- const internal_2 = require("@fluidframework/runtime-utils/internal");
12
+ const internal_1 = require("@fluidframework/runtime-utils/internal");
13
+ // eslint-disable-next-line import/no-deprecated
14
+ const containerRuntimeFactories_js_1 = require("./containerRuntimeFactories.js");
14
15
  /**
15
16
  * A simple code loader that caches a mapping of package name to a Fluid entry point.
16
17
  * On load, it retrieves the entry point matching the package name in the given code details.
@@ -35,11 +36,12 @@ class LocalCodeLoader {
35
36
  }
36
37
  else {
37
38
  (0, assert_1.default)(maybeExport.IFluidDataStoreFactory !== undefined);
38
- const defaultFactory = (0, internal_2.createDataStoreFactory)("default", maybeExport.IFluidDataStoreFactory);
39
+ const defaultFactory = (0, internal_1.createDataStoreFactory)("default", maybeExport.IFluidDataStoreFactory);
39
40
  fluidModule = {
40
41
  fluidExport: {
41
42
  ...maybeExport,
42
- IRuntimeFactory: new internal_1.ContainerRuntimeFactoryWithDefaultDataStore({
43
+ // eslint-disable-next-line import/no-deprecated
44
+ IRuntimeFactory: new containerRuntimeFactories_js_1.ContainerRuntimeFactoryWithDefaultDataStore({
43
45
  defaultFactory,
44
46
  registryEntries: [[defaultFactory.type, Promise.resolve(defaultFactory)]],
45
47
  runtimeOptions,
@@ -1 +1 @@
1
- {"version":3,"file":"localCodeLoader.js","sourceRoot":"","sources":["../src/localCodeLoader.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,oDAA4B;AAE5B,gEAAgG;AAchG,qEAAgF;AAkBhF;;;;GAIG;AACH,MAAa,eAAe;IAG3B,YACC,cAA8D,EAC9D,cAAyC;QAJzB,sBAAiB,GAAG,IAAI,GAAG,EAAmC,CAAC;QAM/E,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACpC,sEAAsE;YACtE,8EAA8E;YAC9E,qGAAqG;YACrG,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,KAAK,GACV,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;gBACjC,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvD,IAAI,WAAW,GAAG,KAAK,CAAC,CAAC,CAAiB,CAAC;YAC3C,IAAI,WAAW,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC5C,MAAM,WAAW,GAAG,WAAwC,CAAC;gBAE7D,IAAI,WAAW,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;oBAC/C,WAAW,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACP,IAAA,gBAAM,EAAC,WAAW,CAAC,sBAAsB,KAAK,SAAS,CAAC,CAAC;oBACzD,MAAM,cAAc,GAAG,IAAA,iCAAsB,EAC5C,SAAS,EACT,WAAW,CAAC,sBAAsB,CAClC,CAAC;oBACF,WAAW,GAAG;wBACb,WAAW,EAAE;4BACZ,GAAG,WAAW;4BACd,eAAe,EAAE,IAAI,sDAA2C,CAAC;gCAChE,cAAc;gCACd,eAAe,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;gCACzE,cAAc;6BACd,CAAC;yBACF;qBACD,CAAC;gBACH,CAAC;YACF,CAAC;YAED,MAAM,cAAc,GAAG;gBACtB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,MAAM;aACf,CAAC;YAEF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,MAAyB;QAC1C,iFAAiF;QACjF,8EAA8E;QAC9E,qGAAqG;QACrG,MAAM,KAAK,GACV,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YACjC,CAAC,CAAC,MAAM,CAAC,OAAO;YAChB,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAEvD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,UAAU,CAAC;IACnB,CAAC;CACD;AAtED,0CAsEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport assert from \"assert\";\n\nimport { ContainerRuntimeFactoryWithDefaultDataStore } from \"@fluidframework/aqueduct/internal\";\nimport {\n\tICodeDetailsLoader,\n\tIFluidCodeDetails,\n\tIFluidModule,\n\tIFluidModuleWithDetails,\n\tIProvideFluidCodeDetailsComparer,\n\tIProvideRuntimeFactory,\n} from \"@fluidframework/container-definitions/internal\";\nimport { IContainerRuntimeOptions } from \"@fluidframework/container-runtime/internal\";\nimport {\n\tIProvideFluidDataStoreFactory,\n\tIProvideFluidDataStoreRegistry,\n} from \"@fluidframework/runtime-definitions/internal\";\nimport { createDataStoreFactory } from \"@fluidframework/runtime-utils/internal\";\n\n/**\n * @internal\n */\nexport type SupportedExportInterfaces = Partial<\n\tIProvideRuntimeFactory &\n\t\tIProvideFluidDataStoreFactory &\n\t\tIProvideFluidDataStoreRegistry &\n\t\tIProvideFluidCodeDetailsComparer\n>;\n\n// Represents the entry point for a Fluid container.\n/**\n * @internal\n */\nexport type fluidEntryPoint = SupportedExportInterfaces | IFluidModule;\n\n/**\n * A simple code loader that caches a mapping of package name to a Fluid entry point.\n * On load, it retrieves the entry point matching the package name in the given code details.\n * @internal\n */\nexport class LocalCodeLoader implements ICodeDetailsLoader {\n\tprivate readonly fluidPackageCache = new Map<string, IFluidModuleWithDetails>();\n\n\tconstructor(\n\t\tpackageEntries: Iterable<[IFluidCodeDetails, fluidEntryPoint]>,\n\t\truntimeOptions?: IContainerRuntimeOptions,\n\t) {\n\t\tfor (const entry of packageEntries) {\n\t\t\t// Store the entry point against a unique id in the fluidPackageCache.\n\t\t\t// For code details containing a package name, use the package name as the id.\n\t\t\t// For code details containing a Fluid package, create a unique id from the package name and version.\n\t\t\tconst source = entry[0];\n\t\t\tconst pkgId =\n\t\t\t\ttypeof source.package === \"string\"\n\t\t\t\t\t? source.package\n\t\t\t\t\t: `${source.package.name}@${source.package.version}`;\n\t\t\tlet fluidModule = entry[1] as IFluidModule;\n\t\t\tif (fluidModule?.fluidExport === undefined) {\n\t\t\t\tconst maybeExport = fluidModule as SupportedExportInterfaces;\n\n\t\t\t\tif (maybeExport.IRuntimeFactory !== undefined) {\n\t\t\t\t\tfluidModule = { fluidExport: maybeExport };\n\t\t\t\t} else {\n\t\t\t\t\tassert(maybeExport.IFluidDataStoreFactory !== undefined);\n\t\t\t\t\tconst defaultFactory = createDataStoreFactory(\n\t\t\t\t\t\t\"default\",\n\t\t\t\t\t\tmaybeExport.IFluidDataStoreFactory,\n\t\t\t\t\t);\n\t\t\t\t\tfluidModule = {\n\t\t\t\t\t\tfluidExport: {\n\t\t\t\t\t\t\t...maybeExport,\n\t\t\t\t\t\t\tIRuntimeFactory: new ContainerRuntimeFactoryWithDefaultDataStore({\n\t\t\t\t\t\t\t\tdefaultFactory,\n\t\t\t\t\t\t\t\tregistryEntries: [[defaultFactory.type, Promise.resolve(defaultFactory)]],\n\t\t\t\t\t\t\t\truntimeOptions,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst runtimeFactory = {\n\t\t\t\tmodule: fluidModule,\n\t\t\t\tdetails: source,\n\t\t\t};\n\n\t\t\tthis.fluidPackageCache.set(pkgId, runtimeFactory);\n\t\t}\n\t}\n\n\t/**\n\t * It finds the entry point for the package name in the given source and return it\n\t * as a Fluid module.\n\t * @param source - Details of where to find chaincode\n\t */\n\tpublic async load(source: IFluidCodeDetails): Promise<IFluidModuleWithDetails> {\n\t\t// Get the entry point for from the fluidPackageCache for the given code details.\n\t\t// For code details containing a package name, use the package name as the id.\n\t\t// For code details containing a Fluid package, create a unique id from the package name and version.\n\t\tconst pkdId =\n\t\t\ttypeof source.package === \"string\"\n\t\t\t\t? source.package\n\t\t\t\t: `${source.package.name}@${source.package.version}`;\n\n\t\tconst entryPoint = this.fluidPackageCache.get(pkdId);\n\t\tif (entryPoint === undefined) {\n\t\t\tthrow new Error(`Cannot find package ${pkdId}`);\n\t\t}\n\t\treturn entryPoint;\n\t}\n}\n"]}
1
+ {"version":3,"file":"localCodeLoader.js","sourceRoot":"","sources":["../src/localCodeLoader.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,oDAA4B;AAe5B,qEAAgF;AAEhF,gDAAgD;AAChD,iFAA6F;AAkB7F;;;;GAIG;AACH,MAAa,eAAe;IAG3B,YACC,cAA8D,EAC9D,cAAyC;QAJzB,sBAAiB,GAAG,IAAI,GAAG,EAAmC,CAAC;QAM/E,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACpC,sEAAsE;YACtE,8EAA8E;YAC9E,qGAAqG;YACrG,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,KAAK,GACV,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;gBACjC,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvD,IAAI,WAAW,GAAG,KAAK,CAAC,CAAC,CAAiB,CAAC;YAC3C,IAAI,WAAW,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC5C,MAAM,WAAW,GAAG,WAAwC,CAAC;gBAE7D,IAAI,WAAW,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;oBAC/C,WAAW,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACP,IAAA,gBAAM,EAAC,WAAW,CAAC,sBAAsB,KAAK,SAAS,CAAC,CAAC;oBACzD,MAAM,cAAc,GAAG,IAAA,iCAAsB,EAC5C,SAAS,EACT,WAAW,CAAC,sBAAsB,CAClC,CAAC;oBACF,WAAW,GAAG;wBACb,WAAW,EAAE;4BACZ,GAAG,WAAW;4BACd,gDAAgD;4BAChD,eAAe,EAAE,IAAI,0EAA2C,CAAC;gCAChE,cAAc;gCACd,eAAe,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;gCACzE,cAAc;6BACd,CAAC;yBACF;qBACD,CAAC;gBACH,CAAC;YACF,CAAC;YAED,MAAM,cAAc,GAAG;gBACtB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,MAAM;aACf,CAAC;YAEF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,MAAyB;QAC1C,iFAAiF;QACjF,8EAA8E;QAC9E,qGAAqG;QACrG,MAAM,KAAK,GACV,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YACjC,CAAC,CAAC,MAAM,CAAC,OAAO;YAChB,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAEvD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,UAAU,CAAC;IACnB,CAAC;CACD;AAvED,0CAuEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport assert from \"assert\";\n\nimport {\n\tICodeDetailsLoader,\n\tIFluidCodeDetails,\n\tIFluidModule,\n\tIFluidModuleWithDetails,\n\tIProvideFluidCodeDetailsComparer,\n\tIProvideRuntimeFactory,\n} from \"@fluidframework/container-definitions/internal\";\nimport { IContainerRuntimeOptions } from \"@fluidframework/container-runtime/internal\";\nimport {\n\tIProvideFluidDataStoreFactory,\n\tIProvideFluidDataStoreRegistry,\n} from \"@fluidframework/runtime-definitions/internal\";\nimport { createDataStoreFactory } from \"@fluidframework/runtime-utils/internal\";\n\n// eslint-disable-next-line import/no-deprecated\nimport { ContainerRuntimeFactoryWithDefaultDataStore } from \"./containerRuntimeFactories.js\";\n\n/**\n * @internal\n */\nexport type SupportedExportInterfaces = Partial<\n\tIProvideRuntimeFactory &\n\t\tIProvideFluidDataStoreFactory &\n\t\tIProvideFluidDataStoreRegistry &\n\t\tIProvideFluidCodeDetailsComparer\n>;\n\n// Represents the entry point for a Fluid container.\n/**\n * @internal\n */\nexport type fluidEntryPoint = SupportedExportInterfaces | IFluidModule;\n\n/**\n * A simple code loader that caches a mapping of package name to a Fluid entry point.\n * On load, it retrieves the entry point matching the package name in the given code details.\n * @internal\n */\nexport class LocalCodeLoader implements ICodeDetailsLoader {\n\tprivate readonly fluidPackageCache = new Map<string, IFluidModuleWithDetails>();\n\n\tconstructor(\n\t\tpackageEntries: Iterable<[IFluidCodeDetails, fluidEntryPoint]>,\n\t\truntimeOptions?: IContainerRuntimeOptions,\n\t) {\n\t\tfor (const entry of packageEntries) {\n\t\t\t// Store the entry point against a unique id in the fluidPackageCache.\n\t\t\t// For code details containing a package name, use the package name as the id.\n\t\t\t// For code details containing a Fluid package, create a unique id from the package name and version.\n\t\t\tconst source = entry[0];\n\t\t\tconst pkgId =\n\t\t\t\ttypeof source.package === \"string\"\n\t\t\t\t\t? source.package\n\t\t\t\t\t: `${source.package.name}@${source.package.version}`;\n\t\t\tlet fluidModule = entry[1] as IFluidModule;\n\t\t\tif (fluidModule?.fluidExport === undefined) {\n\t\t\t\tconst maybeExport = fluidModule as SupportedExportInterfaces;\n\n\t\t\t\tif (maybeExport.IRuntimeFactory !== undefined) {\n\t\t\t\t\tfluidModule = { fluidExport: maybeExport };\n\t\t\t\t} else {\n\t\t\t\t\tassert(maybeExport.IFluidDataStoreFactory !== undefined);\n\t\t\t\t\tconst defaultFactory = createDataStoreFactory(\n\t\t\t\t\t\t\"default\",\n\t\t\t\t\t\tmaybeExport.IFluidDataStoreFactory,\n\t\t\t\t\t);\n\t\t\t\t\tfluidModule = {\n\t\t\t\t\t\tfluidExport: {\n\t\t\t\t\t\t\t...maybeExport,\n\t\t\t\t\t\t\t// eslint-disable-next-line import/no-deprecated\n\t\t\t\t\t\t\tIRuntimeFactory: new ContainerRuntimeFactoryWithDefaultDataStore({\n\t\t\t\t\t\t\t\tdefaultFactory,\n\t\t\t\t\t\t\t\tregistryEntries: [[defaultFactory.type, Promise.resolve(defaultFactory)]],\n\t\t\t\t\t\t\t\truntimeOptions,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst runtimeFactory = {\n\t\t\t\tmodule: fluidModule,\n\t\t\t\tdetails: source,\n\t\t\t};\n\n\t\t\tthis.fluidPackageCache.set(pkgId, runtimeFactory);\n\t\t}\n\t}\n\n\t/**\n\t * It finds the entry point for the package name in the given source and return it\n\t * as a Fluid module.\n\t * @param source - Details of where to find chaincode\n\t */\n\tpublic async load(source: IFluidCodeDetails): Promise<IFluidModuleWithDetails> {\n\t\t// Get the entry point for from the fluidPackageCache for the given code details.\n\t\t// For code details containing a package name, use the package name as the id.\n\t\t// For code details containing a Fluid package, create a unique id from the package name and version.\n\t\tconst pkdId =\n\t\t\ttypeof source.package === \"string\"\n\t\t\t\t? source.package\n\t\t\t\t: `${source.package.name}@${source.package.version}`;\n\n\t\tconst entryPoint = this.fluidPackageCache.get(pkdId);\n\t\tif (entryPoint === undefined) {\n\t\t\tthrow new Error(`Cannot find package ${pkdId}`);\n\t\t}\n\t\treturn entryPoint;\n\t}\n}\n"]}
@@ -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/test-utils";
8
- export declare const pkgVersion = "2.22.1";
8
+ export declare const pkgVersion = "2.23.0-325054";
9
9
  //# sourceMappingURL=packageVersion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,+BAA+B,CAAC;AACpD,eAAO,MAAM,UAAU,WAAW,CAAC"}
1
+ {"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,+BAA+B,CAAC;AACpD,eAAO,MAAM,UAAU,kBAAkB,CAAC"}
@@ -8,5 +8,5 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.pkgVersion = exports.pkgName = void 0;
10
10
  exports.pkgName = "@fluidframework/test-utils";
11
- exports.pkgVersion = "2.22.1";
11
+ exports.pkgVersion = "2.23.0-325054";
12
12
  //# sourceMappingURL=packageVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,4BAA4B,CAAC;AACvC,QAAA,UAAU,GAAG,QAAQ,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/test-utils\";\nexport const pkgVersion = \"2.22.1\";\n"]}
1
+ {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,4BAA4B,CAAC;AACvC,QAAA,UAAU,GAAG,eAAe,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/test-utils\";\nexport const pkgVersion = \"2.23.0-325054\";\n"]}
@@ -2,22 +2,54 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { ContainerRuntimeFactoryWithDefaultDataStore } from "@fluidframework/aqueduct/internal";
5
+ import type { IRuntimeFactory } from "@fluidframework/container-definitions/internal";
6
6
  import { IContainerRuntimeOptions } from "@fluidframework/container-runtime/internal";
7
7
  import { IContainerRuntime } from "@fluidframework/container-runtime-definitions/internal";
8
8
  import { FluidObject } from "@fluidframework/core-interfaces";
9
9
  import { RuntimeRequestHandler } from "@fluidframework/request-handler/internal";
10
10
  import { IFluidDataStoreFactory, NamedFluidDataStoreRegistryEntries } from "@fluidframework/runtime-definitions/internal";
11
11
  /**
12
- * ! Note: This function is purely needed for back-compat as the constructor argument structure was changed
12
+ * {@link ContainerRuntimeFactoryWithDefaultDataStoreConstructor} input properties.
13
+ *
13
14
  * @internal
14
15
  */
15
- export declare const createContainerRuntimeFactoryWithDefaultDataStore: (Base: typeof ContainerRuntimeFactoryWithDefaultDataStore | undefined, ctorArgs: {
16
- defaultFactory: IFluidDataStoreFactory;
17
- registryEntries: NamedFluidDataStoreRegistryEntries;
18
- dependencyContainer?: any;
19
- requestHandlers?: RuntimeRequestHandler[];
20
- runtimeOptions?: IContainerRuntimeOptions;
21
- provideEntryPoint?: (runtime: IContainerRuntime) => Promise<FluidObject>;
22
- }) => ContainerRuntimeFactoryWithDefaultDataStore;
16
+ export interface ContainerRuntimeFactoryWithDefaultDataStoreProps {
17
+ readonly defaultFactory: IFluidDataStoreFactory;
18
+ /**
19
+ * The data store registry for containers produced.
20
+ */
21
+ readonly registryEntries: NamedFluidDataStoreRegistryEntries;
22
+ /**
23
+ * @deprecated Do not use. This strictly exists for backwards compatibility.
24
+ */
25
+ readonly dependencyContainer?: never;
26
+ /**
27
+ * Request handlers for containers produced.
28
+ * @deprecated Will be removed once Loader LTS version is "2.0.0-internal.7.0.0". Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
29
+ */
30
+ readonly requestHandlers?: RuntimeRequestHandler[];
31
+ /**
32
+ * The runtime options passed to the IContainerRuntime when instantiating it
33
+ */
34
+ readonly runtimeOptions?: IContainerRuntimeOptions;
35
+ /**
36
+ * Function that will initialize the entryPoint of the IContainerRuntime instances
37
+ * created with this factory
38
+ */
39
+ readonly provideEntryPoint?: (runtime: IContainerRuntime) => Promise<FluidObject>;
40
+ }
41
+ /**
42
+ * {@link @fluidframework/container-definitions#IRuntimeFactory} construct signature.
43
+ *
44
+ * @internal
45
+ */
46
+ export type ContainerRuntimeFactoryWithDefaultDataStoreConstructor = new (props: ContainerRuntimeFactoryWithDefaultDataStoreProps) => IRuntimeFactory;
47
+ /**
48
+ * @remarks
49
+ * This function is purely needed for back-compat as the constructor argument structure of
50
+ * `ContainerRuntimeFactoryWithDefaultDataStore` was changed.
51
+ *
52
+ * @internal
53
+ */
54
+ export declare const createContainerRuntimeFactoryWithDefaultDataStore: (ctor: ContainerRuntimeFactoryWithDefaultDataStoreConstructor, ctorProps: ContainerRuntimeFactoryWithDefaultDataStoreProps) => IRuntimeFactory;
23
55
  //# sourceMappingURL=testContainerRuntimeFactoryWithDefaultDataStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testContainerRuntimeFactoryWithDefaultDataStore.d.ts","sourceRoot":"","sources":["../src/testContainerRuntimeFactoryWithDefaultDataStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,2CAA2C,EAAE,MAAM,mCAAmC,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EACN,sBAAsB,EACtB,kCAAkC,EAClC,MAAM,8CAA8C,CAAC;AAUtD;;;GAGG;AACH,eAAO,MAAM,iDAAiD,mFAEnD;IACT,cAAc,EAAE,sBAAsB,CAAC;IACvC,eAAe,EAAE,kCAAkC,CAAC;IACpD,mBAAmB,CAAC,EAAE,GAAG,CAAC;IAE1B,eAAe,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC1C,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,QAAQ,WAAW,CAAC,CAAC;CACzE,KACC,2CAuBF,CAAC"}
1
+ {"version":3,"file":"testContainerRuntimeFactoryWithDefaultDataStore.d.ts","sourceRoot":"","sources":["../src/testContainerRuntimeFactoryWithDefaultDataStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EACN,sBAAsB,EACtB,kCAAkC,EAClC,MAAM,8CAA8C,CAAC;AAUtD;;;;GAIG;AACH,MAAM,WAAW,gDAAgD;IAChE,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAChD;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,kCAAkC,CAAC;IAE7D;;OAEG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAErC;;;OAGG;IAEH,QAAQ,CAAC,eAAe,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAEnD;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAEnD;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;CAClF;AAED;;;;GAIG;AACH,MAAM,MAAM,sDAAsD,GAAG,KACpE,KAAK,EAAE,gDAAgD,KACnD,eAAe,CAAC;AAErB;;;;;;GAMG;AACH,eAAO,MAAM,iDAAiD,SACvD,sDAAsD,aACjD,gDAAgD,KACzD,eAuBF,CAAC"}