@fluidframework/container-loader 2.63.0-359734 → 2.63.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 (84) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/api-report/container-loader.legacy.alpha.api.md +31 -0
  3. package/dist/container.d.ts.map +1 -1
  4. package/dist/container.js +12 -8
  5. package/dist/container.js.map +1 -1
  6. package/dist/containerStorageAdapter.d.ts +7 -13
  7. package/dist/containerStorageAdapter.d.ts.map +1 -1
  8. package/dist/containerStorageAdapter.js +9 -14
  9. package/dist/containerStorageAdapter.js.map +1 -1
  10. package/dist/createAndLoadContainerUtils.d.ts +13 -0
  11. package/dist/createAndLoadContainerUtils.d.ts.map +1 -1
  12. package/dist/createAndLoadContainerUtils.js +118 -2
  13. package/dist/createAndLoadContainerUtils.js.map +1 -1
  14. package/dist/frozenServices.d.ts +10 -1
  15. package/dist/frozenServices.d.ts.map +1 -1
  16. package/dist/frozenServices.js +24 -4
  17. package/dist/frozenServices.js.map +1 -1
  18. package/dist/index.d.ts +3 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +4 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/legacyAlpha.d.ts +7 -1
  23. package/dist/packageVersion.d.ts +1 -1
  24. package/dist/packageVersion.d.ts.map +1 -1
  25. package/dist/packageVersion.js +1 -1
  26. package/dist/packageVersion.js.map +1 -1
  27. package/dist/serializedStateManager.d.ts +10 -6
  28. package/dist/serializedStateManager.d.ts.map +1 -1
  29. package/dist/serializedStateManager.js +76 -77
  30. package/dist/serializedStateManager.js.map +1 -1
  31. package/dist/summarizerResultTypes.d.ts +96 -0
  32. package/dist/summarizerResultTypes.d.ts.map +1 -0
  33. package/dist/summarizerResultTypes.js +9 -0
  34. package/dist/summarizerResultTypes.js.map +1 -0
  35. package/dist/utils.d.ts +4 -5
  36. package/dist/utils.d.ts.map +1 -1
  37. package/dist/utils.js +14 -13
  38. package/dist/utils.js.map +1 -1
  39. package/lib/container.d.ts.map +1 -1
  40. package/lib/container.js +13 -9
  41. package/lib/container.js.map +1 -1
  42. package/lib/containerStorageAdapter.d.ts +7 -13
  43. package/lib/containerStorageAdapter.d.ts.map +1 -1
  44. package/lib/containerStorageAdapter.js +10 -15
  45. package/lib/containerStorageAdapter.js.map +1 -1
  46. package/lib/createAndLoadContainerUtils.d.ts +13 -0
  47. package/lib/createAndLoadContainerUtils.d.ts.map +1 -1
  48. package/lib/createAndLoadContainerUtils.js +117 -2
  49. package/lib/createAndLoadContainerUtils.js.map +1 -1
  50. package/lib/frozenServices.d.ts +10 -1
  51. package/lib/frozenServices.d.ts.map +1 -1
  52. package/lib/frozenServices.js +20 -1
  53. package/lib/frozenServices.js.map +1 -1
  54. package/lib/index.d.ts +3 -1
  55. package/lib/index.d.ts.map +1 -1
  56. package/lib/index.js +2 -1
  57. package/lib/index.js.map +1 -1
  58. package/lib/legacyAlpha.d.ts +7 -1
  59. package/lib/packageVersion.d.ts +1 -1
  60. package/lib/packageVersion.d.ts.map +1 -1
  61. package/lib/packageVersion.js +1 -1
  62. package/lib/packageVersion.js.map +1 -1
  63. package/lib/serializedStateManager.d.ts +10 -6
  64. package/lib/serializedStateManager.d.ts.map +1 -1
  65. package/lib/serializedStateManager.js +78 -79
  66. package/lib/serializedStateManager.js.map +1 -1
  67. package/lib/summarizerResultTypes.d.ts +96 -0
  68. package/lib/summarizerResultTypes.d.ts.map +1 -0
  69. package/lib/summarizerResultTypes.js +6 -0
  70. package/lib/summarizerResultTypes.js.map +1 -0
  71. package/lib/utils.d.ts +4 -5
  72. package/lib/utils.d.ts.map +1 -1
  73. package/lib/utils.js +15 -14
  74. package/lib/utils.js.map +1 -1
  75. package/package.json +11 -11
  76. package/src/container.ts +19 -14
  77. package/src/containerStorageAdapter.ts +14 -18
  78. package/src/createAndLoadContainerUtils.ts +176 -2
  79. package/src/frozenServices.ts +28 -2
  80. package/src/index.ts +8 -0
  81. package/src/packageVersion.ts +1 -1
  82. package/src/serializedStateManager.ts +118 -109
  83. package/src/summarizerResultTypes.ts +115 -0
  84. package/src/utils.ts +20 -20
package/dist/index.d.ts CHANGED
@@ -4,7 +4,9 @@
4
4
  */
5
5
  export { ConnectionState } from "./connectionState.js";
6
6
  export { type ContainerAlpha, waitContainerToCatchUp, asLegacyAlpha } from "./container.js";
7
- export { createDetachedContainer, loadExistingContainer, rehydrateDetachedContainer, loadFrozenContainerFromPendingState, type ICreateAndLoadContainerProps, type ICreateDetachedContainerProps, type ILoadExistingContainerProps, type IRehydrateDetachedContainerProps, type ILoadFrozenContainerFromPendingStateProps, } from "./createAndLoadContainerUtils.js";
7
+ export { createFrozenDocumentServiceFactory } from "./frozenServices.js";
8
+ export { createDetachedContainer, loadExistingContainer, rehydrateDetachedContainer, loadFrozenContainerFromPendingState, loadSummarizerContainerAndMakeSummary, type ICreateAndLoadContainerProps, type ICreateDetachedContainerProps, type ILoadExistingContainerProps, type ILoadSummarizerContainerProps, type IRehydrateDetachedContainerProps, type ILoadFrozenContainerFromPendingStateProps, } from "./createAndLoadContainerUtils.js";
9
+ export type { LoadSummarizerSummaryResult, OnDemandSummaryResults, SummaryStage, } from "./summarizerResultTypes.js";
8
10
  export { type ICodeDetailsLoader, type IFluidModuleWithDetails, type ILoaderProps, type ILoaderServices, Loader, } from "./loader.js";
9
11
  export { driverSupportRequirementsForLoader, loaderCoreCompatDetails, runtimeSupportRequirementsForLoader, loaderCompatDetailsForRuntime, } from "./loaderLayerCompatState.js";
10
12
  export { loadContainerPaused } from "./loadPaused.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,cAAc,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,mCAAmC,EACnC,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACrC,KAAK,yCAAyC,GAC9C,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,MAAM,GACN,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,kCAAkC,EAClC,uBAAuB,EACvB,mCAAmC,EACnC,6BAA6B,GAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACN,0BAA0B,EAC1B,sCAAsC,GACtC,MAAM,2CAA2C,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EACN,6BAA6B,EAC7B,KAAK,UAAU,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EACX,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,GACvB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,cAAc,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,mCAAmC,EACnC,qCAAqC,EACrC,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAClC,KAAK,gCAAgC,EACrC,KAAK,yCAAyC,GAC9C,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACX,2BAA2B,EAC3B,sBAAsB,EACtB,YAAY,GACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,MAAM,GACN,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,kCAAkC,EAClC,uBAAuB,EACvB,mCAAmC,EACnC,6BAA6B,GAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACN,0BAA0B,EAC1B,sCAAsC,GACtC,MAAM,2CAA2C,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EACN,6BAA6B,EAC7B,KAAK,UAAU,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EACX,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,GACvB,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -4,17 +4,20 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.tryParseCompatibleResolvedUrl = exports.resolveWithLocationRedirectionHandling = exports.isLocationRedirectionError = exports.loadContainerPaused = exports.loaderCompatDetailsForRuntime = exports.runtimeSupportRequirementsForLoader = exports.loaderCoreCompatDetails = exports.driverSupportRequirementsForLoader = exports.Loader = exports.loadFrozenContainerFromPendingState = exports.rehydrateDetachedContainer = exports.loadExistingContainer = exports.createDetachedContainer = exports.asLegacyAlpha = exports.waitContainerToCatchUp = exports.ConnectionState = void 0;
7
+ exports.tryParseCompatibleResolvedUrl = exports.resolveWithLocationRedirectionHandling = exports.isLocationRedirectionError = exports.loadContainerPaused = exports.loaderCompatDetailsForRuntime = exports.runtimeSupportRequirementsForLoader = exports.loaderCoreCompatDetails = exports.driverSupportRequirementsForLoader = exports.Loader = exports.loadSummarizerContainerAndMakeSummary = exports.loadFrozenContainerFromPendingState = exports.rehydrateDetachedContainer = exports.loadExistingContainer = exports.createDetachedContainer = exports.createFrozenDocumentServiceFactory = exports.asLegacyAlpha = exports.waitContainerToCatchUp = exports.ConnectionState = void 0;
8
8
  var connectionState_js_1 = require("./connectionState.js");
9
9
  Object.defineProperty(exports, "ConnectionState", { enumerable: true, get: function () { return connectionState_js_1.ConnectionState; } });
10
10
  var container_js_1 = require("./container.js");
11
11
  Object.defineProperty(exports, "waitContainerToCatchUp", { enumerable: true, get: function () { return container_js_1.waitContainerToCatchUp; } });
12
12
  Object.defineProperty(exports, "asLegacyAlpha", { enumerable: true, get: function () { return container_js_1.asLegacyAlpha; } });
13
+ var frozenServices_js_1 = require("./frozenServices.js");
14
+ Object.defineProperty(exports, "createFrozenDocumentServiceFactory", { enumerable: true, get: function () { return frozenServices_js_1.createFrozenDocumentServiceFactory; } });
13
15
  var createAndLoadContainerUtils_js_1 = require("./createAndLoadContainerUtils.js");
14
16
  Object.defineProperty(exports, "createDetachedContainer", { enumerable: true, get: function () { return createAndLoadContainerUtils_js_1.createDetachedContainer; } });
15
17
  Object.defineProperty(exports, "loadExistingContainer", { enumerable: true, get: function () { return createAndLoadContainerUtils_js_1.loadExistingContainer; } });
16
18
  Object.defineProperty(exports, "rehydrateDetachedContainer", { enumerable: true, get: function () { return createAndLoadContainerUtils_js_1.rehydrateDetachedContainer; } });
17
19
  Object.defineProperty(exports, "loadFrozenContainerFromPendingState", { enumerable: true, get: function () { return createAndLoadContainerUtils_js_1.loadFrozenContainerFromPendingState; } });
20
+ Object.defineProperty(exports, "loadSummarizerContainerAndMakeSummary", { enumerable: true, get: function () { return createAndLoadContainerUtils_js_1.loadSummarizerContainerAndMakeSummary; } });
18
21
  var loader_js_1 = require("./loader.js");
19
22
  Object.defineProperty(exports, "Loader", { enumerable: true, get: function () { return loader_js_1.Loader; } });
20
23
  var loaderLayerCompatState_js_1 = require("./loaderLayerCompatState.js");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2DAAuD;AAA9C,qHAAA,eAAe,OAAA;AACxB,+CAA4F;AAA9D,sHAAA,sBAAsB,OAAA;AAAE,6GAAA,aAAa,OAAA;AACnE,mFAU0C;AATzC,yIAAA,uBAAuB,OAAA;AACvB,uIAAA,qBAAqB,OAAA;AACrB,4IAAA,0BAA0B,OAAA;AAC1B,qJAAA,mCAAmC,OAAA;AAOpC,yCAMqB;AADpB,mGAAA,MAAM,OAAA;AAEP,yEAKqC;AAJpC,+IAAA,kCAAkC,OAAA;AAClC,oIAAA,uBAAuB,OAAA;AACvB,gJAAA,mCAAmC,OAAA;AACnC,0IAAA,6BAA6B,OAAA;AAE9B,iDAAsD;AAA7C,oHAAA,mBAAmB,OAAA;AAC5B,sEAGmD;AAFlD,sHAAA,0BAA0B,OAAA;AAC1B,kIAAA,sCAAsC,OAAA;AAGvC,uCAGoB;AAFnB,yHAAA,6BAA6B,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { ConnectionState } from \"./connectionState.js\";\nexport { type ContainerAlpha, waitContainerToCatchUp, asLegacyAlpha } from \"./container.js\";\nexport {\n\tcreateDetachedContainer,\n\tloadExistingContainer,\n\trehydrateDetachedContainer,\n\tloadFrozenContainerFromPendingState,\n\ttype ICreateAndLoadContainerProps,\n\ttype ICreateDetachedContainerProps,\n\ttype ILoadExistingContainerProps,\n\ttype IRehydrateDetachedContainerProps,\n\ttype ILoadFrozenContainerFromPendingStateProps,\n} from \"./createAndLoadContainerUtils.js\";\nexport {\n\ttype ICodeDetailsLoader,\n\ttype IFluidModuleWithDetails,\n\ttype ILoaderProps,\n\ttype ILoaderServices,\n\tLoader,\n} from \"./loader.js\";\nexport {\n\tdriverSupportRequirementsForLoader,\n\tloaderCoreCompatDetails,\n\truntimeSupportRequirementsForLoader,\n\tloaderCompatDetailsForRuntime,\n} from \"./loaderLayerCompatState.js\";\nexport { loadContainerPaused } from \"./loadPaused.js\";\nexport {\n\tisLocationRedirectionError,\n\tresolveWithLocationRedirectionHandling,\n} from \"./location-redirection-utilities/index.js\";\nexport type { IProtocolHandler, ProtocolHandlerBuilder } from \"./protocol.js\";\nexport {\n\ttryParseCompatibleResolvedUrl,\n\ttype IParsedUrl,\n} from \"./utils.js\";\nexport type {\n\tIBaseProtocolHandler,\n\tIScribeProtocolState,\n\tIQuorumSnapshot,\n\tQuorumClientsSnapshot,\n\tQuorumProposalsSnapshot,\n} from \"./protocol/index.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2DAAuD;AAA9C,qHAAA,eAAe,OAAA;AACxB,+CAA4F;AAA9D,sHAAA,sBAAsB,OAAA;AAAE,6GAAA,aAAa,OAAA;AACnE,yDAAyE;AAAhE,uIAAA,kCAAkC,OAAA;AAC3C,mFAY0C;AAXzC,yIAAA,uBAAuB,OAAA;AACvB,uIAAA,qBAAqB,OAAA;AACrB,4IAAA,0BAA0B,OAAA;AAC1B,qJAAA,mCAAmC,OAAA;AACnC,uJAAA,qCAAqC,OAAA;AAatC,yCAMqB;AADpB,mGAAA,MAAM,OAAA;AAEP,yEAKqC;AAJpC,+IAAA,kCAAkC,OAAA;AAClC,oIAAA,uBAAuB,OAAA;AACvB,gJAAA,mCAAmC,OAAA;AACnC,0IAAA,6BAA6B,OAAA;AAE9B,iDAAsD;AAA7C,oHAAA,mBAAmB,OAAA;AAC5B,sEAGmD;AAFlD,sHAAA,0BAA0B,OAAA;AAC1B,kIAAA,sCAAsC,OAAA;AAGvC,uCAGoB;AAFnB,yHAAA,6BAA6B,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { ConnectionState } from \"./connectionState.js\";\nexport { type ContainerAlpha, waitContainerToCatchUp, asLegacyAlpha } from \"./container.js\";\nexport { createFrozenDocumentServiceFactory } from \"./frozenServices.js\";\nexport {\n\tcreateDetachedContainer,\n\tloadExistingContainer,\n\trehydrateDetachedContainer,\n\tloadFrozenContainerFromPendingState,\n\tloadSummarizerContainerAndMakeSummary,\n\ttype ICreateAndLoadContainerProps,\n\ttype ICreateDetachedContainerProps,\n\ttype ILoadExistingContainerProps,\n\ttype ILoadSummarizerContainerProps,\n\ttype IRehydrateDetachedContainerProps,\n\ttype ILoadFrozenContainerFromPendingStateProps,\n} from \"./createAndLoadContainerUtils.js\";\nexport type {\n\tLoadSummarizerSummaryResult,\n\tOnDemandSummaryResults,\n\tSummaryStage,\n} from \"./summarizerResultTypes.js\";\nexport {\n\ttype ICodeDetailsLoader,\n\ttype IFluidModuleWithDetails,\n\ttype ILoaderProps,\n\ttype ILoaderServices,\n\tLoader,\n} from \"./loader.js\";\nexport {\n\tdriverSupportRequirementsForLoader,\n\tloaderCoreCompatDetails,\n\truntimeSupportRequirementsForLoader,\n\tloaderCompatDetailsForRuntime,\n} from \"./loaderLayerCompatState.js\";\nexport { loadContainerPaused } from \"./loadPaused.js\";\nexport {\n\tisLocationRedirectionError,\n\tresolveWithLocationRedirectionHandling,\n} from \"./location-redirection-utilities/index.js\";\nexport type { IProtocolHandler, ProtocolHandlerBuilder } from \"./protocol.js\";\nexport {\n\ttryParseCompatibleResolvedUrl,\n\ttype IParsedUrl,\n} from \"./utils.js\";\nexport type {\n\tIBaseProtocolHandler,\n\tIScribeProtocolState,\n\tIQuorumSnapshot,\n\tQuorumClientsSnapshot,\n\tQuorumProposalsSnapshot,\n} from \"./protocol/index.js\";\n"]}
@@ -42,7 +42,13 @@ export {
42
42
  // #region @legacyAlpha APIs
43
43
  ContainerAlpha,
44
44
  ILoadFrozenContainerFromPendingStateProps,
45
+ ILoadSummarizerContainerProps,
46
+ LoadSummarizerSummaryResult,
47
+ OnDemandSummaryResults,
48
+ SummaryStage,
45
49
  asLegacyAlpha,
46
- loadFrozenContainerFromPendingState
50
+ createFrozenDocumentServiceFactory,
51
+ loadFrozenContainerFromPendingState,
52
+ loadSummarizerContainerAndMakeSummary
47
53
  // #endregion
48
54
  } from "./index.js";
@@ -5,5 +5,5 @@
5
5
  * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
6
  */
7
7
  export declare const pkgName = "@fluidframework/container-loader";
8
- export declare const pkgVersion = "2.63.0-359734";
8
+ export declare const pkgVersion = "2.63.0";
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,qCAAqC,CAAC;AAC1D,eAAO,MAAM,UAAU,kBAAkB,CAAC"}
1
+ {"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,qCAAqC,CAAC;AAC1D,eAAO,MAAM,UAAU,WAAW,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/container-loader";
11
- exports.pkgVersion = "2.63.0-359734";
11
+ exports.pkgVersion = "2.63.0";
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,kCAAkC,CAAC;AAC7C,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/container-loader\";\nexport const pkgVersion = \"2.63.0-359734\";\n"]}
1
+ {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,kCAAkC,CAAC;AAC7C,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/container-loader\";\nexport const pkgVersion = \"2.63.0\";\n"]}
@@ -7,7 +7,7 @@ import type { IEventProvider, IEvent, ITelemetryBaseLogger } from "@fluidframewo
7
7
  import type { IDisposable } from "@fluidframework/core-interfaces/internal";
8
8
  import { type IDocumentStorageService, type IResolvedUrl, type ISnapshot, type IDocumentAttributes, type ISnapshotTree, type IVersion, type ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
9
9
  import { type MonitoringContext } from "@fluidframework/telemetry-utils/internal";
10
- import { type ISerializableBlobContents } from "./containerStorageAdapter.js";
10
+ import { type ContainerStorageAdapter, type ISerializableBlobContents } from "./containerStorageAdapter.js";
11
11
  /**
12
12
  * This is very similar to {@link @fluidframework/protocol-definitions/internal#ISnapshot}, but the difference is
13
13
  * that the blobs of ISnapshot are of type ArrayBufferLike, while the blobs of this interface are serializable because
@@ -47,7 +47,7 @@ export interface IPendingContainerState extends SnapshotWithBlobs {
47
47
  /**
48
48
  * Any group snapshots (aka delay-loaded) we've downloaded from the service for this container
49
49
  */
50
- loadedGroupIdSnapshots?: Record<string, ISnapshotInfo>;
50
+ loadedGroupIdSnapshots?: Record<string, SerializedSnapshotInfo>;
51
51
  /**
52
52
  * All ops since base snapshot sequence number up to the latest op
53
53
  * seen when the container was closed. Used to apply stashed (saved pending)
@@ -87,11 +87,15 @@ export interface IPendingDetachedContainerState extends SnapshotWithBlobs {
87
87
  */
88
88
  pendingRuntimeState?: unknown;
89
89
  }
90
- export interface ISnapshotInfo extends SnapshotWithBlobs {
90
+ export interface SerializedSnapshotInfo extends SnapshotWithBlobs {
91
+ snapshotSequenceNumber: number;
92
+ }
93
+ interface ISnapshotInfo {
91
94
  snapshotSequenceNumber: number;
92
95
  snapshotFetchedTime?: number | undefined;
96
+ snapshot: ISnapshot | ISnapshotTree;
93
97
  }
94
- export type ISerializedStateManagerDocumentStorageService = Pick<IDocumentStorageService, "getSnapshot" | "getSnapshotTree" | "getVersions" | "readBlob"> & {
98
+ export type ISerializedStateManagerDocumentStorageService = Pick<ContainerStorageAdapter, "getSnapshot" | "getSnapshotTree" | "getVersions" | "readBlob" | "cacheSnapshotBlobs"> & {
95
99
  loadedGroupIdSnapshots: Record<string, ISnapshot>;
96
100
  };
97
101
  interface ISerializerEvent extends IEvent {
@@ -112,7 +116,7 @@ export declare class SerializedStateManager implements IDisposable {
112
116
  private readonly supportGetSnapshotApi;
113
117
  private readonly processedOps;
114
118
  private readonly mc;
115
- private snapshot;
119
+ private snapshotInfo;
116
120
  private latestSnapshot;
117
121
  private readonly refreshTracker;
118
122
  private lastSavedOpSequenceNumber;
@@ -151,7 +155,7 @@ export declare class SerializedStateManager implements IDisposable {
151
155
  * @returns The snapshot to boot the container from
152
156
  */
153
157
  fetchSnapshot(specifiedVersion: string | undefined, pendingLocalState: IPendingContainerState | undefined): Promise<{
154
- baseSnapshot: ISnapshot | ISnapshotTree;
158
+ snapshot: ISnapshot | ISnapshotTree;
155
159
  version: IVersion | undefined;
156
160
  attributes: IDocumentAttributes;
157
161
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"serializedStateManager.d.ts","sourceRoot":"","sources":["../src/serializedStateManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializedStateManager.d.ts","sourceRoot":"","sources":["../src/serializedStateManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,KAAK,EACX,cAAc,EACd,MAAM,EACN,oBAAoB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAE5E,OAAO,EAEN,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,yBAAyB,EAC9B,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACN,KAAK,iBAAiB,EAItB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAEN,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,MAAM,8BAA8B,CAAC;AAOtC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,YAAY,EAAE,aAAa,CAAC;IAC5B;;;OAGG;IACH,aAAa,EAAE,yBAAyB,CAAC;CACzC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAChE;;OAEG;IACH,QAAQ,EAAE,IAAI,CAAC;IACf;;;OAGG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAChE;;;;OAIG;IACH,QAAQ,EAAE,yBAAyB,EAAE,CAAC;IACtC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,8BAA+B,SAAQ,iBAAiB;IACxE;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC;IAChB;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAChE,sBAAsB,EAAE,MAAM,CAAC;CAC/B;AAED,UAAU,aAAa;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,EAAE,SAAS,GAAG,aAAa,CAAC;CACpC;AAED,MAAM,MAAM,6CAA6C,GAAG,IAAI,CAC/D,uBAAuB,EACvB,aAAa,GAAG,iBAAiB,GAAG,aAAa,GAAG,UAAU,GAAG,oBAAoB,CACrF,GAAG;IACH,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClD,CAAC;AAEF,UAAU,gBAAiB,SAAQ,MAAM;IACxC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;CAC3D;AAuBD;;;;;;GAMG;AACH,qBAAa,sBAAuB,YAAW,WAAW;;IA8BxD,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAEpC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IAjCvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmC;IAChE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;IACvC,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAS7B;IACF,OAAO,CAAC,yBAAyB,CAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA+B;IAIxE;;;;;;OAMG;gBAEF,SAAS,EAAE,oBAAoB,EACd,cAAc,EAAE,6CAA6C,EAC7D,mBAAmB,EAAE,OAAO,EAC7C,cAAc,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAC/B,cAAc,EAAE,MAAM,OAAO,EAC7B,qBAAqB,EAAE,MAAM,OAAO,EACrD,wBAAwB,CAAC,EAAE,MAAM;IAmBlC,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,iBAAiB;IAMzB,IAAW,kBAAkB,IAAI,OAAO,CAEvC;IAED;;;;OAIG;IACH,IAAW,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAErE;IAED;;OAEG;IACI,cAAc,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI;IAO/D;;;;;;;;;OASG;IACU,aAAa,CACzB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,iBAAiB,EAAE,sBAAsB,GAAG,SAAS,GACnD,OAAO,CAAC;QACV,QAAQ,EAAE,SAAS,GAAG,aAAa,CAAC;QACpC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAC;QAC9B,UAAU,EAAE,mBAAmB,CAAC;KAChC,CAAC;IAwDF,OAAO,CAAC,kBAAkB;IAY1B;;;;;OAKG;YACW,qBAAqB;IAiCnC;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAgD1C;;;;;OAKG;IACI,kBAAkB,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAYpD;;;OAGG;IACU,oBAAoB,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,sBAAsB,CAAC,EAC/C,WAAW,EAAE,YAAY,GACvB,OAAO,CAAC,MAAM,CAAC;CA2DlB;AAaD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAC1C,EAAE,EAAE,iBAAiB,EACrB,cAAc,EAAE,6CAA6C,EAC7D,qBAAqB,EAAE,OAAO,GAC5B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAyCpC;AA2BD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CACnC,EAAE,EAAE,iBAAiB,EACrB,cAAc,EAAE,IAAI,CAAC,uBAAuB,EAAE,aAAa,CAAC,EAC5D,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAClC,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC,CAsBvD;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACvC,EAAE,EAAE,iBAAiB,EACrB,cAAc,EAAE,IAAI,CAAC,uBAAuB,EAAE,iBAAiB,GAAG,aAAa,CAAC,EAChF,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAClC,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,aAAa,CAAC;IAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;CAAE,CAAC,CAwBvE"}
@@ -81,8 +81,9 @@ class SerializedStateManager {
81
81
  namespace: "serializedStateManager",
82
82
  });
83
83
  this.snapshotRefreshTimeoutMs = snapshotRefreshTimeoutMs ?? this.snapshotRefreshTimeoutMs;
84
- __classPrivateFieldSet(this, _SerializedStateManager_snapshotRefreshEnabled, (this.mc.config.getBoolean("Fluid.Container.enableOfflineSnapshotRefresh") ??
85
- this.mc.config.getBoolean("Fluid.Container.enableOfflineFull")) === true, "f");
84
+ __classPrivateFieldSet(this, _SerializedStateManager_snapshotRefreshEnabled, _offlineLoadEnabled &&
85
+ (this.mc.config.getBoolean("Fluid.Container.enableOfflineSnapshotRefresh") ??
86
+ this.mc.config.getBoolean("Fluid.Container.enableOfflineFull")) === true, "f");
86
87
  this.refreshTimer = __classPrivateFieldGet(this, _SerializedStateManager_snapshotRefreshEnabled, "f")
87
88
  ? new internal_1.Timer(this.snapshotRefreshTimeoutMs, () => this.tryRefreshSnapshot())
88
89
  : undefined;
@@ -133,54 +134,49 @@ class SerializedStateManager {
133
134
  async fetchSnapshot(specifiedVersion, pendingLocalState) {
134
135
  this.verifyNotDisposed();
135
136
  if (pendingLocalState === undefined) {
136
- const { baseSnapshot, version } = await getSnapshot(this.mc, this.storageAdapter, this.supportGetSnapshotApi(), specifiedVersion);
137
- const baseSnapshotTree = (0, internal_3.getSnapshotTree)(baseSnapshot);
137
+ const { snapshot, version } = await getSnapshot(this.mc, this.storageAdapter, this.supportGetSnapshotApi(), specifiedVersion);
138
+ const baseSnapshotTree = (0, internal_3.getSnapshotTree)(snapshot);
138
139
  const attributes = await (0, utils_js_1.getDocumentAttributes)(this.storageAdapter, baseSnapshotTree);
139
- // non-interactive clients will not have any pending state we want to save
140
140
  if (this.offlineLoadEnabled) {
141
- // we defer getting the blobs to not impact the container load flow
142
- // only getPendingState depends on the resolution of this promise
143
- this.refreshTracker.setPromise((0, containerStorageAdapter_js_1.getBlobContentsFromTree)(baseSnapshot, this.storageAdapter).then((snapshotBlobs) => {
144
- this.snapshot = {
145
- baseSnapshot: baseSnapshotTree,
146
- snapshotBlobs,
147
- snapshotSequenceNumber: attributes.sequenceNumber,
148
- };
149
- this.refreshTimer?.start();
150
- return attributes.sequenceNumber;
151
- }));
141
+ this.refreshTimer?.start();
142
+ this.snapshotInfo = {
143
+ snapshot,
144
+ snapshotSequenceNumber: attributes.sequenceNumber,
145
+ };
152
146
  }
153
- return { baseSnapshot, version, attributes };
147
+ return { snapshot, version, attributes };
154
148
  }
155
149
  else {
156
150
  const { baseSnapshot, snapshotBlobs, savedOps } = pendingLocalState;
157
- // special case handle. Obtaining the last saved op seq num to avoid
158
- // refreshing the snapshot before we have processed it. It could cause
159
- // a subsequent stashing to have a newer snapshot than allowed.
160
- if (savedOps.length > 0) {
161
- const savedOpsSize = savedOps.length;
162
- this.lastSavedOpSequenceNumber = savedOps[savedOpsSize - 1].sequenceNumber;
163
- }
164
- const attributes = await (0, utils_js_1.getDocumentAttributes)(this.storageAdapter, baseSnapshot);
165
- this.snapshot = {
166
- baseSnapshot,
167
- snapshotBlobs,
168
- snapshotSequenceNumber: attributes.sequenceNumber,
169
- };
170
- this.tryRefreshSnapshot();
171
151
  const blobContents = new Map();
172
152
  for (const [id, value] of Object.entries(snapshotBlobs)) {
173
153
  blobContents.set(id, (0, client_utils_1.stringToBuffer)(value, "utf8"));
174
154
  }
175
- const iSnapshot = {
176
- sequenceNumber: this.snapshot.snapshotSequenceNumber,
155
+ this.storageAdapter.cacheSnapshotBlobs(blobContents);
156
+ const attributes = await (0, utils_js_1.getDocumentAttributes)(this.storageAdapter, baseSnapshot);
157
+ const snapshot = {
158
+ sequenceNumber: attributes.sequenceNumber,
177
159
  snapshotTree: baseSnapshot,
178
160
  blobContents,
179
161
  latestSequenceNumber: undefined,
180
162
  ops: [],
181
163
  snapshotFormatV: 1,
182
164
  };
183
- return { baseSnapshot: iSnapshot, version: undefined, attributes };
165
+ if (this.offlineLoadEnabled) {
166
+ // special case handle. Obtaining the last saved op seq num to avoid
167
+ // refreshing the snapshot before we have processed it. It could cause
168
+ // a subsequent stashing to have a newer snapshot than allowed.
169
+ if (savedOps.length > 0) {
170
+ const savedOpsSize = savedOps.length;
171
+ this.lastSavedOpSequenceNumber = savedOps[savedOpsSize - 1].sequenceNumber;
172
+ }
173
+ this.snapshotInfo = {
174
+ snapshot,
175
+ snapshotSequenceNumber: attributes.sequenceNumber,
176
+ };
177
+ this.tryRefreshSnapshot();
178
+ }
179
+ return { snapshot, version: undefined, attributes };
184
180
  }
185
181
  }
186
182
  tryRefreshSnapshot() {
@@ -245,7 +241,7 @@ class SerializedStateManager {
245
241
  snapshotSequenceNumber,
246
242
  firstProcessedOpSequenceNumber,
247
243
  lastProcessedOpSequenceNumber,
248
- stashedSnapshotSequenceNumber: this.snapshot?.snapshotSequenceNumber,
244
+ stashedSnapshotSequenceNumber: this.snapshotInfo?.snapshotSequenceNumber,
249
245
  });
250
246
  this.latestSnapshot = undefined;
251
247
  this.refreshTimer?.restart();
@@ -254,7 +250,7 @@ class SerializedStateManager {
254
250
  // Snapshot seq num is between the first and last processed op.
255
251
  // Remove the ops that are already part of the snapshot
256
252
  this.processedOps.splice(0, snapshotSequenceNumber - firstProcessedOpSequenceNumber + 1);
257
- this.snapshot = this.latestSnapshot;
253
+ this.snapshotInfo = this.latestSnapshot;
258
254
  this.latestSnapshot = undefined;
259
255
  this.refreshTimer?.restart();
260
256
  this.mc.logger.sendTelemetryEvent({
@@ -275,13 +271,9 @@ class SerializedStateManager {
275
271
  setInitialSnapshot(snapshot) {
276
272
  this.verifyNotDisposed();
277
273
  if (this.offlineLoadEnabled) {
278
- (0, internal_1.assert)(this.snapshot === undefined, 0x937 /* inital snapshot should only be defined once */);
279
- (0, internal_1.assert)(
280
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
281
- snapshot.sequenceNumber === 0, 0x939 /* trying to set a non attachment snapshot */);
282
- this.snapshot = {
283
- ...(0, utils_js_1.convertISnapshotToSnapshotWithBlobs)(snapshot),
284
- snapshotSequenceNumber: snapshot.sequenceNumber,
274
+ this.snapshotInfo = {
275
+ snapshot,
276
+ snapshotSequenceNumber: snapshot.sequenceNumber ?? 0,
285
277
  snapshotFetchedTime: Date.now(),
286
278
  };
287
279
  this.refreshTimer?.start();
@@ -293,6 +285,9 @@ class SerializedStateManager {
293
285
  */
294
286
  async getPendingLocalState(clientId, runtime, resolvedUrl) {
295
287
  this.verifyNotDisposed();
288
+ if (!this.offlineLoadEnabled) {
289
+ throw new internal_4.UsageError("Can't get pending local state unless offline load is enabled");
290
+ }
296
291
  return internal_4.PerformanceEvent.timedExecAsync(this.mc.logger, {
297
292
  eventName: "getPendingLocalState",
298
293
  details: {
@@ -303,21 +298,11 @@ class SerializedStateManager {
303
298
  },
304
299
  clientId,
305
300
  }, async () => {
306
- if (!this.offlineLoadEnabled) {
307
- throw new internal_4.UsageError("Can't get pending local state unless offline load is enabled");
308
- }
309
- if (this.snapshot === undefined && this.refreshTracker.hasPromise) {
310
- // we deferred the initial download of the snapshot to not block
311
- // the container load flow, so if it is not resolved
312
- // and we don't have a snapshot, we will wait for the download
313
- // to finish.
314
- await this.refreshTracker.Promise;
315
- }
316
- (0, internal_1.assert)(this.snapshot !== undefined, 0x8e5 /* no base data */);
301
+ (0, internal_1.assert)(this.snapshotInfo !== undefined, 0x8e5 /* no base data */);
317
302
  const pendingRuntimeState = await runtime.getPendingLocalState({
318
303
  notifyImminentClosure: false,
319
- snapshotSequenceNumber: this.snapshot.snapshotSequenceNumber,
320
- sessionExpiryTimerStarted: this.snapshot.snapshotFetchedTime,
304
+ snapshotSequenceNumber: this.snapshotInfo.snapshotSequenceNumber,
305
+ sessionExpiryTimerStarted: this.snapshotInfo.snapshotFetchedTime,
321
306
  });
322
307
  // This conversion is required because ArrayBufferLike doesn't survive JSON.stringify
323
308
  const loadedGroupIdSnapshots = {};
@@ -329,11 +314,13 @@ class SerializedStateManager {
329
314
  loadedGroupIdSnapshots[groupId] = (0, utils_js_1.convertSnapshotToSnapshotInfo)(snapshot);
330
315
  }
331
316
  }
317
+ const snapshotWithBlobs = (0, internal_3.isInstanceOfISnapshot)(this.snapshotInfo.snapshot)
318
+ ? (0, utils_js_1.convertISnapshotToSnapshotWithBlobs)(this.snapshotInfo.snapshot)
319
+ : await convertSnapshotTreeToSnapshotWithBlobs(this.snapshotInfo.snapshot, this.storageAdapter);
332
320
  const pendingState = {
333
321
  attached: true,
334
322
  pendingRuntimeState,
335
- baseSnapshot: this.snapshot.baseSnapshot,
336
- snapshotBlobs: this.snapshot.snapshotBlobs,
323
+ ...snapshotWithBlobs,
337
324
  loadedGroupIdSnapshots: hasGroupIdSnapshots ? loadedGroupIdSnapshots : undefined,
338
325
  savedOps: this.processedOps,
339
326
  url: resolvedUrl.url,
@@ -345,6 +332,13 @@ class SerializedStateManager {
345
332
  }
346
333
  exports.SerializedStateManager = SerializedStateManager;
347
334
  _SerializedStateManager_snapshotRefreshEnabled = new WeakMap(), _SerializedStateManager_disposed = new WeakMap();
335
+ async function convertSnapshotTreeToSnapshotWithBlobs(snapshot, storageAdapter) {
336
+ const snapshotBlobs = await (0, containerStorageAdapter_js_1.getBlobContentsFromTree)(snapshot, storageAdapter);
337
+ return {
338
+ baseSnapshot: snapshot,
339
+ snapshotBlobs,
340
+ };
341
+ }
348
342
  /**
349
343
  * Retrieves the most recent snapshot and returns its info.
350
344
  *
@@ -354,24 +348,29 @@ _SerializedStateManager_snapshotRefreshEnabled = new WeakMap(), _SerializedState
354
348
  * @returns a SnapshotInfo object containing the snapshot tree, snapshot blobs and its sequence number.
355
349
  */
356
350
  async function getLatestSnapshotInfo(mc, storageAdapter, supportGetSnapshotApi) {
357
- return internal_4.PerformanceEvent.timedExecAsync(mc.logger, { eventName: "GetLatestSnapshotInfo" }, async () => {
358
- // get the latest non cached snapshot version
359
- const specifiedVersion = await storageAdapter.getVersions(
360
- // eslint-disable-next-line unicorn/no-null
361
- null, 1, "getLatestSnapshotInfo", internal_2.FetchSource.noCache);
362
- const { baseSnapshot } = await getSnapshot(mc, storageAdapter, supportGetSnapshotApi, specifiedVersion[0]?.id);
363
- const baseSnapshotTree = (0, internal_3.getSnapshotTree)(baseSnapshot);
364
- const snapshotFetchedTime = Date.now();
365
- const snapshotBlobs = await (0, containerStorageAdapter_js_1.getBlobContentsFromTree)(baseSnapshot, storageAdapter);
366
- const attributes = await (0, utils_js_1.getDocumentAttributes)(storageAdapter, baseSnapshotTree);
367
- const snapshotSequenceNumber = attributes.sequenceNumber;
368
- return {
369
- baseSnapshot: baseSnapshotTree,
370
- snapshotBlobs,
371
- snapshotSequenceNumber,
372
- snapshotFetchedTime,
373
- };
374
- }).catch(() => undefined);
351
+ return internal_4.PerformanceEvent.timedExecAsync(mc.logger, { eventName: "GetLatestSnapshotInfo" }, async (event) => {
352
+ try {
353
+ // get the latest non cached snapshot version
354
+ const specifiedVersion = await storageAdapter.getVersions(
355
+ // eslint-disable-next-line unicorn/no-null
356
+ null, 1, "getLatestSnapshotInfo", internal_2.FetchSource.noCache);
357
+ const { snapshot: baseSnapshot } = await getSnapshot(mc, storageAdapter, supportGetSnapshotApi, specifiedVersion[0]?.id);
358
+ const { sequenceNumber, snapshotTree } = (0, internal_3.isInstanceOfISnapshot)(baseSnapshot)
359
+ ? baseSnapshot
360
+ : { snapshotTree: baseSnapshot, sequenceNumber: undefined };
361
+ const snapshotSequenceNumber = sequenceNumber ??
362
+ (await (0, utils_js_1.getDocumentAttributes)(storageAdapter, snapshotTree).then((a) => a.sequenceNumber));
363
+ return {
364
+ snapshot: baseSnapshot,
365
+ snapshotSequenceNumber,
366
+ snapshotFetchedTime: Date.now(),
367
+ };
368
+ }
369
+ catch (error) {
370
+ event.cancel(undefined, error);
371
+ }
372
+ return undefined;
373
+ });
375
374
  }
376
375
  exports.getLatestSnapshotInfo = getLatestSnapshotInfo;
377
376
  /**
@@ -388,7 +387,7 @@ async function getSnapshot(mc, storageAdapter, supportGetSnapshotApi, specifiedV
388
387
  ? await fetchISnapshot(mc, storageAdapter, specifiedVersion)
389
388
  : await fetchISnapshotTree(mc, storageAdapter, specifiedVersion);
390
389
  (0, internal_1.assert)(snapshot !== undefined, 0x8e4 /* Snapshot should exist */);
391
- return { baseSnapshot: snapshot, version };
390
+ return { snapshot, version };
392
391
  }
393
392
  /**
394
393
  * Fetches an ISnapshot from a storage adapter based on the specified version.