@fluidframework/container-runtime 2.70.0 → 2.72.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 (78) hide show
  1. package/.eslintrc.cjs +6 -2
  2. package/CHANGELOG.md +8 -39
  3. package/container-runtime.test-files.tar +0 -0
  4. package/dist/channelCollection.d.ts +66 -17
  5. package/dist/channelCollection.d.ts.map +1 -1
  6. package/dist/channelCollection.js +118 -84
  7. package/dist/channelCollection.js.map +1 -1
  8. package/dist/containerRuntime.d.ts +6 -7
  9. package/dist/containerRuntime.d.ts.map +1 -1
  10. package/dist/containerRuntime.js +92 -35
  11. package/dist/containerRuntime.js.map +1 -1
  12. package/dist/dataStore.d.ts +2 -0
  13. package/dist/dataStore.d.ts.map +1 -1
  14. package/dist/dataStore.js +1 -1
  15. package/dist/dataStore.js.map +1 -1
  16. package/dist/dataStoreContext.d.ts +6 -5
  17. package/dist/dataStoreContext.d.ts.map +1 -1
  18. package/dist/dataStoreContext.js +9 -6
  19. package/dist/dataStoreContext.js.map +1 -1
  20. package/dist/index.d.ts +3 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/messageTypes.d.ts +17 -4
  24. package/dist/messageTypes.d.ts.map +1 -1
  25. package/dist/messageTypes.js.map +1 -1
  26. package/dist/packageVersion.d.ts +1 -1
  27. package/dist/packageVersion.js +1 -1
  28. package/dist/packageVersion.js.map +1 -1
  29. package/dist/runtimeLayerCompatState.d.ts +2 -2
  30. package/dist/runtimeLayerCompatState.d.ts.map +1 -1
  31. package/dist/runtimeLayerCompatState.js +1 -1
  32. package/dist/runtimeLayerCompatState.js.map +1 -1
  33. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  34. package/dist/summary/summarizerNode/summarizerNode.js +3 -1
  35. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  36. package/lib/channelCollection.d.ts +66 -17
  37. package/lib/channelCollection.d.ts.map +1 -1
  38. package/lib/channelCollection.js +115 -82
  39. package/lib/channelCollection.js.map +1 -1
  40. package/lib/containerRuntime.d.ts +6 -7
  41. package/lib/containerRuntime.d.ts.map +1 -1
  42. package/lib/containerRuntime.js +95 -37
  43. package/lib/containerRuntime.js.map +1 -1
  44. package/lib/dataStore.d.ts +2 -0
  45. package/lib/dataStore.d.ts.map +1 -1
  46. package/lib/dataStore.js +1 -1
  47. package/lib/dataStore.js.map +1 -1
  48. package/lib/dataStoreContext.d.ts +6 -5
  49. package/lib/dataStoreContext.d.ts.map +1 -1
  50. package/lib/dataStoreContext.js +10 -7
  51. package/lib/dataStoreContext.js.map +1 -1
  52. package/lib/index.d.ts +3 -1
  53. package/lib/index.d.ts.map +1 -1
  54. package/lib/index.js +1 -1
  55. package/lib/index.js.map +1 -1
  56. package/lib/messageTypes.d.ts +17 -4
  57. package/lib/messageTypes.d.ts.map +1 -1
  58. package/lib/messageTypes.js.map +1 -1
  59. package/lib/packageVersion.d.ts +1 -1
  60. package/lib/packageVersion.js +1 -1
  61. package/lib/packageVersion.js.map +1 -1
  62. package/lib/runtimeLayerCompatState.d.ts +2 -2
  63. package/lib/runtimeLayerCompatState.d.ts.map +1 -1
  64. package/lib/runtimeLayerCompatState.js +1 -1
  65. package/lib/runtimeLayerCompatState.js.map +1 -1
  66. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  67. package/lib/summary/summarizerNode/summarizerNode.js +3 -1
  68. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  69. package/package.json +24 -32
  70. package/src/channelCollection.ts +255 -109
  71. package/src/containerRuntime.ts +169 -67
  72. package/src/dataStore.ts +6 -1
  73. package/src/dataStoreContext.ts +48 -42
  74. package/src/index.ts +8 -3
  75. package/src/messageTypes.ts +17 -2
  76. package/src/packageVersion.ts +1 -1
  77. package/src/runtimeLayerCompatState.ts +2 -2
  78. package/src/summary/summarizerNode/summarizerNode.ts +1 -0
package/.eslintrc.cjs CHANGED
@@ -8,7 +8,11 @@ module.exports = {
8
8
  parserOptions: {
9
9
  project: ["./tsconfig.json", "./src/test/tsconfig.json"],
10
10
  },
11
- rules: {},
11
+ rules: {
12
+ // AB#51780: temporarily disabled because of crashes in typescript-eslint on destructuring in promise chains.
13
+ // See: channelCollection.ts:1070
14
+ "@typescript-eslint/unbound-method": "off",
15
+ },
12
16
  overrides: [
13
17
  {
14
18
  // Rules only for test files
@@ -19,7 +23,7 @@ module.exports = {
19
23
  "unicorn/consistent-function-scoping": "off",
20
24
 
21
25
  // Test files are run in node only so additional node libraries can be used.
22
- "import/no-nodejs-modules": ["error", { allow: ["node:assert", "node:crypto"] }],
26
+ "import-x/no-nodejs-modules": ["error", { allow: ["node:assert", "node:crypto"] }],
23
27
  },
24
28
  },
25
29
  ],
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @fluidframework/container-runtime
2
2
 
3
+ ## 2.72.0
4
+
5
+ Dependency updates only.
6
+
7
+ ## 2.71.0
8
+
9
+ Dependency updates only.
10
+
3
11
  ## 2.70.0
4
12
 
5
13
  ### Minor Changes
@@ -97,7 +105,6 @@ Dependency updates only.
97
105
  - Unnecessary exports are now removed from container-runtime ([#23981](https://github.com/microsoft/FluidFramework/pull/23981)) [74896b92e8](https://github.com/microsoft/FluidFramework/commit/74896b92e8878911e9e4874a8ac45e659a293110)
98
106
 
99
107
  The following types in the @fluidframework/container-runtime are now removed. These types are unnecessary for external users of this package.
100
-
101
108
  - currentDocumentVersionSchema
102
109
  - DeletedResponseHeaderKey
103
110
  - DocumentSchemaValueType
@@ -131,7 +138,6 @@ Dependency updates only.
131
138
  - The process and processDocumentSchemaOp functions have been removed ([#24018](https://github.com/microsoft/FluidFramework/pull/24018)) [bc35d543d5](https://github.com/microsoft/FluidFramework/commit/bc35d543d58c7e4bf28944b09d645cc26bf28a29)
132
139
 
133
140
  `process` has been replaced by `processMessages` from the following:
134
-
135
141
  - `FluidDataStoreRuntime`
136
142
  - `IDeltaHandler`
137
143
  - `IFluidDataStoreChannel`
@@ -157,7 +163,6 @@ Dependency updates only.
157
163
  - Many unnecessary exports have been deprecated in the container-runtime package ([#23607](https://github.com/microsoft/FluidFramework/pull/23607)) [3da5b427ef](https://github.com/microsoft/FluidFramework/commit/3da5b427ef406799abade04196e43bb6d66d898d)
158
164
 
159
165
  The following types in the `@fluidframework/container-runtime` package are now deprecated. These types are unnecessary for external users of this package.
160
-
161
166
  - currentDocumentVersionSchema
162
167
  - DeletedResponseHeaderKey
163
168
  - DocumentSchemaValueType
@@ -217,7 +222,6 @@ Dependency updates only.
217
222
  parameter.
218
223
 
219
224
  These changes were originally announced in version 0.25.0. See the following issues for more details:
220
-
221
225
  - [#1537](https://github.com/microsoft/FluidFramework/issues/1537)
222
226
  - [#2931](https://github.com/microsoft/FluidFramework/pull/2931)
223
227
 
@@ -257,12 +261,10 @@ Dependency updates only.
257
261
  The class `ContainerRuntime` is deprecated and will no longer be exported starting in version 2.20.0.
258
262
 
259
263
  There are two possible migration paths to stop using `ContainerRuntime`:
260
-
261
264
  - When using it as a type, replace it with an interface like `IContainerRuntime`
262
265
  - When using the static function `ContainerRuntime.loadRuntime` replace it with the free function `loadContainerRuntime`.
263
266
 
264
267
  `BaseContainerRuntimeFactory` has some changes as well, since it exposed `ContainerRuntime` in several function signatures:
265
-
266
268
  - `instantiateFirstTime` - Takes the wider type `IContainerRuntime` instead of `ContainerRuntime`
267
269
  - `instantiateFromExisting` - Takes the wider type `IContainerRuntime` instead of `ContainerRuntime`
268
270
  - `preInitialize` - deprecated as well, since it returns `ContainerRuntime`
@@ -294,7 +296,6 @@ Dependency updates only.
294
296
  Synchronous creation relies on both the factory and the datastore to support it. This means that asynchronous operations, such as resolving handles, some browser API calls, consensus-based operations, or other asynchronous tasks, cannot be performed during the creation flow. Therefore, synchronous child datastore creation is best limited to scenarios where the existing asynchronous process cannot be used, such as when a new datastore must be created in direct response to synchronous user input.
295
297
 
296
298
  #### Key Benefits
297
-
298
299
  - **Synchronous Creation**: Allows for the immediate creation of child datastores without waiting for asynchronous operations.
299
300
  - **Strong Typing**: Ensures type safety and better developer experience by leveraging TypeScript's type system.
300
301
 
@@ -342,7 +343,6 @@ Dependency updates only.
342
343
  ### Minor Changes
343
344
 
344
345
  - "Remove `IFluidParentContext.ensureNoDataModelChanges` and its implementations ([#22842](https://github.com/microsoft/FluidFramework/pull/22842)) [3aff19a462](https://github.com/microsoft/FluidFramework/commit/3aff19a4622a242e906286c14dfcfa6523175132)
345
-
346
346
  - `IFluidParentContext.ensureNoDataModelChanges` has been removed. [prior deprecation commit](https://github.com/microsoft/FluidFramework/commit/c9d156264bdfa211a3075bdf29cde442ecea234c)
347
347
  - `MockFluidDataStoreContext.ensureNoDataModelChanges` has also been removed.
348
348
 
@@ -355,7 +355,6 @@ Dependency updates only.
355
355
  Similarly, `IDeltaManager.outbound` contained functionality that could break core runtime features such as generation of batches and chunking. Data loss or corruption could occur when `IDeltaManger.inbound.pause()` or `IDeltaManager.inbound.resume()` were called.
356
356
 
357
357
  #### Alternatives
358
-
359
358
  - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)`
360
359
  - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`.
361
360
  - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`.
@@ -367,7 +366,6 @@ Dependency updates only.
367
366
  - Signal telemetry events details ([#22804](https://github.com/microsoft/FluidFramework/pull/22804)) [e6566f6358](https://github.com/microsoft/FluidFramework/commit/e6566f6358551b5e579637de6c111d42281f7716)
368
367
 
369
368
  Properties of `eventName`s beginning "fluid:telemetry:ContainerRuntime:Signal" are updated to use `details` for all event specific information. Additional per-event changes:
370
-
371
369
  - SignalLatency: shorten names now that data is packed into details. Renames:
372
370
  - `signalsSent` -> `sent`
373
371
  - `signalsLost` -> `lost`
@@ -421,12 +419,10 @@ Dependency updates only.
421
419
  disabled or controlled:
422
420
 
423
421
  GC runtime options removed:
424
-
425
422
  - `gcDisableThrowOnTombstoneLoad`
426
423
  - `disableDataStoreSweep`
427
424
 
428
425
  GC configs removed:
429
-
430
426
  - `"Fluid.GarbageCollection.DisableTombstone"`
431
427
  - `"Fluid.GarbageCollection.ThrowOnTombstoneUsage"`
432
428
  - `"Fluid.GarbageCollection.DisableDataStoreSweep"`
@@ -453,7 +449,6 @@ Dependency updates only.
453
449
 
454
450
  Access to these now less public types should not be required for users of the `@public` "declarative API" exposed in the `fluid-framework` package, but can still be accessed for those who need them under the `/legacy` import paths.
455
451
  The full list of such types is:
456
-
457
452
  - `SharedTree` as exported from `@fluidframwork/tree`: It is still exported as `@public` from `fluid-framework` as `SharedObjectKind`.
458
453
  - `ISharedObjectKind`: See new `SharedObjectKind` type for use in `@public` APIs.
459
454
  `ISharedObject`
@@ -471,7 +466,6 @@ Dependency updates only.
471
466
  - `IProvideFluidHandleContext`
472
467
 
473
468
  Removed APIs:
474
-
475
469
  - `DataObjectClass`: Usages replaced with `SharedObjectKind`.
476
470
  - `LoadableObjectClass`: Replaced with `SharedObjectKind`.
477
471
  - `LoadableObjectClassRecord`: Replaced with `Record<string, SharedObjectKind>`.
@@ -492,12 +486,10 @@ Dependency updates only.
492
486
  - Audience & connection sequencing improvements [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
493
487
 
494
488
  Here are breaking changes in Audience behavior:
495
-
496
489
  1. IAudience no longer implements EventEmmiter. If you used addListener() or removeListener(), please replace with on() & off() respectively.
497
490
  2. IAudience interface implements getSelf() method and "selfChanged" event.
498
491
  3. IContainerContext.audience is no longer optional
499
492
  4. "connected" events are now raised (various API surfaces - IContainer, IContainerRuntime, IFluidDataStoreRuntime, etc.) a bit later in reconnection sequence for "read" connections - only after client receives its own "join" signal and caught up on ops, which makes it symmetrical with "write" connections.
500
-
501
493
  - If this change in behavior breaks some scenario, please let us know immediately, but you can revert that behavior using the following feature gates:
502
494
  - "Fluid.Container.DisableCatchUpBeforeDeclaringConnected"
503
495
  - "Fluid.Container.DisableJoinSignalWait"
@@ -518,7 +510,6 @@ Dependency updates only.
518
510
 
519
511
  Make IFluidDataStoreRuntime.deltaManager have an opaque type.
520
512
  Marks the following types which were reachable from it as alpha:
521
-
522
513
  - IConnectionDetails
523
514
  - IDeltaSender
524
515
  - IDeltaManagerEvents
@@ -542,7 +533,6 @@ Dependency updates only.
542
533
  TypeScript types and implementation code.
543
534
 
544
535
  This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
545
-
546
536
  - `"moduleResolution": "Node16"` with `"module": "Node16"`
547
537
  - `"moduleResolution": "Bundler"` with `"module": "ESNext"`
548
538
 
@@ -561,26 +551,21 @@ Dependency updates only.
561
551
  - container-runtime: New feature: ID compression for DataStores & DDSs ([#19859](https://github.com/microsoft/FluidFramework/issues/19859)) [51f0d3db73](https://github.com/microsoft/FluidFramework/commits/51f0d3db737800e1c30ea5e3952d38ff30ffc7da)
562
552
 
563
553
  ### Key changes
564
-
565
554
  1. A new API IContainerRuntimeBase.generateDocumentUniqueId() is exposed. This API will opportunistically generate IDs in short format (non-negative numbers). If it can't achieve that, it will return UUID strings. UUIDs generated will have low entropy in groups and will compress well. It can be leveraged anywhere in container where container unique IDs are required. I.e. any place that uses uuid() and stores data in container is likely candidate to start leveraging this API.
566
555
  2. Data store internal IDs (IDs that are auto generated by FF system) will opportunistically be generated in shorter form. Data stores created in detached container will always have short IDs, data stores created in attached container will opportunistically be short (by using newly added IContainerRuntimeBase.generateDocumentUniqueId() capability)
567
556
  3. Similar DDS names will be opportunistically short (same considerations for detached DDS vs. attached DDS)
568
557
 
569
558
  ### Implementation details
570
-
571
559
  1. Container level ID Compressor can now be enabled with delay. With such setting, only new IContainerRuntimeBase.generateDocumentUniqueId() is exposed (ID Compressor is not exposed in such case, as leveraging any of its other capabilities requires future container sessions to load ID Compressor on container load, for correctness reasons). Once Container establishes connection and any changes are made in container, newly added API will start generating more compact IDs (in most cases).
572
560
 
573
561
  ### Breaking changes
574
-
575
562
  1. DDS names can no longer start with "\_" symbol - this is reserved for FF needs. I've validated that's not an issue for AzureClient (it only creates root object by name, everything else is referred by handle). Our main internal partners almost never use named DDSs (I can find only 4 instances in Loop).
576
563
 
577
564
  ### Backward compatibility considerations
578
-
579
565
  1. Data store internal IDs could collide with earlier used names data stores. Earlier versions of FF framework (before DataStore aliasing feature was added) allowed customers to supply IDs for data stores. And thus, files created with earlier versions of framework could have data store IDs that will be similar to names FF will use for newly created data stores ("A", ... "Z", "a"..."z", "AA", etc.). While such collision is possible, it's very unlikely (almost impossible) if user-provided names were at least 4-5 characters long.
580
566
  2. If application runs to these problems, or wants to reduce risks, consider disabling ID compressor via IContainerRuntimeOptions.enableRuntimeIdCompressor = "off".
581
567
 
582
568
  ### Minor changes
583
-
584
569
  1. IContainerRuntime.createDetachedRootDataStore() is removed. Please use IContainerRuntime.createDetachedDataStore and IDataStore.trySetAlias() instead
585
570
  2. IContainerRuntimeOptions.enableRuntimeIdCompressor has been changes from boolean to tri-state.
586
571
 
@@ -615,7 +600,6 @@ Dependency updates only.
615
600
  - Updated server dependencies ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
616
601
 
617
602
  The following Fluid server dependencies have been updated to the latest version, 3.0.0. [See the full changelog.](https://github.com/microsoft/FluidFramework/releases/tag/server_v3.0.0)
618
-
619
603
  - @fluidframework/gitresources
620
604
  - @fluidframework/server-kafka-orderer
621
605
  - @fluidframework/server-lambdas
@@ -654,7 +638,6 @@ Dependency updates only.
654
638
  - container-runtime: Removed request pattern from ContainerRuntime, IRuntime, and IContainerRuntimeBase [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
655
639
 
656
640
  The `request(...)` method and `IFluidRouter` property have been removed from the following places:
657
-
658
641
  - `ContainerRuntime`
659
642
  - `IRuntime`
660
643
  - `IContainerRuntimeBase`
@@ -715,7 +698,6 @@ Dependency updates only.
715
698
  - DEPRECATED: container-runtime: requestHandlers are deprecated [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
716
699
 
717
700
  The concept of `requestHandlers` has been deprecated. Please migrate all usage of the following APIs to the new `entryPoint` pattern:
718
-
719
701
  - `requestHandler` property in `ContainerRuntime.loadRuntime(...)`
720
702
  - `RuntimeRequestHandler`
721
703
  - `RuntimeRequestHandlerBuilder`
@@ -730,14 +712,12 @@ Dependency updates only.
730
712
  See [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md) for more details.
731
713
 
732
714
  - container-runtime: Removing some deprecated and likely unused ContainerRuntime APIs [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
733
-
734
715
  - `IGCRuntimeOptions.sweepAllowed`
735
716
  - `ContainerRuntime.reSubmitFn`
736
717
 
737
718
  - Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
738
719
 
739
720
  This included the following changes from the protocol-definitions release:
740
-
741
721
  - Updating signal interfaces for some planned improvements. The intention is split the interface between signals
742
722
  submitted by clients to the server and the resulting signals sent from the server to clients.
743
723
  - A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
@@ -748,7 +728,6 @@ Dependency updates only.
748
728
  - DEPRECATED: resolveHandle and IFluidHandleContext deprecated on IContainerRuntime [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
749
729
 
750
730
  The `resolveHandle(...)` and `get IFluidHandleContext()` methods have been deprecated on the following interfaces:
751
-
752
731
  - `IContainerRuntime`
753
732
  - `IContainerRuntimeBase`
754
733
 
@@ -759,7 +738,6 @@ Dependency updates only.
759
738
  - Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
760
739
 
761
740
  Dependencies on the following Fluid server package have been updated to version 2.0.1:
762
-
763
741
  - @fluidframework/gitresources: 2.0.1
764
742
  - @fluidframework/server-kafka-orderer: 2.0.1
765
743
  - @fluidframework/server-lambdas: 2.0.1
@@ -788,7 +766,6 @@ Dependency updates only.
788
766
  - test-utils: provideEntryPoint is required [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
789
767
 
790
768
  The optional `provideEntryPoint` method has become required on a number of constructors. A value will need to be provided to the following classes:
791
-
792
769
  - `BaseContainerRuntimeFactory`
793
770
  - `RuntimeFactory`
794
771
  - `ContainerRuntime` (constructor and `loadRuntime`)
@@ -831,7 +808,6 @@ Dependency updates only.
831
808
 
832
809
  The **@fluidframework/common-definitions** package is being deprecated, so the following interfaces and types are now
833
810
  imported from the **@fluidframework/core-interfaces** package:
834
-
835
811
  - interface IDisposable
836
812
  - interface IErrorEvent
837
813
  - interface IErrorEvent
@@ -878,7 +854,6 @@ Dependency updates only.
878
854
  - Request APIs deprecated from many places [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
879
855
 
880
856
  The `request` API (associated with the `IFluidRouter` interface) has been deprecated on a number of classes and interfaces. The following are impacted:
881
-
882
857
  - `IRuntime` and `ContainerRuntime`
883
858
  - `IFluidDataStoreRuntime` and `FluidDataStoreRuntime`
884
859
  - `IFluidDataStoreChannel`
@@ -894,7 +869,6 @@ Dependency updates only.
894
869
  - `initializeEntryPoint` will become required [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
895
870
 
896
871
  The optional `initializeEntryPoint` method has been added to a number of constructors. **This method argument will become required in an upcoming release** and a value will need to be provided to the following classes:
897
-
898
872
  - `BaseContainerRuntimeFactory`
899
873
  - `ContainerRuntimeFactoryWithDefaultDataStore`
900
874
  - `RuntimeFactory`
@@ -972,7 +946,6 @@ Dependency updates only.
972
946
 
973
947
  - The `@fluidframework/garbage-collector` package was deprecated in version 2.0.0-internal.4.1.0. [8b242fdc79](https://github.com/microsoft/FluidFramework/commits/8b242fdc796714cf1da9ad3f90d02efb122af0c2)
974
948
  It has now been removed with the following functions, interfaces, and types in it.
975
-
976
949
  - `cloneGCData`
977
950
  - `concatGarbageCollectionData`
978
951
  - `concatGarbageCollectionStates`
@@ -988,7 +961,6 @@ Dependency updates only.
988
961
  - `unpackChildNodesUsedRoutes`
989
962
 
990
963
  - The following functions and classes were deprecated in previous releases and have been removed: [8b242fdc79](https://github.com/microsoft/FluidFramework/commits/8b242fdc796714cf1da9ad3f90d02efb122af0c2)
991
-
992
964
  - `PureDataObject.getFluidObjectFromDirectory`
993
965
  - `IProvideContainerRuntime` and its `IContainerRuntime` member.
994
966
  - `ContainerRuntime`'s `IProvideContainerRuntime` has also been removed.
@@ -1018,7 +990,6 @@ Dependency updates only.
1018
990
  - GC interfaces removed from runtime-definitions ([#14750](https://github.com/microsoft/FluidFramework/pull-requests/14750)) [60274eacab](https://github.com/microsoft/FluidFramework/commits/60274eacabf14d42f52f6ad1c2f64356e64ba1a2)
1019
991
 
1020
992
  The following interfaces available in `@fluidframework/runtime-definitions` are internal implementation details and have been deprecated for public use. They will be removed in an upcoming release.
1021
-
1022
993
  - `IGarbageCollectionNodeData`
1023
994
  - `IGarbageCollectionState`
1024
995
  - `IGarbageCollectionSnapshotData`
@@ -1034,7 +1005,6 @@ Dependency updates only.
1034
1005
 
1035
1006
  This option will change a couple of expectations around message structure and runtime layer expectations. Only enable this option after testing
1036
1007
  and verifying that the following expectation changes won't have any effects:
1037
-
1038
1008
  - batch messages observed at the runtime layer will not match messages seen at the loader layer
1039
1009
  - messages within the same batch will have the same sequence number
1040
1010
  - client sequence numbers on batch messages can only be used to order messages with the same sequenceNumber
@@ -1053,7 +1023,6 @@ Dependency updates only.
1053
1023
  The `@fluidframework/garbage-collector` package is deprecated with the following functions, interfaces, and types in it.
1054
1024
  These are internal implementation details and have been deprecated for public use. They will be removed in an upcoming
1055
1025
  release.
1056
-
1057
1026
  - `cloneGCData`
1058
1027
  - `concatGarbageCollectionData`
1059
1028
  - `concatGarbageCollectionStates`
Binary file
@@ -4,20 +4,31 @@
4
4
  */
5
5
  import { AttachState } from "@fluidframework/container-definitions";
6
6
  import type { FluidObject, IDisposable, IRequest, IResponse, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
7
- import type { IFluidHandleInternal } from "@fluidframework/core-interfaces/internal";
7
+ import type { IFluidHandleInternal, ISignalEnvelope } from "@fluidframework/core-interfaces/internal";
8
8
  import type { ISnapshot, ISnapshotTree } from "@fluidframework/driver-definitions/internal";
9
- import { type ISummaryTreeWithStats, type ITelemetryContext, type IGarbageCollectionData, type AliasResult, type IEnvelope, type IFluidDataStoreChannel, type IFluidDataStoreContext, type IFluidDataStoreContextDetached, type IFluidDataStoreFactory, type IFluidDataStoreRegistry, type IFluidParentContext, type NamedFluidDataStoreRegistryEntries, type IInboundSignalMessage, type IRuntimeMessageCollection, type MinimumVersionForCollab } from "@fluidframework/runtime-definitions/internal";
9
+ import type { AliasResult, ContainerExtensionProvider, FluidDataStoreMessage, IEnvelope, IFluidDataStoreChannel, IFluidDataStoreContext, IFluidDataStoreContextDetached, IFluidDataStoreFactory, IFluidDataStoreRegistry, IFluidParentContext, IGarbageCollectionData, IInboundSignalMessage, IRuntimeMessageCollection, ISummaryTreeWithStats, ITelemetryContext, MinimumVersionForCollab, NamedFluidDataStoreRegistryEntries } from "@fluidframework/runtime-definitions/internal";
10
10
  import { type MonitoringContext } from "@fluidframework/telemetry-utils/internal";
11
11
  import { type RuntimeHeaderData } from "./containerRuntime.js";
12
- import { type IFluidDataStoreContextInternal, type ILocalDetachedFluidDataStoreContextProps, LocalFluidDataStoreContext } from "./dataStoreContext.js";
12
+ import { type IFluidDataStoreContextPrivate, type ILocalDetachedFluidDataStoreContextProps, LocalFluidDataStoreContext } from "./dataStoreContext.js";
13
13
  import { DataStoreContexts } from "./dataStoreContexts.js";
14
14
  import { GCNodeType, type IGCNodeUpdatedProps } from "./gc/index.js";
15
+ import type { ContainerRuntimeAliasMessage, ContainerRuntimeDataStoreOpMessage, OutboundContainerRuntimeAttachMessage } from "./messageTypes.js";
15
16
  import { type IContainerRuntimeMetadata } from "./summary/index.js";
16
17
  /**
17
18
  * True if a tombstoned object should be returned without erroring
18
19
  * @legacy @beta
19
20
  */
20
21
  export declare const AllowTombstoneRequestHeaderKey = "allowTombstone";
22
+ /**
23
+ * Envelope for signals not intended for the container.
24
+ *
25
+ * @privateRemarks
26
+ * `clientBroadcastSignalSequenceNumber` might be added to the envelope by the container runtime.
27
+ * But it should not be provided to start with.
28
+ *
29
+ * Equivalent to `Required<Omit<ISignalEnvelope, "clientBroadcastSignalSequenceNumber">>`.
30
+ */
31
+ export type AddressedUnsequencedSignalEnvelope = IEnvelope<ISignalEnvelope["contents"]>;
21
32
  /**
22
33
  * This version of the interface is private to this the package. It should never be exported under any tag.
23
34
  * It is used to manage interactions within the container-runtime package. If something is needed
@@ -26,17 +37,44 @@ export declare const AllowTombstoneRequestHeaderKey = "allowTombstone";
26
37
  * being staged on IFluidParentContext can be added here as well, likely with optionality removed,
27
38
  * to ease interactions within this package.
28
39
  */
29
- export interface IFluidParentContextPrivate extends Omit<IFluidParentContext, "isReadOnly" | "minVersionForCollab"> {
40
+ export interface IFluidParentContextPrivate extends IFluidParentContext, ContainerExtensionProvider {
30
41
  readonly isReadOnly: () => boolean;
42
+ readonly minVersionForCollab: MinimumVersionForCollab;
43
+ }
44
+ /**
45
+ * Kin of {@link @fluidframework/runtime-definitions#IFluidParentContext} with alternate
46
+ * `submitMessage` and `submitSignal` methods that are typed specifically for the
47
+ * root context (aka {@link ContainerRuntime} provided context).
48
+ *
49
+ * @privateRemarks
50
+ * These replacements might be able to get cleaned up if the future suggestions
51
+ * found in {@link @fluidframework/runtime-definitions#FluidDataStoreMessage}
52
+ * `@privateRemarks` section are implemented.
53
+ */
54
+ export interface IFluidRootParentContextPrivate extends Omit<IFluidParentContextPrivate, "submitMessage" | "submitSignal"> {
31
55
  /**
32
- * {@inheritdoc IFluidParentContext.minVersionForCollab}
56
+ * Submits the message to be sent to other clients.
57
+ * @param containerRuntimeMessage - The message.
58
+ * @param localOpMetadata - The local metadata associated with the message.
59
+ * This is kept locally and not sent to the server. This will be sent back
60
+ * when this message is received back from the server. This is also sent if
61
+ * we are asked to resubmit the message.
33
62
  */
34
- readonly minVersionForCollab: MinimumVersionForCollab;
63
+ readonly submitMessage: (containerRuntimeMessage: ContainerRuntimeDataStoreOpMessage | OutboundContainerRuntimeAttachMessage | ContainerRuntimeAliasMessage, localOpMetadata: unknown) => void;
64
+ /**
65
+ * Submits the signal to be sent to other clients.
66
+ * @param envelope - {@link IEnvelope} containing the signal address and contents.
67
+ * @param targetClientId - When specified, the signal is only sent to the provided client id.
68
+ */
69
+ readonly submitSignal: (envelope: AddressedUnsequencedSignalEnvelope, targetClientId?: string) => void;
35
70
  }
71
+ type SubmitKeys = "submitMessage" | "submitSignal";
36
72
  /**
37
- * Creates a shallow wrapper of {@link IFluidParentContext}. The wrapper can then have its methods overwritten as needed
73
+ * Creates a shallow wrapper of {@link IFluidParentContextPrivate} or
74
+ * {@link IFluidRootParentContextPrivate} with `submitMessage` and `submitSignal`
75
+ * methods replaced with the provided overrides.
38
76
  */
39
- export declare function wrapContext(context: IFluidParentContextPrivate): IFluidParentContextPrivate;
77
+ export declare function formParentContext<T extends IFluidParentContextPrivate | IFluidRootParentContextPrivate>(context: Omit<IFluidParentContextPrivate & IFluidRootParentContextPrivate, SubmitKeys>, overrides: Pick<T, SubmitKeys>): Omit<IFluidParentContextPrivate & IFluidRootParentContextPrivate, SubmitKeys> & Pick<T, SubmitKeys>;
40
78
  /**
41
79
  * Returns the type of the given local data store from its package path.
42
80
  */
@@ -46,9 +84,9 @@ export declare function getLocalDataStoreType(localDataStore: LocalFluidDataStor
46
84
  * but eventually could be hosted on any channel once we formalize the channel api boundary.
47
85
  * @internal
48
86
  */
49
- export declare class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
87
+ export declare class ChannelCollection implements Omit<IFluidDataStoreChannel, "entryPoint" | "reSubmit" | "rollback">, IDisposable {
50
88
  protected readonly baseSnapshot: ISnapshotTree | ISnapshot | undefined;
51
- readonly parentContext: IFluidParentContextPrivate;
89
+ readonly parentContext: IFluidRootParentContextPrivate;
52
90
  private readonly gcNodeUpdated;
53
91
  private readonly isDataStoreDeleted;
54
92
  private readonly aliasMap;
@@ -56,7 +94,6 @@ export declare class ChannelCollection implements IFluidDataStoreChannel, IDispo
56
94
  readonly attachOpFiredForDataStore: Set<string>;
57
95
  protected readonly mc: MonitoringContext;
58
96
  private readonly disposeOnce;
59
- readonly entryPoint: IFluidHandleInternal<FluidObject>;
60
97
  readonly containerLoadStats: {
61
98
  readonly containerLoadDataStoreCount: number;
62
99
  readonly referencedDataStoreCount: number;
@@ -64,7 +101,7 @@ export declare class ChannelCollection implements IFluidDataStoreChannel, IDispo
64
101
  private readonly pendingAliasMap;
65
102
  protected readonly contexts: DataStoreContexts;
66
103
  private readonly aliasedDataStores;
67
- constructor(baseSnapshot: ISnapshotTree | ISnapshot | undefined, parentContext: IFluidParentContextPrivate, baseLogger: ITelemetryBaseLogger, gcNodeUpdated: (props: IGCNodeUpdatedProps) => void, isDataStoreDeleted: (nodePath: string) => boolean, aliasMap: Map<string, string>, provideEntryPoint: (runtime: ChannelCollection) => Promise<FluidObject>);
104
+ constructor(baseSnapshot: ISnapshotTree | ISnapshot | undefined, parentContext: IFluidRootParentContextPrivate, baseLogger: ITelemetryBaseLogger, gcNodeUpdated: (props: IGCNodeUpdatedProps) => void, isDataStoreDeleted: (nodePath: string) => boolean, aliasMap: Map<string, string>);
68
105
  get aliases(): ReadonlyMap<string, string>;
69
106
  get pendingAliases(): Map<string, Promise<AliasResult>>;
70
107
  waitIfPendingAlias(maybeAlias: string): Promise<AliasResult>;
@@ -112,13 +149,13 @@ export declare class ChannelCollection implements IFluidDataStoreChannel, IDispo
112
149
  */
113
150
  protected createDataStoreId(): string;
114
151
  createDetachedDataStore(pkg: readonly string[], loadingGroupId?: string): IFluidDataStoreContextDetached;
115
- createDataStoreContext(pkg: readonly string[], loadingGroupId?: string): IFluidDataStoreContextInternal;
152
+ createDataStoreContext(pkg: readonly string[], loadingGroupId?: string): IFluidDataStoreContextPrivate;
116
153
  protected createContext<T extends LocalFluidDataStoreContext>(id: string, pkg: readonly string[], contextCtor: new (props: ILocalDetachedFluidDataStoreContextProps) => T, loadingGroupId?: string): T;
117
154
  get disposed(): boolean;
118
155
  dispose(): void;
119
- reSubmit(type: string, content: unknown, localOpMetadata: unknown, squash: boolean): void;
120
- protected reSubmitChannelOp(type: string, content: unknown, localOpMetadata: unknown, squash: boolean): void;
121
- rollback(type: string, content: unknown, localOpMetadata: unknown): void;
156
+ readonly reSubmitContainerMessage: (message: ContainerRuntimeDataStoreOpMessage | OutboundContainerRuntimeAttachMessage | ContainerRuntimeAliasMessage, localOpMetadata: unknown, squash: boolean | undefined) => void;
157
+ protected readonly resubmitDataStoreOp: (envelope: IEnvelope<FluidDataStoreMessage>, localOpMetadata: unknown, squash: boolean | undefined) => void;
158
+ readonly rollbackDataStoreOp: (envelope: IEnvelope<FluidDataStoreMessage>, localOpMetadata: unknown) => void;
122
159
  applyStashedOp(content: unknown): Promise<unknown>;
123
160
  protected applyStashedChannelChannelOp(envelope: IEnvelope): Promise<unknown>;
124
161
  private applyStashedAttachOp;
@@ -137,7 +174,7 @@ export declare class ChannelCollection implements IFluidDataStoreChannel, IDispo
137
174
  /**
138
175
  * Returns the data store requested with the given id if available. Otherwise, returns undefined.
139
176
  */
140
- getDataStoreIfAvailable(id: string, requestHeaderData: RuntimeHeaderData): Promise<IFluidDataStoreContextInternal | undefined>;
177
+ getDataStoreIfAvailable(id: string, requestHeaderData: RuntimeHeaderData): Promise<IFluidDataStoreContextPrivate | undefined>;
141
178
  /**
142
179
  * Checks if the data store has been deleted by GC. If so, log an error.
143
180
  * @param id - The data store's id.
@@ -243,6 +280,17 @@ export declare function getSummaryForDatastores(snapshot: ISnapshotTree | undefi
243
280
  */
244
281
  export declare function detectOutboundReferences(address: string, contents: unknown, addedOutboundReference: (fromNodePath: string, toNodePath: string) => void): void;
245
282
  /**
283
+ * @privateRemarks This class is only used for experimentation/testing.
284
+ */
285
+ export declare class ComposableChannelCollection extends ChannelCollection implements IFluidDataStoreChannel {
286
+ readonly entryPoint: IFluidHandleInternal<FluidObject>;
287
+ constructor(baseSnapshot: ISnapshotTree | ISnapshot | undefined, parentContext: IFluidParentContextPrivate, baseLogger: ITelemetryBaseLogger, gcNodeUpdated: (props: IGCNodeUpdatedProps) => void, isDataStoreDeleted: (nodePath: string) => boolean, aliasMap: Map<string, string>, provideEntryPoint: (runtime: ComposableChannelCollection) => Promise<FluidObject>);
288
+ reSubmit(type: string, content: unknown, localOpMetadata: unknown, squash?: boolean): void;
289
+ rollback(type: string, content: unknown, localOpMetadata: unknown): void;
290
+ }
291
+ /**
292
+ * @privateRemarks This factory is only used for experimentation/testing.
293
+ *
246
294
  * @internal
247
295
  */
248
296
  export declare class ChannelCollectionFactory implements IFluidDataStoreFactory {
@@ -253,4 +301,5 @@ export declare class ChannelCollectionFactory implements IFluidDataStoreFactory
253
301
  get IFluidDataStoreFactory(): ChannelCollectionFactory;
254
302
  instantiateDataStore(context: IFluidDataStoreContext, _existing: boolean): Promise<IFluidDataStoreChannel>;
255
303
  }
304
+ export {};
256
305
  //# sourceMappingURL=channelCollection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"channelCollection.d.ts","sourceRoot":"","sources":["../src/channelCollection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channelCollection.d.ts","sourceRoot":"","sources":["../src/channelCollection.ts"],"names":[],"mappings":"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"}