@fluidframework/container-runtime 2.0.0-internal.2.3.0 → 2.0.0-internal.2.3.1

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 (76) hide show
  1. package/dist/blobManager.d.ts +1 -1
  2. package/dist/blobManager.d.ts.map +1 -1
  3. package/dist/blobManager.js +8 -8
  4. package/dist/blobManager.js.map +1 -1
  5. package/dist/containerRuntime.d.ts +15 -0
  6. package/dist/containerRuntime.d.ts.map +1 -1
  7. package/dist/containerRuntime.js +26 -11
  8. package/dist/containerRuntime.js.map +1 -1
  9. package/dist/dataStoreContext.d.ts.map +1 -1
  10. package/dist/dataStoreContext.js +5 -8
  11. package/dist/dataStoreContext.js.map +1 -1
  12. package/dist/dataStores.d.ts +3 -3
  13. package/dist/dataStores.d.ts.map +1 -1
  14. package/dist/dataStores.js +14 -14
  15. package/dist/dataStores.js.map +1 -1
  16. package/dist/garbageCollection.d.ts.map +1 -1
  17. package/dist/garbageCollection.js +5 -4
  18. package/dist/garbageCollection.js.map +1 -1
  19. package/dist/garbageCollectionConstants.d.ts +1 -0
  20. package/dist/garbageCollectionConstants.d.ts.map +1 -1
  21. package/dist/garbageCollectionConstants.js +4 -2
  22. package/dist/garbageCollectionConstants.js.map +1 -1
  23. package/dist/garbageCollectionTombstoneUtils.d.ts +5 -4
  24. package/dist/garbageCollectionTombstoneUtils.d.ts.map +1 -1
  25. package/dist/garbageCollectionTombstoneUtils.js +8 -13
  26. package/dist/garbageCollectionTombstoneUtils.js.map +1 -1
  27. package/dist/index.d.ts +1 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +3 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/packageVersion.d.ts +1 -1
  32. package/dist/packageVersion.js +1 -1
  33. package/dist/packageVersion.js.map +1 -1
  34. package/lib/blobManager.d.ts +1 -1
  35. package/lib/blobManager.d.ts.map +1 -1
  36. package/lib/blobManager.js +9 -9
  37. package/lib/blobManager.js.map +1 -1
  38. package/lib/containerRuntime.d.ts +15 -0
  39. package/lib/containerRuntime.d.ts.map +1 -1
  40. package/lib/containerRuntime.js +25 -10
  41. package/lib/containerRuntime.js.map +1 -1
  42. package/lib/dataStoreContext.d.ts.map +1 -1
  43. package/lib/dataStoreContext.js +5 -8
  44. package/lib/dataStoreContext.js.map +1 -1
  45. package/lib/dataStores.d.ts +3 -3
  46. package/lib/dataStores.d.ts.map +1 -1
  47. package/lib/dataStores.js +15 -15
  48. package/lib/dataStores.js.map +1 -1
  49. package/lib/garbageCollection.d.ts.map +1 -1
  50. package/lib/garbageCollection.js +6 -5
  51. package/lib/garbageCollection.js.map +1 -1
  52. package/lib/garbageCollectionConstants.d.ts +1 -0
  53. package/lib/garbageCollectionConstants.d.ts.map +1 -1
  54. package/lib/garbageCollectionConstants.js +3 -1
  55. package/lib/garbageCollectionConstants.js.map +1 -1
  56. package/lib/garbageCollectionTombstoneUtils.d.ts +5 -4
  57. package/lib/garbageCollectionTombstoneUtils.d.ts.map +1 -1
  58. package/lib/garbageCollectionTombstoneUtils.js +9 -14
  59. package/lib/garbageCollectionTombstoneUtils.js.map +1 -1
  60. package/lib/index.d.ts +1 -1
  61. package/lib/index.d.ts.map +1 -1
  62. package/lib/index.js +1 -1
  63. package/lib/index.js.map +1 -1
  64. package/lib/packageVersion.d.ts +1 -1
  65. package/lib/packageVersion.js +1 -1
  66. package/lib/packageVersion.js.map +1 -1
  67. package/package.json +18 -35
  68. package/src/blobManager.ts +16 -11
  69. package/src/containerRuntime.ts +36 -8
  70. package/src/dataStoreContext.ts +13 -14
  71. package/src/dataStores.ts +25 -19
  72. package/src/garbageCollection.ts +12 -8
  73. package/src/garbageCollectionConstants.ts +3 -1
  74. package/src/garbageCollectionTombstoneUtils.ts +11 -14
  75. package/src/index.ts +2 -0
  76. package/src/packageVersion.ts +1 -1
@@ -75,6 +75,17 @@ export var RuntimeHeaders;
75
75
  /** True if the request is coming from an IFluidHandle. */
76
76
  RuntimeHeaders["viaHandle"] = "viaHandle";
77
77
  })(RuntimeHeaders || (RuntimeHeaders = {}));
78
+ /** True if a tombstoned object should be returned without erroring */
79
+ export const AllowTombstoneRequestHeaderKey = "allowTombstone"; // Belongs in the enum above, but avoiding the breaking change
80
+ /** Tombstone error responses will have this header set to true */
81
+ export const TombstoneResponseHeaderKey = "isTombstoned";
82
+ /** Default values for Runtime Headers */
83
+ export const defaultRuntimeHeaderData = {
84
+ wait: true,
85
+ externalRequest: false,
86
+ viaHandle: false,
87
+ allowTombstone: false,
88
+ };
78
89
  /**
79
90
  * Available compression algorithms for op compression.
80
91
  */
@@ -700,16 +711,20 @@ export class ContainerRuntime extends TypedEventEmitter {
700
711
  return (_a = this.dataStores.aliases.get(maybeAlias)) !== null && _a !== void 0 ? _a : maybeAlias;
701
712
  }
702
713
  async getDataStoreFromRequest(id, request) {
703
- var _a, _b, _c, _d, _e;
704
- const wait = typeof ((_a = request.headers) === null || _a === void 0 ? void 0 : _a[RuntimeHeaders.wait]) === "boolean"
705
- ? (_b = request.headers) === null || _b === void 0 ? void 0 : _b[RuntimeHeaders.wait]
706
- : true;
707
- const viaHandle = typeof ((_c = request.headers) === null || _c === void 0 ? void 0 : _c[RuntimeHeaders.viaHandle]) === "boolean"
708
- ? (_d = request.headers) === null || _d === void 0 ? void 0 : _d[RuntimeHeaders.viaHandle]
709
- : false;
714
+ var _a, _b, _c, _d;
715
+ const headerData = {};
716
+ if (typeof ((_a = request.headers) === null || _a === void 0 ? void 0 : _a[RuntimeHeaders.wait]) === "boolean") {
717
+ headerData.wait = request.headers[RuntimeHeaders.wait];
718
+ }
719
+ if (typeof ((_b = request.headers) === null || _b === void 0 ? void 0 : _b[RuntimeHeaders.viaHandle]) === "boolean") {
720
+ headerData.viaHandle = request.headers[RuntimeHeaders.viaHandle];
721
+ }
722
+ if (typeof ((_c = request.headers) === null || _c === void 0 ? void 0 : _c[AllowTombstoneRequestHeaderKey]) === "boolean") {
723
+ headerData.allowTombstone = request.headers[AllowTombstoneRequestHeaderKey];
724
+ }
710
725
  await this.dataStores.waitIfPendingAlias(id);
711
726
  const internalId = this.internalId(id);
712
- const dataStoreContext = await this.dataStores.getDataStore(internalId, wait, viaHandle);
727
+ const dataStoreContext = await this.dataStores.getDataStore(internalId, headerData);
713
728
  /**
714
729
  * If GC should run and this an external app request with "externalRequest" header, we need to return
715
730
  * an error if the data store being requested is marked as unreferenced as per the data store's base
@@ -718,7 +733,7 @@ export class ContainerRuntime extends TypedEventEmitter {
718
733
  * This is a workaround to handle scenarios where a data store shared with an external app is deleted
719
734
  * and marked as unreferenced by GC. Returning an error will fail to load the data store for the app.
720
735
  */
721
- if (((_e = request.headers) === null || _e === void 0 ? void 0 : _e[RuntimeHeaders.externalRequest]) && this.garbageCollector.shouldRunGC) {
736
+ if (((_d = request.headers) === null || _d === void 0 ? void 0 : _d[RuntimeHeaders.externalRequest]) && this.garbageCollector.shouldRunGC) {
722
737
  // The data store is referenced if used routes in the base summary has a route to self.
723
738
  // Older documents may not have used routes in the summary. They are considered referenced.
724
739
  const usedRoutes = (await dataStoreContext.getBaseGCDetails()).usedRoutes;
@@ -1028,7 +1043,7 @@ export class ContainerRuntime extends TypedEventEmitter {
1028
1043
  async getRootDataStoreChannel(id, wait = true) {
1029
1044
  await this.dataStores.waitIfPendingAlias(id);
1030
1045
  const internalId = this.internalId(id);
1031
- const context = await this.dataStores.getDataStore(internalId, wait, false /* viaHandle */);
1046
+ const context = await this.dataStores.getDataStore(internalId, { wait });
1032
1047
  assert(await context.isRoot(), 0x12b /* "did not get root data store" */);
1033
1048
  return context.realize();
1034
1049
  }