@fluidframework/test-utils 2.0.0-rc.2.0.2 → 2.0.0-rc.3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/api-report/test-utils.api.md +72 -51
  3. package/dist/DriverWrappers.d.ts +1 -1
  4. package/dist/DriverWrappers.d.ts.map +1 -1
  5. package/dist/DriverWrappers.js.map +1 -1
  6. package/dist/TestSummaryUtils.d.ts +5 -5
  7. package/dist/TestSummaryUtils.d.ts.map +1 -1
  8. package/dist/TestSummaryUtils.js +13 -13
  9. package/dist/TestSummaryUtils.js.map +1 -1
  10. package/dist/containerUtils.d.ts +2 -2
  11. package/dist/containerUtils.d.ts.map +1 -1
  12. package/dist/containerUtils.js +3 -3
  13. package/dist/containerUtils.js.map +1 -1
  14. package/dist/debug.d.ts.map +1 -1
  15. package/dist/debug.js.map +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/interfaces.d.ts +3 -3
  20. package/dist/interfaces.d.ts.map +1 -1
  21. package/dist/interfaces.js.map +1 -1
  22. package/dist/legacy.d.ts +18 -0
  23. package/dist/loaderContainerTracker.d.ts +5 -1
  24. package/dist/loaderContainerTracker.d.ts.map +1 -1
  25. package/dist/loaderContainerTracker.js +15 -15
  26. package/dist/loaderContainerTracker.js.map +1 -1
  27. package/dist/localCodeLoader.d.ts +3 -3
  28. package/dist/localCodeLoader.d.ts.map +1 -1
  29. package/dist/localCodeLoader.js +4 -4
  30. package/dist/localCodeLoader.js.map +1 -1
  31. package/dist/localLoader.d.ts +3 -3
  32. package/dist/localLoader.d.ts.map +1 -1
  33. package/dist/localLoader.js +2 -2
  34. package/dist/localLoader.js.map +1 -1
  35. package/dist/packageVersion.d.ts +1 -1
  36. package/dist/packageVersion.js +1 -1
  37. package/dist/packageVersion.js.map +1 -1
  38. package/dist/public.d.ts +12 -0
  39. package/dist/retry.js +2 -2
  40. package/dist/retry.js.map +1 -1
  41. package/dist/testContainerRuntimeFactory.d.ts +5 -5
  42. package/dist/testContainerRuntimeFactory.d.ts.map +1 -1
  43. package/dist/testContainerRuntimeFactory.js +16 -14
  44. package/dist/testContainerRuntimeFactory.js.map +1 -1
  45. package/dist/testContainerRuntimeFactoryWithDefaultDataStore.d.ts +5 -5
  46. package/dist/testContainerRuntimeFactoryWithDefaultDataStore.d.ts.map +1 -1
  47. package/dist/testContainerRuntimeFactoryWithDefaultDataStore.js +2 -2
  48. package/dist/testContainerRuntimeFactoryWithDefaultDataStore.js.map +1 -1
  49. package/dist/testFluidObject.d.ts +5 -5
  50. package/dist/testFluidObject.d.ts.map +1 -1
  51. package/dist/testFluidObject.js +10 -10
  52. package/dist/testFluidObject.js.map +1 -1
  53. package/dist/testObjectProvider.d.ts +47 -23
  54. package/dist/testObjectProvider.d.ts.map +1 -1
  55. package/dist/testObjectProvider.js +66 -46
  56. package/dist/testObjectProvider.js.map +1 -1
  57. package/dist/timeoutUtils.js +4 -4
  58. package/dist/timeoutUtils.js.map +1 -1
  59. package/internal.d.ts +11 -0
  60. package/legacy.d.ts +11 -0
  61. package/lib/DriverWrappers.d.ts +1 -1
  62. package/lib/DriverWrappers.d.ts.map +1 -1
  63. package/lib/DriverWrappers.js.map +1 -1
  64. package/lib/TestSummaryUtils.d.ts +5 -5
  65. package/lib/TestSummaryUtils.d.ts.map +1 -1
  66. package/lib/TestSummaryUtils.js +5 -5
  67. package/lib/TestSummaryUtils.js.map +1 -1
  68. package/lib/containerUtils.d.ts +2 -2
  69. package/lib/containerUtils.d.ts.map +1 -1
  70. package/lib/containerUtils.js +1 -1
  71. package/lib/containerUtils.js.map +1 -1
  72. package/lib/debug.d.ts.map +1 -1
  73. package/lib/debug.js.map +1 -1
  74. package/lib/index.d.ts +1 -1
  75. package/lib/index.d.ts.map +1 -1
  76. package/lib/index.js.map +1 -1
  77. package/lib/interfaces.d.ts +3 -3
  78. package/lib/interfaces.d.ts.map +1 -1
  79. package/lib/interfaces.js.map +1 -1
  80. package/lib/legacy.d.ts +18 -0
  81. package/lib/loaderContainerTracker.d.ts +5 -1
  82. package/lib/loaderContainerTracker.d.ts.map +1 -1
  83. package/lib/loaderContainerTracker.js +2 -2
  84. package/lib/loaderContainerTracker.js.map +1 -1
  85. package/lib/localCodeLoader.d.ts +3 -3
  86. package/lib/localCodeLoader.d.ts.map +1 -1
  87. package/lib/localCodeLoader.js +2 -2
  88. package/lib/localCodeLoader.js.map +1 -1
  89. package/lib/localLoader.d.ts +3 -3
  90. package/lib/localLoader.d.ts.map +1 -1
  91. package/lib/localLoader.js +1 -1
  92. package/lib/localLoader.js.map +1 -1
  93. package/lib/packageVersion.d.ts +1 -1
  94. package/lib/packageVersion.js +1 -1
  95. package/lib/packageVersion.js.map +1 -1
  96. package/lib/public.d.ts +12 -0
  97. package/lib/retry.js +1 -1
  98. package/lib/retry.js.map +1 -1
  99. package/lib/testContainerRuntimeFactory.d.ts +5 -5
  100. package/lib/testContainerRuntimeFactory.d.ts.map +1 -1
  101. package/lib/testContainerRuntimeFactory.js +10 -6
  102. package/lib/testContainerRuntimeFactory.js.map +1 -1
  103. package/lib/testContainerRuntimeFactoryWithDefaultDataStore.d.ts +5 -5
  104. package/lib/testContainerRuntimeFactoryWithDefaultDataStore.d.ts.map +1 -1
  105. package/lib/testContainerRuntimeFactoryWithDefaultDataStore.js +1 -1
  106. package/lib/testContainerRuntimeFactoryWithDefaultDataStore.js.map +1 -1
  107. package/lib/testFluidObject.d.ts +5 -5
  108. package/lib/testFluidObject.d.ts.map +1 -1
  109. package/lib/testFluidObject.js +4 -4
  110. package/lib/testFluidObject.js.map +1 -1
  111. package/lib/testObjectProvider.d.ts +47 -23
  112. package/lib/testObjectProvider.d.ts.map +1 -1
  113. package/lib/testObjectProvider.js +61 -41
  114. package/lib/testObjectProvider.js.map +1 -1
  115. package/lib/timeoutUtils.js +1 -1
  116. package/lib/timeoutUtils.js.map +1 -1
  117. package/package.json +46 -64
  118. package/src/DriverWrappers.ts +1 -1
  119. package/src/TestSummaryUtils.ts +16 -11
  120. package/src/containerUtils.ts +5 -4
  121. package/src/debug.ts +1 -0
  122. package/src/index.ts +1 -0
  123. package/src/interfaces.ts +4 -4
  124. package/src/loaderContainerTracker.ts +11 -8
  125. package/src/localCodeLoader.ts +10 -9
  126. package/src/localLoader.ts +7 -6
  127. package/src/packageVersion.ts +1 -1
  128. package/src/retry.ts +1 -1
  129. package/src/testContainerRuntimeFactory.ts +15 -10
  130. package/src/testContainerRuntimeFactoryWithDefaultDataStore.ts +5 -5
  131. package/src/testFluidObject.ts +10 -9
  132. package/src/testObjectProvider.ts +136 -75
  133. package/src/timeoutUtils.ts +1 -1
  134. package/api-extractor-cjs.json +0 -8
  135. package/dist/test-utils-alpha.d.ts +0 -309
  136. package/dist/test-utils-beta.d.ts +0 -208
  137. package/dist/test-utils-public.d.ts +0 -208
  138. package/dist/test-utils-untrimmed.d.ts +0 -1046
  139. package/lib/test/timeoutUtils.spec.js +0 -165
  140. package/lib/test/timeoutUtils.spec.js.map +0 -1
  141. package/lib/test/types/validateTestUtilsPrevious.generated.js +0 -90
  142. package/lib/test/types/validateTestUtilsPrevious.generated.js.map +0 -1
  143. package/lib/test-utils-alpha.d.ts +0 -309
  144. package/lib/test-utils-beta.d.ts +0 -208
  145. package/lib/test-utils-public.d.ts +0 -208
  146. package/lib/test-utils-untrimmed.d.ts +0 -1046
  147. /package/{dist → lib}/tsdoc-metadata.json +0 -0
package/dist/retry.js CHANGED
@@ -5,7 +5,7 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.retryWithEventualValue = void 0;
8
- const core_utils_1 = require("@fluidframework/core-utils");
8
+ const internal_1 = require("@fluidframework/core-utils/internal");
9
9
  const retry = async (callback, defaultValue, maxTries, backOffMs) => {
10
10
  for (let currentTry = 1; currentTry <= maxTries; currentTry++) {
11
11
  try {
@@ -13,7 +13,7 @@ const retry = async (callback, defaultValue, maxTries, backOffMs) => {
13
13
  return result;
14
14
  }
15
15
  catch (error) {
16
- await (0, core_utils_1.delay)(currentTry * backOffMs);
16
+ await (0, internal_1.delay)(currentTry * backOffMs);
17
17
  }
18
18
  }
19
19
  return Promise.resolve(defaultValue);
package/dist/retry.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2DAAmD;AAEnD,MAAM,KAAK,GAAG,KAAK,EAClB,QAA0B,EAC1B,YAAe,EACf,QAAgB,EAChB,SAAiB,EACJ,EAAE;IACf,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,IAAI,QAAQ,EAAE,UAAU,EAAE,EAAE;QAC9D,IAAI;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC;SACd;QAAC,OAAO,KAAK,EAAE;YACf,MAAM,IAAA,kBAAK,EAAC,UAAU,GAAG,SAAS,CAAC,CAAC;SACpC;KACD;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACI,MAAM,sBAAsB,GAAG,KAAK,EAC1C,QAA0B,EAC1B,KAA4B,EAC5B,YAAe,EACf,QAAQ,GAAG,EAAE,EACb,SAAS,GAAG,EAAE,EACD,EAAE,CACf,KAAK,CACJ,KAAK,IAAI,EAAE;IACV,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;QACjB,OAAO,KAAK,CAAC;KACb;IAED,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;AAC1B,CAAC,EACD,YAAY,EACZ,QAAQ,EACR,SAAS,CACT,CAAC;AAnBU,QAAA,sBAAsB,0BAmBhC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { delay } from \"@fluidframework/core-utils\";\n\nconst retry = async <T>(\n\tcallback: () => Promise<T>,\n\tdefaultValue: T,\n\tmaxTries: number,\n\tbackOffMs: number,\n): Promise<T> => {\n\tfor (let currentTry = 1; currentTry <= maxTries; currentTry++) {\n\t\ttry {\n\t\t\tconst result = await callback();\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tawait delay(currentTry * backOffMs);\n\t\t}\n\t}\n\n\treturn Promise.resolve(defaultValue);\n};\n\n/**\n * Simple retry mechanism with linear back off to call\n * a function which may eventually return an accepted value.\n *\n * @param callback - the function to execute\n * @param check - the function to check if the value is acceptable\n * @param defaultValue - the default value\n * @param maxTries - maximum number of attempts\n * @param backOffMs - back off between attempts in milliseconds\n * @returns the actual value from the callback when successful or the default value otherwise\n * @internal\n */\nexport const retryWithEventualValue = async <T>(\n\tcallback: () => Promise<T>,\n\tcheck: (value: T) => boolean,\n\tdefaultValue: T,\n\tmaxTries = 20,\n\tbackOffMs = 50,\n): Promise<T> =>\n\tretry(\n\t\tasync () => {\n\t\t\tconst value = await callback();\n\t\t\tif (check(value)) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tthrow Error(\"Not ready\");\n\t\t},\n\t\tdefaultValue,\n\t\tmaxTries,\n\t\tbackOffMs,\n\t);\n"]}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kEAA4D;AAE5D,MAAM,KAAK,GAAG,KAAK,EAClB,QAA0B,EAC1B,YAAe,EACf,QAAgB,EAChB,SAAiB,EACJ,EAAE;IACf,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,IAAI,QAAQ,EAAE,UAAU,EAAE,EAAE;QAC9D,IAAI;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC;SACd;QAAC,OAAO,KAAK,EAAE;YACf,MAAM,IAAA,gBAAK,EAAC,UAAU,GAAG,SAAS,CAAC,CAAC;SACpC;KACD;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACI,MAAM,sBAAsB,GAAG,KAAK,EAC1C,QAA0B,EAC1B,KAA4B,EAC5B,YAAe,EACf,QAAQ,GAAG,EAAE,EACb,SAAS,GAAG,EAAE,EACD,EAAE,CACf,KAAK,CACJ,KAAK,IAAI,EAAE;IACV,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;QACjB,OAAO,KAAK,CAAC;KACb;IAED,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;AAC1B,CAAC,EACD,YAAY,EACZ,QAAQ,EACR,SAAS,CACT,CAAC;AAnBU,QAAA,sBAAsB,0BAmBhC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { delay } from \"@fluidframework/core-utils/internal\";\n\nconst retry = async <T>(\n\tcallback: () => Promise<T>,\n\tdefaultValue: T,\n\tmaxTries: number,\n\tbackOffMs: number,\n): Promise<T> => {\n\tfor (let currentTry = 1; currentTry <= maxTries; currentTry++) {\n\t\ttry {\n\t\t\tconst result = await callback();\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tawait delay(currentTry * backOffMs);\n\t\t}\n\t}\n\n\treturn Promise.resolve(defaultValue);\n};\n\n/**\n * Simple retry mechanism with linear back off to call\n * a function which may eventually return an accepted value.\n *\n * @param callback - the function to execute\n * @param check - the function to check if the value is acceptable\n * @param defaultValue - the default value\n * @param maxTries - maximum number of attempts\n * @param backOffMs - back off between attempts in milliseconds\n * @returns the actual value from the callback when successful or the default value otherwise\n * @internal\n */\nexport const retryWithEventualValue = async <T>(\n\tcallback: () => Promise<T>,\n\tcheck: (value: T) => boolean,\n\tdefaultValue: T,\n\tmaxTries = 20,\n\tbackOffMs = 50,\n): Promise<T> =>\n\tretry(\n\t\tasync () => {\n\t\t\tconst value = await callback();\n\t\t\tif (check(value)) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tthrow Error(\"Not ready\");\n\t\t},\n\t\tdefaultValue,\n\t\tmaxTries,\n\t\tbackOffMs,\n\t);\n"]}
@@ -2,11 +2,11 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { IContainerContext, IRuntime } from "@fluidframework/container-definitions";
6
- import { ContainerRuntime, IContainerRuntimeOptions } from "@fluidframework/container-runtime";
7
- import { IContainerRuntime } from "@fluidframework/container-runtime-definitions";
8
- import { RuntimeRequestHandler } from "@fluidframework/request-handler";
9
- import { IFluidDataStoreFactory } from "@fluidframework/runtime-definitions";
5
+ import { IContainerContext, IRuntime } from "@fluidframework/container-definitions/internal";
6
+ import { ContainerRuntime, IContainerRuntimeOptions } from "@fluidframework/container-runtime/internal";
7
+ import { IContainerRuntime } from "@fluidframework/container-runtime-definitions/internal";
8
+ import { RuntimeRequestHandler } from "@fluidframework/request-handler/internal";
9
+ import { IFluidDataStoreFactory } from "@fluidframework/runtime-definitions/internal";
10
10
  /**
11
11
  * Create a container runtime factory class that allows you to set runtime options
12
12
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"testContainerRuntimeFactory.d.ts","sourceRoot":"","sources":["../src/testContainerRuntimeFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EACN,gBAAgB,EAChB,wBAAwB,EAExB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAQlF,OAAO,EAA8B,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACpG,OAAO,EACN,sBAAsB,EAEtB,MAAM,qCAAqC,CAAC;AAmC7C;;;GAGG;AACH,eAAO,MAAM,iCAAiC,yBACvB,uBAAuB;eAI9B,MAAM,oBACM,sBAAsB,mBACxB,wBAAwB,oBAUvB,qBAAqB,EAAE;cAZlC,MAAM;0BACM,sBAAsB;wBACxB,wBAAwB;yBAUvB,qBAAqB,EAAE;sCAKL,gBAAgB,GAAG,QAAQ,IAAI,CAAC;yCAkB7B,gBAAgB,GAAG,QAAQ,IAAI,CAAC;+BAiBpE,iBAAiB,YAChB,OAAO,GACf,QAAQ,QAAQ,GAAG,iBAAiB,CAAC;;;;;CAwDzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B;eApHxB,MAAM,oBACM,sBAAsB,mBACxB,wBAAwB,oBAUvB,qBAAqB,EAAE;cAZlC,MAAM;0BACM,sBAAsB;wBACxB,wBAAwB;yBAUvB,qBAAqB,EAAE;sCAKL,gBAAgB,GAAG,QAAQ,IAAI,CAAC;yCAkB7B,gBAAgB,GAAG,QAAQ,IAAI,CAAC;+BAiBpE,iBAAiB,YAChB,OAAO,GACf,QAAQ,QAAQ,GAAG,iBAAiB,CAAC;;;;;CA8DoD,CAAC"}
1
+ {"version":3,"file":"testContainerRuntimeFactory.d.ts","sourceRoot":"","sources":["../src/testContainerRuntimeFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC7F,OAAO,EACN,gBAAgB,EAEhB,wBAAwB,EACxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAQ3F,OAAO,EACN,qBAAqB,EAGrB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACN,sBAAsB,EAEtB,MAAM,8CAA8C,CAAC;AAmCtD;;;GAGG;AACH,eAAO,MAAM,iCAAiC,yBACvB,uBAAuB;eAI9B,MAAM,oBACM,sBAAsB,mBACxB,wBAAwB,oBAUvB,qBAAqB,EAAE;cAZlC,MAAM;0BACM,sBAAsB;wBACxB,wBAAwB;yBAUvB,qBAAqB,EAAE;sCAKL,gBAAgB,GAAG,QAAQ,IAAI,CAAC;yCAkB7B,gBAAgB,GAAG,QAAQ,IAAI,CAAC;+BAiBpE,iBAAiB,YAChB,OAAO,GACf,QAAQ,QAAQ,GAAG,iBAAiB,CAAC;;;;;CA0DzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B;eAtHxB,MAAM,oBACM,sBAAsB,mBACxB,wBAAwB,oBAUvB,qBAAqB,EAAE;cAZlC,MAAM;0BACM,sBAAsB;wBACxB,wBAAwB;yBAUvB,qBAAqB,EAAE;sCAKL,gBAAgB,GAAG,QAAQ,IAAI,CAAC;yCAkB7B,gBAAgB,GAAG,QAAQ,IAAI,CAAC;+BAiBpE,iBAAiB,YAChB,OAAO,GACf,QAAQ,QAAQ,GAAG,iBAAiB,CAAC;;;;;CAgEoD,CAAC"}
@@ -5,14 +5,13 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.TestContainerRuntimeFactory = exports.createTestContainerRuntimeFactory = void 0;
8
- const core_utils_1 = require("@fluidframework/core-utils");
9
- const container_runtime_1 = require("@fluidframework/container-runtime");
10
- // eslint-disable-next-line import/no-deprecated
11
- const request_handler_1 = require("@fluidframework/request-handler");
12
- const runtime_utils_1 = require("@fluidframework/runtime-utils");
8
+ const internal_1 = require("@fluidframework/container-runtime/internal");
9
+ const internal_2 = require("@fluidframework/core-utils/internal");
10
+ const internal_3 = require("@fluidframework/request-handler/internal");
11
+ const internal_4 = require("@fluidframework/runtime-utils/internal");
13
12
  const backCompat_DefaultRouteRequestHandler = (defaultRootId) => {
14
13
  return async (request, runtime) => {
15
- const parser = runtime_utils_1.RequestParser.create(request);
14
+ const parser = internal_4.RequestParser.create(request);
16
15
  if (parser.pathParts.length === 0) {
17
16
  return runtime.IFluidHandleContext.resolveHandle({
18
17
  url: `/${defaultRootId}${parser.query}`,
@@ -27,11 +26,11 @@ const backCompat_DefaultRouteRequestHandler = (defaultRootId) => {
27
26
  * @internal
28
27
  */
29
28
  const createTestContainerRuntimeFactory = (containerRuntimeCtor) => {
30
- return class extends runtime_utils_1.RuntimeFactoryHelper {
29
+ return class extends internal_4.RuntimeFactoryHelper {
31
30
  constructor(type, dataStoreFactory, runtimeOptions = {
32
31
  summaryOptions: {
33
32
  summaryConfigOverrides: {
34
- ...container_runtime_1.DefaultSummaryConfiguration,
33
+ ...internal_1.DefaultSummaryConfiguration,
35
34
  ...{
36
35
  initialSummarizerDelayMs: 0,
37
36
  },
@@ -49,12 +48,12 @@ const createTestContainerRuntimeFactory = (containerRuntimeCtor) => {
49
48
  // Thus need to leverage old API createDetachedRootDataStore() that is gone in latest releases.
50
49
  const rootContext = "createDetachedRootDataStore" in runtime
51
50
  ? runtime.createDetachedRootDataStore([this.type], "default")
52
- : runtime.createDetachedDataStore([this.type], "default");
51
+ : runtime.createDetachedDataStore([this.type]);
53
52
  const rootRuntime = await this.dataStoreFactory.instantiateDataStore(rootContext,
54
53
  /* existing */ false);
55
54
  const dataStore = await rootContext.attachRuntime(this.dataStoreFactory, rootRuntime);
56
55
  const result = await dataStore?.trySetAlias("default");
57
- (0, core_utils_1.assert)(result === "Success" || result === undefined, "success");
56
+ (0, internal_2.assert)(result === "Success" || result === undefined, "success");
58
57
  }
59
58
  async instantiateFromExisting(runtime) {
60
59
  // Validate we can load root data stores.
@@ -71,7 +70,9 @@ const createTestContainerRuntimeFactory = (containerRuntimeCtor) => {
71
70
  return containerRuntimeCtor.load(context, [
72
71
  ["default", Promise.resolve(this.dataStoreFactory)],
73
72
  [this.type, Promise.resolve(this.dataStoreFactory)],
74
- ], (0, request_handler_1.buildRuntimeRequestHandler)(backCompat_DefaultRouteRequestHandler("default"), ...this.requestHandlers), this.runtimeOptions, context.scope, existing);
73
+ ],
74
+ // eslint-disable-next-line import/no-deprecated
75
+ (0, internal_3.buildRuntimeRequestHandler)(backCompat_DefaultRouteRequestHandler("default"), ...this.requestHandlers), this.runtimeOptions, context.scope, existing);
75
76
  }
76
77
  const provideEntryPoint = async (runtime) => {
77
78
  const entryPoint = await runtime.getAliasedDataStoreEntryPoint("default");
@@ -81,7 +82,7 @@ const createTestContainerRuntimeFactory = (containerRuntimeCtor) => {
81
82
  return entryPoint.get();
82
83
  };
83
84
  const getDefaultObject = async (request, runtime) => {
84
- const parser = runtime_utils_1.RequestParser.create(request);
85
+ const parser = internal_4.RequestParser.create(request);
85
86
  if (parser.pathParts.length === 0) {
86
87
  // This cast is safe as ContainerRuntime.loadRuntime is called below
87
88
  return runtime.resolveHandle({
@@ -97,7 +98,8 @@ const createTestContainerRuntimeFactory = (containerRuntimeCtor) => {
97
98
  ["default", Promise.resolve(this.dataStoreFactory)],
98
99
  [this.type, Promise.resolve(this.dataStoreFactory)],
99
100
  ],
100
- requestHandler: (0, request_handler_1.buildRuntimeRequestHandler)(getDefaultObject, ...this.requestHandlers),
101
+ // eslint-disable-next-line import/no-deprecated
102
+ requestHandler: (0, internal_3.buildRuntimeRequestHandler)(getDefaultObject, ...this.requestHandlers),
101
103
  provideEntryPoint,
102
104
  // ! This prop is needed for back-compat. Can be removed in 2.0.0-internal.8.0.0
103
105
  initializeEntryPoint: provideEntryPoint,
@@ -113,5 +115,5 @@ exports.createTestContainerRuntimeFactory = createTestContainerRuntimeFactory;
113
115
  * A container runtime factory that allows you to set runtime options
114
116
  * @internal
115
117
  */
116
- exports.TestContainerRuntimeFactory = (0, exports.createTestContainerRuntimeFactory)(container_runtime_1.ContainerRuntime);
118
+ exports.TestContainerRuntimeFactory = (0, exports.createTestContainerRuntimeFactory)(internal_1.ContainerRuntime);
117
119
  //# sourceMappingURL=testContainerRuntimeFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testContainerRuntimeFactory.js","sourceRoot":"","sources":["../src/testContainerRuntimeFactory.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 { assert } from \"@fluidframework/core-utils\";\nimport { IContainerContext, IRuntime } from \"@fluidframework/container-definitions\";\nimport {\n\tContainerRuntime,\n\tIContainerRuntimeOptions,\n\tDefaultSummaryConfiguration,\n} from \"@fluidframework/container-runtime\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions\";\nimport {\n\tFluidObject,\n\tIFluidHandleContext,\n\tIRequest,\n\tIResponse,\n} from \"@fluidframework/core-interfaces\";\n// eslint-disable-next-line import/no-deprecated\nimport { buildRuntimeRequestHandler, RuntimeRequestHandler } from \"@fluidframework/request-handler\";\nimport {\n\tIFluidDataStoreFactory,\n\tNamedFluidDataStoreRegistryEntries,\n} from \"@fluidframework/runtime-definitions\";\nimport { RequestParser, RuntimeFactoryHelper } from \"@fluidframework/runtime-utils\";\n\ninterface backCompat_IFluidRouter {\n\tIFluidRouter?: backCompat_IFluidRouter;\n\trequest(request: IRequest): Promise<IResponse>;\n}\n\nconst backCompat_DefaultRouteRequestHandler = (defaultRootId: string) => {\n\treturn async (request: IRequest, runtime: IContainerRuntime) => {\n\t\tconst parser = RequestParser.create(request);\n\t\tif (parser.pathParts.length === 0) {\n\t\t\treturn (\n\t\t\t\truntime as any as Required<FluidObject<IFluidHandleContext>>\n\t\t\t).IFluidHandleContext.resolveHandle({\n\t\t\t\turl: `/${defaultRootId}${parser.query}`,\n\t\t\t\theaders: request.headers,\n\t\t\t});\n\t\t}\n\t\treturn undefined; // continue search\n\t};\n};\n\ninterface backCompat_ContainerRuntime {\n\tload(\n\t\tcontext: IContainerContext,\n\t\tregistryEntries: NamedFluidDataStoreRegistryEntries,\n\t\trequestHandler?: (request: IRequest, runtime: IContainerRuntime) => Promise<IResponse>,\n\t\truntimeOptions?: IContainerRuntimeOptions,\n\t\tcontainerScope?: FluidObject,\n\t\texisting?: boolean,\n\t\tcontainerRuntimeCtor?: typeof ContainerRuntime,\n\t): Promise<ContainerRuntime>;\n}\n\n/**\n * Create a container runtime factory class that allows you to set runtime options\n * @internal\n */\nexport const createTestContainerRuntimeFactory = (\n\tcontainerRuntimeCtor: typeof ContainerRuntime,\n) => {\n\treturn class extends RuntimeFactoryHelper {\n\t\tconstructor(\n\t\t\tpublic type: string,\n\t\t\tpublic dataStoreFactory: IFluidDataStoreFactory,\n\t\t\tpublic runtimeOptions: IContainerRuntimeOptions = {\n\t\t\t\tsummaryOptions: {\n\t\t\t\t\tsummaryConfigOverrides: {\n\t\t\t\t\t\t...DefaultSummaryConfiguration,\n\t\t\t\t\t\t...{\n\t\t\t\t\t\t\tinitialSummarizerDelayMs: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tpublic requestHandlers: RuntimeRequestHandler[] = [],\n\t\t) {\n\t\t\tsuper();\n\t\t}\n\n\t\tpublic async instantiateFirstTime(runtime: ContainerRuntime): Promise<void> {\n\t\t\t// Back-compat - old code does not return IDataStore for rootContext.attachRuntime() call!\n\t\t\t// Thus need to leverage old API createDetachedRootDataStore() that is gone in latest releases.\n\t\t\tconst rootContext =\n\t\t\t\t\"createDetachedRootDataStore\" in runtime\n\t\t\t\t\t? (runtime as any).createDetachedRootDataStore([this.type], \"default\")\n\t\t\t\t\t: runtime.createDetachedDataStore([this.type], \"default\");\n\n\t\t\tconst rootRuntime = await this.dataStoreFactory.instantiateDataStore(\n\t\t\t\trootContext,\n\t\t\t\t/* existing */ false,\n\t\t\t);\n\t\t\tconst dataStore = await rootContext.attachRuntime(this.dataStoreFactory, rootRuntime);\n\n\t\t\tconst result = await dataStore?.trySetAlias(\"default\");\n\t\t\tassert(result === \"Success\" || result === undefined, \"success\");\n\t\t}\n\n\t\tpublic async instantiateFromExisting(runtime: ContainerRuntime): Promise<void> {\n\t\t\t// Validate we can load root data stores.\n\t\t\t// We should be able to load any data store that was created in initializeFirstTime!\n\t\t\t// Note: We use the deprecated `getRootDataStore` from v1.X here to allow for cross-major version compat\n\t\t\t// testing. Can be removed when we no longer support v1.X.\n\t\t\tawait (runtime.getAliasedDataStoreEntryPoint?.(\"default\") ??\n\t\t\t\t(\n\t\t\t\t\truntime as any as {\n\t\t\t\t\t\tgetRootDataStore(\n\t\t\t\t\t\t\tid: string,\n\t\t\t\t\t\t\twait?: boolean,\n\t\t\t\t\t\t): Promise<backCompat_IFluidRouter>;\n\t\t\t\t\t}\n\t\t\t\t).getRootDataStore(\"default\"));\n\t\t}\n\n\t\tasync preInitialize(\n\t\t\tcontext: IContainerContext,\n\t\t\texisting: boolean,\n\t\t): Promise<IRuntime & IContainerRuntime> {\n\t\t\tif (containerRuntimeCtor.loadRuntime === undefined) {\n\t\t\t\t// Note: We use the deprecated `load` from v1.X here to allow for cross-major version compat testing.\n\t\t\t\t// Can be removed when we no longer support v1.X.\n\t\t\t\treturn (containerRuntimeCtor as any as backCompat_ContainerRuntime).load(\n\t\t\t\t\tcontext,\n\t\t\t\t\t[\n\t\t\t\t\t\t[\"default\", Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t\t\t[this.type, Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t\t],\n\t\t\t\t\tbuildRuntimeRequestHandler(\n\t\t\t\t\t\tbackCompat_DefaultRouteRequestHandler(\"default\"),\n\t\t\t\t\t\t...this.requestHandlers,\n\t\t\t\t\t),\n\t\t\t\t\tthis.runtimeOptions,\n\t\t\t\t\tcontext.scope,\n\t\t\t\t\texisting,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst provideEntryPoint = async (runtime: IContainerRuntime) => {\n\t\t\t\tconst entryPoint = await runtime.getAliasedDataStoreEntryPoint(\"default\");\n\t\t\t\tif (entryPoint === undefined) {\n\t\t\t\t\tthrow new Error(\"default dataStore must exist\");\n\t\t\t\t}\n\t\t\t\treturn entryPoint.get();\n\t\t\t};\n\t\t\tconst getDefaultObject = async (request: IRequest, runtime: IContainerRuntime) => {\n\t\t\t\tconst parser = RequestParser.create(request);\n\t\t\t\tif (parser.pathParts.length === 0) {\n\t\t\t\t\t// This cast is safe as ContainerRuntime.loadRuntime is called below\n\t\t\t\t\treturn (runtime as ContainerRuntime).resolveHandle({\n\t\t\t\t\t\turl: `/default${parser.query}`,\n\t\t\t\t\t\theaders: request.headers,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn undefined; // continue search\n\t\t\t};\n\t\t\treturn containerRuntimeCtor.loadRuntime({\n\t\t\t\tcontext,\n\t\t\t\tregistryEntries: [\n\t\t\t\t\t[\"default\", Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t\t[this.type, Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t],\n\t\t\t\trequestHandler: buildRuntimeRequestHandler(\n\t\t\t\t\tgetDefaultObject,\n\t\t\t\t\t...this.requestHandlers,\n\t\t\t\t),\n\t\t\t\tprovideEntryPoint,\n\t\t\t\t// ! This prop is needed for back-compat. Can be removed in 2.0.0-internal.8.0.0\n\t\t\t\tinitializeEntryPoint: provideEntryPoint,\n\t\t\t\truntimeOptions: this.runtimeOptions,\n\t\t\t\tcontainerScope: context.scope,\n\t\t\t\texisting,\n\t\t\t} as any);\n\t\t}\n\t};\n};\n\n/**\n * A container runtime factory that allows you to set runtime options\n * @internal\n */\nexport const TestContainerRuntimeFactory = createTestContainerRuntimeFactory(ContainerRuntime);\n"]}
1
+ {"version":3,"file":"testContainerRuntimeFactory.js","sourceRoot":"","sources":["../src/testContainerRuntimeFactory.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 { IContainerContext, IRuntime } from \"@fluidframework/container-definitions/internal\";\nimport {\n\tContainerRuntime,\n\tDefaultSummaryConfiguration,\n\tIContainerRuntimeOptions,\n} from \"@fluidframework/container-runtime/internal\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions/internal\";\nimport {\n\tFluidObject,\n\tIFluidHandleContext,\n\tIRequest,\n\tIResponse,\n} from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport {\n\tRuntimeRequestHandler,\n\t// eslint-disable-next-line import/no-deprecated\n\tbuildRuntimeRequestHandler,\n} from \"@fluidframework/request-handler/internal\";\nimport {\n\tIFluidDataStoreFactory,\n\tNamedFluidDataStoreRegistryEntries,\n} from \"@fluidframework/runtime-definitions/internal\";\nimport { RequestParser, RuntimeFactoryHelper } from \"@fluidframework/runtime-utils/internal\";\n\ninterface backCompat_IFluidRouter {\n\tIFluidRouter?: backCompat_IFluidRouter;\n\trequest(request: IRequest): Promise<IResponse>;\n}\n\nconst backCompat_DefaultRouteRequestHandler = (defaultRootId: string) => {\n\treturn async (request: IRequest, runtime: IContainerRuntime) => {\n\t\tconst parser = RequestParser.create(request);\n\t\tif (parser.pathParts.length === 0) {\n\t\t\treturn (\n\t\t\t\truntime as any as Required<FluidObject<IFluidHandleContext>>\n\t\t\t).IFluidHandleContext.resolveHandle({\n\t\t\t\turl: `/${defaultRootId}${parser.query}`,\n\t\t\t\theaders: request.headers,\n\t\t\t});\n\t\t}\n\t\treturn undefined; // continue search\n\t};\n};\n\ninterface backCompat_ContainerRuntime {\n\tload(\n\t\tcontext: IContainerContext,\n\t\tregistryEntries: NamedFluidDataStoreRegistryEntries,\n\t\trequestHandler?: (request: IRequest, runtime: IContainerRuntime) => Promise<IResponse>,\n\t\truntimeOptions?: IContainerRuntimeOptions,\n\t\tcontainerScope?: FluidObject,\n\t\texisting?: boolean,\n\t\tcontainerRuntimeCtor?: typeof ContainerRuntime,\n\t): Promise<ContainerRuntime>;\n}\n\n/**\n * Create a container runtime factory class that allows you to set runtime options\n * @internal\n */\nexport const createTestContainerRuntimeFactory = (\n\tcontainerRuntimeCtor: typeof ContainerRuntime,\n) => {\n\treturn class extends RuntimeFactoryHelper {\n\t\tconstructor(\n\t\t\tpublic type: string,\n\t\t\tpublic dataStoreFactory: IFluidDataStoreFactory,\n\t\t\tpublic runtimeOptions: IContainerRuntimeOptions = {\n\t\t\t\tsummaryOptions: {\n\t\t\t\t\tsummaryConfigOverrides: {\n\t\t\t\t\t\t...DefaultSummaryConfiguration,\n\t\t\t\t\t\t...{\n\t\t\t\t\t\t\tinitialSummarizerDelayMs: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tpublic requestHandlers: RuntimeRequestHandler[] = [],\n\t\t) {\n\t\t\tsuper();\n\t\t}\n\n\t\tpublic async instantiateFirstTime(runtime: ContainerRuntime): Promise<void> {\n\t\t\t// Back-compat - old code does not return IDataStore for rootContext.attachRuntime() call!\n\t\t\t// Thus need to leverage old API createDetachedRootDataStore() that is gone in latest releases.\n\t\t\tconst rootContext =\n\t\t\t\t\"createDetachedRootDataStore\" in runtime\n\t\t\t\t\t? (runtime as any).createDetachedRootDataStore([this.type], \"default\")\n\t\t\t\t\t: runtime.createDetachedDataStore([this.type]);\n\n\t\t\tconst rootRuntime = await this.dataStoreFactory.instantiateDataStore(\n\t\t\t\trootContext,\n\t\t\t\t/* existing */ false,\n\t\t\t);\n\t\t\tconst dataStore = await rootContext.attachRuntime(this.dataStoreFactory, rootRuntime);\n\n\t\t\tconst result = await dataStore?.trySetAlias(\"default\");\n\t\t\tassert(result === \"Success\" || result === undefined, \"success\");\n\t\t}\n\n\t\tpublic async instantiateFromExisting(runtime: ContainerRuntime): Promise<void> {\n\t\t\t// Validate we can load root data stores.\n\t\t\t// We should be able to load any data store that was created in initializeFirstTime!\n\t\t\t// Note: We use the deprecated `getRootDataStore` from v1.X here to allow for cross-major version compat\n\t\t\t// testing. Can be removed when we no longer support v1.X.\n\t\t\tawait (runtime.getAliasedDataStoreEntryPoint?.(\"default\") ??\n\t\t\t\t(\n\t\t\t\t\truntime as any as {\n\t\t\t\t\t\tgetRootDataStore(\n\t\t\t\t\t\t\tid: string,\n\t\t\t\t\t\t\twait?: boolean,\n\t\t\t\t\t\t): Promise<backCompat_IFluidRouter>;\n\t\t\t\t\t}\n\t\t\t\t).getRootDataStore(\"default\"));\n\t\t}\n\n\t\tasync preInitialize(\n\t\t\tcontext: IContainerContext,\n\t\t\texisting: boolean,\n\t\t): Promise<IRuntime & IContainerRuntime> {\n\t\t\tif (containerRuntimeCtor.loadRuntime === undefined) {\n\t\t\t\t// Note: We use the deprecated `load` from v1.X here to allow for cross-major version compat testing.\n\t\t\t\t// Can be removed when we no longer support v1.X.\n\t\t\t\treturn (containerRuntimeCtor as any as backCompat_ContainerRuntime).load(\n\t\t\t\t\tcontext,\n\t\t\t\t\t[\n\t\t\t\t\t\t[\"default\", Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t\t\t[this.type, Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t\t],\n\t\t\t\t\t// eslint-disable-next-line import/no-deprecated\n\t\t\t\t\tbuildRuntimeRequestHandler(\n\t\t\t\t\t\tbackCompat_DefaultRouteRequestHandler(\"default\"),\n\t\t\t\t\t\t...this.requestHandlers,\n\t\t\t\t\t),\n\t\t\t\t\tthis.runtimeOptions,\n\t\t\t\t\tcontext.scope,\n\t\t\t\t\texisting,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst provideEntryPoint = async (runtime: IContainerRuntime) => {\n\t\t\t\tconst entryPoint = await runtime.getAliasedDataStoreEntryPoint(\"default\");\n\t\t\t\tif (entryPoint === undefined) {\n\t\t\t\t\tthrow new Error(\"default dataStore must exist\");\n\t\t\t\t}\n\t\t\t\treturn entryPoint.get();\n\t\t\t};\n\t\t\tconst getDefaultObject = async (request: IRequest, runtime: IContainerRuntime) => {\n\t\t\t\tconst parser = RequestParser.create(request);\n\t\t\t\tif (parser.pathParts.length === 0) {\n\t\t\t\t\t// This cast is safe as ContainerRuntime.loadRuntime is called below\n\t\t\t\t\treturn (runtime as ContainerRuntime).resolveHandle({\n\t\t\t\t\t\turl: `/default${parser.query}`,\n\t\t\t\t\t\theaders: request.headers,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn undefined; // continue search\n\t\t\t};\n\t\t\treturn containerRuntimeCtor.loadRuntime({\n\t\t\t\tcontext,\n\t\t\t\tregistryEntries: [\n\t\t\t\t\t[\"default\", Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t\t[this.type, Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t],\n\t\t\t\t// eslint-disable-next-line import/no-deprecated\n\t\t\t\trequestHandler: buildRuntimeRequestHandler(\n\t\t\t\t\tgetDefaultObject,\n\t\t\t\t\t...this.requestHandlers,\n\t\t\t\t),\n\t\t\t\tprovideEntryPoint,\n\t\t\t\t// ! This prop is needed for back-compat. Can be removed in 2.0.0-internal.8.0.0\n\t\t\t\tinitializeEntryPoint: provideEntryPoint,\n\t\t\t\truntimeOptions: this.runtimeOptions,\n\t\t\t\tcontainerScope: context.scope,\n\t\t\t\texisting,\n\t\t\t} as any);\n\t\t}\n\t};\n};\n\n/**\n * A container runtime factory that allows you to set runtime options\n * @internal\n */\nexport const TestContainerRuntimeFactory = createTestContainerRuntimeFactory(ContainerRuntime);\n"]}
@@ -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";
6
- import { IContainerRuntimeOptions } from "@fluidframework/container-runtime";
7
- import { IContainerRuntime } from "@fluidframework/container-runtime-definitions";
5
+ import { ContainerRuntimeFactoryWithDefaultDataStore } from "@fluidframework/aqueduct/internal";
6
+ import { IContainerRuntimeOptions } from "@fluidframework/container-runtime/internal";
7
+ import { IContainerRuntime } from "@fluidframework/container-runtime-definitions/internal";
8
8
  import { FluidObject } from "@fluidframework/core-interfaces";
9
- import { RuntimeRequestHandler } from "@fluidframework/request-handler";
10
- import { IFluidDataStoreFactory, NamedFluidDataStoreRegistryEntries } from "@fluidframework/runtime-definitions";
9
+ import { RuntimeRequestHandler } from "@fluidframework/request-handler/internal";
10
+ import { IFluidDataStoreFactory, NamedFluidDataStoreRegistryEntries } from "@fluidframework/runtime-definitions/internal";
11
11
  /**
12
12
  * ! Note: This function is purely needed for back-compat as the constructor argument structure was changed
13
13
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"testContainerRuntimeFactoryWithDefaultDataStore.d.ts","sourceRoot":"","sources":["../src/testContainerRuntimeFactoryWithDefaultDataStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,2CAA2C,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EACN,sBAAsB,EACtB,kCAAkC,EAClC,MAAM,qCAAqC,CAAC;AAU7C;;;GAGG;AACH,eAAO,MAAM,iDAAiD;oBAG5C,sBAAsB;;0BAEhB,GAAG;;;mCAGK,iBAAiB,KAAK,QAAQ,WAAW,CAAC;MAEvE,2CAuBF,CAAC"}
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;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EACN,sBAAsB,EACtB,kCAAkC,EAClC,MAAM,8CAA8C,CAAC;AAUtD;;;GAGG;AACH,eAAO,MAAM,iDAAiD;oBAG5C,sBAAsB;;0BAEhB,GAAG;;;mCAGK,iBAAiB,KAAK,QAAQ,WAAW,CAAC;MAEvE,2CAuBF,CAAC"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.createContainerRuntimeFactoryWithDefaultDataStore = void 0;
8
- const aqueduct_1 = require("@fluidframework/aqueduct");
8
+ const internal_1 = require("@fluidframework/aqueduct/internal");
9
9
  const getDefaultFluidObject = async (runtime) => {
10
10
  const entryPoint = await runtime.getAliasedDataStoreEntryPoint("default");
11
11
  if (entryPoint === undefined) {
@@ -17,7 +17,7 @@ const getDefaultFluidObject = async (runtime) => {
17
17
  * ! Note: This function is purely needed for back-compat as the constructor argument structure was changed
18
18
  * @internal
19
19
  */
20
- const createContainerRuntimeFactoryWithDefaultDataStore = (Base = aqueduct_1.ContainerRuntimeFactoryWithDefaultDataStore, ctorArgs) => {
20
+ const createContainerRuntimeFactoryWithDefaultDataStore = (Base = internal_1.ContainerRuntimeFactoryWithDefaultDataStore, ctorArgs) => {
21
21
  try {
22
22
  return new Base(ctorArgs);
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"testContainerRuntimeFactoryWithDefaultDataStore.js","sourceRoot":"","sources":["../src/testContainerRuntimeFactoryWithDefaultDataStore.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uDAAuF;AAUvF,MAAM,qBAAqB,GAAG,KAAK,EAAE,OAA0B,EAAE,EAAE;IAClE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;IAC1E,IAAI,UAAU,KAAK,SAAS,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KAChD;IACD,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,iDAAiD,GAAG,CAChE,OAA2D,sDAA2C,EACtG,QAOC,EAC6C,EAAE;IAChD,IAAI;QACH,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1B;IAAC,OAAO,GAAG,EAAE;QACb,qJAAqJ;QACrJ,MAAM,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,GACjB,GAAG,QAAQ,CAAC;QACb,+DAA+D;QAC/D,OAAO,IAAK,IAAY,CACvB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,IAAI,qBAAqB,CAC1C,CAAC;KACF;AACF,CAAC,CAAC;AAjCW,QAAA,iDAAiD,qDAiC5D","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ContainerRuntimeFactoryWithDefaultDataStore } from \"@fluidframework/aqueduct\";\nimport { IContainerRuntimeOptions } from \"@fluidframework/container-runtime\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions\";\nimport { FluidObject } from \"@fluidframework/core-interfaces\";\nimport { RuntimeRequestHandler } from \"@fluidframework/request-handler\";\nimport {\n\tIFluidDataStoreFactory,\n\tNamedFluidDataStoreRegistryEntries,\n} from \"@fluidframework/runtime-definitions\";\n\nconst getDefaultFluidObject = async (runtime: IContainerRuntime) => {\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 * ! Note: This function is purely needed for back-compat as the constructor argument structure was changed\n * @internal\n */\nexport const createContainerRuntimeFactoryWithDefaultDataStore = (\n\tBase: typeof ContainerRuntimeFactoryWithDefaultDataStore = ContainerRuntimeFactoryWithDefaultDataStore,\n\tctorArgs: {\n\t\tdefaultFactory: IFluidDataStoreFactory;\n\t\tregistryEntries: NamedFluidDataStoreRegistryEntries;\n\t\tdependencyContainer?: any;\n\t\trequestHandlers?: RuntimeRequestHandler[];\n\t\truntimeOptions?: IContainerRuntimeOptions;\n\t\tprovideEntryPoint?: (runtime: IContainerRuntime) => Promise<FluidObject>;\n\t},\n): ContainerRuntimeFactoryWithDefaultDataStore => {\n\ttry {\n\t\treturn new Base(ctorArgs);\n\t} catch (err) {\n\t\t// IMPORTANT: The constructor argument structure changed, so this is needed for dynamically using older ContainerRuntimeFactoryWithDefaultDataStore's\n\t\tconst {\n\t\t\tdefaultFactory,\n\t\t\tregistryEntries,\n\t\t\tdependencyContainer,\n\t\t\trequestHandlers,\n\t\t\truntimeOptions,\n\t\t\tprovideEntryPoint,\n\t\t} = ctorArgs;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn new (Base as any)(\n\t\t\tdefaultFactory,\n\t\t\tregistryEntries,\n\t\t\tdependencyContainer,\n\t\t\trequestHandlers,\n\t\t\truntimeOptions,\n\t\t\tprovideEntryPoint ?? getDefaultFluidObject,\n\t\t);\n\t}\n};\n"]}
1
+ {"version":3,"file":"testContainerRuntimeFactoryWithDefaultDataStore.js","sourceRoot":"","sources":["../src/testContainerRuntimeFactoryWithDefaultDataStore.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,gEAAgG;AAUhG,MAAM,qBAAqB,GAAG,KAAK,EAAE,OAA0B,EAAE,EAAE;IAClE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;IAC1E,IAAI,UAAU,KAAK,SAAS,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KAChD;IACD,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,iDAAiD,GAAG,CAChE,OAA2D,sDAA2C,EACtG,QAOC,EAC6C,EAAE;IAChD,IAAI;QACH,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1B;IAAC,OAAO,GAAG,EAAE;QACb,qJAAqJ;QACrJ,MAAM,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,GACjB,GAAG,QAAQ,CAAC;QACb,+DAA+D;QAC/D,OAAO,IAAK,IAAY,CACvB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,IAAI,qBAAqB,CAC1C,CAAC;KACF;AACF,CAAC,CAAC;AAjCW,QAAA,iDAAiD,qDAiC5D","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 { IContainerRuntimeOptions } from \"@fluidframework/container-runtime/internal\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions/internal\";\nimport { FluidObject } from \"@fluidframework/core-interfaces\";\nimport { RuntimeRequestHandler } from \"@fluidframework/request-handler/internal\";\nimport {\n\tIFluidDataStoreFactory,\n\tNamedFluidDataStoreRegistryEntries,\n} from \"@fluidframework/runtime-definitions/internal\";\n\nconst getDefaultFluidObject = async (runtime: IContainerRuntime) => {\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 * ! Note: This function is purely needed for back-compat as the constructor argument structure was changed\n * @internal\n */\nexport const createContainerRuntimeFactoryWithDefaultDataStore = (\n\tBase: typeof ContainerRuntimeFactoryWithDefaultDataStore = ContainerRuntimeFactoryWithDefaultDataStore,\n\tctorArgs: {\n\t\tdefaultFactory: IFluidDataStoreFactory;\n\t\tregistryEntries: NamedFluidDataStoreRegistryEntries;\n\t\tdependencyContainer?: any;\n\t\trequestHandlers?: RuntimeRequestHandler[];\n\t\truntimeOptions?: IContainerRuntimeOptions;\n\t\tprovideEntryPoint?: (runtime: IContainerRuntime) => Promise<FluidObject>;\n\t},\n): ContainerRuntimeFactoryWithDefaultDataStore => {\n\ttry {\n\t\treturn new Base(ctorArgs);\n\t} catch (err) {\n\t\t// IMPORTANT: The constructor argument structure changed, so this is needed for dynamically using older ContainerRuntimeFactoryWithDefaultDataStore's\n\t\tconst {\n\t\t\tdefaultFactory,\n\t\t\tregistryEntries,\n\t\t\tdependencyContainer,\n\t\t\trequestHandlers,\n\t\t\truntimeOptions,\n\t\t\tprovideEntryPoint,\n\t\t} = ctorArgs;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn new (Base as any)(\n\t\t\tdefaultFactory,\n\t\t\tregistryEntries,\n\t\t\tdependencyContainer,\n\t\t\trequestHandlers,\n\t\t\truntimeOptions,\n\t\t\tprovideEntryPoint ?? getDefaultFluidObject,\n\t\t);\n\t}\n};\n"]}
@@ -2,11 +2,11 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { IRequest, IResponse, IFluidHandle } from "@fluidframework/core-interfaces";
6
- import { FluidDataStoreRuntime } from "@fluidframework/datastore";
7
- import { ISharedMap } from "@fluidframework/map";
8
- import { IFluidDataStoreContext, IFluidDataStoreFactory, IFluidDataStoreChannel } from "@fluidframework/runtime-definitions";
9
- import { IFluidDataStoreRuntime, IChannelFactory } from "@fluidframework/datastore-definitions";
5
+ import { IFluidHandle, IRequest, IResponse } from "@fluidframework/core-interfaces";
6
+ import { FluidDataStoreRuntime } from "@fluidframework/datastore/internal";
7
+ import { IChannelFactory, IFluidDataStoreRuntime } from "@fluidframework/datastore-definitions";
8
+ import { ISharedMap } from "@fluidframework/map/internal";
9
+ import { IFluidDataStoreChannel, IFluidDataStoreContext, IFluidDataStoreFactory } from "@fluidframework/runtime-definitions/internal";
10
10
  import { ITestFluidObject } from "./interfaces.js";
11
11
  /**
12
12
  * A test Fluid object that will create a shared object for each key-value pair in the factoryEntries passed to load.
@@ -1 +1 @@
1
- {"version":3,"file":"testFluidObject.d.ts","sourceRoot":"","sources":["../src/testFluidObject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAEN,qBAAqB,EAErB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAa,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACN,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAGhG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;aAyBtC,OAAO,EAAE,sBAAsB;aAC/B,OAAO,EAAE,sBAAsB;aAC/B,OAAO,EAAE,sBAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IA3BnC,IAAW,gBAAgB,SAE1B;IAED,IAAW,cAAc,SAExB;IAED,IAAW,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAEtC;IAEM,IAAI,EAAG,UAAU,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,WAAW,CAA4B;IAE/C;;;;;;OAMG;gBAEc,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,sBAAsB,EAC9B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;IAKjE;;;OAGG;IACU,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAehD,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IAM9C,UAAU,CAAC,QAAQ,EAAE,OAAO;CA2BzC;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,CAAC,MAAM,GAAG,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;AAErF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,sBAAuB,YAAW,sBAAsB;IAYnE,OAAO,CAAC,QAAQ,CAAC,cAAc;aACf,IAAI;IAZrB,IAAW,sBAAsB,SAEhC;IAED;;;;;OAKG;gBAEe,cAAc,EAAE,sBAAsB,EACvC,IAAI,SAA2B;IAGnC,oBAAoB,CAChC,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,OAAO,GACf,OAAO,CAAC,qBAAqB,CAAC;CAmDjC"}
1
+ {"version":3,"file":"testFluidObject.d.ts","sourceRoot":"","sources":["../src/testFluidObject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEpF,OAAO,EACN,qBAAqB,EAGrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAChG,OAAO,EAAE,UAAU,EAAa,MAAM,8BAA8B,CAAC;AACrE,OAAO,EACN,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,8CAA8C,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;aAyBtC,OAAO,EAAE,sBAAsB;aAC/B,OAAO,EAAE,sBAAsB;aAC/B,OAAO,EAAE,sBAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IA3BnC,IAAW,gBAAgB,SAE1B;IAED,IAAW,cAAc,SAExB;IAED,IAAW,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAEtC;IAEM,IAAI,EAAG,UAAU,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,WAAW,CAA4B;IAE/C;;;;;;OAMG;gBAEc,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,sBAAsB,EAC9B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;IAKjE;;;OAGG;IACU,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAehD,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IAM9C,UAAU,CAAC,QAAQ,EAAE,OAAO;CA2BzC;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,CAAC,MAAM,GAAG,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;AAErF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,sBAAuB,YAAW,sBAAsB;IAYnE,OAAO,CAAC,QAAQ,CAAC,cAAc;aACf,IAAI;IAZrB,IAAW,sBAAsB,SAEhC;IAED;;;;;OAKG;gBAEe,cAAc,EAAE,sBAAsB,EACvC,IAAI,SAA2B;IAGnC,oBAAoB,CAChC,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,OAAO,GACf,OAAO,CAAC,qBAAqB,CAAC;CAmDjC"}
@@ -5,10 +5,10 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.TestFluidObjectFactory = exports.TestFluidObject = void 0;
8
- const datastore_1 = require("@fluidframework/datastore");
9
- const map_1 = require("@fluidframework/map");
10
- const core_utils_1 = require("@fluidframework/core-utils");
11
- const runtime_utils_1 = require("@fluidframework/runtime-utils");
8
+ const internal_1 = require("@fluidframework/core-utils/internal");
9
+ const internal_2 = require("@fluidframework/datastore/internal");
10
+ const internal_3 = require("@fluidframework/map/internal");
11
+ const internal_4 = require("@fluidframework/runtime-utils/internal");
12
12
  /**
13
13
  * A test Fluid object that will create a shared object for each key-value pair in the factoryEntries passed to load.
14
14
  * The shared objects can be retrieved by passing the key of the entry to getSharedObject.
@@ -37,7 +37,7 @@ class TestFluidObject {
37
37
  this.channel = channel;
38
38
  this.context = context;
39
39
  this.factoryEntriesMap = factoryEntriesMap;
40
- this.innerHandle = new datastore_1.FluidObjectHandle(this, "", runtime.objectsRoutingContext);
40
+ this.innerHandle = new internal_2.FluidObjectHandle(this, "", runtime.objectsRoutingContext);
41
41
  }
42
42
  /**
43
43
  * Retrieves a shared object with the given id.
@@ -58,12 +58,12 @@ class TestFluidObject {
58
58
  async request(request) {
59
59
  return request.url === "" || request.url === "/" || request.url.startsWith("/?")
60
60
  ? { mimeType: "fluid/object", status: 200, value: this }
61
- : (0, runtime_utils_1.create404Response)(request);
61
+ : (0, internal_4.create404Response)(request);
62
62
  }
63
63
  async initialize(existing) {
64
64
  const doInitialization = async () => {
65
65
  if (!existing) {
66
- this.root = map_1.SharedMap.create(this.runtime, "root");
66
+ this.root = internal_3.SharedMap.create(this.runtime, "root");
67
67
  this.factoryEntriesMap.forEach((sharedObjectFactory, key) => {
68
68
  const sharedObject = this.runtime.createChannel(key, sharedObjectFactory.type);
69
69
  this.root.set(key, sharedObject.handle);
@@ -127,7 +127,7 @@ class TestFluidObjectFactory {
127
127
  async instantiateDataStore(context, existing) {
128
128
  const dataTypes = new Map();
129
129
  // Add SharedMap's factory which will be used to create the root map.
130
- const sharedMapFactory = map_1.SharedMap.getFactory();
130
+ const sharedMapFactory = internal_3.SharedMap.getFactory();
131
131
  dataTypes.set(sharedMapFactory.type, sharedMapFactory);
132
132
  // Add the object factories to the list to be sent to data store runtime.
133
133
  for (const [, factory] of this.factoryEntries) {
@@ -141,10 +141,10 @@ class TestFluidObjectFactory {
141
141
  factoryEntriesMapForObject.set(id, factory);
142
142
  }
143
143
  }
144
- const runtimeClass = (0, datastore_1.mixinRequestHandler)(async (request, rt) => {
144
+ const runtimeClass = (0, internal_2.mixinRequestHandler)(async (request, rt) => {
145
145
  // The provideEntryPoint callback below always returns FluidDataStoreRuntime, so this cast is safe
146
146
  const dataObject = (await rt.entryPoint.get());
147
- (0, core_utils_1.assert)(dataObject.request !== undefined, "entryPoint should have been initialized by now");
147
+ (0, internal_1.assert)(dataObject.request !== undefined, "entryPoint should have been initialized by now");
148
148
  return dataObject.request(request);
149
149
  });
150
150
  const runtime = new runtimeClass(context, dataTypes, existing, async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"testFluidObject.js","sourceRoot":"","sources":["../src/testFluidObject.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 { IRequest, IResponse, IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport {\n\tFluidObjectHandle,\n\tFluidDataStoreRuntime,\n\tmixinRequestHandler,\n} from \"@fluidframework/datastore\";\nimport { SharedMap, ISharedMap } from \"@fluidframework/map\";\nimport {\n\tIFluidDataStoreContext,\n\tIFluidDataStoreFactory,\n\tIFluidDataStoreChannel,\n} from \"@fluidframework/runtime-definitions\";\nimport { IFluidDataStoreRuntime, IChannelFactory } from \"@fluidframework/datastore-definitions\";\nimport { assert } from \"@fluidframework/core-utils\";\nimport { create404Response } from \"@fluidframework/runtime-utils\";\nimport { ITestFluidObject } from \"./interfaces.js\";\n\n/**\n * A test Fluid object that will create a shared object for each key-value pair in the factoryEntries passed to load.\n * The shared objects can be retrieved by passing the key of the entry to getSharedObject.\n * It exposes the IFluidDataStoreContext and IFluidDataStoreRuntime.\n * @internal\n */\nexport class TestFluidObject implements ITestFluidObject {\n\tpublic get ITestFluidObject() {\n\t\treturn this;\n\t}\n\n\tpublic get IFluidLoadable() {\n\t\treturn this;\n\t}\n\n\tpublic get handle(): IFluidHandle<this> {\n\t\treturn this.innerHandle;\n\t}\n\n\tpublic root!: ISharedMap;\n\tprivate readonly innerHandle: IFluidHandle<this>;\n\tprivate initializeP: Promise<void> | undefined;\n\n\t/**\n\t * Creates a new TestFluidObject.\n\t * @param runtime - The data store runtime.\n\t * @param context - The data store context.\n\t * @param factoryEntries - A list of id to IChannelFactory mapping. For each item in the list,\n\t * a shared object is created which can be retrieved by calling getSharedObject() with the id;\n\t */\n\tconstructor(\n\t\tpublic readonly runtime: IFluidDataStoreRuntime,\n\t\tpublic readonly channel: IFluidDataStoreChannel,\n\t\tpublic readonly context: IFluidDataStoreContext,\n\t\tprivate readonly factoryEntriesMap: Map<string, IChannelFactory>,\n\t) {\n\t\tthis.innerHandle = new FluidObjectHandle(this, \"\", runtime.objectsRoutingContext);\n\t}\n\n\t/**\n\t * Retrieves a shared object with the given id.\n\t * @param id - The id of the shared object to retrieve.\n\t */\n\tpublic async getSharedObject<T = any>(id: string): Promise<T> {\n\t\tif (this.factoryEntriesMap === undefined) {\n\t\t\tthrow new Error(\"Shared objects were not provided during creation.\");\n\t\t}\n\n\t\tfor (const key of this.factoryEntriesMap.keys()) {\n\t\t\tif (key === id) {\n\t\t\t\tconst handle = this.root.get<IFluidHandle>(id);\n\t\t\t\treturn handle?.get() as unknown as T;\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(`Shared object with id ${id} not found.`);\n\t}\n\n\tpublic async request(request: IRequest): Promise<IResponse> {\n\t\treturn request.url === \"\" || request.url === \"/\" || request.url.startsWith(\"/?\")\n\t\t\t? { mimeType: \"fluid/object\", status: 200, value: this }\n\t\t\t: create404Response(request);\n\t}\n\n\tpublic async initialize(existing: boolean) {\n\t\tconst doInitialization = async () => {\n\t\t\tif (!existing) {\n\t\t\t\tthis.root = SharedMap.create(this.runtime, \"root\");\n\n\t\t\t\tthis.factoryEntriesMap.forEach(\n\t\t\t\t\t(sharedObjectFactory: IChannelFactory, key: string) => {\n\t\t\t\t\t\tconst sharedObject = this.runtime.createChannel(\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tsharedObjectFactory.type,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.root.set(key, sharedObject.handle);\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tthis.root.bindToContext();\n\t\t\t}\n\n\t\t\tthis.root = (await this.runtime.getChannel(\"root\")) as ISharedMap;\n\t\t};\n\n\t\tif (this.initializeP === undefined) {\n\t\t\tthis.initializeP = doInitialization();\n\t\t}\n\n\t\treturn this.initializeP;\n\t}\n}\n\n/**\n * @internal\n */\nexport type ChannelFactoryRegistry = Iterable<[string | undefined, IChannelFactory]>;\n\n/**\n * Creates a factory for a TestFluidObject with the given object factory entries. It creates a data store runtime\n * with the object factories in the entry list. All the entries with an id other than undefined are passed to the\n * Fluid object so that it can create a shared object for each.\n *\n * @example\n *\n * The following will create a Fluid object that creates and loads a SharedString and SharedDirectory.\n * It will add SparseMatrix to the data store's factory so that it can be created later.\n *\n * ```typescript\n * new TestFluidObjectFactory([\n * [ \"sharedString\", SharedString.getFactory() ],\n * [ \"sharedDirectory\", SharedDirectory.getFactory() ],\n * [ undefined, SparseMatrix.getFactory() ],\n * ]);\n * ```\n *\n * The SharedString and SharedDirectory can be retrieved via getSharedObject() on the TestFluidObject as follows:\n *\n * ```typescript\n * sharedString = testFluidObject.getSharedObject<SharedString>(\"sharedString\");\n * sharedDir = testFluidObject.getSharedObject<SharedDirectory>(\"sharedDirectory\");\n * ```\n *\n * @privateRemarks Beware that using this class generally forfeits some compatibility coverage\n * `describeCompat` aims to provide:\n * `SharedMap`s always reference the current version of SharedMap.\n * AB#4670 tracks improving this situation.\n * @internal\n */\nexport class TestFluidObjectFactory implements IFluidDataStoreFactory {\n\tpublic get IFluidDataStoreFactory() {\n\t\treturn this;\n\t}\n\n\t/**\n\t * Creates a new TestFluidObjectFactory.\n\t * @param factoryEntries - A list of id to IChannelFactory mapping. It creates a data store runtime with each\n\t * IChannelFactory. Entries with string ids are passed to the Fluid object so that it can create a shared object\n\t * for it.\n\t */\n\tconstructor(\n\t\tprivate readonly factoryEntries: ChannelFactoryRegistry,\n\t\tpublic readonly type = \"TestFluidObjectFactory\",\n\t) {}\n\n\tpublic async instantiateDataStore(\n\t\tcontext: IFluidDataStoreContext,\n\t\texisting: boolean,\n\t): Promise<FluidDataStoreRuntime> {\n\t\tconst dataTypes = new Map<string, IChannelFactory>();\n\n\t\t// Add SharedMap's factory which will be used to create the root map.\n\t\tconst sharedMapFactory = SharedMap.getFactory();\n\t\tdataTypes.set(sharedMapFactory.type, sharedMapFactory);\n\n\t\t// Add the object factories to the list to be sent to data store runtime.\n\t\tfor (const [, factory] of this.factoryEntries) {\n\t\t\tdataTypes.set(factory.type, factory);\n\t\t}\n\n\t\t// Create a map from the factory entries with entries that don't have the id as undefined. This will be\n\t\t// passed to the Fluid object.\n\t\tconst factoryEntriesMapForObject = new Map<string, IChannelFactory>();\n\t\tfor (const [id, factory] of this.factoryEntries) {\n\t\t\tif (id !== undefined) {\n\t\t\t\tfactoryEntriesMapForObject.set(id, factory);\n\t\t\t}\n\t\t}\n\n\t\tconst runtimeClass = mixinRequestHandler(\n\t\t\tasync (request: IRequest, rt: FluidDataStoreRuntime) => {\n\t\t\t\t// The provideEntryPoint callback below always returns FluidDataStoreRuntime, so this cast is safe\n\t\t\t\tconst dataObject = (await rt.entryPoint.get()) as FluidDataStoreRuntime;\n\t\t\t\tassert(\n\t\t\t\t\tdataObject.request !== undefined,\n\t\t\t\t\t\"entryPoint should have been initialized by now\",\n\t\t\t\t);\n\t\t\t\treturn dataObject.request(request);\n\t\t\t},\n\t\t);\n\n\t\tconst runtime = new runtimeClass(context, dataTypes, existing, async () => {\n\t\t\tawait instance.initialize(true);\n\t\t\treturn instance;\n\t\t});\n\n\t\tconst instance: TestFluidObject = new TestFluidObject(\n\t\t\truntime, // runtime\n\t\t\truntime, // channel\n\t\t\tcontext,\n\t\t\tfactoryEntriesMapForObject,\n\t\t);\n\n\t\tif (!existing) {\n\t\t\tawait instance.initialize(false);\n\t\t}\n\n\t\treturn runtime;\n\t}\n}\n"]}
1
+ {"version":3,"file":"testFluidObject.js","sourceRoot":"","sources":["../src/testFluidObject.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 { IFluidHandle, IRequest, IResponse } from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport {\n\tFluidDataStoreRuntime,\n\tFluidObjectHandle,\n\tmixinRequestHandler,\n} from \"@fluidframework/datastore/internal\";\nimport { IChannelFactory, IFluidDataStoreRuntime } from \"@fluidframework/datastore-definitions\";\nimport { ISharedMap, SharedMap } from \"@fluidframework/map/internal\";\nimport {\n\tIFluidDataStoreChannel,\n\tIFluidDataStoreContext,\n\tIFluidDataStoreFactory,\n} from \"@fluidframework/runtime-definitions/internal\";\nimport { create404Response } from \"@fluidframework/runtime-utils/internal\";\n\nimport { ITestFluidObject } from \"./interfaces.js\";\n\n/**\n * A test Fluid object that will create a shared object for each key-value pair in the factoryEntries passed to load.\n * The shared objects can be retrieved by passing the key of the entry to getSharedObject.\n * It exposes the IFluidDataStoreContext and IFluidDataStoreRuntime.\n * @internal\n */\nexport class TestFluidObject implements ITestFluidObject {\n\tpublic get ITestFluidObject() {\n\t\treturn this;\n\t}\n\n\tpublic get IFluidLoadable() {\n\t\treturn this;\n\t}\n\n\tpublic get handle(): IFluidHandle<this> {\n\t\treturn this.innerHandle;\n\t}\n\n\tpublic root!: ISharedMap;\n\tprivate readonly innerHandle: IFluidHandle<this>;\n\tprivate initializeP: Promise<void> | undefined;\n\n\t/**\n\t * Creates a new TestFluidObject.\n\t * @param runtime - The data store runtime.\n\t * @param context - The data store context.\n\t * @param factoryEntries - A list of id to IChannelFactory mapping. For each item in the list,\n\t * a shared object is created which can be retrieved by calling getSharedObject() with the id;\n\t */\n\tconstructor(\n\t\tpublic readonly runtime: IFluidDataStoreRuntime,\n\t\tpublic readonly channel: IFluidDataStoreChannel,\n\t\tpublic readonly context: IFluidDataStoreContext,\n\t\tprivate readonly factoryEntriesMap: Map<string, IChannelFactory>,\n\t) {\n\t\tthis.innerHandle = new FluidObjectHandle(this, \"\", runtime.objectsRoutingContext);\n\t}\n\n\t/**\n\t * Retrieves a shared object with the given id.\n\t * @param id - The id of the shared object to retrieve.\n\t */\n\tpublic async getSharedObject<T = any>(id: string): Promise<T> {\n\t\tif (this.factoryEntriesMap === undefined) {\n\t\t\tthrow new Error(\"Shared objects were not provided during creation.\");\n\t\t}\n\n\t\tfor (const key of this.factoryEntriesMap.keys()) {\n\t\t\tif (key === id) {\n\t\t\t\tconst handle = this.root.get<IFluidHandle>(id);\n\t\t\t\treturn handle?.get() as unknown as T;\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(`Shared object with id ${id} not found.`);\n\t}\n\n\tpublic async request(request: IRequest): Promise<IResponse> {\n\t\treturn request.url === \"\" || request.url === \"/\" || request.url.startsWith(\"/?\")\n\t\t\t? { mimeType: \"fluid/object\", status: 200, value: this }\n\t\t\t: create404Response(request);\n\t}\n\n\tpublic async initialize(existing: boolean) {\n\t\tconst doInitialization = async () => {\n\t\t\tif (!existing) {\n\t\t\t\tthis.root = SharedMap.create(this.runtime, \"root\");\n\n\t\t\t\tthis.factoryEntriesMap.forEach(\n\t\t\t\t\t(sharedObjectFactory: IChannelFactory, key: string) => {\n\t\t\t\t\t\tconst sharedObject = this.runtime.createChannel(\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tsharedObjectFactory.type,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.root.set(key, sharedObject.handle);\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tthis.root.bindToContext();\n\t\t\t}\n\n\t\t\tthis.root = (await this.runtime.getChannel(\"root\")) as ISharedMap;\n\t\t};\n\n\t\tif (this.initializeP === undefined) {\n\t\t\tthis.initializeP = doInitialization();\n\t\t}\n\n\t\treturn this.initializeP;\n\t}\n}\n\n/**\n * @internal\n */\nexport type ChannelFactoryRegistry = Iterable<[string | undefined, IChannelFactory]>;\n\n/**\n * Creates a factory for a TestFluidObject with the given object factory entries. It creates a data store runtime\n * with the object factories in the entry list. All the entries with an id other than undefined are passed to the\n * Fluid object so that it can create a shared object for each.\n *\n * @example\n *\n * The following will create a Fluid object that creates and loads a SharedString and SharedDirectory.\n * It will add SparseMatrix to the data store's factory so that it can be created later.\n *\n * ```typescript\n * new TestFluidObjectFactory([\n * [ \"sharedString\", SharedString.getFactory() ],\n * [ \"sharedDirectory\", SharedDirectory.getFactory() ],\n * [ undefined, SparseMatrix.getFactory() ],\n * ]);\n * ```\n *\n * The SharedString and SharedDirectory can be retrieved via getSharedObject() on the TestFluidObject as follows:\n *\n * ```typescript\n * sharedString = testFluidObject.getSharedObject<SharedString>(\"sharedString\");\n * sharedDir = testFluidObject.getSharedObject<SharedDirectory>(\"sharedDirectory\");\n * ```\n *\n * @privateRemarks Beware that using this class generally forfeits some compatibility coverage\n * `describeCompat` aims to provide:\n * `SharedMap`s always reference the current version of SharedMap.\n * AB#4670 tracks improving this situation.\n * @internal\n */\nexport class TestFluidObjectFactory implements IFluidDataStoreFactory {\n\tpublic get IFluidDataStoreFactory() {\n\t\treturn this;\n\t}\n\n\t/**\n\t * Creates a new TestFluidObjectFactory.\n\t * @param factoryEntries - A list of id to IChannelFactory mapping. It creates a data store runtime with each\n\t * IChannelFactory. Entries with string ids are passed to the Fluid object so that it can create a shared object\n\t * for it.\n\t */\n\tconstructor(\n\t\tprivate readonly factoryEntries: ChannelFactoryRegistry,\n\t\tpublic readonly type = \"TestFluidObjectFactory\",\n\t) {}\n\n\tpublic async instantiateDataStore(\n\t\tcontext: IFluidDataStoreContext,\n\t\texisting: boolean,\n\t): Promise<FluidDataStoreRuntime> {\n\t\tconst dataTypes = new Map<string, IChannelFactory>();\n\n\t\t// Add SharedMap's factory which will be used to create the root map.\n\t\tconst sharedMapFactory = SharedMap.getFactory();\n\t\tdataTypes.set(sharedMapFactory.type, sharedMapFactory);\n\n\t\t// Add the object factories to the list to be sent to data store runtime.\n\t\tfor (const [, factory] of this.factoryEntries) {\n\t\t\tdataTypes.set(factory.type, factory);\n\t\t}\n\n\t\t// Create a map from the factory entries with entries that don't have the id as undefined. This will be\n\t\t// passed to the Fluid object.\n\t\tconst factoryEntriesMapForObject = new Map<string, IChannelFactory>();\n\t\tfor (const [id, factory] of this.factoryEntries) {\n\t\t\tif (id !== undefined) {\n\t\t\t\tfactoryEntriesMapForObject.set(id, factory);\n\t\t\t}\n\t\t}\n\n\t\tconst runtimeClass = mixinRequestHandler(\n\t\t\tasync (request: IRequest, rt: FluidDataStoreRuntime) => {\n\t\t\t\t// The provideEntryPoint callback below always returns FluidDataStoreRuntime, so this cast is safe\n\t\t\t\tconst dataObject = (await rt.entryPoint.get()) as FluidDataStoreRuntime;\n\t\t\t\tassert(\n\t\t\t\t\tdataObject.request !== undefined,\n\t\t\t\t\t\"entryPoint should have been initialized by now\",\n\t\t\t\t);\n\t\t\t\treturn dataObject.request(request);\n\t\t\t},\n\t\t);\n\n\t\tconst runtime = new runtimeClass(context, dataTypes, existing, async () => {\n\t\t\tawait instance.initialize(true);\n\t\t\treturn instance;\n\t\t});\n\n\t\tconst instance: TestFluidObject = new TestFluidObject(\n\t\t\truntime, // runtime\n\t\t\truntime, // channel\n\t\t\tcontext,\n\t\t\tfactoryEntriesMapForObject,\n\t\t);\n\n\t\tif (!existing) {\n\t\t\tawait instance.initialize(false);\n\t\t}\n\n\t\treturn runtime;\n\t}\n}\n"]}
@@ -2,13 +2,14 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { IContainer, IHostLoader, IFluidCodeDetails } from "@fluidframework/container-definitions";
6
- import { ILoaderProps, Loader } from "@fluidframework/container-loader";
7
- import { IContainerRuntimeOptions } from "@fluidframework/container-runtime";
8
- import { ITelemetryBaseLogger, ITelemetryBaseEvent, IRequestHeader } from "@fluidframework/core-interfaces";
9
- import { IDocumentServiceFactory, IResolvedUrl, IUrlResolver } from "@fluidframework/driver-definitions";
10
- import { ITestDriver } from "@fluidframework/test-driver-definitions";
5
+ import { ITestDriver } from "@fluid-internal/test-driver-definitions";
6
+ import { IContainer, IFluidCodeDetails, IHostLoader } from "@fluidframework/container-definitions/internal";
7
+ import { ILoaderProps, Loader } from "@fluidframework/container-loader/internal";
8
+ import { IContainerRuntimeOptions } from "@fluidframework/container-runtime/internal";
9
+ import { IRequestHeader, ITelemetryBaseEvent, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
10
+ import { IDocumentServiceFactory, IResolvedUrl, IUrlResolver } from "@fluidframework/driver-definitions/internal";
11
11
  import { type ITelemetryGenericEventExt } from "@fluidframework/telemetry-utils";
12
+ import { type ITelemetryLoggerPropertyBags } from "@fluidframework/telemetry-utils/internal";
12
13
  import { fluidEntryPoint } from "./localCodeLoader.js";
13
14
  import { ChannelFactoryRegistry } from "./testFluidObject.js";
14
15
  /**
@@ -43,7 +44,11 @@ export interface ITestObjectProvider {
43
44
  /**
44
45
  * Logger used to track expected and unexpected events.
45
46
  */
46
- logger: EventAndErrorTrackingLogger | undefined;
47
+ logger: ITelemetryBaseLogger;
48
+ /**
49
+ * Logger used to track expected and unexpected events.
50
+ */
51
+ tracker: IEventAndErrorTrackingLogger;
47
52
  /**
48
53
  * Used to create a url for the created container with any data store path given in the relative url.
49
54
  */
@@ -67,8 +72,10 @@ export interface ITestObjectProvider {
67
72
  * containerRuntime/dataRuntime used in fluidEntryPoint will be used as is from what is passed in.
68
73
  *
69
74
  * @param packageEntries - list of code details and fluidEntryPoint pairs.
75
+ * @param loaderProps - Optional loader properties
76
+ * @param forceUseCreateVersion - For Cross-Version compat testing, create a loader based on the create version
70
77
  */
71
- createLoader(packageEntries: Iterable<[IFluidCodeDetails, fluidEntryPoint]>, loaderProps?: Partial<ILoaderProps>): IHostLoader;
78
+ createLoader(packageEntries: Iterable<[IFluidCodeDetails, fluidEntryPoint]>, loaderProps?: Partial<ILoaderProps>, forceUseCreateVersion?: boolean): IHostLoader;
72
79
  /**
73
80
  * Create a container using a default document id and code details.
74
81
  * Container created is automatically added to the OpProcessingController to manage op flow
@@ -109,7 +116,7 @@ export interface ITestObjectProvider {
109
116
  * @param testContainerConfig - optional configuring the test Container
110
117
  * @param requestHeader - optional headers to be supplied to the loader
111
118
  */
112
- loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader): Promise<IContainer>;
119
+ loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader, pendingLocalState?: string): Promise<IContainer>;
113
120
  /**
114
121
  * Update the document ID from the resolved container's URL and reset the ID property
115
122
  */
@@ -146,6 +153,8 @@ export interface ITestContainerConfig {
146
153
  runtimeOptions?: IContainerRuntimeOptions;
147
154
  /** Whether this runtime should be instantiated using a mixed-in attributor class */
148
155
  enableAttribution?: boolean;
156
+ /** For Cross-Version compat testing, load using the create version (e.g. use this to get a Summarizer on the create version) */
157
+ forceUseCreateVersion?: true;
149
158
  /** Loader options for the loader used to create containers */
150
159
  loaderProps?: Partial<ILoaderProps>;
151
160
  }
@@ -172,6 +181,17 @@ export interface IDocumentIdStrategy {
172
181
  */
173
182
  reset(): void;
174
183
  }
184
+ /** @internal */
185
+ export interface IEventAndErrorTrackingLogger {
186
+ registerExpectedEvent: (...orderedExpectedEvents: ITelemetryGenericEventExt[]) => void;
187
+ reportAndClearTrackedEvents: () => {
188
+ expectedNotFound: {
189
+ index: number;
190
+ event: ITelemetryGenericEventExt;
191
+ }[];
192
+ unexpectedErrors: ITelemetryBaseEvent[];
193
+ };
194
+ }
175
195
  /**
176
196
  * This class tracks events. It allows specifying expected events, which will be looked for in order.
177
197
  * It also tracks all unexpected errors.
@@ -179,23 +199,23 @@ export interface IDocumentIdStrategy {
179
199
  * any expected events that have not occurred.
180
200
  * @internal
181
201
  */
182
- export declare class EventAndErrorTrackingLogger implements ITelemetryBaseLogger {
183
- private readonly baseLogger;
202
+ export declare class EventAndErrorTrackingLogger implements ITelemetryBaseLogger, IEventAndErrorTrackingLogger {
203
+ private readonly baseLogger?;
184
204
  /**
185
205
  * Even if these error events are logged, tests should still be allowed to pass
186
206
  * Additionally, if downgrade is true, then log as generic (e.g. to avoid polluting the e2e test logs)
187
207
  */
188
208
  private readonly allowedErrors;
189
- constructor(baseLogger: ITelemetryBaseLogger);
209
+ constructor(baseLogger?: ITelemetryBaseLogger | undefined);
190
210
  private readonly expectedEvents;
191
211
  private readonly unexpectedErrors;
192
212
  registerExpectedEvent(...orderedExpectedEvents: ITelemetryGenericEventExt[]): void;
193
213
  send(event: ITelemetryBaseEvent): void;
194
214
  reportAndClearTrackedEvents(): {
195
- expectedNotFound: ({
215
+ expectedNotFound: {
196
216
  index: number;
197
- event: ITelemetryGenericEventExt | undefined;
198
- } | undefined)[];
217
+ event: ITelemetryGenericEventExt;
218
+ }[];
199
219
  unexpectedErrors: ITelemetryBaseEvent[];
200
220
  };
201
221
  }
@@ -221,6 +241,7 @@ export declare class TestObjectProvider implements ITestObjectProvider {
221
241
  private _documentServiceFactory;
222
242
  private _urlResolver;
223
243
  private _logger;
244
+ private _tracker;
224
245
  private readonly _documentIdStrategy;
225
246
  private _documentCreated;
226
247
  /**
@@ -240,8 +261,8 @@ export declare class TestObjectProvider implements ITestObjectProvider {
240
261
  /**
241
262
  * {@inheritDoc ITestObjectProvider.logger}
242
263
  */
243
- get logger(): EventAndErrorTrackingLogger;
244
- private set logger(value);
264
+ get logger(): ITelemetryBaseLogger;
265
+ get tracker(): EventAndErrorTrackingLogger;
245
266
  /**
246
267
  * {@inheritDoc ITestObjectProvider.documentServiceFactory}
247
268
  */
@@ -294,7 +315,7 @@ export declare class TestObjectProvider implements ITestObjectProvider {
294
315
  /**
295
316
  * {@inheritDoc ITestObjectProvider.loadTestContainer}
296
317
  */
297
- loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader): Promise<IContainer>;
318
+ loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader, pendingLocalState?: string): Promise<IContainer>;
298
319
  /**
299
320
  * {@inheritDoc ITestObjectProvider.reset}
300
321
  */
@@ -325,12 +346,14 @@ export declare class TestObjectProviderWithVersionedLoad implements ITestObjectP
325
346
  private readonly driverForLoading;
326
347
  private readonly createFluidEntryPointForCreating;
327
348
  private readonly createFluidEntryPointForLoading;
349
+ private readonly telemetryProps?;
328
350
  /**
329
351
  * {@inheritDoc ITestObjectProvider."type"}
330
352
  */
331
353
  readonly type = "TestObjectProviderWithVersionedLoad";
332
354
  private _loaderContainerTracker;
333
355
  private _logger;
356
+ private _tracker;
334
357
  private readonly _documentIdStrategy;
335
358
  private _documentServiceFactory;
336
359
  private _urlResolver;
@@ -342,11 +365,12 @@ export declare class TestObjectProviderWithVersionedLoad implements ITestObjectP
342
365
  * subsequent loads use the load APIs.
343
366
  */
344
367
  private useCreateApi;
345
- constructor(LoaderConstructorForCreating: typeof Loader, LoaderConstructorForLoading: typeof Loader, driverForCreating: ITestDriver, driverForLoading: ITestDriver, createFluidEntryPointForCreating: (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint, createFluidEntryPointForLoading: (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint);
368
+ constructor(LoaderConstructorForCreating: typeof Loader, LoaderConstructorForLoading: typeof Loader, driverForCreating: ITestDriver, driverForLoading: ITestDriver, createFluidEntryPointForCreating: (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint, createFluidEntryPointForLoading: (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint, telemetryProps?: ITelemetryLoggerPropertyBags | undefined);
346
369
  /**
347
370
  * {@inheritDoc ITestObjectProvider.logger}
348
371
  */
349
- get logger(): EventAndErrorTrackingLogger;
372
+ get logger(): ITelemetryBaseLogger;
373
+ get tracker(): EventAndErrorTrackingLogger;
350
374
  /**
351
375
  * {@inheritDoc ITestObjectProvider.documentServiceFactory}
352
376
  */
@@ -380,7 +404,7 @@ export declare class TestObjectProviderWithVersionedLoad implements ITestObjectP
380
404
  /**
381
405
  * {@inheritDoc ITestObjectProvider.createLoader}
382
406
  */
383
- createLoader(packageEntries: Iterable<[IFluidCodeDetails, fluidEntryPoint]>, loaderProps?: Partial<ILoaderProps>): Loader;
407
+ createLoader(packageEntries: Iterable<[IFluidCodeDetails, fluidEntryPoint]>, loaderProps?: Partial<ILoaderProps>, forceUseCreateVersion?: boolean): Loader;
384
408
  /**
385
409
  * {@inheritDoc ITestObjectProvider.createContainer}
386
410
  */
@@ -409,7 +433,7 @@ export declare class TestObjectProviderWithVersionedLoad implements ITestObjectP
409
433
  /**
410
434
  * {@inheritDoc ITestObjectProvider.loadTestContainer}
411
435
  */
412
- loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader): Promise<IContainer>;
436
+ loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader, pendingLocalState?: string): Promise<IContainer>;
413
437
  /**
414
438
  * {@inheritDoc ITestObjectProvider.reset}
415
439
  */
@@ -431,5 +455,5 @@ export declare class TestObjectProviderWithVersionedLoad implements ITestObjectP
431
455
  /**
432
456
  * @internal
433
457
  */
434
- export declare function getUnexpectedLogErrorException(logger: EventAndErrorTrackingLogger | undefined, prefix?: string): Error | undefined;
458
+ export declare function getUnexpectedLogErrorException(logger: IEventAndErrorTrackingLogger | undefined, prefix?: string): Error | undefined;
435
459
  //# sourceMappingURL=testObjectProvider.d.ts.map