@@ -12,18 +12,29 @@ adding new features.
1212
1313The most notable changes for users are:
1414
15- - The package distribution only includes ESM packages.
16- - React 19 is now expected as a peer dependency for UI components.
15+ - The package distribution only includes modern ESM packages (both minified and
16+ non-minified).
17+ - React 19 is now compatible as an optional peer dependency.
1718- The tools module and TinyBase CLI have been removed.
1819
19- As a result of these, there have been some knock-on effects to the project as a
20- whole. For example, React 19 is used as a developer dependency for the project
21- and so the test suite has been updated to use ` react-testing-library ` instead
22- of ` react-test-renderer ` . The React ` jsx-runtime ` is used for JSX
23- transformations. And the demos (and CodePen examples) have been updated to use
24- an ` importmap ` mapping the modules to the [ esm.sh] ( https://esm.sh/ ) CDN.
20+ If you have been using CJS or UMD packages, you will need to update your
21+ bundling strategy for TinyBase (in the same way that you will have had to have
22+ done for React 19, for example) but this change should be compatible with most
23+ packaging tools. If you had been using the library directly a browser, you
24+ should consider the [ esm.sh] ( https://esm.sh/ ) CDN, as we have for our demos.
2525
26- Please let us know how these changes find you!
26+ As a result of these changes, there have been some additional knock-on effects
27+ to the project and developer infrastructure as a whole. For example:
28+
29+ - The test suite has been updated to use ` react-testing-library ` instead of
30+ ` react-test-renderer ` .
31+ - The React ` jsx-runtime ` is used for JSX transformations.
32+ - Demos (and CodePen examples) have been updated to use an ` importmap ` mapping
33+ the modules to the [ esm.sh] ( https://esm.sh/ ) CDN.
34+ - ESLint has finally been upgraded to v9.
35+
36+ Please let us know how these changes find you, and please file an issue on
37+ GitHub if you need help adapting to any of them.
2738
2839# v5.4
2940
@@ -307,8 +318,8 @@ issues in a development environment.
307318
308319# v5.0
309320
310- We're excited to announce this major release for TinyBase! It includes
311- important data synchronization functionality and a range of other improvements.
321+ We're excited to announce this major release for TinyBase! It includes important
322+ data synchronization functionality and a range of other improvements.
312323
313324# In Summary
314325
@@ -329,10 +340,10 @@ Let's look at the major functionality in more detail!
329340
330341## The New MergeableStore Type
331342
332- A key part of TinyBase v5.0 is the new mergeable-store module, which contains
333- a subtype of Store - called MergeableStore - that can be merged with another
334- with deterministic results. The implementation uses an encoded hybrid logical
335- clock (HLC) to timestamp the changes made so that they can be cleanly merged.
343+ A key part of TinyBase v5.0 is the new mergeable-store module, which contains a
344+ subtype of Store - called MergeableStore - that can be merged with another with
345+ deterministic results. The implementation uses an encoded hybrid logical clock
346+ (HLC) to timestamp the changes made so that they can be cleanly merged.
336347
337348The getMergeableContent method on a MergeableStore is used to get the state of a
338349store that can be merged into another. The applyMergeableChanges method will let
@@ -355,8 +366,8 @@ console.log(localStore2.getContent());
355366// -> [{pets: {felix: {species: 'cat'}, fido: {species: 'dog'}}}, {}]
356367```
357368
358- Please read the new Using A MergeableStore guide for more details of how to
359- use this important new API.
369+ Please read the new Using A MergeableStore guide for more details of how to use
370+ this important new API.
360371
361372A MergeableStore can be persisted locally, just like a regular Store into file,
362373local and session storage, and simple SQLite environments such as Expo and
0 commit comments