@fluidframework/register-collection 3.0.2 → 3.2.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 +8 -0
- package/README.md +30 -34
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/package.json +14 -14
- package/src/packageVersion.ts +1 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A consensus register collection is a distributed data structure (DDS), which holds a set of registers and their versions generated during concurrent updates. In the simplest definition, two updates on a single register are concurrent if there is no causal relationship between them (i.e., neither knows about the other). On such cases of concurrent updates, a register internally stores all possible versions of a value.
|
|
4
4
|
|
|
5
|
-
<!--
|
|
6
|
-
|
|
5
|
+
<!-- markdown-magic:begin {"transform":"library-readme-header","headingLevel":2} -->
|
|
7
6
|
<!-- prettier-ignore-start -->
|
|
8
7
|
<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->
|
|
9
8
|
|
|
@@ -37,8 +36,7 @@ Import the `legacy` APIs from `@fluidframework/register-collection/legacy`.
|
|
|
37
36
|
Read the **@fluidframework/register-collection** API documentation at <https://fluidframework.com/docs/apis/register-collection>.
|
|
38
37
|
|
|
39
38
|
<!-- prettier-ignore-end -->
|
|
40
|
-
|
|
41
|
-
<!-- AUTO-GENERATED-CONTENT:END -->
|
|
39
|
+
<!-- markdown-magic:end -->
|
|
42
40
|
|
|
43
41
|
### Detecting concurrency in Fluid
|
|
44
42
|
|
|
@@ -56,8 +54,7 @@ Below are the policies that the DDS implements:
|
|
|
56
54
|
|
|
57
55
|
- Atomic: The policy follows the same semantics of a shared distributed lock. Amongst all concurrent updates, only the first writer wins. In distributed systems literature, the register update policy is called `Atomic`. This behavior requires a linearizable register. A linearizable register behaves as if there is only a single copy of the data, and that every operation appears to take effect atomically at one point in time. This definition implies that operations are executed in an well-defined order. On a concurrent update, we perform a `compare-and-set` operation, where we compare a register's stored `seq` with the incoming `refSeq`. The earliest operation overwriting the stored `seq` wins since every client reaches to an agreement on the value. Hence we can safely return the first value.
|
|
58
56
|
|
|
59
|
-
<!--
|
|
60
|
-
|
|
57
|
+
<!-- markdown-magic:begin {"transform":"readme-footer","headingLevel":2} -->
|
|
61
58
|
<!-- prettier-ignore-start -->
|
|
62
59
|
<!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->
|
|
63
60
|
|
|
@@ -74,29 +71,29 @@ To request support for a configuration that is not listed, file an issue.
|
|
|
74
71
|
The product team will evaluate your request.
|
|
75
72
|
In the issue, specify the current status of the configuration:
|
|
76
73
|
|
|
77
|
-
-
|
|
78
|
-
-
|
|
74
|
+
- The configuration works but needs official support.
|
|
75
|
+
- The configuration does not work and requires changes.
|
|
79
76
|
|
|
80
77
|
### Supported Runtimes
|
|
81
78
|
|
|
82
|
-
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
-
|
|
79
|
+
- Fluid Framework supports Node.js versions 22 and 24 while they receive [upstream support](https://nodejs.org/en/about/previous-releases).
|
|
80
|
+
- Fluid Framework will stop support for version 22 [when upstream support ends on 2027-04-30](https://github.com/nodejs/release#release-schedule).
|
|
81
|
+
- Fluid Framework does not support Node.js with the `--no-experimental-fetch` flag.
|
|
82
|
+
- Fluid Framework supports modern browsers that support the ES2022 standard library.
|
|
86
83
|
|
|
87
84
|
### Supported Tools
|
|
88
85
|
|
|
89
|
-
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
-
|
|
98
|
-
|
|
99
|
-
|
|
86
|
+
- [TypeScript 6.0](https://typescriptdocs.com/release-notes/TypeScript%206.0):
|
|
87
|
+
- Fluid Framework supports all [`strict`](https://www.typescriptlang.org/tsconfig) options.
|
|
88
|
+
- Set the build targets (`lib`, `target`) to `ES2022` or later.
|
|
89
|
+
- Enable [`strictNullChecks`](https://www.typescriptlang.org/tsconfig).
|
|
90
|
+
- Fluid Framework does not support [configuration options deprecated in TypeScript 6.0](https://typescriptdocs.com/release-notes/TypeScript%206.0#breaking-changes-and-deprecations-in-typescript-6-0).
|
|
91
|
+
- Fluid Framework does not fully support `exactOptionalPropertyTypes`.
|
|
92
|
+
If you enable this option, do not use `in`, `Reflect.has`, `Object.hasOwn`, or `Object.prototype.hasOwnProperty` to narrow members of Fluid Framework types.
|
|
93
|
+
These methods can incorrectly exclude `undefined` from the possible values.
|
|
94
|
+
- [webpack](https://webpack.js.org/) 5
|
|
95
|
+
- We do not require a specific bundler.
|
|
96
|
+
Other bundlers that handle ES Modules can work, but we actively test only webpack.
|
|
100
97
|
|
|
101
98
|
### Module Resolution
|
|
102
99
|
|
|
@@ -107,25 +104,25 @@ Do not use `Node10` module resolution.
|
|
|
107
104
|
|
|
108
105
|
### Module Formats
|
|
109
106
|
|
|
110
|
-
-
|
|
111
|
-
|
|
112
|
-
-
|
|
113
|
-
|
|
107
|
+
- ES Modules:
|
|
108
|
+
Use ES Modules to consume Fluid Framework client packages, including in Node.js.
|
|
109
|
+
- CommonJS:
|
|
110
|
+
Fluid Framework does not officially support CommonJS in version 3.0 or later.
|
|
114
111
|
|
|
115
112
|
## Contribution Guidelines
|
|
116
113
|
|
|
117
114
|
You can [contribute](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) to Fluid Framework in these ways:
|
|
118
115
|
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
116
|
+
- Answer questions in [GitHub Discussions](https://github.com/microsoft/FluidFramework/discussions).
|
|
117
|
+
- [Submit bug reports](https://github.com/microsoft/FluidFramework/issues) and help verify fixes.
|
|
118
|
+
- Review [source code changes](https://github.com/microsoft/FluidFramework/pulls).
|
|
119
|
+
- [Contribute bug fixes](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md).
|
|
123
120
|
|
|
124
121
|
For detailed instructions, read the [repo documentation](https://github.com/microsoft/FluidFramework/blob/main/docs/content/Home.md).
|
|
125
122
|
|
|
126
123
|
This project follows the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
|
|
127
124
|
For more information, read the [Code of Conduct frequently asked questions](https://opensource.microsoft.com/codeofconduct/faq/).
|
|
128
|
-
For questions or comments, contact
|
|
125
|
+
For questions or comments, contact <opencode@microsoft.com>.
|
|
129
126
|
|
|
130
127
|
This project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.
|
|
131
128
|
Use of these trademarks or logos must follow Microsoft’s [Trademark & Brand Guidelines](https://www.microsoft.com/trademarks).
|
|
@@ -146,5 +143,4 @@ Use of these trademarks or logos must follow Microsoft's [Trademark & Brand Guid
|
|
|
146
143
|
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
|
|
147
144
|
|
|
148
145
|
<!-- prettier-ignore-end -->
|
|
149
|
-
|
|
150
|
-
<!-- AUTO-GENERATED-CONTENT:END -->
|
|
146
|
+
<!-- markdown-magic:end -->
|
package/dist/packageVersion.d.ts
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
|
|
6
6
|
*/
|
|
7
7
|
export declare const pkgName = "@fluidframework/register-collection";
|
|
8
|
-
export declare const pkgVersion = "3.0
|
|
8
|
+
export declare const pkgVersion = "3.2.0";
|
|
9
9
|
//# sourceMappingURL=packageVersion.d.ts.map
|
package/dist/packageVersion.js
CHANGED
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.pkgVersion = exports.pkgName = void 0;
|
|
10
10
|
exports.pkgName = "@fluidframework/register-collection";
|
|
11
|
-
exports.pkgVersion = "3.0
|
|
11
|
+
exports.pkgVersion = "3.2.0";
|
|
12
12
|
//# sourceMappingURL=packageVersion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,qCAAqC,CAAC;AAChD,QAAA,UAAU,GAAG,OAAO,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/register-collection\";\nexport const pkgVersion = \"3.0
|
|
1
|
+
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,qCAAqC,CAAC;AAChD,QAAA,UAAU,GAAG,OAAO,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/register-collection\";\nexport const pkgVersion = \"3.2.0\";\n"]}
|
package/lib/packageVersion.d.ts
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
|
|
6
6
|
*/
|
|
7
7
|
export declare const pkgName = "@fluidframework/register-collection";
|
|
8
|
-
export declare const pkgVersion = "3.0
|
|
8
|
+
export declare const pkgVersion = "3.2.0";
|
|
9
9
|
//# sourceMappingURL=packageVersion.d.ts.map
|
package/lib/packageVersion.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,qCAAqC,CAAC;AAC7D,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/register-collection\";\nexport const pkgVersion = \"3.0
|
|
1
|
+
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,qCAAqC,CAAC;AAC7D,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/register-collection\";\nexport const pkgVersion = \"3.2.0\";\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/register-collection",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "Consensus Register",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -61,27 +61,27 @@
|
|
|
61
61
|
"temp-directory": "nyc/.nyc_output"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@fluid-internal/client-utils": "~3.0
|
|
65
|
-
"@fluidframework/core-interfaces": "~3.0
|
|
66
|
-
"@fluidframework/core-utils": "~3.0
|
|
67
|
-
"@fluidframework/datastore-definitions": "~3.0
|
|
68
|
-
"@fluidframework/driver-definitions": "~3.0
|
|
69
|
-
"@fluidframework/driver-utils": "~3.0
|
|
70
|
-
"@fluidframework/runtime-definitions": "~3.0
|
|
71
|
-
"@fluidframework/shared-object-base": "~3.0
|
|
64
|
+
"@fluid-internal/client-utils": "~3.2.0",
|
|
65
|
+
"@fluidframework/core-interfaces": "~3.2.0",
|
|
66
|
+
"@fluidframework/core-utils": "~3.2.0",
|
|
67
|
+
"@fluidframework/datastore-definitions": "~3.2.0",
|
|
68
|
+
"@fluidframework/driver-definitions": "~3.2.0",
|
|
69
|
+
"@fluidframework/driver-utils": "~3.2.0",
|
|
70
|
+
"@fluidframework/runtime-definitions": "~3.2.0",
|
|
71
|
+
"@fluidframework/shared-object-base": "~3.2.0"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@arethetypeswrong/cli": "^0.18.5",
|
|
75
75
|
"@biomejs/biome": "~2.4.5",
|
|
76
|
-
"@fluid-internal/mocha-test-setup": "~3.0
|
|
77
|
-
"@fluid-private/stochastic-test-utils": "~3.0
|
|
78
|
-
"@fluid-private/test-dds-utils": "~3.0
|
|
76
|
+
"@fluid-internal/mocha-test-setup": "~3.2.0",
|
|
77
|
+
"@fluid-private/stochastic-test-utils": "~3.2.0",
|
|
78
|
+
"@fluid-private/test-dds-utils": "~3.2.0",
|
|
79
79
|
"@fluid-tools/build-cli": "^0.67.0",
|
|
80
80
|
"@fluidframework/build-common": "^2.0.3",
|
|
81
81
|
"@fluidframework/build-tools": "^0.67.0",
|
|
82
82
|
"@fluidframework/eslint-config-fluid": "^14.0.0",
|
|
83
|
-
"@fluidframework/register-collection-previous": "npm:@fluidframework/register-collection@
|
|
84
|
-
"@fluidframework/test-runtime-utils": "~3.0
|
|
83
|
+
"@fluidframework/register-collection-previous": "npm:@fluidframework/register-collection@3.1.0",
|
|
84
|
+
"@fluidframework/test-runtime-utils": "~3.2.0",
|
|
85
85
|
"@microsoft/api-extractor": "7.58.1",
|
|
86
86
|
"@types/mocha": "^10.0.10",
|
|
87
87
|
"@types/node": "~22.19.17",
|
package/src/packageVersion.ts
CHANGED