@fluidframework/runtime-definitions 2.71.0 → 2.73.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @fluidframework/runtime-definitions
2
2
 
3
+ ## 2.73.0
4
+
5
+ Dependency updates only.
6
+
7
+ ## 2.72.0
8
+
9
+ Dependency updates only.
10
+
3
11
  ## 2.71.0
4
12
 
5
13
  Dependency updates only.
@@ -11,7 +19,6 @@ Dependency updates only.
11
19
  - Deprecated properties have been removed from IRuntimeStorageService and IContainerStorageService ([#25708](https://github.com/microsoft/FluidFramework/pull/25708)) [82c936ed28](https://github.com/microsoft/FluidFramework/commit/82c936ed285c7e450d5e907a531ce71178f57819)
12
20
 
13
21
  The following deprecated properties have been removed from `IRuntimeStorageService`:
14
-
15
22
  - `createBlob`
16
23
  - `dispose`
17
24
  - `disposed`
@@ -23,7 +30,6 @@ Dependency updates only.
23
30
  - `uploadSummaryWithContext`
24
31
 
25
32
  The following deprecated properties have been removed from `IContainerStorageService`:
26
-
27
33
  - `dispose`
28
34
  - `disposed`
29
35
  - `downloadSummary`
@@ -49,7 +55,6 @@ Dependency updates only.
49
55
  DDSes may optionally consume this value and use it to determine which sets of feature flags should be enabled.
50
56
 
51
57
  #### Public type changes
52
-
53
58
  - **@fluidframework/datastore: `FluidDataStoreRuntime`** - Exposes `minVersionForCollab`.
54
59
  - **@fluidframework/runtime-definitions: `IFluidDataStoreContext`** - Exposes optional member `minVersionForCollab`.
55
60
  See `FluidDataStoreContext` for an example implementation.
@@ -76,7 +81,6 @@ Dependency updates only.
76
81
  Added an interface `IRuntimeStorageService` which will replace `IDocumentStorageService` in the `DataStore` layer. This is exposed by the `Runtime` layer to the `DataStore` layer. This new interface will only contain properties that are needed and used by the `DataStore` layer.
77
82
 
78
83
  The following properties from `IRuntimeStorageService` are deprecated as they are not needed by the `DataStore` layer. These be removed in a future release:
79
-
80
84
  - `disposed`
81
85
  - `dispose`
82
86
  - `policies`
@@ -130,7 +134,6 @@ Dependency updates only.
130
134
  - The process and processDocumentSchemaOp functions have been removed ([#24018](https://github.com/microsoft/FluidFramework/pull/24018)) [bc35d543d5](https://github.com/microsoft/FluidFramework/commit/bc35d543d58c7e4bf28944b09d645cc26bf28a29)
131
135
 
132
136
  `process` has been replaced by `processMessages` from the following:
133
-
134
137
  - `FluidDataStoreRuntime`
135
138
  - `IDeltaHandler`
136
139
  - `IFluidDataStoreChannel`
@@ -166,7 +169,6 @@ Dependency updates only.
166
169
  parameter.
167
170
 
168
171
  These changes were originally announced in version 0.25.0. See the following issues for more details:
169
-
170
172
  - [#1537](https://github.com/microsoft/FluidFramework/issues/1537)
171
173
  - [#2931](https://github.com/microsoft/FluidFramework/pull/2931)
172
174
 
@@ -197,7 +199,6 @@ Dependency updates only.
197
199
  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.
198
200
 
199
201
  #### Key Benefits
200
-
201
202
  - **Synchronous Creation**: Allows for the immediate creation of child datastores without waiting for asynchronous operations.
202
203
  - **Strong Typing**: Ensures type safety and better developer experience by leveraging TypeScript's type system.
203
204
 
@@ -249,7 +250,6 @@ Dependency updates only.
249
250
  The 'batchBegin'/'batchEnd' events on ContainerRuntime indicate when a batch is beginning or finishing being processed. The `contents` property on the event argument `op` is not useful or relevant when reasoning over incoming changes at the batch level. Accordingly, it has been removed from the `op` event argument.
250
251
 
251
252
  - "Remove `IFluidParentContext.ensureNoDataModelChanges` and its implementations ([#22842](https://github.com/microsoft/FluidFramework/pull/22842)) [3aff19a462](https://github.com/microsoft/FluidFramework/commit/3aff19a4622a242e906286c14dfcfa6523175132)
252
-
253
253
  - `IFluidParentContext.ensureNoDataModelChanges` has been removed. [prior deprecation commit](https://github.com/microsoft/FluidFramework/commit/c9d156264bdfa211a3075bdf29cde442ecea234c)
254
254
  - `MockFluidDataStoreContext.ensureNoDataModelChanges` has also been removed.
255
255
 
@@ -262,7 +262,6 @@ Dependency updates only.
262
262
  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.
263
263
 
264
264
  #### Alternatives
265
-
266
265
  - Alternatives to `IDeltaManager.inbound.on("op", ...)` are `IDeltaManager.on("op", ...)`
267
266
  - Alternatives to calling `IDeltaManager.inbound.pause`, `IDeltaManager.outbound.pause` for `IContainer` disconnect use `IContainer.disconnect`.
268
267
  - Alternatives to calling `IDeltaManager.inbound.resume`, `IDeltaManager.outbound.resume` for `IContainer` reconnect use `IContainer.connect`.
@@ -309,12 +308,10 @@ Dependency updates only.
309
308
  disabled or controlled:
310
309
 
311
310
  GC runtime options removed:
312
-
313
311
  - `gcDisableThrowOnTombstoneLoad`
314
312
  - `disableDataStoreSweep`
315
313
 
316
314
  GC configs removed:
317
-
318
315
  - `"Fluid.GarbageCollection.DisableTombstone"`
319
316
  - `"Fluid.GarbageCollection.ThrowOnTombstoneUsage"`
320
317
  - `"Fluid.GarbageCollection.DisableDataStoreSweep"`
@@ -337,7 +334,6 @@ Dependency updates only.
337
334
 
338
335
  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.
339
336
  The full list of such types is:
340
-
341
337
  - `SharedTree` as exported from `@fluidframwork/tree`: It is still exported as `@public` from `fluid-framework` as `SharedObjectKind`.
342
338
  - `ISharedObjectKind`: See new `SharedObjectKind` type for use in `@public` APIs.
343
339
  `ISharedObject`
@@ -355,7 +351,6 @@ Dependency updates only.
355
351
  - `IProvideFluidHandleContext`
356
352
 
357
353
  Removed APIs:
358
-
359
354
  - `DataObjectClass`: Usages replaced with `SharedObjectKind`.
360
355
  - `LoadableObjectClass`: Replaced with `SharedObjectKind`.
361
356
  - `LoadableObjectClassRecord`: Replaced with `Record<string, SharedObjectKind>`.
@@ -408,7 +403,6 @@ Dependency updates only.
408
403
  TypeScript types and implementation code.
409
404
 
410
405
  This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
411
-
412
406
  - `"moduleResolution": "Node16"` with `"module": "Node16"`
413
407
  - `"moduleResolution": "Bundler"` with `"module": "ESNext"`
414
408
 
@@ -434,7 +428,6 @@ Dependency updates only.
434
428
 
435
429
  There is no replacement given in terms of immediate programmatic access to this data.
436
430
  The expected use pattern is something like this:
437
-
438
431
  - Some code creates a concrete implementation of `ITelemetryContext` and passes it around
439
432
  - Callers use the "write" functions on the interface to build up the context
440
433
  - The originator uses a function like `serialize` (on the concrete impl, not exposed on the interface any longer)
@@ -444,26 +437,21 @@ Dependency updates only.
444
437
  - 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)
445
438
 
446
439
  ### Key changes
447
-
448
440
  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.
449
441
  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)
450
442
  3. Similar DDS names will be opportunistically short (same considerations for detached DDS vs. attached DDS)
451
443
 
452
444
  ### Implementation details
453
-
454
445
  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).
455
446
 
456
447
  ### Breaking changes
457
-
458
448
  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).
459
449
 
460
450
  ### Backward compatibility considerations
461
-
462
451
  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.
463
452
  2. If application runs to these problems, or wants to reduce risks, consider disabling ID compressor via IContainerRuntimeOptions.enableRuntimeIdCompressor = "off".
464
453
 
465
454
  ### Minor changes
466
-
467
455
  1. IContainerRuntime.createDetachedRootDataStore() is removed. Please use IContainerRuntime.createDetachedDataStore and IDataStore.trySetAlias() instead
468
456
  2. IContainerRuntimeOptions.enableRuntimeIdCompressor has been changes from boolean to tri-state.
469
457
 
@@ -502,7 +490,6 @@ Dependency updates only.
502
490
  - Updated server dependencies ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
503
491
 
504
492
  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)
505
-
506
493
  - @fluidframework/gitresources
507
494
  - @fluidframework/server-kafka-orderer
508
495
  - @fluidframework/server-lambdas
@@ -555,7 +542,6 @@ Dependency updates only.
555
542
  - container-runtime: Removed request pattern from ContainerRuntime, IRuntime, and IContainerRuntimeBase [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
556
543
 
557
544
  The `request(...)` method and `IFluidRouter` property have been removed from the following places:
558
-
559
545
  - `ContainerRuntime`
560
546
  - `IRuntime`
561
547
  - `IContainerRuntimeBase`
@@ -610,7 +596,6 @@ Dependency updates only.
610
596
  - Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
611
597
 
612
598
  This included the following changes from the protocol-definitions release:
613
-
614
599
  - Updating signal interfaces for some planned improvements. The intention is split the interface between signals
615
600
  submitted by clients to the server and the resulting signals sent from the server to clients.
616
601
  - A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
@@ -626,7 +611,6 @@ Dependency updates only.
626
611
  - DEPRECATED: resolveHandle and IFluidHandleContext deprecated on IContainerRuntime [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
627
612
 
628
613
  The `resolveHandle(...)` and `get IFluidHandleContext()` methods have been deprecated on the following interfaces:
629
-
630
614
  - `IContainerRuntime`
631
615
  - `IContainerRuntimeBase`
632
616
 
@@ -643,7 +627,6 @@ Dependency updates only.
643
627
  - Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
644
628
 
645
629
  Dependencies on the following Fluid server package have been updated to version 2.0.1:
646
-
647
630
  - @fluidframework/gitresources: 2.0.1
648
631
  - @fluidframework/server-kafka-orderer: 2.0.1
649
632
  - @fluidframework/server-lambdas: 2.0.1
@@ -668,7 +651,6 @@ Dependency updates only.
668
651
  - test-utils: provideEntryPoint is required [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
669
652
 
670
653
  The optional `provideEntryPoint` method has become required on a number of constructors. A value will need to be provided to the following classes:
671
-
672
654
  - `BaseContainerRuntimeFactory`
673
655
  - `RuntimeFactory`
674
656
  - `ContainerRuntime` (constructor and `loadRuntime`)
@@ -690,7 +672,6 @@ Dependency updates only.
690
672
  ### Minor Changes
691
673
 
692
674
  - Upcoming: The type of the logger property/param in various APIs will be changing ([#17350](https://github.com/microsoft/FluidFramework/issues/17350)) [27284bcda3](https://github.com/microsoft/FluidFramework/commits/27284bcda3d63cc4306cf76806f8a075db0db60f)
693
-
694
675
  - @fluidframework/runtime-definitions
695
676
  - `IFluidDataStoreRuntime.logger` will be re-typed as `ITelemetryBaseLogger`
696
677
  - @fluidframework/odsp-driver
@@ -711,7 +692,6 @@ Dependency updates only.
711
692
 
712
693
  The **@fluidframework/common-definitions** package is being deprecated, so the following interfaces and types are now
713
694
  imported from the **@fluidframework/core-interfaces** package:
714
-
715
695
  - interface IDisposable
716
696
  - interface IErrorEvent
717
697
  - interface IErrorEvent
@@ -745,7 +725,6 @@ Dependency updates only.
745
725
  - Request APIs deprecated from many places [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
746
726
 
747
727
  The `request` API (associated with the `IFluidRouter` interface) has been deprecated on a number of classes and interfaces. The following are impacted:
748
-
749
728
  - `IRuntime` and `ContainerRuntime`
750
729
  - `IFluidDataStoreRuntime` and `FluidDataStoreRuntime`
751
730
  - `IFluidDataStoreChannel`
@@ -759,7 +738,6 @@ Dependency updates only.
759
738
  More information of the migration off the request pattern, and current status of its removal, is documented in [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md).
760
739
 
761
740
  - IContainer's and IDataStore's IFluidRouter capabilities are deprecated. [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
762
-
763
741
  - The `request` function taking an arbitrary URL and headers is deprecated
764
742
  - However, an overload taking only `{ url: "/" }` is not, for back-compat purposes during the migration
765
743
  from the request pattern to using entryPoint.
@@ -845,7 +823,6 @@ Dependency updates only.
845
823
  - GC interfaces removed from runtime-definitions [8b242fdc79](https://github.com/microsoft/FluidFramework/commits/8b242fdc796714cf1da9ad3f90d02efb122af0c2)
846
824
 
847
825
  The following interfaces available in `@fluidframework/runtime-definitions` were deprecated in 2.0.0-internal.4.1.0 and are now removed.
848
-
849
826
  - `IGarbageCollectionNodeData`
850
827
  - `IGarbageCollectionState`
851
828
  - `IGarbageCollectionSnapshotData`
@@ -862,7 +839,6 @@ Dependency updates only.
862
839
  - GC interfaces removed from runtime-definitions ([#14750](https://github.com/microsoft/FluidFramework/pull-requests/14750)) [60274eacab](https://github.com/microsoft/FluidFramework/commits/60274eacabf14d42f52f6ad1c2f64356e64ba1a2)
863
840
 
864
841
  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.
865
-
866
842
  - `IGarbageCollectionNodeData`
867
843
  - `IGarbageCollectionState`
868
844
  - `IGarbageCollectionSnapshotData`
@@ -397,7 +397,7 @@ export interface LocalAttributionKey {
397
397
  type: "local";
398
398
  }
399
399
 
400
- // @beta @legacy
400
+ // @beta @legacy @input
401
401
  export type MinimumVersionForCollab = `${1 | 2}.${bigint}.${bigint}` | `${1 | 2}.${bigint}.${bigint}-${string}`;
402
402
 
403
403
  // @beta @legacy
@@ -388,7 +388,7 @@ export interface LocalAttributionKey {
388
388
  type: "local";
389
389
  }
390
390
 
391
- // @beta @legacy
391
+ // @beta @legacy @input
392
392
  export type MinimumVersionForCollab = `${1 | 2}.${bigint}.${bigint}` | `${1 | 2}.${bigint}.${bigint}-${string}`;
393
393
 
394
394
  // @beta @legacy
@@ -3,8 +3,28 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  /**
6
- * String in a valid semver format of a specific version at least specifying minor.
6
+ * Oldest version of Fluid Framework client packages to support collaborating with.
7
+ * @remarks
8
+ * String in a SemVer format indicating a specific version of the Fluid Framework client package, or the special case of {@link @fluidframework/runtime-utils#defaultMinVersionForCollab}.
7
9
  *
10
+ * When specifying a given `MinimumVersionForCollab`, any client with a version that is greater than or equal to the specified version will be considered compatible.
11
+ *
12
+ * Must be at least {@link @fluidframework/runtime-utils#lowestMinVersionForCollab} and cannot exceed the current version.
13
+ *
14
+ * {@link @fluidframework/runtime-utils#validateMinimumVersionForCollab} can be used to check these invariants at runtime.
15
+ * Since TypeScript cannot enforce them all for literals in code,
16
+ * it may be useful to use `validateMinimumVersionForCollab` values which may come from constants in the codebase typed as a `MinimumVersionForCollab`.
17
+ *
18
+ * @privateRemarks
19
+ * Since this uses the semver notion of "greater" (which might not actually mean a later release, or supporting more features), care must be taken with how this is used.
20
+ * See remarks for {@link @fluidframework/runtime-utils#MinimumMinorSemanticVersion} for more details.
21
+ *
22
+ * Since this type is marked with `@input`, it can be generalized to allow more cases in the future as a non-breaking change.
23
+ *
24
+ * TODO: before stabilizing this further, some restrictions should be considered (since once stabilized, this can be relaxed, but not more constrained).
25
+ * For example it might make sense to constrain this to something like `"1.4.0" | typeof defaultMinVersionForCollab | 2.${bigint}.0"`.
26
+ *
27
+ * @input
8
28
  * @legacy @beta
9
29
  */
10
30
  export type MinimumVersionForCollab = `${1 | 2}.${bigint}.${bigint}` | `${1 | 2}.${bigint}.${bigint}-${string}`;
@@ -1 +1 @@
1
- {"version":3,"file":"compatibilityDefinitions.d.ts","sourceRoot":"","sources":["../src/compatibilityDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAChC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,EAAE,GAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"compatibilityDefinitions.d.ts","sourceRoot":"","sources":["../src/compatibilityDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,uBAAuB,GAChC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,EAAE,GAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"compatibilityDefinitions.js","sourceRoot":"","sources":["../src/compatibilityDefinitions.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * String in a valid semver format of a specific version at least specifying minor.\n *\n * @legacy @beta\n */\nexport type MinimumVersionForCollab =\n\t| `${1 | 2}.${bigint}.${bigint}`\n\t| `${1 | 2}.${bigint}.${bigint}-${string}`;\n"]}
1
+ {"version":3,"file":"compatibilityDefinitions.js","sourceRoot":"","sources":["../src/compatibilityDefinitions.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Oldest version of Fluid Framework client packages to support collaborating with.\n * @remarks\n * String in a SemVer format indicating a specific version of the Fluid Framework client package, or the special case of {@link @fluidframework/runtime-utils#defaultMinVersionForCollab}.\n *\n * When specifying a given `MinimumVersionForCollab`, any client with a version that is greater than or equal to the specified version will be considered compatible.\n *\n * Must be at least {@link @fluidframework/runtime-utils#lowestMinVersionForCollab} and cannot exceed the current version.\n *\n * {@link @fluidframework/runtime-utils#validateMinimumVersionForCollab} can be used to check these invariants at runtime.\n * Since TypeScript cannot enforce them all for literals in code,\n * it may be useful to use `validateMinimumVersionForCollab` values which may come from constants in the codebase typed as a `MinimumVersionForCollab`.\n *\n * @privateRemarks\n * Since this uses the semver notion of \"greater\" (which might not actually mean a later release, or supporting more features), care must be taken with how this is used.\n * See remarks for {@link @fluidframework/runtime-utils#MinimumMinorSemanticVersion} for more details.\n *\n * Since this type is marked with `@input`, it can be generalized to allow more cases in the future as a non-breaking change.\n *\n * TODO: before stabilizing this further, some restrictions should be considered (since once stabilized, this can be relaxed, but not more constrained).\n * For example it might make sense to constrain this to something like `\"1.4.0\" | typeof defaultMinVersionForCollab | 2.${bigint}.0\"`.\n *\n * @input\n * @legacy @beta\n */\nexport type MinimumVersionForCollab =\n\t| `${1 | 2}.${bigint}.${bigint}`\n\t| `${1 | 2}.${bigint}.${bigint}-${string}`;\n"]}
@@ -3,8 +3,28 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  /**
6
- * String in a valid semver format of a specific version at least specifying minor.
6
+ * Oldest version of Fluid Framework client packages to support collaborating with.
7
+ * @remarks
8
+ * String in a SemVer format indicating a specific version of the Fluid Framework client package, or the special case of {@link @fluidframework/runtime-utils#defaultMinVersionForCollab}.
7
9
  *
10
+ * When specifying a given `MinimumVersionForCollab`, any client with a version that is greater than or equal to the specified version will be considered compatible.
11
+ *
12
+ * Must be at least {@link @fluidframework/runtime-utils#lowestMinVersionForCollab} and cannot exceed the current version.
13
+ *
14
+ * {@link @fluidframework/runtime-utils#validateMinimumVersionForCollab} can be used to check these invariants at runtime.
15
+ * Since TypeScript cannot enforce them all for literals in code,
16
+ * it may be useful to use `validateMinimumVersionForCollab` values which may come from constants in the codebase typed as a `MinimumVersionForCollab`.
17
+ *
18
+ * @privateRemarks
19
+ * Since this uses the semver notion of "greater" (which might not actually mean a later release, or supporting more features), care must be taken with how this is used.
20
+ * See remarks for {@link @fluidframework/runtime-utils#MinimumMinorSemanticVersion} for more details.
21
+ *
22
+ * Since this type is marked with `@input`, it can be generalized to allow more cases in the future as a non-breaking change.
23
+ *
24
+ * TODO: before stabilizing this further, some restrictions should be considered (since once stabilized, this can be relaxed, but not more constrained).
25
+ * For example it might make sense to constrain this to something like `"1.4.0" | typeof defaultMinVersionForCollab | 2.${bigint}.0"`.
26
+ *
27
+ * @input
8
28
  * @legacy @beta
9
29
  */
10
30
  export type MinimumVersionForCollab = `${1 | 2}.${bigint}.${bigint}` | `${1 | 2}.${bigint}.${bigint}-${string}`;
@@ -1 +1 @@
1
- {"version":3,"file":"compatibilityDefinitions.d.ts","sourceRoot":"","sources":["../src/compatibilityDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAChC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,EAAE,GAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"compatibilityDefinitions.d.ts","sourceRoot":"","sources":["../src/compatibilityDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,uBAAuB,GAChC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,EAAE,GAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"compatibilityDefinitions.js","sourceRoot":"","sources":["../src/compatibilityDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * String in a valid semver format of a specific version at least specifying minor.\n *\n * @legacy @beta\n */\nexport type MinimumVersionForCollab =\n\t| `${1 | 2}.${bigint}.${bigint}`\n\t| `${1 | 2}.${bigint}.${bigint}-${string}`;\n"]}
1
+ {"version":3,"file":"compatibilityDefinitions.js","sourceRoot":"","sources":["../src/compatibilityDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Oldest version of Fluid Framework client packages to support collaborating with.\n * @remarks\n * String in a SemVer format indicating a specific version of the Fluid Framework client package, or the special case of {@link @fluidframework/runtime-utils#defaultMinVersionForCollab}.\n *\n * When specifying a given `MinimumVersionForCollab`, any client with a version that is greater than or equal to the specified version will be considered compatible.\n *\n * Must be at least {@link @fluidframework/runtime-utils#lowestMinVersionForCollab} and cannot exceed the current version.\n *\n * {@link @fluidframework/runtime-utils#validateMinimumVersionForCollab} can be used to check these invariants at runtime.\n * Since TypeScript cannot enforce them all for literals in code,\n * it may be useful to use `validateMinimumVersionForCollab` values which may come from constants in the codebase typed as a `MinimumVersionForCollab`.\n *\n * @privateRemarks\n * Since this uses the semver notion of \"greater\" (which might not actually mean a later release, or supporting more features), care must be taken with how this is used.\n * See remarks for {@link @fluidframework/runtime-utils#MinimumMinorSemanticVersion} for more details.\n *\n * Since this type is marked with `@input`, it can be generalized to allow more cases in the future as a non-breaking change.\n *\n * TODO: before stabilizing this further, some restrictions should be considered (since once stabilized, this can be relaxed, but not more constrained).\n * For example it might make sense to constrain this to something like `\"1.4.0\" | typeof defaultMinVersionForCollab | 2.${bigint}.0\"`.\n *\n * @input\n * @legacy @beta\n */\nexport type MinimumVersionForCollab =\n\t| `${1 | 2}.${bigint}.${bigint}`\n\t| `${1 | 2}.${bigint}.${bigint}-${string}`;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/runtime-definitions",
3
- "version": "2.71.0",
3
+ "version": "2.73.0",
4
4
  "description": "Fluid Runtime definitions",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -57,21 +57,21 @@
57
57
  "main": "lib/index.js",
58
58
  "types": "lib/public.d.ts",
59
59
  "dependencies": {
60
- "@fluid-internal/client-utils": "~2.71.0",
61
- "@fluidframework/container-definitions": "~2.71.0",
62
- "@fluidframework/core-interfaces": "~2.71.0",
63
- "@fluidframework/driver-definitions": "~2.71.0",
64
- "@fluidframework/id-compressor": "~2.71.0",
65
- "@fluidframework/telemetry-utils": "~2.71.0"
60
+ "@fluid-internal/client-utils": "~2.73.0",
61
+ "@fluidframework/container-definitions": "~2.73.0",
62
+ "@fluidframework/core-interfaces": "~2.73.0",
63
+ "@fluidframework/driver-definitions": "~2.73.0",
64
+ "@fluidframework/id-compressor": "~2.73.0",
65
+ "@fluidframework/telemetry-utils": "~2.73.0"
66
66
  },
67
67
  "devDependencies": {
68
68
  "@arethetypeswrong/cli": "^0.17.1",
69
69
  "@biomejs/biome": "~1.9.3",
70
- "@fluid-tools/build-cli": "^0.58.3",
70
+ "@fluid-tools/build-cli": "^0.60.0",
71
71
  "@fluidframework/build-common": "^2.0.3",
72
- "@fluidframework/build-tools": "^0.58.3",
73
- "@fluidframework/eslint-config-fluid": "^7.0.0",
74
- "@fluidframework/runtime-definitions-previous": "npm:@fluidframework/runtime-definitions@2.70.0",
72
+ "@fluidframework/build-tools": "^0.60.0",
73
+ "@fluidframework/eslint-config-fluid": "~2.73.0",
74
+ "@fluidframework/runtime-definitions-previous": "npm:@fluidframework/runtime-definitions@2.71.0",
75
75
  "@microsoft/api-extractor": "7.52.11",
76
76
  "concurrently": "^8.2.1",
77
77
  "copyfiles": "^2.4.1",
@@ -4,8 +4,28 @@
4
4
  */
5
5
 
6
6
  /**
7
- * String in a valid semver format of a specific version at least specifying minor.
7
+ * Oldest version of Fluid Framework client packages to support collaborating with.
8
+ * @remarks
9
+ * String in a SemVer format indicating a specific version of the Fluid Framework client package, or the special case of {@link @fluidframework/runtime-utils#defaultMinVersionForCollab}.
8
10
  *
11
+ * When specifying a given `MinimumVersionForCollab`, any client with a version that is greater than or equal to the specified version will be considered compatible.
12
+ *
13
+ * Must be at least {@link @fluidframework/runtime-utils#lowestMinVersionForCollab} and cannot exceed the current version.
14
+ *
15
+ * {@link @fluidframework/runtime-utils#validateMinimumVersionForCollab} can be used to check these invariants at runtime.
16
+ * Since TypeScript cannot enforce them all for literals in code,
17
+ * it may be useful to use `validateMinimumVersionForCollab` values which may come from constants in the codebase typed as a `MinimumVersionForCollab`.
18
+ *
19
+ * @privateRemarks
20
+ * Since this uses the semver notion of "greater" (which might not actually mean a later release, or supporting more features), care must be taken with how this is used.
21
+ * See remarks for {@link @fluidframework/runtime-utils#MinimumMinorSemanticVersion} for more details.
22
+ *
23
+ * Since this type is marked with `@input`, it can be generalized to allow more cases in the future as a non-breaking change.
24
+ *
25
+ * TODO: before stabilizing this further, some restrictions should be considered (since once stabilized, this can be relaxed, but not more constrained).
26
+ * For example it might make sense to constrain this to something like `"1.4.0" | typeof defaultMinVersionForCollab | 2.${bigint}.0"`.
27
+ *
28
+ * @input
9
29
  * @legacy @beta
10
30
  */
11
31
  export type MinimumVersionForCollab =