synstate 2.0.0 → 2.0.2
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/README.md +7 -7
- package/package.json +43 -21
package/README.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# SynState
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
|
-
<img src="
|
|
4
|
+
<img src="https://github.com/noshiro-pf/mono/raw/main/libs/synstate/assets/synstate-logo.png" alt="SynState Logo" width="400" />
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
8
|
|
|
9
9
|
[](https://www.npmjs.com/package/synstate)
|
|
10
10
|
[](https://www.npmjs.com/package/synstate)
|
|
11
|
-
[](
|
|
12
|
-
[](https://github.com/noshiro-pf/mono/blob/main/libs/synstate/LICENSE)
|
|
12
|
+
[](https://codecov.io/gh/noshiro-pf/mono)
|
|
13
13
|
|
|
14
14
|
</p>
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
"SynState" is named after "Synchronized + State." It represents a sound synchronized state through a **glitch-free**[^1] Observable implementation.
|
|
19
19
|
|
|
20
|
-
[^1]: See ["How SynState solved the glitch?"](
|
|
20
|
+
[^1]: See ["How SynState solved the glitch?"](https://noshiro-pf.github.io/synstate/internals/how-synstate-solved-the-glitch/).
|
|
21
21
|
|
|
22
22
|
## Features
|
|
23
23
|
|
|
@@ -207,7 +207,7 @@ A state management library that scales from simple global state to complex async
|
|
|
207
207
|
|
|
208
208
|
RxJS is the most well-known Observable library, and it excels at modeling asynchronous event processing. However, RxJS has a fundamental issue known as **glitch**[^1] — a phenomenon where derived values can temporarily enter inconsistent intermediate states during synchronous propagation. For a state management library, where consistency of derived state is critical, this is unacceptable. SynState was built from scratch with a glitch-free Observable implementation to solve this problem.
|
|
209
209
|
|
|
210
|
-
For a detailed explanation, see ["How SynState solved the glitch?"](
|
|
210
|
+
For a detailed explanation, see ["How SynState solved the glitch?"](https://noshiro-pf.github.io/synstate/internals/how-synstate-solved-the-glitch/).
|
|
211
211
|
|
|
212
212
|
### Key Differences from RxJS
|
|
213
213
|
|
|
@@ -663,8 +663,8 @@ SynState maintains full type information.
|
|
|
663
663
|
|
|
664
664
|
## License
|
|
665
665
|
|
|
666
|
-
This project is licensed under the [Apache License 2.0](
|
|
666
|
+
This project is licensed under the [Apache License 2.0](https://github.com/noshiro-pf/mono/blob/main/libs/synstate/LICENSE).
|
|
667
667
|
|
|
668
668
|
## Repository
|
|
669
669
|
|
|
670
|
-
<https://github.com/noshiro-pf/synstate>
|
|
670
|
+
<https://github.com/noshiro-pf/mono/tree/main/libs/synstate>
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "synstate",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Type-safe State Management Library for TypeScript/JavaScript",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
|
-
"url": "git+https://github.com/noshiro-pf/
|
|
7
|
+
"url": "git+https://github.com/noshiro-pf/mono.git",
|
|
8
|
+
"directory": "libs/synstate"
|
|
8
9
|
},
|
|
9
10
|
"license": "Apache-2.0",
|
|
10
11
|
"author": "noshiro-pf <noshiro.pf@gmail.com>",
|
|
@@ -18,8 +19,8 @@
|
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
21
|
},
|
|
21
|
-
"module": "./dist/index.
|
|
22
|
-
"types": "./dist/index.d.
|
|
22
|
+
"module": "./dist/index.mjs",
|
|
23
|
+
"types": "./dist/index.d.mts",
|
|
23
24
|
"files": [
|
|
24
25
|
"src",
|
|
25
26
|
"dist",
|
|
@@ -28,38 +29,59 @@
|
|
|
28
29
|
"LICENSE"
|
|
29
30
|
],
|
|
30
31
|
"dependencies": {
|
|
31
|
-
"ts-data-forge": "^14.2.
|
|
32
|
-
"ts-type-forge": "^9.2.
|
|
32
|
+
"ts-data-forge": "^14.2.1",
|
|
33
|
+
"ts-type-forge": "^9.2.1"
|
|
33
34
|
},
|
|
34
35
|
"devDependencies": {
|
|
35
36
|
"@reduxjs/toolkit": "2.12.0",
|
|
36
|
-
"@
|
|
37
|
+
"@rollup/plugin-replace": "6.0.3",
|
|
38
|
+
"@rollup/plugin-strip": "3.0.4",
|
|
37
39
|
"@types/react": "19.2.18",
|
|
38
40
|
"argparse": "3.0.0",
|
|
39
41
|
"jotai": "2.20.2",
|
|
40
42
|
"mobx": "7.0.0",
|
|
43
|
+
"prettier": "3.9.6",
|
|
44
|
+
"prettier-plugin-organize-imports": "4.3.0",
|
|
45
|
+
"prettier-plugin-packagejson": "3.0.2",
|
|
41
46
|
"react": "19.2.8",
|
|
47
|
+
"rollup": "4.62.4",
|
|
48
|
+
"rollup-plugin-esbuild": "6.2.1",
|
|
42
49
|
"rxjs": "7.8.2",
|
|
43
50
|
"valtio": "2.3.2",
|
|
44
|
-
"zustand": "5.0.14"
|
|
51
|
+
"zustand": "5.0.14",
|
|
52
|
+
"eslint-config-typed": "5.8.5",
|
|
53
|
+
"eslint-plugin-ts-data-forge": "0.4.4",
|
|
54
|
+
"eslint-plugin-ts-type-forge": "0.6.3",
|
|
55
|
+
"synstate-react-hooks": "2.0.2",
|
|
56
|
+
"eslint-plugin-ts-fortress": "1.0.1",
|
|
57
|
+
"synstate-react-hooks-compat": "2.0.2",
|
|
58
|
+
"ts-repo-utils": "10.2.0"
|
|
59
|
+
},
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=22.22.2",
|
|
62
|
+
"pnpm": ">=9.0.0"
|
|
63
|
+
},
|
|
64
|
+
"publishConfig": {
|
|
65
|
+
"access": "public",
|
|
66
|
+
"provenance": true
|
|
45
67
|
},
|
|
46
68
|
"scripts": {
|
|
47
|
-
"benchmark": "tsx ./scripts/cmd/run-benchmark.mts",
|
|
48
|
-
"benchmark:cascaded-diamond": "tsx ./scripts/cmd/run-benchmark-cascaded-diamond.mts",
|
|
49
|
-
"benchmark:deep-chain": "tsx ./scripts/cmd/run-benchmark-deep-chain.mts",
|
|
50
|
-
"build": "tsx ./scripts/cmd/build.mts",
|
|
51
|
-
"build:min": "tsx ./scripts/cmd/build.mts --skip-check",
|
|
52
|
-
"check:ext": "tsx ./scripts/cmd/check-ext.mts",
|
|
53
|
-
"check-all": "tsx ./scripts/cmd/check-all.mts",
|
|
69
|
+
"benchmark": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/run-benchmark.mts",
|
|
70
|
+
"benchmark:cascaded-diamond": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/run-benchmark-cascaded-diamond.mts",
|
|
71
|
+
"benchmark:deep-chain": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/run-benchmark-deep-chain.mts",
|
|
72
|
+
"build": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/build.mts",
|
|
73
|
+
"build:min": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/build.mts --skip-check",
|
|
74
|
+
"check:ext": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/check-ext.mts",
|
|
75
|
+
"check-all": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/check-all.mts",
|
|
54
76
|
"doc": "run-s doc:embed doc:embed:jsdoc doc:gen-sample-diffs fmt",
|
|
55
|
-
"doc:embed": "tsx ./scripts/cmd/embed-examples.mts",
|
|
56
|
-
"doc:embed:jsdoc": "tsx ./scripts/cmd/embed-examples-in-jsdoc.mts",
|
|
57
|
-
"doc:gen-sample-diffs": "tsx ./scripts/cmd/generate-sample-diffs.mts",
|
|
58
|
-
"fmt": "format-uncommitted --cwd .",
|
|
59
|
-
"fmt:diff": "format-diff-from origin/main --cwd .",
|
|
77
|
+
"doc:embed": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/embed-examples.mts",
|
|
78
|
+
"doc:embed:jsdoc": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/embed-examples-in-jsdoc.mts",
|
|
79
|
+
"doc:gen-sample-diffs": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/generate-sample-diffs.mts",
|
|
80
|
+
"fmt": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-repo-utils/src/cmd/format-uncommitted.mts --cwd .",
|
|
81
|
+
"fmt:diff": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-repo-utils/src/cmd/format-diff-from.mts origin/main --cwd .",
|
|
60
82
|
"fmt:full": "pnpm run z:prettier .",
|
|
61
83
|
"gi": "run-s gi:src fmt",
|
|
62
|
-
"gi:src": "gen-index-ts ./src --index-ext .mts --export-ext .mjs --target-ext .mts --target-ext .tsx --exclude entry-point.mts --exclude \"core/utils/**\"",
|
|
84
|
+
"gi:src": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-repo-utils/src/cmd/gen-index-ts.mts ./src --index-ext .mts --export-ext .mjs --target-ext .mts --target-ext .tsx --exclude entry-point.mts --exclude \"core/utils/**\"",
|
|
63
85
|
"lint": "eslint .",
|
|
64
86
|
"lint:fix": "eslint . --fix",
|
|
65
87
|
"test": "pnpm run z:vitest:node run",
|