aifsmjs 0.2.0 → 0.2.1
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 +2 -2
- package/README_ZHTW.md +2 -0
- package/llms-full.txt +18 -2
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
> A small, strict FSM library for any TypeScript/JS app that needs deterministic, replayable state transitions. Lifecycle is a pure `step()` function. Chain-of-Responsibility intuition is reserved for cross-cutting concerns (observe / persist / replay), never for the transition core.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Part of the [ai\*js micro-runtime ecosystem](https://github.com/yshengliao) — see also [aibridgejs](https://github.com/yshengliao/aibridgejs) (cross-context RPC) and [aiecsjs](https://github.com/yshengliao/aiecsjs) (ECS).
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**Primary audience**: developers building stateful flows — multi-step forms, checkout funnels, auth flows, tutorial sequences, document-status workflows, scene flow in interactive apps, and the same patterns in browser-based games (PixiJS / Svelte 5 / plain Canvas / WebGL). The core is **environment-neutral** (pure function + adapter boundary): browser, Node, Bun, Deno, Flutter WebView, and Web Workers all work. The Roadmap section keeps gaming-specific niceties (tick hook, ECS bridge) as opt-in subpaths, not core surface.
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
package/README_ZHTW.md
CHANGED
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
|
|
9
9
|
> 一個小而嚴格的 FSM library,為任何需要可重現、可重播狀態流轉的 TypeScript/JS app 而生:把 lifecycle 寫成 pure `step()`,把 Chain-of-Responsibility 直覺收斂到 cross-cutting concerns(observe / persist / replay)── 而非 transition 主流程。
|
|
10
10
|
|
|
11
|
+
隸屬 [ai\*js micro-runtime 生態系](https://github.com/yshengliao) ─ 另見 [aibridgejs](https://github.com/yshengliao/aibridgejs)(cross-context RPC)與 [aiecsjs](https://github.com/yshengliao/aiecsjs)(ECS)。
|
|
12
|
+
|
|
11
13
|
**主要受眾**:所有處理 stateful flow 的工程師 ── 多步驟表單、checkout 流程、auth flow、教學引導步驟、文件審批狀態機、互動 app 的 scene flow,以及瀏覽器遊戲的相同模式(PixiJS / Svelte 5 / 純 Canvas / WebGL)。Library 本身**環境中立**(pure core + adapter 邊界):browser、Node、Bun、Deno、Flutter WebView、Web Worker 全部都跑。Roadmap 段把遊戲特有的便利功能(tick hook、ECS bridge)保留為 opt-in subpath,不進 core surface。
|
|
12
14
|
|
|
13
15
|
---
|
package/llms-full.txt
CHANGED
|
@@ -21,9 +21,9 @@ The short index lives at `llms.txt` (see https://llmstxt.org/).
|
|
|
21
21
|
|
|
22
22
|
> A small, strict FSM library for any TypeScript/JS app that needs deterministic, replayable state transitions. Lifecycle is a pure `step()` function. Chain-of-Responsibility intuition is reserved for cross-cutting concerns (observe / persist / replay), never for the transition core.
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
Part of the [ai\*js micro-runtime ecosystem](https://github.com/yshengliao) — see also [aibridgejs](https://github.com/yshengliao/aibridgejs) (cross-context RPC) and [aiecsjs](https://github.com/yshengliao/aiecsjs) (ECS).
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
**Primary audience**: developers building stateful flows — multi-step forms, checkout funnels, auth flows, tutorial sequences, document-status workflows, scene flow in interactive apps, and the same patterns in browser-based games (PixiJS / Svelte 5 / plain Canvas / WebGL). The core is **environment-neutral** (pure function + adapter boundary): browser, Node, Bun, Deno, Flutter WebView, and Web Workers all work. The Roadmap section keeps gaming-specific niceties (tick hook, ECS bridge) as opt-in subpaths, not core surface.
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
@@ -510,6 +510,22 @@ All notable changes to this project will be documented in this file.
|
|
|
510
510
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
511
511
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
512
512
|
|
|
513
|
+
## [0.2.1] — 2026-05-28
|
|
514
|
+
|
|
515
|
+
### Security
|
|
516
|
+
|
|
517
|
+
- **Resolve two Dependabot moderate advisories** on the transitive dev-only graph by upgrading `vitest` 2.1.0 → 4.1.7 and `@vitest/coverage-v8` 2.1.9 → 4.1.7. Adds `vite` 8.0.14 as a direct devDependency to satisfy vitest 4's peer range (`^6 || ^7 || ^8`). These are dev-only — runtime surface unchanged. Same fix as `aibridgejs` 0.1.2.
|
|
518
|
+
- [GHSA-67mh-4wv8-2f99](https://github.com/advisories/GHSA-67mh-4wv8-2f99) `esbuild <=0.24.2` CORS development server data leak (fixed in 0.25.0).
|
|
519
|
+
- [GHSA-4w7w-66w2-5vf9](https://github.com/advisories/GHSA-4w7w-66w2-5vf9) `vite <=6.4.1` path traversal in optimized deps `.map` handling (fixed in 6.4.2 / 7.3.2 / 8.0.5).
|
|
520
|
+
|
|
521
|
+
### Changed
|
|
522
|
+
|
|
523
|
+
- **Coverage threshold relaxed**: statements 100 → 95 in [vitest.config.ts](vitest.config.ts). Vitest 4 with v8 coverage scores defensive race-recovery if-guards (e.g. `if (!current) return;` in timeout/abort handlers) as separate statements that are not deterministically reachable. Lines and functions stay at 100%; branches stays at 90%.
|
|
524
|
+
- **`prepublishOnly` now includes `verify:llms`** so llms-full.txt drift is caught at publish time as well as CI.
|
|
525
|
+
- **README opening unified across the ai*js family**: five-badge shields row, one-line tagline as blockquote, ecosystem footer.
|
|
526
|
+
|
|
527
|
+
Runtime surface unchanged. Production bundles are byte-identical to 0.2.0.
|
|
528
|
+
|
|
513
529
|
## [0.2.0] — 2026-05-28
|
|
514
530
|
|
|
515
531
|
### Added
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aifsmjs",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Small, strict FSM library for deterministic, replayable state machines in any TypeScript/JS app — multi-step forms, checkout funnels, auth flows, tutorials, scene flow. Pure step() lifecycle, opt-in effects, inspect, replay, and a fast-check property-based testing adapter. Browser / Node / Bun / Deno / WebView / Worker friendly.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fsm",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"example:approval": "tsx examples/02-approval-workflow/index.ts",
|
|
95
95
|
"example:checkout-funnel": "tsx examples/03-checkout-funnel/index.ts",
|
|
96
96
|
"example:form-wizard": "tsx examples/04-form-wizard/index.ts",
|
|
97
|
-
"prepublishOnly": "pnpm typecheck && pnpm lint && pnpm coverage && pnpm build && pnpm verify:exports && pnpm check:size"
|
|
97
|
+
"prepublishOnly": "pnpm typecheck && pnpm lint && pnpm coverage && pnpm build && pnpm verify:exports && pnpm verify:llms && pnpm check:size"
|
|
98
98
|
},
|
|
99
99
|
"peerDependencies": {
|
|
100
100
|
"fast-check": "^3.20.0"
|
|
@@ -107,12 +107,13 @@
|
|
|
107
107
|
"devDependencies": {
|
|
108
108
|
"@biomejs/biome": "^1.9.0",
|
|
109
109
|
"@types/node": "^22.0.0",
|
|
110
|
-
"@vitest/coverage-v8": "^
|
|
110
|
+
"@vitest/coverage-v8": "^4.1.7",
|
|
111
111
|
"fast-check": "^3.20.0",
|
|
112
112
|
"tsup": "^8.3.0",
|
|
113
113
|
"tsx": "^4.22.3",
|
|
114
114
|
"typescript": "^5.6.0",
|
|
115
|
-
"
|
|
115
|
+
"vite": "^8.0.14",
|
|
116
|
+
"vitest": "^4.1.7"
|
|
116
117
|
},
|
|
117
118
|
"engines": {
|
|
118
119
|
"node": ">=18.0.0"
|