@fluidframework/runtime-definitions
Advanced tools
@@ -7,3 +7,3 @@ ## Beta API Report File for "@fluidframework/runtime-definitions" | ||
| // @beta @input | ||
| // @public @input | ||
| export type MinimumVersionForCollab = `${1 | 2}.${bigint}.${bigint}` | `${1 | 2}.${bigint}.${bigint}-${string}`; | ||
@@ -10,0 +10,0 @@ |
@@ -401,3 +401,3 @@ ## Alpha API Report File for "@fluidframework/runtime-definitions" | ||
| // @beta @input | ||
| // @public @input | ||
| export type MinimumVersionForCollab = `${1 | 2}.${bigint}.${bigint}` | `${1 | 2}.${bigint}.${bigint}-${string}`; | ||
@@ -404,0 +404,0 @@ |
@@ -394,3 +394,3 @@ ## Beta API Report File for "@fluidframework/runtime-definitions" | ||
| // @beta @input | ||
| // @public @input | ||
| export type MinimumVersionForCollab = `${1 | 2}.${bigint}.${bigint}` | `${1 | 2}.${bigint}.${bigint}-${string}`; | ||
@@ -397,0 +397,0 @@ |
@@ -7,4 +7,7 @@ ## Public API Report File for "@fluidframework/runtime-definitions" | ||
| // @public @input | ||
| export type MinimumVersionForCollab = `${1 | 2}.${bigint}.${bigint}` | `${1 | 2}.${bigint}.${bigint}-${string}`; | ||
| // (No @packageDocumentation comment for this package) | ||
| ``` |
@@ -7,4 +7,7 @@ ## Public API Report File for "@fluidframework/runtime-definitions" | ||
| // @public @input | ||
| export type MinimumVersionForCollab = `${1 | 2}.${bigint}.${bigint}` | `${1 | 2}.${bigint}.${bigint}-${string}`; | ||
| // (No @packageDocumentation comment for this package) | ||
| ``` |
+4
-0
| # @fluidframework/runtime-definitions | ||
| ## 2.102.0 | ||
| Dependency updates only. | ||
| ## 2.101.0 | ||
@@ -4,0 +8,0 @@ |
+1
-1
@@ -12,5 +12,5 @@ /*! | ||
| export { | ||
| // #region @beta APIs | ||
| // #region @public APIs | ||
| MinimumVersionForCollab | ||
| // #endregion | ||
| } from "./index.js"; |
@@ -8,11 +8,13 @@ /*! | ||
| * @remarks | ||
| * 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}. | ||
| * A string in SemVer format indicating a specific version of the Fluid Framework client package, or the special case of {@link @fluidframework/runtime-utils#defaultMinVersionForCollab}. | ||
| * | ||
| * When specifying a given `MinimumVersionForCollab`, any client with a version that is greater than or equal to the specified version will be considered compatible. | ||
| * Collaboration with other clients is only supported when all Fluid Framework client packages used by the client have a version that is greater than or equal | ||
| * to the specified `MinimumVersionForCollab`. | ||
| * | ||
| * Must be at least {@link @fluidframework/runtime-utils#lowestMinVersionForCollab} and cannot exceed the current version. | ||
| * Must be at least {@link @fluidframework/runtime-utils#lowestMinVersionForCollab} and cannot exceed the version of any Fluid Framework client package in use by the local client. | ||
| * | ||
| * The higher the version specified, the more features and optimizations will be enabled. | ||
| * | ||
| * {@link @fluidframework/runtime-utils#validateMinimumVersionForCollab} can be used to check these invariants at runtime. | ||
| * Since TypeScript cannot enforce them all for literals in code, | ||
| * it may be useful to use `validateMinimumVersionForCollab` values which may come from constants in the codebase typed as a `MinimumVersionForCollab`. | ||
| * Since TypeScript cannot enforce all of them for literals in code, it is useful for checking values sourced from constants typed as `MinimumVersionForCollab`. | ||
| * | ||
@@ -23,11 +25,19 @@ * @privateRemarks | ||
| * | ||
| * Since this type is marked with `@input`, it can be generalized to allow more cases in the future as a non-breaking change. | ||
| * This scheme assumes a single version is always enough to communicate compatibility, which requires that compatibility is strictly increasing across releases. | ||
| * There are ways this assumption could be violated (for example, a subset of incompatible features from 3.x is back-ported to 2.x, or compatibility depends on a patch that is not in the next minor's first release). | ||
| * In such cases, a conservative enablement strategy can be used: only enable features for a version if all greater versions (based on semver ordering) also support it. | ||
| * A more flexible scheme can be added if/when it's needed since it could be opt-in and thus non-breaking. | ||
| * | ||
| * Since this type is marked with `@input`, it is only consumed by the framework and never returned, so widening the accepted set is a non-breaking change. | ||
| * | ||
| * TODO: before stabilizing this further, some restrictions should be considered (since once stabilized, this can be relaxed, but not more constrained). | ||
| * For example it might make sense to constrain this to something like `"1.4.0" | typeof defaultMinVersionForCollab | 2.${bigint}.0"`. | ||
| * For example it might make sense to constrain this to something like: | ||
| * ```ts | ||
| * "1.4.0" | typeof defaultMinVersionForCollab | `2.${bigint}.0` | ||
| * ``` | ||
| * | ||
| * @input | ||
| * @beta | ||
| * @public | ||
| */ | ||
| export type MinimumVersionForCollab = `${1 | 2}.${bigint}.${bigint}` | `${1 | 2}.${bigint}.${bigint}-${string}`; | ||
| //# sourceMappingURL=compatibilityDefinitions.d.ts.map |
@@ -1,1 +0,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"} | ||
| {"version":3,"file":"compatibilityDefinitions.d.ts","sourceRoot":"","sources":["../src/compatibilityDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;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 +0,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 * @beta\n */\nexport type MinimumVersionForCollab =\n\t| `${1 | 2}.${bigint}.${bigint}`\n\t| `${1 | 2}.${bigint}.${bigint}-${string}`;\n"]} | ||
| {"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 * A string in SemVer format indicating a specific version of the Fluid Framework client package, or the special case of {@link @fluidframework/runtime-utils#defaultMinVersionForCollab}.\n *\n * Collaboration with other clients is only supported when all Fluid Framework client packages used by the client have a version that is greater than or equal\n * to the specified `MinimumVersionForCollab`.\n *\n * Must be at least {@link @fluidframework/runtime-utils#lowestMinVersionForCollab} and cannot exceed the version of any Fluid Framework client package in use by the local client.\n *\n * The higher the version specified, the more features and optimizations will be enabled.\n *\n * {@link @fluidframework/runtime-utils#validateMinimumVersionForCollab} can be used to check these invariants at runtime.\n * Since TypeScript cannot enforce all of them for literals in code, it is useful for checking values sourced from constants typed as `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 * This scheme assumes a single version is always enough to communicate compatibility, which requires that compatibility is strictly increasing across releases.\n * There are ways this assumption could be violated (for example, a subset of incompatible features from 3.x is back-ported to 2.x, or compatibility depends on a patch that is not in the next minor's first release).\n * In such cases, a conservative enablement strategy can be used: only enable features for a version if all greater versions (based on semver ordering) also support it.\n * A more flexible scheme can be added if/when it's needed since it could be opt-in and thus non-breaking.\n *\n * Since this type is marked with `@input`, it is only consumed by the framework and never returned, so widening the accepted set is 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:\n * ```ts\n * \"1.4.0\" | typeof defaultMinVersionForCollab | `2.${bigint}.0`\n * ```\n *\n * @input\n * @public\n */\nexport type MinimumVersionForCollab =\n\t| `${1 | 2}.${bigint}.${bigint}`\n\t| `${1 | 2}.${bigint}.${bigint}-${string}`;\n"]} |
+1
-1
@@ -12,3 +12,3 @@ /*! | ||
| export { | ||
| // #region @beta APIs | ||
| // #region @public APIs | ||
| MinimumVersionForCollab, | ||
@@ -15,0 +15,0 @@ // #endregion |
@@ -12,3 +12,3 @@ /*! | ||
| export { | ||
| // #region @beta APIs | ||
| // #region @public APIs | ||
| MinimumVersionForCollab, | ||
@@ -15,0 +15,0 @@ // #endregion |
+5
-2
@@ -11,3 +11,6 @@ /*! | ||
| export {} | ||
| export { | ||
| // #region @public APIs | ||
| MinimumVersionForCollab | ||
| // #endregion | ||
| } from "./index.js"; |
+1
-1
@@ -12,5 +12,5 @@ /*! | ||
| export { | ||
| // #region @beta APIs | ||
| // #region @public APIs | ||
| MinimumVersionForCollab | ||
| // #endregion | ||
| } from "./index.js"; |
@@ -8,11 +8,13 @@ /*! | ||
| * @remarks | ||
| * 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}. | ||
| * A string in SemVer format indicating a specific version of the Fluid Framework client package, or the special case of {@link @fluidframework/runtime-utils#defaultMinVersionForCollab}. | ||
| * | ||
| * When specifying a given `MinimumVersionForCollab`, any client with a version that is greater than or equal to the specified version will be considered compatible. | ||
| * Collaboration with other clients is only supported when all Fluid Framework client packages used by the client have a version that is greater than or equal | ||
| * to the specified `MinimumVersionForCollab`. | ||
| * | ||
| * Must be at least {@link @fluidframework/runtime-utils#lowestMinVersionForCollab} and cannot exceed the current version. | ||
| * Must be at least {@link @fluidframework/runtime-utils#lowestMinVersionForCollab} and cannot exceed the version of any Fluid Framework client package in use by the local client. | ||
| * | ||
| * The higher the version specified, the more features and optimizations will be enabled. | ||
| * | ||
| * {@link @fluidframework/runtime-utils#validateMinimumVersionForCollab} can be used to check these invariants at runtime. | ||
| * Since TypeScript cannot enforce them all for literals in code, | ||
| * it may be useful to use `validateMinimumVersionForCollab` values which may come from constants in the codebase typed as a `MinimumVersionForCollab`. | ||
| * Since TypeScript cannot enforce all of them for literals in code, it is useful for checking values sourced from constants typed as `MinimumVersionForCollab`. | ||
| * | ||
@@ -23,11 +25,19 @@ * @privateRemarks | ||
| * | ||
| * Since this type is marked with `@input`, it can be generalized to allow more cases in the future as a non-breaking change. | ||
| * This scheme assumes a single version is always enough to communicate compatibility, which requires that compatibility is strictly increasing across releases. | ||
| * There are ways this assumption could be violated (for example, a subset of incompatible features from 3.x is back-ported to 2.x, or compatibility depends on a patch that is not in the next minor's first release). | ||
| * In such cases, a conservative enablement strategy can be used: only enable features for a version if all greater versions (based on semver ordering) also support it. | ||
| * A more flexible scheme can be added if/when it's needed since it could be opt-in and thus non-breaking. | ||
| * | ||
| * Since this type is marked with `@input`, it is only consumed by the framework and never returned, so widening the accepted set is a non-breaking change. | ||
| * | ||
| * TODO: before stabilizing this further, some restrictions should be considered (since once stabilized, this can be relaxed, but not more constrained). | ||
| * For example it might make sense to constrain this to something like `"1.4.0" | typeof defaultMinVersionForCollab | 2.${bigint}.0"`. | ||
| * For example it might make sense to constrain this to something like: | ||
| * ```ts | ||
| * "1.4.0" | typeof defaultMinVersionForCollab | `2.${bigint}.0` | ||
| * ``` | ||
| * | ||
| * @input | ||
| * @beta | ||
| * @public | ||
| */ | ||
| export type MinimumVersionForCollab = `${1 | 2}.${bigint}.${bigint}` | `${1 | 2}.${bigint}.${bigint}-${string}`; | ||
| //# sourceMappingURL=compatibilityDefinitions.d.ts.map |
@@ -1,1 +0,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"} | ||
| {"version":3,"file":"compatibilityDefinitions.d.ts","sourceRoot":"","sources":["../src/compatibilityDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;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 +0,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 * @beta\n */\nexport type MinimumVersionForCollab =\n\t| `${1 | 2}.${bigint}.${bigint}`\n\t| `${1 | 2}.${bigint}.${bigint}-${string}`;\n"]} | ||
| {"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 * A string in SemVer format indicating a specific version of the Fluid Framework client package, or the special case of {@link @fluidframework/runtime-utils#defaultMinVersionForCollab}.\n *\n * Collaboration with other clients is only supported when all Fluid Framework client packages used by the client have a version that is greater than or equal\n * to the specified `MinimumVersionForCollab`.\n *\n * Must be at least {@link @fluidframework/runtime-utils#lowestMinVersionForCollab} and cannot exceed the version of any Fluid Framework client package in use by the local client.\n *\n * The higher the version specified, the more features and optimizations will be enabled.\n *\n * {@link @fluidframework/runtime-utils#validateMinimumVersionForCollab} can be used to check these invariants at runtime.\n * Since TypeScript cannot enforce all of them for literals in code, it is useful for checking values sourced from constants typed as `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 * This scheme assumes a single version is always enough to communicate compatibility, which requires that compatibility is strictly increasing across releases.\n * There are ways this assumption could be violated (for example, a subset of incompatible features from 3.x is back-ported to 2.x, or compatibility depends on a patch that is not in the next minor's first release).\n * In such cases, a conservative enablement strategy can be used: only enable features for a version if all greater versions (based on semver ordering) also support it.\n * A more flexible scheme can be added if/when it's needed since it could be opt-in and thus non-breaking.\n *\n * Since this type is marked with `@input`, it is only consumed by the framework and never returned, so widening the accepted set is 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:\n * ```ts\n * \"1.4.0\" | typeof defaultMinVersionForCollab | `2.${bigint}.0`\n * ```\n *\n * @input\n * @public\n */\nexport type MinimumVersionForCollab =\n\t| `${1 | 2}.${bigint}.${bigint}`\n\t| `${1 | 2}.${bigint}.${bigint}-${string}`;\n"]} |
+1
-1
@@ -12,3 +12,3 @@ /*! | ||
| export { | ||
| // #region @beta APIs | ||
| // #region @public APIs | ||
| MinimumVersionForCollab, | ||
@@ -15,0 +15,0 @@ // #endregion |
@@ -12,3 +12,3 @@ /*! | ||
| export { | ||
| // #region @beta APIs | ||
| // #region @public APIs | ||
| MinimumVersionForCollab, | ||
@@ -15,0 +15,0 @@ // #endregion |
+5
-2
@@ -11,3 +11,6 @@ /*! | ||
| export {} | ||
| export { | ||
| // #region @public APIs | ||
| MinimumVersionForCollab | ||
| // #endregion | ||
| } from "./index.js"; |
+8
-8
| { | ||
| "name": "@fluidframework/runtime-definitions", | ||
| "version": "2.101.1", | ||
| "version": "2.102.0", | ||
| "description": "Fluid Runtime definitions", | ||
@@ -70,8 +70,8 @@ "homepage": "https://fluidframework.com", | ||
| "dependencies": { | ||
| "@fluid-internal/client-utils": "~2.101.1", | ||
| "@fluidframework/container-definitions": "~2.101.1", | ||
| "@fluidframework/core-interfaces": "~2.101.1", | ||
| "@fluidframework/driver-definitions": "~2.101.1", | ||
| "@fluidframework/id-compressor": "~2.101.1", | ||
| "@fluidframework/telemetry-utils": "~2.101.1" | ||
| "@fluid-internal/client-utils": "~2.102.0", | ||
| "@fluidframework/container-definitions": "~2.102.0", | ||
| "@fluidframework/core-interfaces": "~2.102.0", | ||
| "@fluidframework/driver-definitions": "~2.102.0", | ||
| "@fluidframework/id-compressor": "~2.102.0", | ||
| "@fluidframework/telemetry-utils": "~2.102.0" | ||
| }, | ||
@@ -85,3 +85,3 @@ "devDependencies": { | ||
| "@fluidframework/eslint-config-fluid": "^9.0.0", | ||
| "@fluidframework/runtime-definitions-previous": "npm:@fluidframework/runtime-definitions@2.92.0", | ||
| "@fluidframework/runtime-definitions-previous": "npm:@fluidframework/runtime-definitions@2.101.0", | ||
| "@microsoft/api-extractor": "7.58.1", | ||
@@ -88,0 +88,0 @@ "concurrently": "^9.2.1", |
@@ -9,11 +9,13 @@ /*! | ||
| * @remarks | ||
| * 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}. | ||
| * A string in SemVer format indicating a specific version of the Fluid Framework client package, or the special case of {@link @fluidframework/runtime-utils#defaultMinVersionForCollab}. | ||
| * | ||
| * When specifying a given `MinimumVersionForCollab`, any client with a version that is greater than or equal to the specified version will be considered compatible. | ||
| * Collaboration with other clients is only supported when all Fluid Framework client packages used by the client have a version that is greater than or equal | ||
| * to the specified `MinimumVersionForCollab`. | ||
| * | ||
| * Must be at least {@link @fluidframework/runtime-utils#lowestMinVersionForCollab} and cannot exceed the current version. | ||
| * Must be at least {@link @fluidframework/runtime-utils#lowestMinVersionForCollab} and cannot exceed the version of any Fluid Framework client package in use by the local client. | ||
| * | ||
| * The higher the version specified, the more features and optimizations will be enabled. | ||
| * | ||
| * {@link @fluidframework/runtime-utils#validateMinimumVersionForCollab} can be used to check these invariants at runtime. | ||
| * Since TypeScript cannot enforce them all for literals in code, | ||
| * it may be useful to use `validateMinimumVersionForCollab` values which may come from constants in the codebase typed as a `MinimumVersionForCollab`. | ||
| * Since TypeScript cannot enforce all of them for literals in code, it is useful for checking values sourced from constants typed as `MinimumVersionForCollab`. | ||
| * | ||
@@ -24,9 +26,17 @@ * @privateRemarks | ||
| * | ||
| * Since this type is marked with `@input`, it can be generalized to allow more cases in the future as a non-breaking change. | ||
| * This scheme assumes a single version is always enough to communicate compatibility, which requires that compatibility is strictly increasing across releases. | ||
| * There are ways this assumption could be violated (for example, a subset of incompatible features from 3.x is back-ported to 2.x, or compatibility depends on a patch that is not in the next minor's first release). | ||
| * In such cases, a conservative enablement strategy can be used: only enable features for a version if all greater versions (based on semver ordering) also support it. | ||
| * A more flexible scheme can be added if/when it's needed since it could be opt-in and thus non-breaking. | ||
| * | ||
| * Since this type is marked with `@input`, it is only consumed by the framework and never returned, so widening the accepted set is a non-breaking change. | ||
| * | ||
| * TODO: before stabilizing this further, some restrictions should be considered (since once stabilized, this can be relaxed, but not more constrained). | ||
| * For example it might make sense to constrain this to something like `"1.4.0" | typeof defaultMinVersionForCollab | 2.${bigint}.0"`. | ||
| * For example it might make sense to constrain this to something like: | ||
| * ```ts | ||
| * "1.4.0" | typeof defaultMinVersionForCollab | `2.${bigint}.0` | ||
| * ``` | ||
| * | ||
| * @input | ||
| * @beta | ||
| * @public | ||
| */ | ||
@@ -33,0 +43,0 @@ export type MinimumVersionForCollab = |
557504
0.85%6103
0.63%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed