From 87eaac205431d3255f8564fe45b8fc209a35ff3e Mon Sep 17 00:00:00 2001 From: Den Pol Date: Mon, 12 Oct 2026 22:30:26 +0300 Subject: [PATCH 1/9] add reactive-engine --- README.md | 606 ++++++++++------- package.json | 4 +- test/frameworks/index.ts | 2 + test/frameworks/reactiveEngine.ts | 42 ++ yarn.lock | 1060 +++++++++++++++++++++++++++++ 5 files changed, 1449 insertions(+), 265 deletions(-) create mode 100644 test/frameworks/reactiveEngine.ts create mode 100644 yarn.lock diff --git a/README.md b/README.md index c356818..4884758 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # Reactive Framework Test Suite -Cross-library test suite for comparing reactive signal behavior across **15 frameworks** with **178 test cases**. +Cross-library test suite for comparing reactive signal behavior across **16 frameworks** with **178 test cases**. -> 2181 passed, 277 failed, 212 skipped out of 2670 total runs +> 2324 passed, 312 failed, 212 skipped out of 2848 total runs Test cases are collected and adapted from the test suites of all participating frameworks — thanks to every project for their thorough testing work. This suite focuses on **reactive semantics** (propagation, batching, disposal, edge cases), not API completeness. Tests that require an optional capability (e.g. `batch`) are skipped (⬜) for frameworks that don't expose it, rather than marked as failures. @@ -17,40 +17,42 @@ The **Behavioral Differences** section is separate — those tests reflect desig | Framework | Package | Version | Published | |-----------|---------|---------|-----------| | alien-signals | `alien-signals` | 3.2.1 | 2026-05-14 | -| @preact/signals-core | `@preact/signals-core` | 1.14.2 | 2026-05-11 | +| @preact/signals-core | `@preact/signals-core` | 1.14.4 | 2026-07-07 | | @reactively/core | `@reactively/core` | 0.0.8 | 2023-03-20 | | tansu | `@amadeus-it-group/tansu` | 2.0.0 | 2024-12-04 | | signal-polyfill (TC39) | `signal-polyfill` | 0.2.2 | 2025-01-17 | -| @vue/reactivity | `@vue/reactivity` | 3.5.34 | 2026-05-06 | -| mobx | `mobx` | 6.15.3 | 2026-05-07 | -| @reatom/core | `@reatom/core` | 1001.0.0 | 2026-05-13 | -| svelte | `svelte` | 5.55.5 | 2026-04-23 | -| solid-js | `solid-js` | 1.9.12 | 2026-03-24 | +| @vue/reactivity | `@vue/reactivity` | 3.5.43 | 2026-09-17 | +| mobx | `mobx` | 6.16.1 | 2026-06-08 | +| @reatom/core | `@reatom/core` | 1001.3.0 | 2026-07-20 | +| svelte | `svelte` | 5.57.2 | 2026-10-06 | +| solid-js | `solid-js` | 1.9.17 | 2026-10-07 | | @solidjs/signals | `@solidjs/signals` | 0.3.2 | 2025-04-29 | | S.js | `s-js` | 0.4.9 | 2018-07-28 | | pota | `pota` | 0.7.82 | 2024-02-01 | -| @angular/core | `@angular/core` | 20.3.20 | 2026-05-06 | +| @angular/core | `@angular/core` | 20.3.33 | 2026-09-30 | | anod | `anod` | 0.9.1 | 2026-04-27 | +| @pravosleva/reactive-engine | `@pravosleva/reactive-engine` | 2.0.0-beta | 2026-10-12 | ## Summary -| Framework | Pass | Fail | Skip | Total | -| ---------------------- | ---- | ---- | ---- | ----- | -| alien-signals | 178 | 0 | 0 | 178 | -| @preact/signals-core | 175 | 3 | 0 | 178 | -| @reatom/core | 174 | 4 | 0 | 178 | -| @vue/reactivity | 171 | 7 | 0 | 178 | -| anod | 160 | 18 | 0 | 178 | -| solid-js | 153 | 25 | 0 | 178 | -| tansu | 151 | 6 | 21 | 178 | -| @solidjs/signals | 149 | 8 | 21 | 178 | -| signal-polyfill (TC39) | 141 | 8 | 29 | 178 | -| mobx | 139 | 18 | 21 | 178 | -| @angular/core | 137 | 12 | 29 | 178 | -| S.js | 130 | 48 | 0 | 178 | -| svelte | 129 | 13 | 36 | 178 | -| @reactively/core | 101 | 22 | 55 | 178 | -| pota | 93 | 85 | 0 | 178 | +| Framework | Pass | Fail | Skip | Total | +| --------------------------- | ---- | ---- | ---- | ----- | +| alien-signals | 178 | 0 | 0 | 178 | +| @preact/signals-core | 174 | 4 | 0 | 178 | +| @reatom/core | 174 | 4 | 0 | 178 | +| @vue/reactivity | 171 | 7 | 0 | 178 | +| anod | 160 | 18 | 0 | 178 | +| solid-js | 153 | 25 | 0 | 178 | +| tansu | 151 | 6 | 21 | 178 | +| @solidjs/signals | 149 | 8 | 21 | 178 | +| @pravosleva/reactive-engine | 143 | 35 | 0 | 178 | +| signal-polyfill (TC39) | 141 | 8 | 29 | 178 | +| mobx | 139 | 18 | 21 | 178 | +| @angular/core | 137 | 12 | 29 | 178 | +| svelte | 130 | 12 | 36 | 178 | +| S.js | 130 | 48 | 0 | 178 | +| @reactively/core | 101 | 22 | 55 | 178 | +| pota | 93 | 85 | 0 | 178 | ## Results @@ -69,23 +71,24 @@ Legend: ─→ dependency edge (downstream reads upstream) ``` -| Framework | #1..#3,... ×12 | #7 | #116,#190,#207 | #187,#189,#205 | #188 | #192 | #204 | -| ---------------------- | -------------- | -- | -------------- | -------------- | ---- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ⬜ | -| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ⬜ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| mobx | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ⬜ | -| solid-js | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| S.js | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | -| pota | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ⬜ | -| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| Framework | #1..#3,... ×9 | #7 | #9..#10,#206 | #116,#207 | #187,#189,#205 | #188 | #190 | #192 | #204 | +| --------------------------- | ------------- | -- | ------------ | --------- | -------------- | ---- | ---- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | +| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| mobx | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | +| solid-js | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| S.js | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | +| pota | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | +| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
Tests with failures or skips @@ -102,6 +105,32 @@ Legend: Both branches unchanged. d must NOT re-evaluate (propagation cut). +#### #9 linear convergence + +``` + S(a) → C(b) + \ / + C(c) + / + S(a) → C(d) [same a] +``` + + a→b, {a,b}→c, {a,c}→d + +Increasing fan-in at each level. Each node evaluates once. + +#### #10 exponential convergence + + a→b, {b,a}→c, {c,b}→d, {d,c}→e + +``` + S(a) ─→ C(b) ─→ C(c) ─→ C(d) ─→ C(e) + \─────→ / \─────→ / \─────→ / +``` + +Each level reads previous two. Naive impl is O(2^n). +Each node must evaluate exactly once. + #### #116 other listeners still notified after one disposes ``` @@ -206,6 +235,22 @@ Both change — c and effect must evaluate only once each. Two signals cross-feed two computeds joining at e. Both signals change — c, d, e each evaluate once. +#### #206 stacked diamonds + +``` + S(a) + / \ + C(b) C(c) + \ / + C(d) + / \ + C(e) C(f) + \ / + C(g) +``` + +Two diamonds stacked. Each node evaluates once. + #### #207 wide fan-out: all effects fire once ``` @@ -240,23 +285,24 @@ Legend: ?─→ conditional (dynamic) dependency edge ``` -| Framework | #12..#13 | #14,#16,#165,... ×5 | #166,#194,... ×4 | #193 | #197 | #200 | -| ---------------------- | -------- | ------------------- | ---------------- | ---- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| mobx | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| solid-js | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| S.js | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | -| pota | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| Framework | #12..#13 | #14,#16,#165,... ×5 | #166,#198..#199 | #193 | #194 | #197 | #200 | +| --------------------------- | -------- | ------------------- | --------------- | ---- | ---- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| mobx | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| solid-js | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| S.js | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | +| pota | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
Tests with failures or skips @@ -395,23 +441,24 @@ Legend: ─→ dependency edge (downstream reads upstream) ``` -| Framework | #18,#25 | #19,#21..#22,... ×7 | #23 | #147 | #149 | #27 | -| ---------------------- | ------- | ------------------- | --- | ---- | ---- | --- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | -| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | -| @vue/reactivity | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| mobx | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | -| solid-js | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| S.js | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | -| pota | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | -| @angular/core | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | -| anod | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| Framework | #18,#25 | #19,#21,#24,... ×6 | #22 | #23 | #147 | #149 | #27 | +| --------------------------- | ------- | ------------------ | --- | --- | ---- | ---- | --- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | +| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| mobx | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | +| solid-js | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| S.js | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | +| pota | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | +| anod | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ |
Tests with failures or skips @@ -425,6 +472,15 @@ Legend: Reading a computed twice without changing its dep must not re-evaluate the compute function (result is cached). +#### #22 chained computed avoids redundant re-compute + +``` + S(a) → C(b) → C(c) → C(d) +``` + +Linear chain with call counters. After one source change, +each computed in the chain must re-evaluate exactly once. + #### #23 sync access of invalidated chained computed runs effect ``` @@ -494,23 +550,24 @@ Legend: ─→ dependency edge (downstream reads upstream) ``` -| Framework | #28,#34 | #169 | #220 | -| ---------------------- | ------- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | ✅ | -| tansu | ✅ | ✅ | ❌ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | -| @vue/reactivity | ✅ | ✅ | ✅ | -| mobx | ❌ | ✅ | ❌ | -| @reatom/core | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | -| solid-js | ✅ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ✅ | -| S.js | ❌ | ❌ | ❌ | -| pota | ✅ | ✅ | ✅ | -| @angular/core | ✅ | ✅ | ✅ | -| anod | ✅ | ✅ | ✅ | +| Framework | #28 | #34 | #169 | #220 | +| --------------------------- | --- | --- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | ✅ | ✅ | +| tansu | ✅ | ✅ | ✅ | ❌ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | +| mobx | ❌ | ❌ | ✅ | ❌ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ✅ | +| solid-js | ✅ | ✅ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | +| S.js | ❌ | ❌ | ❌ | ❌ | +| pota | ✅ | ✅ | ✅ | ✅ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | +| anod | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ❌ | ✅ | ❌ |
Tests with failures or skips @@ -575,23 +632,24 @@ Legend: dispose effect disposal call ``` -| Framework | #35,#143,... ×4 | #36,#108,#217 | #38 | #39,#110,#242 | #40 | #42 | #111 | #141 | #178 | #201 | #202 | #216 | #222 | #229 | #230 | #231 | #233 | #235 | #236 | #237,#243 | #238,#241 | -| ---------------------- | --------------- | ------------- | --- | ------------- | --- | --- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | --------- | --------- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ❌ | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | -| tansu | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ✅ | ⬜ | ❌ | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ❌ | ⬜ | ⬜ | ⬜ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ❌ | ⬜ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| mobx | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ✅ | ⬜ | ✅ | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ❌ | ⬜ | ⬜ | ⬜ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ⬜ | ⬜ | ✅ | ⬜ | ✅ | ✅ | ✅ | -| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ✅ | ⬜ | ✅ | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | -| S.js | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | -| pota | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | ❌ | ⬜ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | ❌ | ✅ | ✅ | -| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | +| Framework | #35,#143,... ×4 | #36,#108,#217 | #38 | #39,#110,#242 | #40 | #42 | #111 | #141 | #178 | #201 | #202 | #216 | #222 | #229 | #230 | #231 | #233 | #235 | #236 | #237,#243 | #238,#241 | +| --------------------------- | --------------- | ------------- | --- | ------------- | --- | --- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | --------- | --------- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ❌ | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | +| tansu | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ✅ | ⬜ | ❌ | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ❌ | ⬜ | ⬜ | ⬜ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ❌ | ⬜ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| mobx | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ✅ | ⬜ | ✅ | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ❌ | ⬜ | ⬜ | ⬜ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ⬜ | ⬜ | ✅ | ⬜ | ✅ | ✅ | ✅ | +| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ✅ | ⬜ | ✅ | ✅ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | +| S.js | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | +| pota | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | ❌ | ⬜ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | ❌ | ✅ | ✅ | +| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tests with failures or skips @@ -883,23 +941,24 @@ Legend: ✕ disposed / cleaned up ``` -| Framework | #43,#48 | #45 | #46 | #47 | #163 | #164,#226..#228 | #170 | #209 | #210 | -| ---------------------- | ------- | --- | --- | --- | ---- | --------------- | ---- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | -| @reactively/core | ❌ | ⬜ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | -| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | -| mobx | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ⬜ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | -| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | -| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| S.js | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | -| pota | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | -| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| Framework | #43,#48 | #45 | #46 | #47 | #163 | #164,#226..#228 | #170 | #209 | #210 | +| --------------------------- | ------- | --- | --- | --- | ---- | --------------- | ---- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| @reactively/core | ❌ | ⬜ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| mobx | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ⬜ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | +| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| S.js | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| pota | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
Tests with failures or skips @@ -1064,23 +1123,24 @@ Legend: ═→ inner write (node writes to a signal during evaluation) ``` -| Framework | #50,#186,... ×4 | #51 | #52,#112,... ×11 | #53,#56,... ×5 | #54 | #179 | #57 | #182 | #183,#185 | #213 | #212 | -| ---------------------- | --------------- | --- | ---------------- | -------------- | --- | ---- | --- | ---- | --------- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ❌ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ✅ | ✅ | -| tansu | ✅ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ❌ | ❌ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| mobx | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ⬜ | ✅ | ❌ | ✅ | -| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | -| @solidjs/signals | ✅ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | -| S.js | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | -| pota | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ⬜ | ✅ | ✅ | ✅ | -| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | +| Framework | #50,#224..#225 | #51 | #52,#112,... ×11 | #53,#56,... ×4 | #54 | #180 | #179 | #57 | #182 | #183 | #185 | #186 | #213 | #212 | +| --------------------------- | -------------- | --- | ---------------- | -------------- | --- | ---- | ---- | --- | ---- | ---- | ---- | ---- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ❌ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ✅ | ❌ | ✅ | ✅ | +| tansu | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ✅ | ✅ | ❌ | ❌ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| mobx | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | +| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | +| @solidjs/signals | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| S.js | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | +| pota | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | +| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
Tests with failures or skips @@ -1293,23 +1353,24 @@ Legend: ↔ / ⟳ cyclic dependency ``` -| Framework | #61 | #63 | #153 | #64,#221,#223 | -| ---------------------- | --- | --- | ---- | ------------- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | ✅ | ❌ | -| tansu | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | -| mobx | ✅ | ✅ | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | ❌ | ✅ | -| svelte | ✅ | ✅ | ❌ | ✅ | -| solid-js | ✅ | ✅ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | -| S.js | ✅ | ✅ | ✅ | ✅ | -| pota | ✅ | ❌ | ✅ | ✅ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | -| anod | ✅ | ✅ | ✅ | ✅ | +| Framework | #61 | #63 | #153 | #64,#221,#223 | +| --------------------------- | --- | --- | ---- | ------------- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | ✅ | ❌ | +| tansu | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | +| mobx | ✅ | ✅ | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | ❌ | ✅ | +| svelte | ✅ | ✅ | ❌ | ✅ | +| solid-js | ✅ | ✅ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | +| S.js | ✅ | ✅ | ✅ | ✅ | +| pota | ✅ | ❌ | ✅ | ✅ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | +| anod | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ |
Tests with failures or skips @@ -1391,23 +1452,24 @@ Legend: ─→ dependency edge (downstream reads upstream) ``` -| Framework | #66,#72 | #67,#125,#128 | #69 | #70 | #119,#124,#127 | #120 | #121..#122,... ×4 | #123 | #126 | #130 | #131 | #132 | -| ---------------------- | ------- | ------------- | --- | --- | -------------- | ---- | ----------------- | ---- | ---- | ---- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ❌ | ⬜ | ⬜ | -| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | -| mobx | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ❌ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | -| solid-js | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | -| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | -| S.js | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | -| pota | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | -| @angular/core | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | -| anod | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | +| Framework | #66,#72 | #67,#128 | #69 | #70 | #119 | #120 | #121..#122,... ×4 | #123 | #124,#127 | #125 | #126 | #130 | #131 | #132 | +| --------------------------- | ------- | -------- | --- | --- | ---- | ---- | ----------------- | ---- | --------- | ---- | ---- | ---- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ❌ | ⬜ | ⬜ | +| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| mobx | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ❌ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | +| solid-js | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| S.js | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | +| pota | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| @angular/core | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | +| anod | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ |
Tests with failures or skips @@ -1621,23 +1683,24 @@ Legend: ╌╌→ untracked read (no dependency created) ``` -| Framework | #75,#156 | #76 | #117..#118 | #218 | #219 | -| ---------------------- | -------- | --- | ---------- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | -| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ⬜ | ⬜ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | -| mobx | ✅ | ❌ | ✅ | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | -| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | -| S.js | ✅ | ✅ | ✅ | ✅ | ❌ | -| pota | ❌ | ✅ | ✅ | ❌ | ❌ | -| @angular/core | ✅ | ✅ | ✅ | ⬜ | ⬜ | -| anod | ✅ | ✅ | ✅ | ✅ | ✅ | +| Framework | #75,#156 | #76 | #117..#118 | #218 | #219 | +| --------------------------- | -------- | --- | ---------- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | +| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ⬜ | ⬜ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | +| mobx | ✅ | ❌ | ✅ | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | +| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | +| S.js | ✅ | ✅ | ✅ | ✅ | ❌ | +| pota | ❌ | ✅ | ✅ | ❌ | ❌ | +| @angular/core | ✅ | ✅ | ✅ | ⬜ | ⬜ | +| anod | ✅ | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ |
Tests with failures or skips @@ -1736,23 +1799,24 @@ Legend: ⚡ node that may throw ``` -| Framework | #84,#91,#155 | #89..#90 | #92,#211,#93 | #154 | #177 | #247 | -| ---------------------- | ------------ | -------- | ------------ | ---- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ✅ | ⬜ | ✅ | ⬜ | ❌ | ✅ | -| tansu | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| mobx | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | -| solid-js | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | -| @solidjs/signals | ✅ | ⬜ | ✅ | ✅ | ❌ | ❌ | -| S.js | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | -| pota | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | -| @angular/core | ✅ | ✅ | ✅ | ⬜ | ❌ | ❌ | -| anod | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| Framework | #84,#91,#155 | #89..#90 | #92,#211,#93 | #154 | #177 | #247 | +| --------------------------- | ------------ | -------- | ------------ | ---- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ✅ | ⬜ | ✅ | ⬜ | ❌ | ✅ | +| tansu | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| mobx | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | +| solid-js | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | +| @solidjs/signals | ✅ | ⬜ | ✅ | ✅ | ❌ | ❌ | +| S.js | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | +| pota | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| @angular/core | ✅ | ✅ | ✅ | ⬜ | ❌ | ❌ | +| anod | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
Tests with failures or skips @@ -1880,27 +1944,39 @@ Legend: ─→ dependency edge ``` -| Framework | #94,... ×4 | #95 | -| ---------------------- | ---------- | --- | -| alien-signals | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | -| tansu | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | -| @vue/reactivity | ✅ | ✅ | -| mobx | ✅ | ❌ | -| @reatom/core | ✅ | ✅ | -| svelte | ✅ | ✅ | -| solid-js | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | -| S.js | ✅ | ✅ | -| pota | ✅ | ✅ | -| @angular/core | ✅ | ✅ | -| anod | ✅ | ✅ | +| Framework | #94 | #95 | #158..#159,#97 | +| --------------------------- | --- | --- | -------------- | +| alien-signals | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | ✅ | +| tansu | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | +| @vue/reactivity | ✅ | ✅ | ✅ | +| mobx | ✅ | ❌ | ✅ | +| @reatom/core | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | +| solid-js | ✅ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ✅ | +| S.js | ✅ | ✅ | ✅ | +| pota | ✅ | ✅ | ✅ | +| @angular/core | ✅ | ✅ | ✅ | +| anod | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ❌ | ✅ | ✅ |
Tests with failures or skips +#### #94 stale invocation does not trigger pending computations + +``` + S(a) ─→ C(b) ─→ C(d) + S(a) ─→ C(c) ─→ C(d) +``` + +Diamond dependency: both C(b) and C(c) depend on S(a), +and C(d) depends on both. After a single write to S(a), +C(b) should re-evaluate exactly once and C(d) exactly once. + #### #95 stale computations evaluated before their dependees ``` @@ -1930,23 +2006,24 @@ Legend: ──X disposed / removed edge ``` -| Framework | #99 | #160..#161,#215 | -| ---------------------- | --- | --------------- | -| alien-signals | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | -| tansu | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | -| @vue/reactivity | ✅ | ✅ | -| mobx | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | -| svelte | ✅ | ✅ | -| solid-js | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | -| S.js | ✅ | ✅ | -| pota | ✅ | ❌ | -| @angular/core | ✅ | ✅ | -| anod | ✅ | ✅ | +| Framework | #99 | #160..#161,#215 | +| --------------------------- | --- | --------------- | +| alien-signals | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | +| tansu | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | +| @vue/reactivity | ✅ | ✅ | +| mobx | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | +| svelte | ✅ | ✅ | +| solid-js | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | +| S.js | ✅ | ✅ | +| pota | ✅ | ❌ | +| @angular/core | ✅ | ✅ | +| anod | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ |
Tests with failures or skips @@ -2011,23 +2088,24 @@ Legend: ─→ dependency edge ``` -| Framework | #17 | #15 | #146 | #29,#167 | #30 | #176 | #173 | #174 | #88 | #106 | #86,#107 | #49 | #62 | #175 | #246 | #244 | -| ---------------------- | ----- | ------------------ | ---------------- | --------- | ---------- | ------------ | ---------- | ---------- | ---------------- | ----------- | ------------- | -------------------- | ------------------ | ------------------ | ----------------- | ---------- | -| alien-signals | lazy | no subscription | single recompute | === | skips | returns void | post-write | post-write | keeps subscribed | halts flush | returns stale | runs 1x per write | no throw | unbatched (2 runs) | children survive | LIFO | -| @preact/signals-core | lazy | no subscription | single recompute | === | skips | returns void | post-write | post-write | unsubscribes | continues | caches error | runs 2x per write | cycle detected | batched | children survive | no cascade | -| @reactively/core | lazy | no subscription | single recompute | === | skips | ⬜ | throws | throws | keeps subscribed | halts flush | re-evaluates | runs 2x per write | manual bail (200+) | error | disposes children | ⬜ | -| tansu | lazy | no subscription | single recompute | Object.is | propagates | returns void | post-write | post-write | keeps subscribed | continues | caches error | runs 2x per write | manual bail (200+) | batched | children survive | ⬜ | -| signal-polyfill (TC39) | lazy | no subscription | single recompute | Object.is | skips | ⬜ | post-write | post-write | keeps subscribed | continues | caches error | runs 1x, then blocks | no throw | unbatched (2 runs) | children survive | no cascade | -| @vue/reactivity | lazy | no subscription | single recompute | Object.is | skips | returns void | post-write | post-write | keeps subscribed | continues | returns stale | runs 1x per write | no throw | unbatched (2 runs) | children survive | no cascade | -| mobx | lazy | no subscription | single recompute | === | propagates | returns void | post-write | post-write | keeps subscribed | continues | re-evaluates | runs 2x per write | no throw | batched | children survive | ⬜ | -| @reatom/core | lazy | no subscription | single recompute | Object.is | skips | returns void | post-write | post-write | unsubscribes | continues | caches error | runs 2x per write | cycle detected | batched | disposes children | FIFO | -| svelte | lazy | no subscription | single recompute | === | skips | ⬜ | post-write | throws | unsubscribes | halts flush | re-evaluates | runs 2x per write | cycle detected | batched | children survive | no cascade | -| solid-js | eager | subscribes eagerly | 2 recomputes | === | skips | returns void | post-write | post-write | unsubscribes | halts flush | error | runs 2x per write | manual bail (200+) | batched | children survive | no cascade | -| @solidjs/signals | lazy | no subscription | single recompute | === | skips | returns void | post-write | post-write | keeps subscribed | halts flush | caches error | runs 1x, then blocks | no throw | batched | children survive | ⬜ | -| S.js | eager | subscribes eagerly | 2 recomputes | === | propagates | returns void | post-write | throws | keeps subscribed | halts flush | error | runs 2x per write | manual bail (200+) | batched | children survive | no cascade | -| pota | lazy | no subscription | 2 recomputes | === | skips | returns void | unknown | unknown | error | error | re-evaluates | no re-run | error | batched | disposes children | no cascade | -| @angular/core | lazy | no subscription | single recompute | Object.is | skips | ⬜ | post-write | post-write | keeps subscribed | halts flush | caches error | runs 2x per write | manual bail (200+) | unbatched (2 runs) | children survive | no cascade | -| anod | eager | no subscription | single recompute | === | skips | returns void | post-write | post-write | unsubscribes | continues | caches error | runs 2x per write | manual bail (200+) | batched | children survive | LIFO | +| Framework | #17 | #15 | #146 | #29,#167 | #30 | #176 | #173 | #174 | #88 | #106 | #86,#107 | #49 | #62 | #175 | #246 | #244 | +| --------------------------- | ----- | ------------------ | ---------------- | --------- | ---------- | ------------ | ---------- | ---------- | ---------------- | ----------- | ------------- | -------------------- | ------------------ | ------------------ | ----------------- | ---------- | +| alien-signals | lazy | no subscription | single recompute | === | skips | returns void | post-write | post-write | keeps subscribed | halts flush | returns stale | runs 1x per write | no throw | unbatched (2 runs) | children survive | LIFO | +| @preact/signals-core | lazy | no subscription | single recompute | === | skips | returns void | post-write | post-write | unsubscribes | continues | caches error | runs 2x per write | cycle detected | batched | children survive | no cascade | +| @reactively/core | lazy | no subscription | single recompute | === | skips | ⬜ | throws | throws | keeps subscribed | halts flush | re-evaluates | runs 2x per write | manual bail (200+) | error | disposes children | ⬜ | +| tansu | lazy | no subscription | single recompute | Object.is | propagates | returns void | post-write | post-write | keeps subscribed | continues | caches error | runs 2x per write | manual bail (200+) | batched | children survive | ⬜ | +| signal-polyfill (TC39) | lazy | no subscription | single recompute | Object.is | skips | ⬜ | post-write | post-write | keeps subscribed | continues | caches error | runs 1x, then blocks | no throw | unbatched (2 runs) | children survive | no cascade | +| @vue/reactivity | lazy | no subscription | single recompute | Object.is | skips | returns void | post-write | post-write | keeps subscribed | continues | returns stale | runs 1x per write | no throw | unbatched (2 runs) | children survive | no cascade | +| mobx | lazy | no subscription | single recompute | === | propagates | returns void | post-write | post-write | keeps subscribed | continues | re-evaluates | runs 2x per write | no throw | batched | children survive | ⬜ | +| @reatom/core | lazy | no subscription | single recompute | Object.is | skips | returns void | post-write | post-write | unsubscribes | continues | caches error | runs 2x per write | cycle detected | batched | disposes children | FIFO | +| svelte | lazy | no subscription | single recompute | === | skips | ⬜ | post-write | throws | unsubscribes | halts flush | re-evaluates | runs 2x per write | cycle detected | batched | children survive | no cascade | +| solid-js | eager | subscribes eagerly | 2 recomputes | === | skips | returns void | post-write | post-write | unsubscribes | halts flush | error | runs 2x per write | manual bail (200+) | batched | children survive | no cascade | +| @solidjs/signals | lazy | no subscription | single recompute | === | skips | returns void | post-write | post-write | keeps subscribed | halts flush | caches error | runs 1x, then blocks | no throw | batched | children survive | ⬜ | +| S.js | eager | subscribes eagerly | 2 recomputes | === | propagates | returns void | post-write | throws | keeps subscribed | halts flush | error | runs 2x per write | manual bail (200+) | batched | children survive | no cascade | +| pota | lazy | no subscription | 2 recomputes | === | skips | returns void | unknown | unknown | error | error | re-evaluates | no re-run | error | batched | disposes children | no cascade | +| @angular/core | lazy | no subscription | single recompute | Object.is | skips | ⬜ | post-write | post-write | keeps subscribed | halts flush | caches error | runs 2x per write | manual bail (200+) | unbatched (2 runs) | children survive | no cascade | +| anod | eager | no subscription | single recompute | === | skips | returns void | post-write | post-write | unsubscribes | continues | caches error | runs 2x per write | manual bail (200+) | batched | children survive | LIFO | +| @pravosleva/reactive-engine | lazy | no subscription | 2 recomputes | === | propagates | returns void | post-write | post-write | keeps subscribed | halts flush | re-evaluates | runs 1x per write | no throw | unbatched (2 runs) | children survive | no cascade |
Test descriptions diff --git a/package.json b/package.json index aff5767..0954dae 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "@amadeus-it-group/tansu": "^2.0.0", "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", + "@pravosleva/reactive-engine": "^2.0.0", "@preact/signals-core": "^1.8.0", "@reactively/core": "^0.0.8", "@reatom/core": "^1001.0.0", @@ -45,6 +46,7 @@ "anod": "^0.9.1", "mobx": "^6.13.0", "pota": "^0.7.0", + "rxjs": "^7.8.2", "s-js": "^0.4.9", "signal-polyfill": "^0.2.2", "solid-js": "^1.9.0", @@ -52,4 +54,4 @@ "typescript": "^5.8.0", "vitest": "^3.2.0" } -} +} \ No newline at end of file diff --git a/test/frameworks/index.ts b/test/frameworks/index.ts index f836650..919b891 100644 --- a/test/frameworks/index.ts +++ b/test/frameworks/index.ts @@ -15,6 +15,7 @@ import { tansuFramework } from "./tansu.js"; import { tc39SignalsFramework } from "./tc39Signals.js"; import { vueReactivityFramework } from "./vueReactivity.js"; import { solidSignalsFramework } from "./solidSignals.js"; +import { reactiveEngineFrameork } from './reactiveEngine.js'; export const frameworks: ReactiveFramework[] = [ alienSignalsFramework, @@ -32,4 +33,5 @@ export const frameworks: ReactiveFramework[] = [ potaFramework, angularSignalsFramework, anodFramework, + reactiveEngineFrameork, ]; diff --git a/test/frameworks/reactiveEngine.ts b/test/frameworks/reactiveEngine.ts new file mode 100644 index 0000000..1ab24e4 --- /dev/null +++ b/test/frameworks/reactiveEngine.ts @@ -0,0 +1,42 @@ +import { ReactiveFramework } from "../../src/framework.js" +import { ReactiveEngineCore } from '@pravosleva/reactive-engine' + +const engine = new ReactiveEngineCore() + +export const reactiveEngineFrameork: ReactiveFramework = { + name: "@pravosleva/reactive-engine", + + signal(initialValue: T) { + const sig = engine.signal(initialValue) + return { + read: () => sig.value, + write: (newValue: T) => { + sig.value = newValue + } + } + }, + + computed(fn: () => T) { + const comp = engine.computed(fn) + return { + read: () => comp.value + } + }, + + effect(fn: () => void | (() => void)) { + const unsubscribe = engine.effect(fn) + return () => unsubscribe() + }, + + run(fn: () => void) { + return fn() + }, + + batch(fn: () => void) { + engine.batch(fn) + }, + + untracked(fn: () => T): T { + return engine.untrack(fn) + } +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..e6a0840 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,1060 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@amadeus-it-group/tansu@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@amadeus-it-group/tansu/-/tansu-2.0.0.tgz#2d069364fa1af21e15874b6faf76ab71b4e6bff9" + integrity sha512-KebRcEFWkdKix1vN12Y8cuGWdWKqkCzXiesXnxSAZbEULBDlPwm0sey+ygP98PudM1gBygtiWyWzGTeAL5+jIw== + +"@angular/compiler@^20.0.0": + version "20.3.33" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-20.3.33.tgz#047e40bc5280a43b58eca79081c8842be6c2fbf0" + integrity sha512-tqKZaapDV05r2SXA6bOzTSpiNhSoqZR9Usuacs5myMpbpt4gwNMAZkgaIoIcPutnhbd3qT+Og54VCVvCOXF8pg== + dependencies: + tslib "^2.3.0" + +"@angular/core@^20.0.0": + version "20.3.33" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-20.3.33.tgz#27b44a9b1f4981f9d03ef573a027f350e4c564ae" + integrity sha512-Ld/AhODjPf8c14xUOWUnJygaZb2TsRy99ZhwFkEsRJOzqauzEFovb8Hb2MEaB1e4RolADN+HWxPvE4n+u3HFmA== + dependencies: + tslib "^2.3.0" + +"@babel/code-frame@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.7.tgz#f2fbbfea87c44a21590ec515b778b2c26d8866e7" + integrity sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw== + dependencies: + "@babel/helper-validator-identifier" "^7.29.7" + js-tokens "^4.0.0" + picocolors "^1.1.1" + +"@babel/generator@^7.29.8": + version "7.29.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.8.tgz#4b0b887885422643339e09022148a4c4ebaa4979" + integrity sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg== + dependencies: + "@babel/parser" "^7.29.8" + "@babel/types" "^7.29.8" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + +"@babel/helper-annotate-as-pure@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz#c70fe3c6ecbdc3fd2dd1b0f498428b88b82ce47f" + integrity sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw== + dependencies: + "@babel/types" "^7.29.7" + +"@babel/helper-globals@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.29.7.tgz#f04a96fbd8473241b1079243f5b3f03a3010ab7b" + integrity sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA== + +"@babel/helper-module-imports@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz#ef25048a518e828d7393fac5882ddd73921d7396" + integrity sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g== + dependencies: + "@babel/traverse" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/helper-plugin-utils@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz#c0a0766f1a13617d8a17407d7ab8f9d486225ea4" + integrity sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw== + +"@babel/helper-string-parser@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz#7f0871d99824d23137d60f86fcf6130fd5a1b51f" + integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw== + +"@babel/helper-validator-identifier@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz#bd87084ced0c796ec46bda492de6e83d29e89fc2" + integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== + +"@babel/parser@^7.29.7", "@babel/parser@^7.29.8", "@babel/parser@^7.29.9": + version "7.29.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.9.tgz#e7ee0a24f752c5296c6455855ccb72662e67ea96" + integrity sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA== + dependencies: + "@babel/types" "^7.29.8" + +"@babel/plugin-syntax-jsx@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz#622c16f9ad63782fe6e83dadc7e40330744b7f1e" + integrity sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-react-jsx@^7.23.4": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz#3d16a0e5773f079400a8c82a190709cdf92ee204" + integrity sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-module-imports" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/plugin-syntax-jsx" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/template@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.29.7.tgz#4d9d4004f645cdd304de958c725162784ecac700" + integrity sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg== + dependencies: + "@babel/code-frame" "^7.29.7" + "@babel/parser" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/traverse@^7.29.7": + version "7.29.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.10.tgz#08ab387639b4a67304511259c7da6cf23a82e91c" + integrity sha512-B3lYAs2nkKskbgQ1nfy8Ma9ao9Q1rntTAQHrzzyDuj+TSO+X3le6PfWwqDvodsb+OumE10eMFfuMCTQSQ5iuIQ== + dependencies: + "@babel/code-frame" "^7.29.7" + "@babel/generator" "^7.29.8" + "@babel/helper-globals" "^7.29.7" + "@babel/parser" "^7.29.9" + "@babel/template" "^7.29.7" + "@babel/types" "^7.29.8" + debug "^4.3.1" + +"@babel/types@^7.29.7", "@babel/types@^7.29.8": + version "7.29.8" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.8.tgz#1229eef31d85156d70fa3f4cd859376d0eaf6863" + integrity sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg== + dependencies: + "@babel/helper-string-parser" "^7.29.7" + "@babel/helper-validator-identifier" "^7.29.7" + +"@esbuild/aix-ppc64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz#bf6e10303bcf2e7c686975fa52f937ec2728d8bc" + integrity sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ== + +"@esbuild/android-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz#0c6246bc8d2c4d172aac2db3fb1190d72bd65504" + integrity sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A== + +"@esbuild/android-arm@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.2.tgz#2d84ece6a4e2684d92be26ee13d42757d831c381" + integrity sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg== + +"@esbuild/android-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.2.tgz#fc38d4d6358d8dc1cf53f09f7589fe436eb64801" + integrity sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q== + +"@esbuild/darwin-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz#f83afeeac1d7dac01c7a2fd012b3e451a0591fcc" + integrity sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw== + +"@esbuild/darwin-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz#510147c055a795588dbbe14fd6b1b8ad0a2f30de" + integrity sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw== + +"@esbuild/freebsd-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz#093b9200ecf0b115ba4e5e248a7485c9c5f8bd5e" + integrity sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw== + +"@esbuild/freebsd-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz#0be22b6df925d213e841ea87123af5df80b0faf7" + integrity sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg== + +"@esbuild/linux-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz#1bdbc651cda9ba9995c53ed9c71ceaa65094762d" + integrity sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug== + +"@esbuild/linux-arm@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz#beb12ad72b84f72d28488cc1b8ee9f7eb141d753" + integrity sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w== + +"@esbuild/linux-ia32@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz#b81f9d55529b45c206a46a138214b1aa6879696b" + integrity sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ== + +"@esbuild/linux-loong64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz#598667241a04c99b76ed6ef940ac50038c419f98" + integrity sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ== + +"@esbuild/linux-mips64el@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz#1c51eb9cea903f53d97b5af3b1841db70f5596ca" + integrity sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA== + +"@esbuild/linux-ppc64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz#63dd61f17ceb31a81227f413feac8a71bc2c51f2" + integrity sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ== + +"@esbuild/linux-riscv64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz#3763b08fde5cf25ab1facb8e7752edfe45fbfc27" + integrity sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA== + +"@esbuild/linux-s390x@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz#1a137ff293a82906eb3176385bd7e8e0e5cfb7cb" + integrity sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg== + +"@esbuild/linux-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz#268b36211c146ca54f8fe12c578a8d6ef8979485" + integrity sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ== + +"@esbuild/netbsd-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz#22571ad951d62bb6accc82d8d1fad5c8c1ac0ba1" + integrity sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw== + +"@esbuild/netbsd-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz#42fcc57297eb0a0ca3f5fc475291f4c1a3f7c0de" + integrity sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw== + +"@esbuild/openbsd-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz#9eb32af104ac3dacf4edca01f596664aab0c73ef" + integrity sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ== + +"@esbuild/openbsd-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz#febed2402d6088225e91f20fb4ce2522ad0a4efd" + integrity sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw== + +"@esbuild/openharmony-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz#85641c3d466428bfbccea5f21c26836663fef5ce" + integrity sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q== + +"@esbuild/sunos-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz#a736f9d8962481045fc4c3e54f5479f22c870fb4" + integrity sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g== + +"@esbuild/win32-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz#ee5ab40fad186201b652a33f8a5eb149e9e42532" + integrity sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ== + +"@esbuild/win32-ia32@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz#c40d28a6d99a127da6711f2afd74b11cb63b06a7" + integrity sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA== + +"@esbuild/win32-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz#b21affb804cc167c133d95f45b3a1dc1323b9a87" + integrity sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g== + +"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5", "@jridgewell/sourcemap-codec@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz#f4c663e862f06dc98ca4d453862c46902789a18d" + integrity sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@napi-rs/lzma-linux-x64-gnu@1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz#e57d4306966078662038094fb38eb9146dc3aea9" + integrity sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ== + +"@pravosleva/reactive-engine@^2.0.0": + version "2.0.0-beta" + resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.0.0-beta.tgz#176ec9364771bec2e274bf6bb5d540989507577c" + integrity sha512-vb4PWfmfGkfxxwNu+lhJD34IcAr4bJmkVN5BTlbN+rAeXi2iMtf6co6gnkWPmEw9CaWJVlyu7wqHxFAQOsNYig== + +"@preact/signals-core@^1.8.0": + version "1.14.4" + resolved "https://registry.yarnpkg.com/@preact/signals-core/-/signals-core-1.14.4.tgz#d3588cbda237fcb3c8a8e478f6cc370653609eb7" + integrity sha512-HNB6HYeYKhQbJ1aKl+YRjrS4+QWHLKX6qKoUsfS/m0vqzsVaEBiZiaKbG/e+NKk2ch5ALQr/ihWaMHxiCuuWHA== + +"@reactively/core@^0.0.8": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@reactively/core/-/core-0.0.8.tgz#2c84b710e9ae0cd6ddc8f44ba3bf27493eba39cd" + integrity sha512-5uAnNf2gQSm3gM7z6Lx079H1/MuDQQI+5aYfwyDFGR9nHZj8yblLY/6aOJVWp+NcBwXVBKuWQ28qWHD9F1qN1w== + +"@reatom/core@^1001.0.0": + version "1001.3.0" + resolved "https://registry.yarnpkg.com/@reatom/core/-/core-1001.3.0.tgz#ffa58c1385de49eb9a7b56658e7bf16bc044bceb" + integrity sha512-M8pZM6sWIQLIJZVaMI//tqadppk5GHV1MMjDZ0q5g3yxF1sXQs5ftgAxnitxAlP/ViwYWKxyrQI/8q1A3DeaNA== + dependencies: + "@standard-schema/spec" "^1.0.0" + optionalDependencies: + idb-keyval "^6.2.4" + +"@rollup/rollup-android-arm-eabi@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.64.2.tgz#a3b5ed98d2426bf541146a30b425e1690c5f5816" + integrity sha512-gjNDUwMswogkw3fNqV00u54uZlgmInuw5EU/1TeqQ6K0bEagoGvqjPdKzy112lKyhe7PkGudZ/kSQHsc9qroIg== + +"@rollup/rollup-android-arm64@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.64.2.tgz#ccd0ce358fd01031dc36570749a1e3056195b8b0" + integrity sha512-YkAW8q7p5SCLSaGWaUkmsRnBEb3MGA1pB5nI/8k0lAK5fZsQKRBqkdR1h4UU9p8u3c7ZGdUF2Zcx7mK+E/pUKg== + +"@rollup/rollup-darwin-arm64@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.64.2.tgz#d843a28cd94b8315f41299ec55518d2b3c38489a" + integrity sha512-hNmuIHv+LnrP/+q/44vsmIMWfoh7X2YXOp5FLtjGuvqN52VdtFpOpnshTc1k28tWv1wE/0D5gLjsozBUowEGbQ== + +"@rollup/rollup-darwin-x64@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.64.2.tgz#077a69b2dc07d4f045690cdeab52b6159acf6cb3" + integrity sha512-B0t5CoxgF2KL7R5FHAsyN8yVEQCSIkh4XVs8MCDjuBLNjEa8l3zd5tVKaFMv53LfUtHs9p2rnqeavPTOunV+Ww== + +"@rollup/rollup-freebsd-arm64@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.64.2.tgz#90f2469fd908033145622bfe31d3ef0ef3e2d3ad" + integrity sha512-QQdYnfwrPmc1DoPlddjFvQPzUHFbStKXsHrG6EBYsWHhBVUCjsCRdcfGGXGAvhDpDtTzKK4vy1UrGFJ45rQaiw== + +"@rollup/rollup-freebsd-x64@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.64.2.tgz#e1ec729b4648b44380677106ae7d1f992509f2f0" + integrity sha512-1xRxtGWif6BB58VSfMavi0Yfs2M4x6CtRp4o7ScY4W7AGlgvf6GSPKdDNdw7TX3tMiQwZY5W/mvyrOJTq/7AKA== + +"@rollup/rollup-linux-arm-gnueabihf@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.64.2.tgz#55222cabcd95b20748cfb1166b5c1527f3a69a24" + integrity sha512-CXFLEt384BUwwOLR9DURWNHl1bQOVLd1ibOee+yKBJm/fZtvrSAOZ0JbxjAxszVMIovYMwFMS+oP+Q1aPcx8Eg== + +"@rollup/rollup-linux-arm-musleabihf@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.64.2.tgz#15d038e4816b2c5aae931fbd351aa2daf044986f" + integrity sha512-T1dorY0WHm5mMNpMHFl5rYRZ02gLSZcr6J45r66tYb3S3R3DyIRGiGWVdLtF+zOQjratNJaObl9jYumueRiL1A== + +"@rollup/rollup-linux-arm64-gnu@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.64.2.tgz#83ea1c207f0b3124c743c00028fdbe1041c2441e" + integrity sha512-ia6bfaCIc0ldp6bvs9oEkFrJVJKNUMoiDF0+LBZsQAZg+vE0znXnzGqH+ew/FYswE30cruAWPTO3dPw7keaVkQ== + +"@rollup/rollup-linux-arm64-musl@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.64.2.tgz#bb4c65700e73651e7c17c6ef99f2db8f2747dfda" + integrity sha512-mB/gwfBfXtT0EBpbSssqKCqMFuX8b21Zy2TGoIhehSJEssZ5ksybxymwp1BkEM5Nczh/AAxpmh5q+MkhtundGg== + +"@rollup/rollup-linux-loong64-gnu@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.64.2.tgz#0f82d63420941e9c9f6d7cd2e8675b05019e8bd6" + integrity sha512-VPd0a+XlHoNRI9jIPRHww2UKhDkD6XjbtcKYXZijAnhJS1jLLbiNtVl6a5LyEfNN+eyiyWcJOZXPzBo69oTsew== + +"@rollup/rollup-linux-loong64-musl@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.64.2.tgz#28548076c20884104c2f69d6e7a5948ec3c452ca" + integrity sha512-10N1I6oBpERqzGtHKcCLrEpHlbXSBbMK9TURHvqgWbIFZuU3oJROxJ0H2nHfq96TVI0XJHQ9qzolJMFd2tz0LA== + +"@rollup/rollup-linux-ppc64-gnu@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.64.2.tgz#d4def0203422fda89dfe58a7369de7d552a2e024" + integrity sha512-dhJrLVZ3wNNhwCmy9/VTg6Pq6J8a8eZ0n15dVRlbSWcDb+8V/1mDfbnvis+vt8W6Pbxzv6gUbTEl4piOT3bbUQ== + +"@rollup/rollup-linux-ppc64-musl@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.64.2.tgz#8d02f0d4220409d311e115483d74f6f8ee764d8b" + integrity sha512-tPd2QuwxkTxgju5eARyb3RdgBWWi/O9dn/NFH0VkvGbLzoQeXrH6qMABtW8IODb5lUeBzB3sy2U7qmI4MtQ72g== + +"@rollup/rollup-linux-riscv64-gnu@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.64.2.tgz#ba2f5d1db0866c15b91551b4b462fd544e442049" + integrity sha512-njtDdPvSQWI9CDhIPPxsiEMeHayCfu7wwcbSQ7c2kYPhGVviL+WGVhq6Jfj/b+VuhSTkFuQ0z4ZFbFjkWwBFmg== + +"@rollup/rollup-linux-riscv64-musl@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.64.2.tgz#089625efbdb6def721fce3058987dae441f27f84" + integrity sha512-EbOBo3dqCj9ecEV9Z7zvulB6AieMP2ztnKQYGVOSN0pzIyOu+3JH2YJZnLmbPeVvfn6yP6Qi7NbBM27EzGbj2w== + +"@rollup/rollup-linux-s390x-gnu@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.64.2.tgz#056c832e09454b0261b419862e42030e01f55e2c" + integrity sha512-8wLt2Q5n4qmfiE2Gk8V6KNLSf+oJuBX7Kdw5joFDtnZIZvirS0hLzBc79OiJjV71oYDmBUZLNy6pDgvylo4qiQ== + +"@rollup/rollup-linux-x64-gnu@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.64.2.tgz#0496abe7430af48e9983a0ac97c8571235bd6c91" + integrity sha512-aIChbkhC4d33bxkVP0LSi2/2lUSGRXE6k4Qa0G7tgpgTOK7kxHTixmx5qC3SKUJ6yUMznHBtQoWaG4QMqLUnhw== + +"@rollup/rollup-linux-x64-musl@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.64.2.tgz#93748b2772ffdc8b8893fb3ab4d18794ac9ab0d2" + integrity sha512-gQ+TkVZRfjZVcl/UOAxxfWw+sHjzIXoieNwxEyJlD3tRBmBhR8ZDq11w+QEgQDcpslEB+fhN/OEpaTsDoIIHhQ== + +"@rollup/rollup-openbsd-x64@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.64.2.tgz#072f2ebfdfb263f8574be6fc071ec47f4b94a34e" + integrity sha512-sUaJpMKS2JBCvUk8fYimG7aMq2jHVT4kw/uVHxPolKLrMmkKy0KXirmZyZehdNpL7PffqAlPAWUELQcTiD8ChA== + +"@rollup/rollup-openharmony-arm64@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.64.2.tgz#53715953291cabb2c5b2839aee9c6cce1a133204" + integrity sha512-j1RdJWb0CrlSuwt12OPjLucPlwfLtA/KMOKVvh5rXSJEtl/WDoIGR3CSykK/jLGTo9RqNfW5Ub6kY5Z5ccYl9w== + +"@rollup/rollup-win32-arm64-msvc@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.64.2.tgz#13992d71d791fe408f6a2e6b19d6f737c52504bf" + integrity sha512-i3r04aHCIY3eggTBLUp/4IxiBjDpAgQaK89Ue2nMJ2MKuIXX5JfoeZjHw+kPjGGNVDlhi8FT8xzuGMJZe3aehg== + +"@rollup/rollup-win32-ia32-msvc@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.64.2.tgz#42ff971cd37b2ea2931a7483affb562ab741ef17" + integrity sha512-kCQ15h/uwNMGdN8gjXBZGf+aGE+ODzHfbi90/cAm4+Q89WoMiLODNoj8HoGZmYx87HPxfu5CBNPsZ+ZG4uIAoA== + +"@rollup/rollup-win32-x64-gnu@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.64.2.tgz#f7e3298a4f35823818c82703454469174ed133c6" + integrity sha512-yYAuySSs+0X2gSMJPw/Q4jHsHZHyMq1dpAE+XnN790Jg1WuReUAD/+j+e4vuDvS4PXJ4PA4NCzTR4OYtDf18/g== + +"@rollup/rollup-win32-x64-msvc@4.64.2": + version "4.64.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.64.2.tgz#432d3b2def25b9223d7d34762f43784167bacbc2" + integrity sha512-JY1rQdWOJrKutORqKO1uzrHXV86jFiQzfLFKx2s8S1CjLXL9fC5LOIvk0q7Z7PXJvsByt+sdoE1Q2a9gBr4gLQ== + +"@solidjs/signals@^0.3.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@solidjs/signals/-/signals-0.3.2.tgz#8c802a8331c92d8b9d10381a7e054172e7d645ba" + integrity sha512-Y8oh0xtB4DBluydxjphMQXjBULvoMxouDN/MgrXqN+F3B5UN4QTYEigFdT7KxVzunbNXkyOhOIit1QcgmJ27SQ== + +"@standard-schema/spec@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.1.0.tgz#a79b55dbaf8604812f52d140b2c9ab41bc150bb8" + integrity sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w== + +"@sveltejs/acorn-typescript@^1.0.13": + version "1.0.13" + resolved "https://registry.yarnpkg.com/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.13.tgz#8c7c3cc7014e212f2e8fccee0159dbecfe602405" + integrity sha512-wgKggnhZVL9Bfx1OaKKTrYY9BFRk6C8UAkQNUcIv1+llzYrIqy+RZm5HPKzn0NpEBvTVhTqB4kQyllZywsRBRQ== + +"@types/chai@^5.2.2": + version "5.2.3" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" + integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== + dependencies: + "@types/deep-eql" "*" + assertion-error "^2.0.1" + +"@types/deep-eql@*": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" + integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== + +"@types/estree@1.0.9", "@types/estree@^1.0.0", "@types/estree@^1.0.6", "@types/estree@^1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24" + integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== + +"@types/node@^22.20.4": + version "22.20.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.20.5.tgz#afa7bde6da81b8b83ea4e2f020487e9b148c11fd" + integrity sha512-U2+DNr+wSjpsTS/wZGYHq7GcwfuSmKiKvoPvK22zwTlRhU91yOniN4qRR5KhIjvif7ysw/dz/hKmfDH0Ris4aA== + dependencies: + undici-types "~6.21.0" + +"@vitest/expect@3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-3.2.7.tgz#70a34158383d008c3bf5d802e2643317f09df6d8" + integrity sha512-E8eBXaKibuvH2pSZErOjdVb5vF4PbKYcrnluBTYxEk1l/VhhwZg1kZQsdtjq+CsF5CFydf2Rdkz7jDHKSisi3w== + dependencies: + "@types/chai" "^5.2.2" + "@vitest/spy" "3.2.7" + "@vitest/utils" "3.2.7" + chai "^5.2.0" + tinyrainbow "^2.0.0" + +"@vitest/mocker@3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-3.2.7.tgz#331be944cb783c642dd42bd743411aca24ea0466" + integrity sha512-Trr0hYO9CM3Wj6ksWHRhK9IZpIY6wTMO5u/MqXurMxT57sWBaOPEtP3Oq60ihZuh5JsiagKfz95OcxdEP6dBrA== + dependencies: + "@vitest/spy" "3.2.7" + estree-walker "^3.0.3" + magic-string "^0.30.17" + +"@vitest/pretty-format@3.2.7", "@vitest/pretty-format@^3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-3.2.7.tgz#2a7b593f8e007e9d8ef7e7343aa30ec73fdeaf29" + integrity sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA== + dependencies: + tinyrainbow "^2.0.0" + +"@vitest/runner@3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-3.2.7.tgz#c0c080228189f1fa6cda40f59be09d746b0aca51" + integrity sha512-sB9y4ovltoQP+WaUPwmSxO9WIg9Ig694Di5PalVPsYHklAdE027mehpWF2SQSVq+k6sFgaivbTjTJwZLSHbedA== + dependencies: + "@vitest/utils" "3.2.7" + pathe "^2.0.3" + strip-literal "^3.0.0" + +"@vitest/snapshot@3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-3.2.7.tgz#a3a7e1950ce99ec4cf02395e20ddca403b6c818e" + integrity sha512-7C+MwShwtBSI5Buwoyg3s/iY1eHL9PKAf+O1wVh/TdnjXUtkoL/9YQtre90i4MtNXM6edP1wJ2zOBpfCyhIS7g== + dependencies: + "@vitest/pretty-format" "3.2.7" + magic-string "^0.30.17" + pathe "^2.0.3" + +"@vitest/spy@3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-3.2.7.tgz#ca7fbee44019523ca450395d9a2284ce9ece1f31" + integrity sha512-Q2eQGI6d2L/hBtZ0qNuKcAGid68XK6cv1xsoaIma6PaJhHPoqcEJhYpXZ/5myCMqkNgtP6UKuBhbc0nHKnrkuQ== + dependencies: + tinyspy "^4.0.3" + +"@vitest/utils@3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-3.2.7.tgz#302c8126211ac4dfea87b3b5085c098d6d22e89e" + integrity sha512-x6BDOd7dyo3PFLY3I9/HJ25X/6OurhGXk2/B9gOZNPF7XDVjeBK4k01lQE5uvDpbuheErh91qYuE1E2OEjK3Rw== + dependencies: + "@vitest/pretty-format" "3.2.7" + loupe "^3.1.4" + tinyrainbow "^2.0.0" + +"@vue/reactivity@^3.5.0": + version "3.5.43" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.43.tgz#26441233103e834616959a032d8fabd4524fd089" + integrity sha512-G/c9GyOZNI2jVaaS6OX1EF1SSFSv7H0ERqNTl4+DTFMlZmB5eVAB53aLQNam/7NL2NPtaDD7RdVrzf8uJzMuOA== + dependencies: + "@vue/shared" "3.5.43" + +"@vue/shared@3.5.43": + version "3.5.43" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.43.tgz#22c11ecf1304bfc6f6b745f3b4ba54c410074338" + integrity sha512-uksS7YGMR5NZyr4JNq0Rp+QyLns0ueaz20KwzIPW9R0LH1Vnt4E+XUM29PNseEbf1www2gOuhuDi5AKOIXag9Q== + +acorn@^8.18.0: + version "8.19.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.19.0.tgz#6b26fd97ce1cc9dc50bdf7ad305e9f1384d4f28a" + integrity sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw== + +alien-signals@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/alien-signals/-/alien-signals-3.2.1.tgz#eb66256949bce90b7d30d055e2752e62d6930c7c" + integrity sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g== + +anod@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/anod/-/anod-0.9.1.tgz#5d4ae99a7b7a9ee301f679e8193156f06829124b" + integrity sha512-J3Rw8vYEw8EZfFyCHM43C95ozidIoOV4ai9cQvvkWV3UbdKUfjjqDq4T0uOHEdBDPcqzwBRhI88uvhktXoaFVA== + +aria-query@5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.1.tgz#ebcb2c0d7fc43e68e4cb22f774d1209cb627ab42" + integrity sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g== + +assertion-error@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== + +axobject-query@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" + integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== + +babel-plugin-transform-rename-import@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-rename-import/-/babel-plugin-transform-rename-import-2.3.0.tgz#5d9d645f937b0ca5c26a24b2510a06277b6ffd9b" + integrity sha512-dPgJoT57XC0PqSnLgl2FwNvxFrWlspatX2dkk7yjKQj5HHGw071vAcOf+hqW8ClqcBDMvEbm6mevn5yHAD8mlQ== + +cac@^6.7.14: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + +chai@^5.2.0: + version "5.3.3" + resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.3.tgz#dd3da955e270916a4bd3f625f4b919996ada7e06" + integrity sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw== + dependencies: + assertion-error "^2.0.1" + check-error "^2.1.1" + deep-eql "^5.0.1" + loupe "^3.1.0" + pathval "^2.0.0" + +check-error@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.3.tgz#2427361117b70cca8dc89680ead32b157019caf5" + integrity sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA== + +clsx@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + +csstype@^3.1.0: + version "3.2.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" + integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== + +debug@^4.3.1, debug@^4.4.1: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" + +deep-eql@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" + integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== + +devalue@^5.9.2: + version "5.9.4" + resolved "https://registry.yarnpkg.com/devalue/-/devalue-5.9.4.tgz#f6ccb639568f50233936c8c48b92a690cfb22c34" + integrity sha512-sPAT4pztbu6586/hrhOnMKS17IJrvg12mXiSPSS3W5qDeN2RGgvZ0diZCm31dBbnevfVmujNO3IM2wrS4Y2Rhg== + +es-module-lexer@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" + integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== + +"esbuild@^0.27.0 || ^0.28.0": + version "0.28.2" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.2.tgz#0f43bd1bad955b72d24e2261e3abe5957ccf0816" + integrity sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA== + optionalDependencies: + "@esbuild/aix-ppc64" "0.28.2" + "@esbuild/android-arm" "0.28.2" + "@esbuild/android-arm64" "0.28.2" + "@esbuild/android-x64" "0.28.2" + "@esbuild/darwin-arm64" "0.28.2" + "@esbuild/darwin-x64" "0.28.2" + "@esbuild/freebsd-arm64" "0.28.2" + "@esbuild/freebsd-x64" "0.28.2" + "@esbuild/linux-arm" "0.28.2" + "@esbuild/linux-arm64" "0.28.2" + "@esbuild/linux-ia32" "0.28.2" + "@esbuild/linux-loong64" "0.28.2" + "@esbuild/linux-mips64el" "0.28.2" + "@esbuild/linux-ppc64" "0.28.2" + "@esbuild/linux-riscv64" "0.28.2" + "@esbuild/linux-s390x" "0.28.2" + "@esbuild/linux-x64" "0.28.2" + "@esbuild/netbsd-arm64" "0.28.2" + "@esbuild/netbsd-x64" "0.28.2" + "@esbuild/openbsd-arm64" "0.28.2" + "@esbuild/openbsd-x64" "0.28.2" + "@esbuild/openharmony-arm64" "0.28.2" + "@esbuild/sunos-x64" "0.28.2" + "@esbuild/win32-arm64" "0.28.2" + "@esbuild/win32-ia32" "0.28.2" + "@esbuild/win32-x64" "0.28.2" + +esm-env@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/esm-env/-/esm-env-1.2.2.tgz#263c9455c55861f41618df31b20cb571fc20b75e" + integrity sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA== + +esrap@^2.3.6: + version "2.4.0" + resolved "https://registry.yarnpkg.com/esrap/-/esrap-2.4.0.tgz#ea090ec9815d7d9acca2e6d6e89e54e183c34f42" + integrity sha512-CQPcneEHw/czj32uwQC52nYnax8H4SXt25FCM+LIwGZ49cMIxpOj3bP8wmzcI+Z0HIy5KkClaPhRLfCySzwHPA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +expect-type@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.4.0.tgz#24edf7f0cc69a44d008567ba4594ab96f3c3a3d6" + integrity sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA== + +fdir@^6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" + integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== + +flimsy@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/flimsy/-/flimsy-1.1.0.tgz#18469a735e421baac40941a7423ef025c06d1040" + integrity sha512-ciGv7dnh5h6/jwCHpJrwUTNxjiOCb4nzcNYClHUjG/jlP9l6uN0InJBjHPoPBh9XOzZs3d6hes4r14Rl7xZROw== + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +idb-keyval@^6.2.4: + version "6.3.0" + resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.3.0.tgz#3fa4c062fcaddd7e577c51b51f69924bccfb58e6" + integrity sha512-um+2dgAWmYsu615EXpWVwSmapJhON0G43t3Ka/EVaohzPQXSMqKEqeDK/oIW3Ow+BXaF2PvSc+oBTFp793A5Ow== + +is-reference@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.3.tgz#9ef7bf9029c70a67b2152da4adf57c23d718910f" + integrity sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw== + dependencies: + "@types/estree" "^1.0.6" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4" + integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ== + +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + +locate-character@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-3.0.0.tgz#0305c5b8744f61028ef5d01f444009e00779f974" + integrity sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA== + +loupe@^3.1.0, loupe@^3.1.4: + version "3.2.1" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.2.1.tgz#0095cf56dc5b7a9a7c08ff5b1a8796ec8ad17e76" + integrity sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ== + +magic-string@^0.30.11, magic-string@^0.30.17: + version "0.30.21" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" + integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.5" + +mobx@^6.13.0: + version "6.16.1" + resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.16.1.tgz#8b3166186d1298b1848395e10e64b5c43d6dc43b" + integrity sha512-syNcDdX3KT+Jq3je6eGjBhuc24Z68td2VG0zNFqRswaE433D9SNH5VRy/xrGbJsUixfppLLccXhAW9JSf6n+SQ== + +ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoid@^3.3.19: + version "3.3.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.20.tgz#dfd4444d85aa10111ef66ba85ed72e08ba0855d8" + integrity sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ== + +oby@^15.1.0: + version "15.1.2" + resolved "https://registry.yarnpkg.com/oby/-/oby-15.1.2.tgz#c960a0eeff10a1c87f67ce658d32ac349ac83fb4" + integrity sha512-6QD9iEoPzV+pMDdcg3RtFWhgDX8pS5hZouVHvgXGDy3Q9RxFfnI3CYv9i62keeuX+qk6iN2z5E9FD3q3OckZ6A== + +pathe@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" + integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== + +pathval@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.1.tgz#8855c5a2899af072d6ac05d11e46045ad0dc605d" + integrity sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ== + +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^4.0.2, picomatch@^4.0.3, picomatch@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.7.tgz#6313360034ccb36b3dc61ecbdff78121f90fe21f" + integrity sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA== + +postcss@^8.5.6: + version "8.5.29" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.29.tgz#086a0ded2c0257c71efb8c68776b477774714b4a" + integrity sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ== + dependencies: + nanoid "^3.3.19" + picocolors "^1.1.1" + source-map-js "^1.2.2" + +pota@^0.7.0: + version "0.7.82" + resolved "https://registry.yarnpkg.com/pota/-/pota-0.7.82.tgz#9bc2cd2b484d974b9f45b4fcd7a7e96b0b736556" + integrity sha512-ZIJbG5z5e7V5jFUswxnaWBZAid4DsntYUCyjoM9thazWnXHLByIkJ/uK4UBxwZw8G3vTsQAi4uqvEz3U3Dt1Cg== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.23.4" + babel-plugin-transform-rename-import "^2.3.0" + flimsy "^1.1.0" + oby "^15.1.0" + solid-js "^1.8.12" + +rollup@^4.43.0: + version "4.64.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.64.2.tgz#5be367e38284e178c74578de5a39e42e36a8ef89" + integrity sha512-RxXm0XVVV1hFI3dYe12ruaOgsYQ725lUcUWeMSQqkF9tTxVErY+fy2Ets6vWhItL9MZMSNZGbvZFc7rH/VHp2Q== + dependencies: + "@types/estree" "1.0.9" + optionalDependencies: + "@napi-rs/lzma-linux-x64-gnu" "1.5.1" + "@rollup/rollup-android-arm-eabi" "4.64.2" + "@rollup/rollup-android-arm64" "4.64.2" + "@rollup/rollup-darwin-arm64" "4.64.2" + "@rollup/rollup-darwin-x64" "4.64.2" + "@rollup/rollup-freebsd-arm64" "4.64.2" + "@rollup/rollup-freebsd-x64" "4.64.2" + "@rollup/rollup-linux-arm-gnueabihf" "4.64.2" + "@rollup/rollup-linux-arm-musleabihf" "4.64.2" + "@rollup/rollup-linux-arm64-gnu" "4.64.2" + "@rollup/rollup-linux-arm64-musl" "4.64.2" + "@rollup/rollup-linux-loong64-gnu" "4.64.2" + "@rollup/rollup-linux-loong64-musl" "4.64.2" + "@rollup/rollup-linux-ppc64-gnu" "4.64.2" + "@rollup/rollup-linux-ppc64-musl" "4.64.2" + "@rollup/rollup-linux-riscv64-gnu" "4.64.2" + "@rollup/rollup-linux-riscv64-musl" "4.64.2" + "@rollup/rollup-linux-s390x-gnu" "4.64.2" + "@rollup/rollup-linux-x64-gnu" "4.64.2" + "@rollup/rollup-linux-x64-musl" "4.64.2" + "@rollup/rollup-openbsd-x64" "4.64.2" + "@rollup/rollup-openharmony-arm64" "4.64.2" + "@rollup/rollup-win32-arm64-msvc" "4.64.2" + "@rollup/rollup-win32-ia32-msvc" "4.64.2" + "@rollup/rollup-win32-x64-gnu" "4.64.2" + "@rollup/rollup-win32-x64-msvc" "4.64.2" + fsevents "~2.3.2" + +rxjs@^7.8.2: + version "7.8.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" + integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== + dependencies: + tslib "^2.1.0" + +s-js@^0.4.9: + version "0.4.9" + resolved "https://registry.yarnpkg.com/s-js/-/s-js-0.4.9.tgz#ecb12a53072174d1ac58f2eaad529c7e2950cef2" + integrity sha512-RtpOm+cM6O0sHg6IA70wH+UC3FZcND+rccBZpBAHzlUgNO2Bm5BN+FnM8+OBxzXdwpKWFwX11JGF0MFRkhSoIQ== + +seroval-plugins@~1.6.8: + version "1.6.8" + resolved "https://registry.yarnpkg.com/seroval-plugins/-/seroval-plugins-1.6.8.tgz#3187b90331153472bdba83da5be63912e14cd2ac" + integrity sha512-N7mWAMydj89EnYTHtRpS3LBrAz3J9O6oVrqpuXuvlAHfAUG8WEKqtbAd7SBiJNY5NfCAFhSdyAh7wI4Shjqy4g== + +seroval@~1.6.8: + version "1.6.8" + resolved "https://registry.yarnpkg.com/seroval/-/seroval-1.6.8.tgz#916c4a293cfadcd9e0efdb73a8bfbe061f81866b" + integrity sha512-HlSgSAkTk4EqHcje1ptJjfZi1YDv5KbhVJ/d3P7T/nAXua2VmDu+AKDX5VTdFfZf48nDkWB2TKYt0DrCSa+3wg== + +siginfo@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" + integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== + +signal-polyfill@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/signal-polyfill/-/signal-polyfill-0.2.2.tgz#722e2cd272cbd6cdc5fcc741459bd066f93d0264" + integrity sha512-p63Y4Er5/eMQ9RHg0M0Y64NlsQKpiu6MDdhBXpyywRuWiPywhJTpKJ1iB5K2hJEbFZ0BnDS7ZkJ+0AfTuL37Rg== + +solid-js@^1.8.12, solid-js@^1.9.0: + version "1.9.17" + resolved "https://registry.yarnpkg.com/solid-js/-/solid-js-1.9.17.tgz#9f8444b3667f756c233dce15f76e431cf9a86480" + integrity sha512-4GAmLOWPfNV8H9Jfn2LSFTpNEG6jiOKPiwd5lnLGQtehHaX6l3TOLzJqQ7mqwB/3k1Yy3zyumFVopmc/tm34ow== + dependencies: + csstype "^3.1.0" + seroval "~1.6.8" + seroval-plugins "~1.6.8" + +source-map-js@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.2.tgz#79fb88d97535a21cb27162cb05d211b67acea4ab" + integrity sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw== + +stackback@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" + integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== + +std-env@^3.9.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.10.0.tgz#d810b27e3a073047b2b5e40034881f5ea6f9c83b" + integrity sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg== + +strip-literal@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-3.1.0.tgz#222b243dd2d49c0bcd0de8906adbd84177196032" + integrity sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg== + dependencies: + js-tokens "^9.0.1" + +svelte@^5.34.0: + version "5.57.2" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-5.57.2.tgz#708ba9778114dc59457894055c9b034a4e0c86e0" + integrity sha512-1YiPCAXT0Ct6g1vOMmSLa0Nsc3QRMvtDF32ihgglGVrugIuIK38RyDiFNXVDhtQ81TJjSO57NdMw6DyYLqSGDQ== + dependencies: + "@jridgewell/remapping" "^2.3.5" + "@jridgewell/sourcemap-codec" "^1.6.0" + "@sveltejs/acorn-typescript" "^1.0.13" + "@types/estree" "^1.0.9" + acorn "^8.18.0" + aria-query "5.3.1" + axobject-query "^4.1.0" + clsx "^2.1.1" + devalue "^5.9.2" + esm-env "^1.2.1" + esrap "^2.3.6" + is-reference "^3.0.3" + locate-character "^3.0.0" + magic-string "^0.30.11" + zimmerframe "^1.1.2" + +tinybench@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" + integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== + +tinyexec@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" + integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== + +tinyglobby@^0.2.14, tinyglobby@^0.2.15: + version "0.2.17" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.17.tgz#562a9a6c9eb2b3b123d39719f9af5bb44fcd7631" + integrity sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g== + dependencies: + fdir "^6.5.0" + picomatch "^4.0.4" + +tinypool@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.1.1.tgz#059f2d042bd37567fbc017d3d426bdd2a2612591" + integrity sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg== + +tinyrainbow@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-2.0.0.tgz#9509b2162436315e80e3eee0fcce4474d2444294" + integrity sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw== + +tinyspy@^4.0.3: + version "4.0.6" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-4.0.6.tgz#68e278e20287f37beb5f4b0a4db211d280400562" + integrity sha512-u8KszXvGfU68hVcZpRHKG28T0krMuv2G5nDhiHaMLen/gIuFEgIJhaJuO69qjnXg5paSrbPMFfx3brNuN8eVSg== + +tslib@^2.1.0, tslib@^2.3.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +typescript@^5.8.0: + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== + +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + +vite-node@3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-3.2.4.tgz#f3676d94c4af1e76898c162c92728bca65f7bb07" + integrity sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg== + dependencies: + cac "^6.7.14" + debug "^4.4.1" + es-module-lexer "^1.7.0" + pathe "^2.0.3" + vite "^5.0.0 || ^6.0.0 || ^7.0.0-0" + +"vite@^5.0.0 || ^6.0.0 || ^7.0.0-0": + version "7.3.7" + resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.7.tgz#017a80fdce051003a4aa290dddd0b159aa769282" + integrity sha512-AHEzTORMbi7/7aXp7w7KZ5+DCUdSeLsJz0grY8xHpc9DHdYb0vQu6DqJfm2tOw3gDExNgPgnJTXxM6syYFHaCA== + dependencies: + esbuild "^0.27.0 || ^0.28.0" + fdir "^6.5.0" + picomatch "^4.0.3" + postcss "^8.5.6" + rollup "^4.43.0" + tinyglobby "^0.2.15" + optionalDependencies: + fsevents "~2.3.3" + +vitest@^3.2.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-3.2.7.tgz#1944b6ed013a25fd26a73d18e1af92c10a57af6c" + integrity sha512-KrxIJ62Fd89gfysR4WotlgZABiz2dqFPgqGzX7s+CwsqLFomRH7777ZcrOD6+WVAh7khPQP41A+BKbpcJFrdEg== + dependencies: + "@types/chai" "^5.2.2" + "@vitest/expect" "3.2.7" + "@vitest/mocker" "3.2.7" + "@vitest/pretty-format" "^3.2.7" + "@vitest/runner" "3.2.7" + "@vitest/snapshot" "3.2.7" + "@vitest/spy" "3.2.7" + "@vitest/utils" "3.2.7" + chai "^5.2.0" + debug "^4.4.1" + expect-type "^1.2.1" + magic-string "^0.30.17" + pathe "^2.0.3" + picomatch "^4.0.2" + std-env "^3.9.0" + tinybench "^2.9.0" + tinyexec "^0.3.2" + tinyglobby "^0.2.14" + tinypool "^1.1.1" + tinyrainbow "^2.0.0" + vite "^5.0.0 || ^6.0.0 || ^7.0.0-0" + vite-node "3.2.4" + why-is-node-running "^2.3.0" + +why-is-node-running@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" + integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== + dependencies: + siginfo "^2.0.0" + stackback "0.0.2" + +zimmerframe@^1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/zimmerframe/-/zimmerframe-1.1.5.tgz#8e34202e0419b424974a197aba746a8423a3fba8" + integrity sha512-msJxIvYDYcoNL+PJsu+7qmpDWsYmAxTY+2TNYXXF0hzBzBk0BMecOqDOG/EckUoKCuKwObfbugIl8QpqHDXeFA== From 570eebb25667c0ddd7f4ad82a49d0593cb329b92 Mon Sep 17 00:00:00 2001 From: Den Pol Date: Tue, 13 Oct 2026 14:15:05 +0300 Subject: [PATCH 2/9] fix --- README.md | 2 +- yarn.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4884758..600ddc8 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ The **Behavioral Differences** section is separate — those tests reflect desig | pota | `pota` | 0.7.82 | 2024-02-01 | | @angular/core | `@angular/core` | 20.3.33 | 2026-09-30 | | anod | `anod` | 0.9.1 | 2026-04-27 | -| @pravosleva/reactive-engine | `@pravosleva/reactive-engine` | 2.0.0-beta | 2026-10-12 | +| @pravosleva/reactive-engine | `@pravosleva/reactive-engine` | 2.0.0 | 2026-10-13 | ## Summary diff --git a/yarn.lock b/yarn.lock index e6a0840..1bc135a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -301,9 +301,9 @@ integrity sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ== "@pravosleva/reactive-engine@^2.0.0": - version "2.0.0-beta" - resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.0.0-beta.tgz#176ec9364771bec2e274bf6bb5d540989507577c" - integrity sha512-vb4PWfmfGkfxxwNu+lhJD34IcAr4bJmkVN5BTlbN+rAeXi2iMtf6co6gnkWPmEw9CaWJVlyu7wqHxFAQOsNYig== + version "2.0.0" + resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.0.0.tgz#7f242202e410c158c8468724970bdac11de895fe" + integrity sha512-1rOEpzQnLKyo7FSHgQUCG7uMg1FQ26/XimlhvSilKbq5tty4/paFdWn/C3Crs5cUPl+oTbdTizQahEi3bhPpmw== "@preact/signals-core@^1.8.0": version "1.14.4" From 8c1618841477e447661e9014099664a448e4a0dc Mon Sep 17 00:00:00 2001 From: Den Pol Date: Tue, 13 Oct 2026 18:20:32 +0300 Subject: [PATCH 3/9] reactive-engine updated to 2.1 --- README.md | 124 +++++++++++++++++++++++++-------------------------- package.json | 4 +- yarn.lock | 8 ++-- 3 files changed, 68 insertions(+), 68 deletions(-) diff --git a/README.md b/README.md index 600ddc8..ff68607 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Cross-library test suite for comparing reactive signal behavior across **16 frameworks** with **178 test cases**. -> 2324 passed, 312 failed, 212 skipped out of 2848 total runs +> 2330 passed, 306 failed, 212 skipped out of 2848 total runs Test cases are collected and adapted from the test suites of all participating frameworks — thanks to every project for their thorough testing work. This suite focuses on **reactive semantics** (propagation, batching, disposal, edge cases), not API completeness. Tests that require an optional capability (e.g. `batch`) are skipped (⬜) for frameworks that don't expose it, rather than marked as failures. @@ -31,7 +31,7 @@ The **Behavioral Differences** section is separate — those tests reflect desig | pota | `pota` | 0.7.82 | 2024-02-01 | | @angular/core | `@angular/core` | 20.3.33 | 2026-09-30 | | anod | `anod` | 0.9.1 | 2026-04-27 | -| @pravosleva/reactive-engine | `@pravosleva/reactive-engine` | 2.0.0 | 2026-10-13 | +| @pravosleva/reactive-engine | `@pravosleva/reactive-engine` | 2.1.0 | 2026-10-13 | ## Summary @@ -45,7 +45,7 @@ The **Behavioral Differences** section is separate — those tests reflect desig | solid-js | 153 | 25 | 0 | 178 | | tansu | 151 | 6 | 21 | 178 | | @solidjs/signals | 149 | 8 | 21 | 178 | -| @pravosleva/reactive-engine | 143 | 35 | 0 | 178 | +| @pravosleva/reactive-engine | 149 | 29 | 0 | 178 | | signal-polyfill (TC39) | 141 | 8 | 29 | 178 | | mobx | 139 | 18 | 21 | 178 | | @angular/core | 137 | 12 | 29 | 178 | @@ -71,24 +71,24 @@ Legend: ─→ dependency edge (downstream reads upstream) ``` -| Framework | #1..#3,... ×9 | #7 | #9..#10,#206 | #116,#207 | #187,#189,#205 | #188 | #190 | #192 | #204 | -| --------------------------- | ------------- | -- | ------------ | --------- | -------------- | ---- | ---- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | -| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| mobx | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | -| solid-js | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| S.js | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | -| pota | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | -| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | +| Framework | #1..#3,... ×9 | #7 | #9..#10,#206 | #116,#190,#207 | #187 | #188 | #189,#205 | #192 | #204 | +| --------------------------- | ------------- | -- | ------------ | -------------- | ---- | ---- | --------- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | +| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| mobx | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | +| solid-js | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| S.js | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | +| pota | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | +| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
Tests with failures or skips @@ -285,24 +285,24 @@ Legend: ?─→ conditional (dynamic) dependency edge ``` -| Framework | #12..#13 | #14,#16,#165,... ×5 | #166,#198..#199 | #193 | #194 | #197 | #200 | -| --------------------------- | -------- | ------------------- | --------------- | ---- | ---- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| mobx | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| solid-js | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| S.js | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | -| pota | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | +| Framework | #12..#13 | #14,#16,#165,... ×5 | #166,#194,... ×4 | #193 | #197 | #200 | +| --------------------------- | -------- | ------------------- | ---------------- | ---- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| mobx | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| solid-js | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| S.js | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| pota | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
Tests with failures or skips @@ -458,7 +458,7 @@ Legend: | pota | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | | @angular/core | ✅ | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | | anod | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | +| @pravosleva/reactive-engine | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ |
Tests with failures or skips @@ -567,7 +567,7 @@ Legend: | pota | ✅ | ✅ | ✅ | ✅ | | @angular/core | ✅ | ✅ | ✅ | ✅ | | anod | ✅ | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ❌ | ✅ | ❌ | +| @pravosleva/reactive-engine | ✅ | ❌ | ❌ | ❌ |
Tests with failures or skips @@ -649,7 +649,7 @@ Legend: | pota | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | | @angular/core | ✅ | ✅ | ✅ | ✅ | ❌ | ⬜ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | ❌ | ✅ | ✅ | | anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tests with failures or skips @@ -1123,24 +1123,24 @@ Legend: ═→ inner write (node writes to a signal during evaluation) ``` -| Framework | #50,#224..#225 | #51 | #52,#112,... ×11 | #53,#56,... ×4 | #54 | #180 | #179 | #57 | #182 | #183 | #185 | #186 | #213 | #212 | -| --------------------------- | -------------- | --- | ---------------- | -------------- | --- | ---- | ---- | --- | ---- | ---- | ---- | ---- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ❌ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ✅ | ❌ | ✅ | ✅ | -| tansu | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ✅ | ✅ | ❌ | ❌ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| mobx | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | -| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | -| @solidjs/signals | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | -| S.js | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | -| pota | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | -| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | +| Framework | #50,#224..#225 | #51 | #52,#112,... ×11 | #53,#56,... ×5 | #54 | #179 | #57 | #182 | #183,#185 | #186 | #213 | #212 | +| --------------------------- | -------------- | --- | ---------------- | -------------- | --- | ---- | --- | ---- | --------- | ---- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ❌ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ❌ | ✅ | ✅ | +| tansu | ✅ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ✅ | ❌ | ❌ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| mobx | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ⬜ | ✅ | ✅ | ❌ | ✅ | +| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | +| @solidjs/signals | ✅ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| S.js | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | +| pota | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ⬜ | ✅ | ✅ | ✅ | ✅ | +| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
Tests with failures or skips @@ -1816,7 +1816,7 @@ Legend: | pota | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | @angular/core | ✅ | ✅ | ✅ | ⬜ | ❌ | ❌ | | anod | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tests with failures or skips @@ -2105,7 +2105,7 @@ Legend: | pota | lazy | no subscription | 2 recomputes | === | skips | returns void | unknown | unknown | error | error | re-evaluates | no re-run | error | batched | disposes children | no cascade | | @angular/core | lazy | no subscription | single recompute | Object.is | skips | ⬜ | post-write | post-write | keeps subscribed | halts flush | caches error | runs 2x per write | manual bail (200+) | unbatched (2 runs) | children survive | no cascade | | anod | eager | no subscription | single recompute | === | skips | returns void | post-write | post-write | unsubscribes | continues | caches error | runs 2x per write | manual bail (200+) | batched | children survive | LIFO | -| @pravosleva/reactive-engine | lazy | no subscription | 2 recomputes | === | propagates | returns void | post-write | post-write | keeps subscribed | halts flush | re-evaluates | runs 1x per write | no throw | unbatched (2 runs) | children survive | no cascade | +| @pravosleva/reactive-engine | lazy | no subscription | single recompute | === | propagates | returns void | post-write | post-write | keeps subscribed | halts flush | re-evaluates | runs 1x, then blocks | no throw | unbatched (2 runs) | children survive | no cascade |
Test descriptions diff --git a/package.json b/package.json index 0954dae..b43f08e 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@amadeus-it-group/tansu": "^2.0.0", "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", - "@pravosleva/reactive-engine": "^2.0.0", + "@pravosleva/reactive-engine": "2.1", "@preact/signals-core": "^1.8.0", "@reactively/core": "^0.0.8", "@reatom/core": "^1001.0.0", @@ -54,4 +54,4 @@ "typescript": "^5.8.0", "vitest": "^3.2.0" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 1bc135a..0ff493c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -300,10 +300,10 @@ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz#e57d4306966078662038094fb38eb9146dc3aea9" integrity sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ== -"@pravosleva/reactive-engine@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.0.0.tgz#7f242202e410c158c8468724970bdac11de895fe" - integrity sha512-1rOEpzQnLKyo7FSHgQUCG7uMg1FQ26/XimlhvSilKbq5tty4/paFdWn/C3Crs5cUPl+oTbdTizQahEi3bhPpmw== +"@pravosleva/reactive-engine@2.1": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.1.0.tgz#f04fc575bb5ffd4842a58b730b88b41dc2199fb2" + integrity sha512-OhCXAuWFisIYWLQmnLZLvBDQzfVTE7iON4bUAwGP5S6QTaWgjHzWBVULVmPo0Ezxq0C8scENtOdFBgDlL9u6Gw== "@preact/signals-core@^1.8.0": version "1.14.4" From cf90ab3ca4c221fedc79a9ffdad8d10b9ba7ccb7 Mon Sep 17 00:00:00 2001 From: Den Pol Date: Tue, 13 Oct 2026 19:21:02 +0300 Subject: [PATCH 4/9] updates --- README.md | 2 +- package.json | 4 ++-- yarn.lock | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ff68607..c1a0fb0 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ The **Behavioral Differences** section is separate — those tests reflect desig | pota | `pota` | 0.7.82 | 2024-02-01 | | @angular/core | `@angular/core` | 20.3.33 | 2026-09-30 | | anod | `anod` | 0.9.1 | 2026-04-27 | -| @pravosleva/reactive-engine | `@pravosleva/reactive-engine` | 2.1.0 | 2026-10-13 | +| @pravosleva/reactive-engine | `@pravosleva/reactive-engine` | 2.1.1 | 2026-10-13 | ## Summary diff --git a/package.json b/package.json index b43f08e..06f2b92 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@amadeus-it-group/tansu": "^2.0.0", "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", - "@pravosleva/reactive-engine": "2.1", + "@pravosleva/reactive-engine": "^2.1.1", "@preact/signals-core": "^1.8.0", "@reactively/core": "^0.0.8", "@reatom/core": "^1001.0.0", @@ -54,4 +54,4 @@ "typescript": "^5.8.0", "vitest": "^3.2.0" } -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 0ff493c..97c1d18 100644 --- a/yarn.lock +++ b/yarn.lock @@ -300,10 +300,10 @@ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz#e57d4306966078662038094fb38eb9146dc3aea9" integrity sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ== -"@pravosleva/reactive-engine@2.1": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.1.0.tgz#f04fc575bb5ffd4842a58b730b88b41dc2199fb2" - integrity sha512-OhCXAuWFisIYWLQmnLZLvBDQzfVTE7iON4bUAwGP5S6QTaWgjHzWBVULVmPo0Ezxq0C8scENtOdFBgDlL9u6Gw== +"@pravosleva/reactive-engine@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.1.1.tgz#0fc7b545a0a34c462b62a019a71f31c86331e2ac" + integrity sha512-ajVV+fewgxWjGKlItPcldg90nr5VTv6RXVrD/PGV+YeiUCvMvc0BMaai9EZj+t4LYPL1o3m1Q710hKf8Hj/VeQ== "@preact/signals-core@^1.8.0": version "1.14.4" From 91a6d79c46f75381630eb62a008627881ea6b0ec Mon Sep 17 00:00:00 2001 From: Den Pol Date: Wed, 14 Oct 2026 01:37:39 +0300 Subject: [PATCH 5/9] updates --- README.md | 2 +- yarn.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c1a0fb0..4da90b4 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ The **Behavioral Differences** section is separate — those tests reflect desig | pota | `pota` | 0.7.82 | 2024-02-01 | | @angular/core | `@angular/core` | 20.3.33 | 2026-09-30 | | anod | `anod` | 0.9.1 | 2026-04-27 | -| @pravosleva/reactive-engine | `@pravosleva/reactive-engine` | 2.1.1 | 2026-10-13 | +| @pravosleva/reactive-engine | `@pravosleva/reactive-engine` | 2.1.2 | 2026-10-13 | ## Summary diff --git a/yarn.lock b/yarn.lock index 97c1d18..01086ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -301,9 +301,9 @@ integrity sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ== "@pravosleva/reactive-engine@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.1.1.tgz#0fc7b545a0a34c462b62a019a71f31c86331e2ac" - integrity sha512-ajVV+fewgxWjGKlItPcldg90nr5VTv6RXVrD/PGV+YeiUCvMvc0BMaai9EZj+t4LYPL1o3m1Q710hKf8Hj/VeQ== + version "2.1.2" + resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.1.2.tgz#9bb1932d00432746671b05ea6c6eea725e5a973e" + integrity sha512-XLhXhpmmgm+07m4TH1EYPQK8x/dTHsqSYClZNW5w5/PDGchh7+dCcDCV6wdQiwfxgu081/fFRe/2Pya1QlqwIw== "@preact/signals-core@^1.8.0": version "1.14.4" From c8acd1a3dd673b60097713d4fc5a22a040c8e97e Mon Sep 17 00:00:00 2001 From: Den Pol Date: Wed, 14 Oct 2026 01:42:39 +0300 Subject: [PATCH 6/9] updates --- README.md | 292 ++++++++++++++++++++------------------------------- package.json | 2 +- yarn.lock | 8 +- 3 files changed, 120 insertions(+), 182 deletions(-) diff --git a/README.md b/README.md index 4da90b4..87873f4 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Cross-library test suite for comparing reactive signal behavior across **16 frameworks** with **178 test cases**. -> 2330 passed, 306 failed, 212 skipped out of 2848 total runs +> 2348 passed, 288 failed, 212 skipped out of 2848 total runs Test cases are collected and adapted from the test suites of all participating frameworks — thanks to every project for their thorough testing work. This suite focuses on **reactive semantics** (propagation, batching, disposal, edge cases), not API completeness. Tests that require an optional capability (e.g. `batch`) are skipped (⬜) for frameworks that don't expose it, rather than marked as failures. @@ -31,7 +31,7 @@ The **Behavioral Differences** section is separate — those tests reflect desig | pota | `pota` | 0.7.82 | 2024-02-01 | | @angular/core | `@angular/core` | 20.3.33 | 2026-09-30 | | anod | `anod` | 0.9.1 | 2026-04-27 | -| @pravosleva/reactive-engine | `@pravosleva/reactive-engine` | 2.1.2 | 2026-10-13 | +| @pravosleva/reactive-engine | `@pravosleva/reactive-engine` | 2.1.4 | 2026-10-13 | ## Summary @@ -41,11 +41,11 @@ The **Behavioral Differences** section is separate — those tests reflect desig | @preact/signals-core | 174 | 4 | 0 | 178 | | @reatom/core | 174 | 4 | 0 | 178 | | @vue/reactivity | 171 | 7 | 0 | 178 | +| @pravosleva/reactive-engine | 167 | 11 | 0 | 178 | | anod | 160 | 18 | 0 | 178 | | solid-js | 153 | 25 | 0 | 178 | | tansu | 151 | 6 | 21 | 178 | | @solidjs/signals | 149 | 8 | 21 | 178 | -| @pravosleva/reactive-engine | 149 | 29 | 0 | 178 | | signal-polyfill (TC39) | 141 | 8 | 29 | 178 | | mobx | 139 | 18 | 21 | 178 | | @angular/core | 137 | 12 | 29 | 178 | @@ -71,24 +71,24 @@ Legend: ─→ dependency edge (downstream reads upstream) ``` -| Framework | #1..#3,... ×9 | #7 | #9..#10,#206 | #116,#190,#207 | #187 | #188 | #189,#205 | #192 | #204 | -| --------------------------- | ------------- | -- | ------------ | -------------- | ---- | ---- | --------- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | -| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| mobx | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | -| solid-js | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| S.js | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | -| pota | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | -| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | +| Framework | #1..#3,... ×12 | #7 | #116,#190,#207 | #187,#205 | #188 | #189 | #192 | #204 | +| --------------------------- | -------------- | -- | -------------- | --------- | ---- | ---- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | +| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| mobx | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | +| solid-js | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| S.js | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | +| pota | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | +| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
Tests with failures or skips @@ -105,32 +105,6 @@ Legend: Both branches unchanged. d must NOT re-evaluate (propagation cut). -#### #9 linear convergence - -``` - S(a) → C(b) - \ / - C(c) - / - S(a) → C(d) [same a] -``` - - a→b, {a,b}→c, {a,c}→d - -Increasing fan-in at each level. Each node evaluates once. - -#### #10 exponential convergence - - a→b, {b,a}→c, {c,b}→d, {d,c}→e - -``` - S(a) ─→ C(b) ─→ C(c) ─→ C(d) ─→ C(e) - \─────→ / \─────→ / \─────→ / -``` - -Each level reads previous two. Naive impl is O(2^n). -Each node must evaluate exactly once. - #### #116 other listeners still notified after one disposes ``` @@ -235,22 +209,6 @@ Both change — c and effect must evaluate only once each. Two signals cross-feed two computeds joining at e. Both signals change — c, d, e each evaluate once. -#### #206 stacked diamonds - -``` - S(a) - / \ - C(b) C(c) - \ / - C(d) - / \ - C(e) C(f) - \ / - C(g) -``` - -Two diamonds stacked. Each node evaluates once. - #### #207 wide fan-out: all effects fire once ``` @@ -302,7 +260,7 @@ Legend: | pota | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | | @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
Tests with failures or skips @@ -441,24 +399,24 @@ Legend: ─→ dependency edge (downstream reads upstream) ``` -| Framework | #18,#25 | #19,#21,#24,... ×6 | #22 | #23 | #147 | #149 | #27 | -| --------------------------- | ------- | ------------------ | --- | --- | ---- | ---- | --- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | -| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| mobx | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | -| solid-js | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| S.js | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | -| pota | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | -| anod | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | +| Framework | #18,#25 | #19,#21..#22,... ×7 | #23 | #147 | #149 | #27 | +| --------------------------- | ------- | ------------------- | --- | ---- | ---- | --- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | +| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | +| @vue/reactivity | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| mobx | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | +| solid-js | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| S.js | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | +| pota | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | +| @angular/core | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | +| anod | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
Tests with failures or skips @@ -472,15 +430,6 @@ Legend: Reading a computed twice without changing its dep must not re-evaluate the compute function (result is cached). -#### #22 chained computed avoids redundant re-compute - -``` - S(a) → C(b) → C(c) → C(d) -``` - -Linear chain with call counters. After one source change, -each computed in the chain must re-evaluate exactly once. - #### #23 sync access of invalidated chained computed runs effect ``` @@ -550,24 +499,24 @@ Legend: ─→ dependency edge (downstream reads upstream) ``` -| Framework | #28 | #34 | #169 | #220 | -| --------------------------- | --- | --- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | ✅ | ✅ | -| tansu | ✅ | ✅ | ✅ | ❌ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | -| mobx | ❌ | ❌ | ✅ | ❌ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ✅ | -| solid-js | ✅ | ✅ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | -| S.js | ❌ | ❌ | ❌ | ❌ | -| pota | ✅ | ✅ | ✅ | ✅ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | -| anod | ✅ | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ❌ | ❌ | ❌ | +| Framework | #28,#34 | #169 | #220 | +| --------------------------- | ------- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | ✅ | +| tansu | ✅ | ✅ | ❌ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | +| @vue/reactivity | ✅ | ✅ | ✅ | +| mobx | ❌ | ✅ | ❌ | +| @reatom/core | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | +| solid-js | ✅ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ✅ | +| S.js | ❌ | ❌ | ❌ | +| pota | ✅ | ✅ | ✅ | +| @angular/core | ✅ | ✅ | ✅ | +| anod | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ |
Tests with failures or skips @@ -649,7 +598,7 @@ Legend: | pota | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | | @angular/core | ✅ | ✅ | ✅ | ✅ | ❌ | ⬜ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | ❌ | ✅ | ✅ | | anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
Tests with failures or skips @@ -958,7 +907,7 @@ Legend: | pota | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | | @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | | anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
Tests with failures or skips @@ -1123,24 +1072,24 @@ Legend: ═→ inner write (node writes to a signal during evaluation) ``` -| Framework | #50,#224..#225 | #51 | #52,#112,... ×11 | #53,#56,... ×5 | #54 | #179 | #57 | #182 | #183,#185 | #186 | #213 | #212 | -| --------------------------- | -------------- | --- | ---------------- | -------------- | --- | ---- | --- | ---- | --------- | ---- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ❌ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ❌ | ✅ | ✅ | -| tansu | ✅ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ✅ | ❌ | ❌ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| mobx | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ⬜ | ✅ | ✅ | ❌ | ✅ | -| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | -| @solidjs/signals | ✅ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | -| S.js | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | -| pota | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ⬜ | ✅ | ✅ | ✅ | ✅ | -| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | +| Framework | #50,#186,... ×4 | #51 | #52,#112,... ×11 | #53,#56,... ×4 | #54 | #180 | #179 | #57 | #182 | #183,#185 | #213 | #212 | +| --------------------------- | --------------- | --- | ---------------- | -------------- | --- | ---- | ---- | --- | ---- | --------- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ❌ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ✅ | ✅ | +| tansu | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ❌ | ❌ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| mobx | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ⬜ | ✅ | ❌ | ✅ | +| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | +| @solidjs/signals | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | +| S.js | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | +| pota | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ⬜ | ✅ | ✅ | ✅ | +| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tests with failures or skips @@ -1452,24 +1401,24 @@ Legend: ─→ dependency edge (downstream reads upstream) ``` -| Framework | #66,#72 | #67,#128 | #69 | #70 | #119 | #120 | #121..#122,... ×4 | #123 | #124,#127 | #125 | #126 | #130 | #131 | #132 | -| --------------------------- | ------- | -------- | --- | --- | ---- | ---- | ----------------- | ---- | --------- | ---- | ---- | ---- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ❌ | ⬜ | ⬜ | -| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| mobx | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ❌ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | -| solid-js | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| S.js | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | -| pota | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | -| @angular/core | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | -| anod | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | +| Framework | #66,#72 | #67,#125,#128 | #69 | #70 | #119,#124,#127 | #120 | #121..#122,... ×4 | #123 | #126 | #130 | #131 | #132 | +| --------------------------- | ------- | ------------- | --- | --- | -------------- | ---- | ----------------- | ---- | ---- | ---- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ❌ | ⬜ | ⬜ | +| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | +| mobx | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ❌ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | +| solid-js | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | +| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | +| S.js | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | +| pota | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | +| @angular/core | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | +| anod | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ |
Tests with failures or skips @@ -1944,39 +1893,28 @@ Legend: ─→ dependency edge ``` -| Framework | #94 | #95 | #158..#159,#97 | -| --------------------------- | --- | --- | -------------- | -| alien-signals | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | ✅ | -| tansu | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | -| @vue/reactivity | ✅ | ✅ | ✅ | -| mobx | ✅ | ❌ | ✅ | -| @reatom/core | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | -| solid-js | ✅ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ✅ | -| S.js | ✅ | ✅ | ✅ | -| pota | ✅ | ✅ | ✅ | -| @angular/core | ✅ | ✅ | ✅ | -| anod | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ❌ | ✅ | ✅ | +| Framework | #94,... ×4 | #95 | +| --------------------------- | ---------- | --- | +| alien-signals | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | +| tansu | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | +| @vue/reactivity | ✅ | ✅ | +| mobx | ✅ | ❌ | +| @reatom/core | ✅ | ✅ | +| svelte | ✅ | ✅ | +| solid-js | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | +| S.js | ✅ | ✅ | +| pota | ✅ | ✅ | +| @angular/core | ✅ | ✅ | +| anod | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ |
Tests with failures or skips -#### #94 stale invocation does not trigger pending computations - -``` - S(a) ─→ C(b) ─→ C(d) - S(a) ─→ C(c) ─→ C(d) -``` - -Diamond dependency: both C(b) and C(c) depend on S(a), -and C(d) depends on both. After a single write to S(a), -C(b) should re-evaluate exactly once and C(d) exactly once. - #### #95 stale computations evaluated before their dependees ``` @@ -2105,7 +2043,7 @@ Legend: | pota | lazy | no subscription | 2 recomputes | === | skips | returns void | unknown | unknown | error | error | re-evaluates | no re-run | error | batched | disposes children | no cascade | | @angular/core | lazy | no subscription | single recompute | Object.is | skips | ⬜ | post-write | post-write | keeps subscribed | halts flush | caches error | runs 2x per write | manual bail (200+) | unbatched (2 runs) | children survive | no cascade | | anod | eager | no subscription | single recompute | === | skips | returns void | post-write | post-write | unsubscribes | continues | caches error | runs 2x per write | manual bail (200+) | batched | children survive | LIFO | -| @pravosleva/reactive-engine | lazy | no subscription | single recompute | === | propagates | returns void | post-write | post-write | keeps subscribed | halts flush | re-evaluates | runs 1x, then blocks | no throw | unbatched (2 runs) | children survive | no cascade | +| @pravosleva/reactive-engine | lazy | no subscription | single recompute | Object.is | propagates | returns void | post-write | post-write | keeps subscribed | halts flush | re-evaluates | runs 1x per write | no throw | unbatched (2 runs) | children survive | no cascade |
Test descriptions diff --git a/package.json b/package.json index 06f2b92..965d312 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@amadeus-it-group/tansu": "^2.0.0", "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", - "@pravosleva/reactive-engine": "^2.1.1", + "@pravosleva/reactive-engine": "latest", "@preact/signals-core": "^1.8.0", "@reactively/core": "^0.0.8", "@reatom/core": "^1001.0.0", diff --git a/yarn.lock b/yarn.lock index 01086ee..f653028 100644 --- a/yarn.lock +++ b/yarn.lock @@ -300,10 +300,10 @@ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz#e57d4306966078662038094fb38eb9146dc3aea9" integrity sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ== -"@pravosleva/reactive-engine@^2.1.1": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.1.2.tgz#9bb1932d00432746671b05ea6c6eea725e5a973e" - integrity sha512-XLhXhpmmgm+07m4TH1EYPQK8x/dTHsqSYClZNW5w5/PDGchh7+dCcDCV6wdQiwfxgu081/fFRe/2Pya1QlqwIw== +"@pravosleva/reactive-engine@latest": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.1.4.tgz#ce4c4bf0f044acd0870c067d6633ad7e2339d458" + integrity sha512-fZ4IRA5VCL+AqZecNO53vY0rybErwKzQ2xeTra1NEPN9iG0ues7CAx8cix+gp97ixK900GivCB3ewZ5ZKlzo0Q== "@preact/signals-core@^1.8.0": version "1.14.4" From 9cad041555302555ead581aae5425e2191bab790 Mon Sep 17 00:00:00 2001 From: Den Pol Date: Wed, 14 Oct 2026 07:39:14 +0300 Subject: [PATCH 7/9] updates --- README.md | 88 ++++++++++++++++++++++++++-------------------------- package.json | 4 +-- yarn.lock | 8 ++--- 3 files changed, 50 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index 87873f4..ba82477 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Cross-library test suite for comparing reactive signal behavior across **16 frameworks** with **178 test cases**. -> 2348 passed, 288 failed, 212 skipped out of 2848 total runs +> 2354 passed, 282 failed, 212 skipped out of 2848 total runs Test cases are collected and adapted from the test suites of all participating frameworks — thanks to every project for their thorough testing work. This suite focuses on **reactive semantics** (propagation, batching, disposal, edge cases), not API completeness. Tests that require an optional capability (e.g. `batch`) are skipped (⬜) for frameworks that don't expose it, rather than marked as failures. @@ -31,7 +31,7 @@ The **Behavioral Differences** section is separate — those tests reflect desig | pota | `pota` | 0.7.82 | 2024-02-01 | | @angular/core | `@angular/core` | 20.3.33 | 2026-09-30 | | anod | `anod` | 0.9.1 | 2026-04-27 | -| @pravosleva/reactive-engine | `@pravosleva/reactive-engine` | 2.1.4 | 2026-10-13 | +| @pravosleva/reactive-engine | `@pravosleva/reactive-engine` | 2.1.12 | 2026-10-14 | ## Summary @@ -40,8 +40,8 @@ The **Behavioral Differences** section is separate — those tests reflect desig | alien-signals | 178 | 0 | 0 | 178 | | @preact/signals-core | 174 | 4 | 0 | 178 | | @reatom/core | 174 | 4 | 0 | 178 | +| @pravosleva/reactive-engine | 173 | 5 | 0 | 178 | | @vue/reactivity | 171 | 7 | 0 | 178 | -| @pravosleva/reactive-engine | 167 | 11 | 0 | 178 | | anod | 160 | 18 | 0 | 178 | | solid-js | 153 | 25 | 0 | 178 | | tansu | 151 | 6 | 21 | 178 | @@ -71,24 +71,24 @@ Legend: ─→ dependency edge (downstream reads upstream) ``` -| Framework | #1..#3,... ×12 | #7 | #116,#190,#207 | #187,#205 | #188 | #189 | #192 | #204 | -| --------------------------- | -------------- | -- | -------------- | --------- | ---- | ---- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | -| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| mobx | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | -| solid-js | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | -| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| S.js | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | -| pota | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ⬜ | -| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | +| Framework | #1..#3,... ×12 | #7 | #116,#190,#207 | #187,#189,#205 | #188 | #192 | #204 | +| --------------------------- | -------------- | -- | -------------- | -------------- | ---- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ⬜ | +| tansu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ⬜ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| mobx | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ⬜ | +| solid-js | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | +| @solidjs/signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| S.js | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | +| pota | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ⬜ | +| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tests with failures or skips @@ -260,7 +260,7 @@ Legend: | pota | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | | @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tests with failures or skips @@ -416,7 +416,7 @@ Legend: | pota | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | | @angular/core | ✅ | ✅ | ✅ | ⬜ | ⬜ | ✅ | | anod | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tests with failures or skips @@ -907,7 +907,7 @@ Legend: | pota | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | | @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | | anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tests with failures or skips @@ -1072,24 +1072,24 @@ Legend: ═→ inner write (node writes to a signal during evaluation) ``` -| Framework | #50,#186,... ×4 | #51 | #52,#112,... ×11 | #53,#56,... ×4 | #54 | #180 | #179 | #57 | #182 | #183,#185 | #213 | #212 | -| --------------------------- | --------------- | --- | ---------------- | -------------- | --- | ---- | ---- | --- | ---- | --------- | ---- | ---- | -| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reactively/core | ❌ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ✅ | ✅ | -| tansu | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | -| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ❌ | ❌ | -| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| mobx | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | -| svelte | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ⬜ | ✅ | ❌ | ✅ | -| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | -| @solidjs/signals | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | -| S.js | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | -| pota | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | -| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ⬜ | ✅ | ✅ | ✅ | -| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | +| Framework | #50,#224..#225 | #51 | #52,#112,... ×11 | #53,#56,... ×4 | #54 | #180 | #179 | #57 | #182 | #183,#185 | #186 | #213 | #212 | +| --------------------------- | -------------- | --- | ---------------- | -------------- | --- | ---- | ---- | --- | ---- | --------- | ---- | ---- | ---- | +| alien-signals | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @preact/signals-core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reactively/core | ❌ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ❌ | ✅ | ✅ | +| tansu | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| signal-polyfill (TC39) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ✅ | ❌ | ❌ | +| @vue/reactivity | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| mobx | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| @reatom/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| svelte | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ⬜ | ✅ | ✅ | ❌ | ✅ | +| solid-js | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | +| @solidjs/signals | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| S.js | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | +| pota | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| @angular/core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ⬜ | ✅ | ✅ | ✅ | ✅ | +| anod | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ |
Tests with failures or skips @@ -1418,7 +1418,7 @@ Legend: | pota | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | | @angular/core | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | ⬜ | ✅ | ⬜ | ⬜ | | anod | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | -| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | +| @pravosleva/reactive-engine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tests with failures or skips @@ -2043,7 +2043,7 @@ Legend: | pota | lazy | no subscription | 2 recomputes | === | skips | returns void | unknown | unknown | error | error | re-evaluates | no re-run | error | batched | disposes children | no cascade | | @angular/core | lazy | no subscription | single recompute | Object.is | skips | ⬜ | post-write | post-write | keeps subscribed | halts flush | caches error | runs 2x per write | manual bail (200+) | unbatched (2 runs) | children survive | no cascade | | anod | eager | no subscription | single recompute | === | skips | returns void | post-write | post-write | unsubscribes | continues | caches error | runs 2x per write | manual bail (200+) | batched | children survive | LIFO | -| @pravosleva/reactive-engine | lazy | no subscription | single recompute | Object.is | propagates | returns void | post-write | post-write | keeps subscribed | halts flush | re-evaluates | runs 1x per write | no throw | unbatched (2 runs) | children survive | no cascade | +| @pravosleva/reactive-engine | lazy | no subscription | single recompute | Object.is | propagates | returns void | post-write | post-write | keeps subscribed | halts flush | re-evaluates | runs 1x per write | no throw | unbatched (2 runs) | children survive | FIFO |
Test descriptions diff --git a/package.json b/package.json index 965d312..b4eed7f 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@amadeus-it-group/tansu": "^2.0.0", "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", - "@pravosleva/reactive-engine": "latest", + "@pravosleva/reactive-engine": "2.1.12", "@preact/signals-core": "^1.8.0", "@reactively/core": "^0.0.8", "@reatom/core": "^1001.0.0", @@ -54,4 +54,4 @@ "typescript": "^5.8.0", "vitest": "^3.2.0" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index f653028..1ff62ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -300,10 +300,10 @@ resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz#e57d4306966078662038094fb38eb9146dc3aea9" integrity sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ== -"@pravosleva/reactive-engine@latest": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.1.4.tgz#ce4c4bf0f044acd0870c067d6633ad7e2339d458" - integrity sha512-fZ4IRA5VCL+AqZecNO53vY0rybErwKzQ2xeTra1NEPN9iG0ues7CAx8cix+gp97ixK900GivCB3ewZ5ZKlzo0Q== +"@pravosleva/reactive-engine@2.1.12": + version "2.1.12" + resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.1.12.tgz#ef0603f3c2191c741262d38c49aeff2eb5708f71" + integrity sha512-P3DKQFiU/QrRIFDjEgQ8cyjTaSUiyCBl1MGAFUBtyffYMFEnY7McsE3QyfEgaGE3+WlqO7piyI/7y+yG0Z0AaQ== "@preact/signals-core@^1.8.0": version "1.14.4" From 5b87e4274e5924798f27c079a9015e186d0e07e0 Mon Sep 17 00:00:00 2001 From: Den Pol Date: Wed, 14 Oct 2026 08:39:58 +0300 Subject: [PATCH 8/9] fix --- package-lock.json | 32 +- yarn.lock | 1060 --------------------------------------------- 2 files changed, 31 insertions(+), 1061 deletions(-) delete mode 100644 yarn.lock diff --git a/package-lock.json b/package-lock.json index 0158e43..6ee8f5c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@amadeus-it-group/tansu": "^2.0.0", "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", + "@pravosleva/reactive-engine": "2.1.12", "@preact/signals-core": "^1.8.0", "@reactively/core": "^0.0.8", "@reatom/core": "^1001.0.0", @@ -22,6 +23,7 @@ "anod": "^0.9.1", "mobx": "^6.13.0", "pota": "^0.7.0", + "rxjs": "^7.8.2", "s-js": "^0.4.9", "signal-polyfill": "^0.2.2", "solid-js": "^1.9.0", @@ -873,6 +875,35 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@pravosleva/reactive-engine": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@pravosleva/reactive-engine/-/reactive-engine-2.1.12.tgz", + "integrity": "sha512-P3DKQFiU/QrRIFDjEgQ8cyjTaSUiyCBl1MGAFUBtyffYMFEnY7McsE3QyfEgaGE3+WlqO7piyI/7y+yG0Z0AaQ==", + "dev": true, + "engines": { + "node": ">=22.20.0" + }, + "peerDependencies": { + "@angular/core": ">=16.0.0", + "react": "^18.0.0 || ^19.2.0", + "react-dom": "^18.0.0 || ^19.2.0", + "vue": ">=3.2.0" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, "node_modules/@preact/signals-core": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.14.2.tgz", @@ -2134,7 +2165,6 @@ "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "tslib": "^2.1.0" } diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 1ff62ef..0000000 --- a/yarn.lock +++ /dev/null @@ -1,1060 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@amadeus-it-group/tansu@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@amadeus-it-group/tansu/-/tansu-2.0.0.tgz#2d069364fa1af21e15874b6faf76ab71b4e6bff9" - integrity sha512-KebRcEFWkdKix1vN12Y8cuGWdWKqkCzXiesXnxSAZbEULBDlPwm0sey+ygP98PudM1gBygtiWyWzGTeAL5+jIw== - -"@angular/compiler@^20.0.0": - version "20.3.33" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-20.3.33.tgz#047e40bc5280a43b58eca79081c8842be6c2fbf0" - integrity sha512-tqKZaapDV05r2SXA6bOzTSpiNhSoqZR9Usuacs5myMpbpt4gwNMAZkgaIoIcPutnhbd3qT+Og54VCVvCOXF8pg== - dependencies: - tslib "^2.3.0" - -"@angular/core@^20.0.0": - version "20.3.33" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-20.3.33.tgz#27b44a9b1f4981f9d03ef573a027f350e4c564ae" - integrity sha512-Ld/AhODjPf8c14xUOWUnJygaZb2TsRy99ZhwFkEsRJOzqauzEFovb8Hb2MEaB1e4RolADN+HWxPvE4n+u3HFmA== - dependencies: - tslib "^2.3.0" - -"@babel/code-frame@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.7.tgz#f2fbbfea87c44a21590ec515b778b2c26d8866e7" - integrity sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw== - dependencies: - "@babel/helper-validator-identifier" "^7.29.7" - js-tokens "^4.0.0" - picocolors "^1.1.1" - -"@babel/generator@^7.29.8": - version "7.29.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.8.tgz#4b0b887885422643339e09022148a4c4ebaa4979" - integrity sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg== - dependencies: - "@babel/parser" "^7.29.8" - "@babel/types" "^7.29.8" - "@jridgewell/gen-mapping" "^0.3.12" - "@jridgewell/trace-mapping" "^0.3.28" - jsesc "^3.0.2" - -"@babel/helper-annotate-as-pure@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz#c70fe3c6ecbdc3fd2dd1b0f498428b88b82ce47f" - integrity sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw== - dependencies: - "@babel/types" "^7.29.7" - -"@babel/helper-globals@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.29.7.tgz#f04a96fbd8473241b1079243f5b3f03a3010ab7b" - integrity sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA== - -"@babel/helper-module-imports@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz#ef25048a518e828d7393fac5882ddd73921d7396" - integrity sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g== - dependencies: - "@babel/traverse" "^7.29.7" - "@babel/types" "^7.29.7" - -"@babel/helper-plugin-utils@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz#c0a0766f1a13617d8a17407d7ab8f9d486225ea4" - integrity sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw== - -"@babel/helper-string-parser@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz#7f0871d99824d23137d60f86fcf6130fd5a1b51f" - integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw== - -"@babel/helper-validator-identifier@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz#bd87084ced0c796ec46bda492de6e83d29e89fc2" - integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== - -"@babel/parser@^7.29.7", "@babel/parser@^7.29.8", "@babel/parser@^7.29.9": - version "7.29.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.9.tgz#e7ee0a24f752c5296c6455855ccb72662e67ea96" - integrity sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA== - dependencies: - "@babel/types" "^7.29.8" - -"@babel/plugin-syntax-jsx@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz#622c16f9ad63782fe6e83dadc7e40330744b7f1e" - integrity sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A== - dependencies: - "@babel/helper-plugin-utils" "^7.29.7" - -"@babel/plugin-transform-react-jsx@^7.23.4": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz#3d16a0e5773f079400a8c82a190709cdf92ee204" - integrity sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.29.7" - "@babel/helper-module-imports" "^7.29.7" - "@babel/helper-plugin-utils" "^7.29.7" - "@babel/plugin-syntax-jsx" "^7.29.7" - "@babel/types" "^7.29.7" - -"@babel/template@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.29.7.tgz#4d9d4004f645cdd304de958c725162784ecac700" - integrity sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg== - dependencies: - "@babel/code-frame" "^7.29.7" - "@babel/parser" "^7.29.7" - "@babel/types" "^7.29.7" - -"@babel/traverse@^7.29.7": - version "7.29.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.10.tgz#08ab387639b4a67304511259c7da6cf23a82e91c" - integrity sha512-B3lYAs2nkKskbgQ1nfy8Ma9ao9Q1rntTAQHrzzyDuj+TSO+X3le6PfWwqDvodsb+OumE10eMFfuMCTQSQ5iuIQ== - dependencies: - "@babel/code-frame" "^7.29.7" - "@babel/generator" "^7.29.8" - "@babel/helper-globals" "^7.29.7" - "@babel/parser" "^7.29.9" - "@babel/template" "^7.29.7" - "@babel/types" "^7.29.8" - debug "^4.3.1" - -"@babel/types@^7.29.7", "@babel/types@^7.29.8": - version "7.29.8" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.8.tgz#1229eef31d85156d70fa3f4cd859376d0eaf6863" - integrity sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg== - dependencies: - "@babel/helper-string-parser" "^7.29.7" - "@babel/helper-validator-identifier" "^7.29.7" - -"@esbuild/aix-ppc64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz#bf6e10303bcf2e7c686975fa52f937ec2728d8bc" - integrity sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ== - -"@esbuild/android-arm64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz#0c6246bc8d2c4d172aac2db3fb1190d72bd65504" - integrity sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A== - -"@esbuild/android-arm@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.2.tgz#2d84ece6a4e2684d92be26ee13d42757d831c381" - integrity sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg== - -"@esbuild/android-x64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.2.tgz#fc38d4d6358d8dc1cf53f09f7589fe436eb64801" - integrity sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q== - -"@esbuild/darwin-arm64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz#f83afeeac1d7dac01c7a2fd012b3e451a0591fcc" - integrity sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw== - -"@esbuild/darwin-x64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz#510147c055a795588dbbe14fd6b1b8ad0a2f30de" - integrity sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw== - -"@esbuild/freebsd-arm64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz#093b9200ecf0b115ba4e5e248a7485c9c5f8bd5e" - integrity sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw== - -"@esbuild/freebsd-x64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz#0be22b6df925d213e841ea87123af5df80b0faf7" - integrity sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg== - -"@esbuild/linux-arm64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz#1bdbc651cda9ba9995c53ed9c71ceaa65094762d" - integrity sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug== - -"@esbuild/linux-arm@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz#beb12ad72b84f72d28488cc1b8ee9f7eb141d753" - integrity sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w== - -"@esbuild/linux-ia32@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz#b81f9d55529b45c206a46a138214b1aa6879696b" - integrity sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ== - -"@esbuild/linux-loong64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz#598667241a04c99b76ed6ef940ac50038c419f98" - integrity sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ== - -"@esbuild/linux-mips64el@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz#1c51eb9cea903f53d97b5af3b1841db70f5596ca" - integrity sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA== - -"@esbuild/linux-ppc64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz#63dd61f17ceb31a81227f413feac8a71bc2c51f2" - integrity sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ== - -"@esbuild/linux-riscv64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz#3763b08fde5cf25ab1facb8e7752edfe45fbfc27" - integrity sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA== - -"@esbuild/linux-s390x@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz#1a137ff293a82906eb3176385bd7e8e0e5cfb7cb" - integrity sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg== - -"@esbuild/linux-x64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz#268b36211c146ca54f8fe12c578a8d6ef8979485" - integrity sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ== - -"@esbuild/netbsd-arm64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz#22571ad951d62bb6accc82d8d1fad5c8c1ac0ba1" - integrity sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw== - -"@esbuild/netbsd-x64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz#42fcc57297eb0a0ca3f5fc475291f4c1a3f7c0de" - integrity sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw== - -"@esbuild/openbsd-arm64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz#9eb32af104ac3dacf4edca01f596664aab0c73ef" - integrity sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ== - -"@esbuild/openbsd-x64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz#febed2402d6088225e91f20fb4ce2522ad0a4efd" - integrity sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw== - -"@esbuild/openharmony-arm64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz#85641c3d466428bfbccea5f21c26836663fef5ce" - integrity sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q== - -"@esbuild/sunos-x64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz#a736f9d8962481045fc4c3e54f5479f22c870fb4" - integrity sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g== - -"@esbuild/win32-arm64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz#ee5ab40fad186201b652a33f8a5eb149e9e42532" - integrity sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ== - -"@esbuild/win32-ia32@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz#c40d28a6d99a127da6711f2afd74b11cb63b06a7" - integrity sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA== - -"@esbuild/win32-x64@0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz#b21affb804cc167c133d95f45b3a1dc1323b9a87" - integrity sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g== - -"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" - integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/remapping@^2.3.5": - version "2.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" - integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5", "@jridgewell/sourcemap-codec@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz#f4c663e862f06dc98ca4d453862c46902789a18d" - integrity sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw== - -"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28": - version "0.3.31" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" - integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@napi-rs/lzma-linux-x64-gnu@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz#e57d4306966078662038094fb38eb9146dc3aea9" - integrity sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ== - -"@pravosleva/reactive-engine@2.1.12": - version "2.1.12" - resolved "https://registry.yarnpkg.com/@pravosleva/reactive-engine/-/reactive-engine-2.1.12.tgz#ef0603f3c2191c741262d38c49aeff2eb5708f71" - integrity sha512-P3DKQFiU/QrRIFDjEgQ8cyjTaSUiyCBl1MGAFUBtyffYMFEnY7McsE3QyfEgaGE3+WlqO7piyI/7y+yG0Z0AaQ== - -"@preact/signals-core@^1.8.0": - version "1.14.4" - resolved "https://registry.yarnpkg.com/@preact/signals-core/-/signals-core-1.14.4.tgz#d3588cbda237fcb3c8a8e478f6cc370653609eb7" - integrity sha512-HNB6HYeYKhQbJ1aKl+YRjrS4+QWHLKX6qKoUsfS/m0vqzsVaEBiZiaKbG/e+NKk2ch5ALQr/ihWaMHxiCuuWHA== - -"@reactively/core@^0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@reactively/core/-/core-0.0.8.tgz#2c84b710e9ae0cd6ddc8f44ba3bf27493eba39cd" - integrity sha512-5uAnNf2gQSm3gM7z6Lx079H1/MuDQQI+5aYfwyDFGR9nHZj8yblLY/6aOJVWp+NcBwXVBKuWQ28qWHD9F1qN1w== - -"@reatom/core@^1001.0.0": - version "1001.3.0" - resolved "https://registry.yarnpkg.com/@reatom/core/-/core-1001.3.0.tgz#ffa58c1385de49eb9a7b56658e7bf16bc044bceb" - integrity sha512-M8pZM6sWIQLIJZVaMI//tqadppk5GHV1MMjDZ0q5g3yxF1sXQs5ftgAxnitxAlP/ViwYWKxyrQI/8q1A3DeaNA== - dependencies: - "@standard-schema/spec" "^1.0.0" - optionalDependencies: - idb-keyval "^6.2.4" - -"@rollup/rollup-android-arm-eabi@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.64.2.tgz#a3b5ed98d2426bf541146a30b425e1690c5f5816" - integrity sha512-gjNDUwMswogkw3fNqV00u54uZlgmInuw5EU/1TeqQ6K0bEagoGvqjPdKzy112lKyhe7PkGudZ/kSQHsc9qroIg== - -"@rollup/rollup-android-arm64@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.64.2.tgz#ccd0ce358fd01031dc36570749a1e3056195b8b0" - integrity sha512-YkAW8q7p5SCLSaGWaUkmsRnBEb3MGA1pB5nI/8k0lAK5fZsQKRBqkdR1h4UU9p8u3c7ZGdUF2Zcx7mK+E/pUKg== - -"@rollup/rollup-darwin-arm64@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.64.2.tgz#d843a28cd94b8315f41299ec55518d2b3c38489a" - integrity sha512-hNmuIHv+LnrP/+q/44vsmIMWfoh7X2YXOp5FLtjGuvqN52VdtFpOpnshTc1k28tWv1wE/0D5gLjsozBUowEGbQ== - -"@rollup/rollup-darwin-x64@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.64.2.tgz#077a69b2dc07d4f045690cdeab52b6159acf6cb3" - integrity sha512-B0t5CoxgF2KL7R5FHAsyN8yVEQCSIkh4XVs8MCDjuBLNjEa8l3zd5tVKaFMv53LfUtHs9p2rnqeavPTOunV+Ww== - -"@rollup/rollup-freebsd-arm64@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.64.2.tgz#90f2469fd908033145622bfe31d3ef0ef3e2d3ad" - integrity sha512-QQdYnfwrPmc1DoPlddjFvQPzUHFbStKXsHrG6EBYsWHhBVUCjsCRdcfGGXGAvhDpDtTzKK4vy1UrGFJ45rQaiw== - -"@rollup/rollup-freebsd-x64@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.64.2.tgz#e1ec729b4648b44380677106ae7d1f992509f2f0" - integrity sha512-1xRxtGWif6BB58VSfMavi0Yfs2M4x6CtRp4o7ScY4W7AGlgvf6GSPKdDNdw7TX3tMiQwZY5W/mvyrOJTq/7AKA== - -"@rollup/rollup-linux-arm-gnueabihf@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.64.2.tgz#55222cabcd95b20748cfb1166b5c1527f3a69a24" - integrity sha512-CXFLEt384BUwwOLR9DURWNHl1bQOVLd1ibOee+yKBJm/fZtvrSAOZ0JbxjAxszVMIovYMwFMS+oP+Q1aPcx8Eg== - -"@rollup/rollup-linux-arm-musleabihf@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.64.2.tgz#15d038e4816b2c5aae931fbd351aa2daf044986f" - integrity sha512-T1dorY0WHm5mMNpMHFl5rYRZ02gLSZcr6J45r66tYb3S3R3DyIRGiGWVdLtF+zOQjratNJaObl9jYumueRiL1A== - -"@rollup/rollup-linux-arm64-gnu@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.64.2.tgz#83ea1c207f0b3124c743c00028fdbe1041c2441e" - integrity sha512-ia6bfaCIc0ldp6bvs9oEkFrJVJKNUMoiDF0+LBZsQAZg+vE0znXnzGqH+ew/FYswE30cruAWPTO3dPw7keaVkQ== - -"@rollup/rollup-linux-arm64-musl@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.64.2.tgz#bb4c65700e73651e7c17c6ef99f2db8f2747dfda" - integrity sha512-mB/gwfBfXtT0EBpbSssqKCqMFuX8b21Zy2TGoIhehSJEssZ5ksybxymwp1BkEM5Nczh/AAxpmh5q+MkhtundGg== - -"@rollup/rollup-linux-loong64-gnu@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.64.2.tgz#0f82d63420941e9c9f6d7cd2e8675b05019e8bd6" - integrity sha512-VPd0a+XlHoNRI9jIPRHww2UKhDkD6XjbtcKYXZijAnhJS1jLLbiNtVl6a5LyEfNN+eyiyWcJOZXPzBo69oTsew== - -"@rollup/rollup-linux-loong64-musl@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.64.2.tgz#28548076c20884104c2f69d6e7a5948ec3c452ca" - integrity sha512-10N1I6oBpERqzGtHKcCLrEpHlbXSBbMK9TURHvqgWbIFZuU3oJROxJ0H2nHfq96TVI0XJHQ9qzolJMFd2tz0LA== - -"@rollup/rollup-linux-ppc64-gnu@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.64.2.tgz#d4def0203422fda89dfe58a7369de7d552a2e024" - integrity sha512-dhJrLVZ3wNNhwCmy9/VTg6Pq6J8a8eZ0n15dVRlbSWcDb+8V/1mDfbnvis+vt8W6Pbxzv6gUbTEl4piOT3bbUQ== - -"@rollup/rollup-linux-ppc64-musl@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.64.2.tgz#8d02f0d4220409d311e115483d74f6f8ee764d8b" - integrity sha512-tPd2QuwxkTxgju5eARyb3RdgBWWi/O9dn/NFH0VkvGbLzoQeXrH6qMABtW8IODb5lUeBzB3sy2U7qmI4MtQ72g== - -"@rollup/rollup-linux-riscv64-gnu@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.64.2.tgz#ba2f5d1db0866c15b91551b4b462fd544e442049" - integrity sha512-njtDdPvSQWI9CDhIPPxsiEMeHayCfu7wwcbSQ7c2kYPhGVviL+WGVhq6Jfj/b+VuhSTkFuQ0z4ZFbFjkWwBFmg== - -"@rollup/rollup-linux-riscv64-musl@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.64.2.tgz#089625efbdb6def721fce3058987dae441f27f84" - integrity sha512-EbOBo3dqCj9ecEV9Z7zvulB6AieMP2ztnKQYGVOSN0pzIyOu+3JH2YJZnLmbPeVvfn6yP6Qi7NbBM27EzGbj2w== - -"@rollup/rollup-linux-s390x-gnu@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.64.2.tgz#056c832e09454b0261b419862e42030e01f55e2c" - integrity sha512-8wLt2Q5n4qmfiE2Gk8V6KNLSf+oJuBX7Kdw5joFDtnZIZvirS0hLzBc79OiJjV71oYDmBUZLNy6pDgvylo4qiQ== - -"@rollup/rollup-linux-x64-gnu@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.64.2.tgz#0496abe7430af48e9983a0ac97c8571235bd6c91" - integrity sha512-aIChbkhC4d33bxkVP0LSi2/2lUSGRXE6k4Qa0G7tgpgTOK7kxHTixmx5qC3SKUJ6yUMznHBtQoWaG4QMqLUnhw== - -"@rollup/rollup-linux-x64-musl@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.64.2.tgz#93748b2772ffdc8b8893fb3ab4d18794ac9ab0d2" - integrity sha512-gQ+TkVZRfjZVcl/UOAxxfWw+sHjzIXoieNwxEyJlD3tRBmBhR8ZDq11w+QEgQDcpslEB+fhN/OEpaTsDoIIHhQ== - -"@rollup/rollup-openbsd-x64@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.64.2.tgz#072f2ebfdfb263f8574be6fc071ec47f4b94a34e" - integrity sha512-sUaJpMKS2JBCvUk8fYimG7aMq2jHVT4kw/uVHxPolKLrMmkKy0KXirmZyZehdNpL7PffqAlPAWUELQcTiD8ChA== - -"@rollup/rollup-openharmony-arm64@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.64.2.tgz#53715953291cabb2c5b2839aee9c6cce1a133204" - integrity sha512-j1RdJWb0CrlSuwt12OPjLucPlwfLtA/KMOKVvh5rXSJEtl/WDoIGR3CSykK/jLGTo9RqNfW5Ub6kY5Z5ccYl9w== - -"@rollup/rollup-win32-arm64-msvc@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.64.2.tgz#13992d71d791fe408f6a2e6b19d6f737c52504bf" - integrity sha512-i3r04aHCIY3eggTBLUp/4IxiBjDpAgQaK89Ue2nMJ2MKuIXX5JfoeZjHw+kPjGGNVDlhi8FT8xzuGMJZe3aehg== - -"@rollup/rollup-win32-ia32-msvc@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.64.2.tgz#42ff971cd37b2ea2931a7483affb562ab741ef17" - integrity sha512-kCQ15h/uwNMGdN8gjXBZGf+aGE+ODzHfbi90/cAm4+Q89WoMiLODNoj8HoGZmYx87HPxfu5CBNPsZ+ZG4uIAoA== - -"@rollup/rollup-win32-x64-gnu@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.64.2.tgz#f7e3298a4f35823818c82703454469174ed133c6" - integrity sha512-yYAuySSs+0X2gSMJPw/Q4jHsHZHyMq1dpAE+XnN790Jg1WuReUAD/+j+e4vuDvS4PXJ4PA4NCzTR4OYtDf18/g== - -"@rollup/rollup-win32-x64-msvc@4.64.2": - version "4.64.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.64.2.tgz#432d3b2def25b9223d7d34762f43784167bacbc2" - integrity sha512-JY1rQdWOJrKutORqKO1uzrHXV86jFiQzfLFKx2s8S1CjLXL9fC5LOIvk0q7Z7PXJvsByt+sdoE1Q2a9gBr4gLQ== - -"@solidjs/signals@^0.3.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@solidjs/signals/-/signals-0.3.2.tgz#8c802a8331c92d8b9d10381a7e054172e7d645ba" - integrity sha512-Y8oh0xtB4DBluydxjphMQXjBULvoMxouDN/MgrXqN+F3B5UN4QTYEigFdT7KxVzunbNXkyOhOIit1QcgmJ27SQ== - -"@standard-schema/spec@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.1.0.tgz#a79b55dbaf8604812f52d140b2c9ab41bc150bb8" - integrity sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w== - -"@sveltejs/acorn-typescript@^1.0.13": - version "1.0.13" - resolved "https://registry.yarnpkg.com/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.13.tgz#8c7c3cc7014e212f2e8fccee0159dbecfe602405" - integrity sha512-wgKggnhZVL9Bfx1OaKKTrYY9BFRk6C8UAkQNUcIv1+llzYrIqy+RZm5HPKzn0NpEBvTVhTqB4kQyllZywsRBRQ== - -"@types/chai@^5.2.2": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" - integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== - dependencies: - "@types/deep-eql" "*" - assertion-error "^2.0.1" - -"@types/deep-eql@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" - integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== - -"@types/estree@1.0.9", "@types/estree@^1.0.0", "@types/estree@^1.0.6", "@types/estree@^1.0.9": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24" - integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== - -"@types/node@^22.20.4": - version "22.20.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.20.5.tgz#afa7bde6da81b8b83ea4e2f020487e9b148c11fd" - integrity sha512-U2+DNr+wSjpsTS/wZGYHq7GcwfuSmKiKvoPvK22zwTlRhU91yOniN4qRR5KhIjvif7ysw/dz/hKmfDH0Ris4aA== - dependencies: - undici-types "~6.21.0" - -"@vitest/expect@3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-3.2.7.tgz#70a34158383d008c3bf5d802e2643317f09df6d8" - integrity sha512-E8eBXaKibuvH2pSZErOjdVb5vF4PbKYcrnluBTYxEk1l/VhhwZg1kZQsdtjq+CsF5CFydf2Rdkz7jDHKSisi3w== - dependencies: - "@types/chai" "^5.2.2" - "@vitest/spy" "3.2.7" - "@vitest/utils" "3.2.7" - chai "^5.2.0" - tinyrainbow "^2.0.0" - -"@vitest/mocker@3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-3.2.7.tgz#331be944cb783c642dd42bd743411aca24ea0466" - integrity sha512-Trr0hYO9CM3Wj6ksWHRhK9IZpIY6wTMO5u/MqXurMxT57sWBaOPEtP3Oq60ihZuh5JsiagKfz95OcxdEP6dBrA== - dependencies: - "@vitest/spy" "3.2.7" - estree-walker "^3.0.3" - magic-string "^0.30.17" - -"@vitest/pretty-format@3.2.7", "@vitest/pretty-format@^3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-3.2.7.tgz#2a7b593f8e007e9d8ef7e7343aa30ec73fdeaf29" - integrity sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA== - dependencies: - tinyrainbow "^2.0.0" - -"@vitest/runner@3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-3.2.7.tgz#c0c080228189f1fa6cda40f59be09d746b0aca51" - integrity sha512-sB9y4ovltoQP+WaUPwmSxO9WIg9Ig694Di5PalVPsYHklAdE027mehpWF2SQSVq+k6sFgaivbTjTJwZLSHbedA== - dependencies: - "@vitest/utils" "3.2.7" - pathe "^2.0.3" - strip-literal "^3.0.0" - -"@vitest/snapshot@3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-3.2.7.tgz#a3a7e1950ce99ec4cf02395e20ddca403b6c818e" - integrity sha512-7C+MwShwtBSI5Buwoyg3s/iY1eHL9PKAf+O1wVh/TdnjXUtkoL/9YQtre90i4MtNXM6edP1wJ2zOBpfCyhIS7g== - dependencies: - "@vitest/pretty-format" "3.2.7" - magic-string "^0.30.17" - pathe "^2.0.3" - -"@vitest/spy@3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-3.2.7.tgz#ca7fbee44019523ca450395d9a2284ce9ece1f31" - integrity sha512-Q2eQGI6d2L/hBtZ0qNuKcAGid68XK6cv1xsoaIma6PaJhHPoqcEJhYpXZ/5myCMqkNgtP6UKuBhbc0nHKnrkuQ== - dependencies: - tinyspy "^4.0.3" - -"@vitest/utils@3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-3.2.7.tgz#302c8126211ac4dfea87b3b5085c098d6d22e89e" - integrity sha512-x6BDOd7dyo3PFLY3I9/HJ25X/6OurhGXk2/B9gOZNPF7XDVjeBK4k01lQE5uvDpbuheErh91qYuE1E2OEjK3Rw== - dependencies: - "@vitest/pretty-format" "3.2.7" - loupe "^3.1.4" - tinyrainbow "^2.0.0" - -"@vue/reactivity@^3.5.0": - version "3.5.43" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.43.tgz#26441233103e834616959a032d8fabd4524fd089" - integrity sha512-G/c9GyOZNI2jVaaS6OX1EF1SSFSv7H0ERqNTl4+DTFMlZmB5eVAB53aLQNam/7NL2NPtaDD7RdVrzf8uJzMuOA== - dependencies: - "@vue/shared" "3.5.43" - -"@vue/shared@3.5.43": - version "3.5.43" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.43.tgz#22c11ecf1304bfc6f6b745f3b4ba54c410074338" - integrity sha512-uksS7YGMR5NZyr4JNq0Rp+QyLns0ueaz20KwzIPW9R0LH1Vnt4E+XUM29PNseEbf1www2gOuhuDi5AKOIXag9Q== - -acorn@^8.18.0: - version "8.19.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.19.0.tgz#6b26fd97ce1cc9dc50bdf7ad305e9f1384d4f28a" - integrity sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw== - -alien-signals@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/alien-signals/-/alien-signals-3.2.1.tgz#eb66256949bce90b7d30d055e2752e62d6930c7c" - integrity sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g== - -anod@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/anod/-/anod-0.9.1.tgz#5d4ae99a7b7a9ee301f679e8193156f06829124b" - integrity sha512-J3Rw8vYEw8EZfFyCHM43C95ozidIoOV4ai9cQvvkWV3UbdKUfjjqDq4T0uOHEdBDPcqzwBRhI88uvhktXoaFVA== - -aria-query@5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.1.tgz#ebcb2c0d7fc43e68e4cb22f774d1209cb627ab42" - integrity sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g== - -assertion-error@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" - integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== - -axobject-query@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" - integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== - -babel-plugin-transform-rename-import@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-rename-import/-/babel-plugin-transform-rename-import-2.3.0.tgz#5d9d645f937b0ca5c26a24b2510a06277b6ffd9b" - integrity sha512-dPgJoT57XC0PqSnLgl2FwNvxFrWlspatX2dkk7yjKQj5HHGw071vAcOf+hqW8ClqcBDMvEbm6mevn5yHAD8mlQ== - -cac@^6.7.14: - version "6.7.14" - resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" - integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== - -chai@^5.2.0: - version "5.3.3" - resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.3.tgz#dd3da955e270916a4bd3f625f4b919996ada7e06" - integrity sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw== - dependencies: - assertion-error "^2.0.1" - check-error "^2.1.1" - deep-eql "^5.0.1" - loupe "^3.1.0" - pathval "^2.0.0" - -check-error@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.3.tgz#2427361117b70cca8dc89680ead32b157019caf5" - integrity sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA== - -clsx@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" - integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== - -csstype@^3.1.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" - integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== - -debug@^4.3.1, debug@^4.4.1: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -deep-eql@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" - integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== - -devalue@^5.9.2: - version "5.9.4" - resolved "https://registry.yarnpkg.com/devalue/-/devalue-5.9.4.tgz#f6ccb639568f50233936c8c48b92a690cfb22c34" - integrity sha512-sPAT4pztbu6586/hrhOnMKS17IJrvg12mXiSPSS3W5qDeN2RGgvZ0diZCm31dBbnevfVmujNO3IM2wrS4Y2Rhg== - -es-module-lexer@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" - integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== - -"esbuild@^0.27.0 || ^0.28.0": - version "0.28.2" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.2.tgz#0f43bd1bad955b72d24e2261e3abe5957ccf0816" - integrity sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA== - optionalDependencies: - "@esbuild/aix-ppc64" "0.28.2" - "@esbuild/android-arm" "0.28.2" - "@esbuild/android-arm64" "0.28.2" - "@esbuild/android-x64" "0.28.2" - "@esbuild/darwin-arm64" "0.28.2" - "@esbuild/darwin-x64" "0.28.2" - "@esbuild/freebsd-arm64" "0.28.2" - "@esbuild/freebsd-x64" "0.28.2" - "@esbuild/linux-arm" "0.28.2" - "@esbuild/linux-arm64" "0.28.2" - "@esbuild/linux-ia32" "0.28.2" - "@esbuild/linux-loong64" "0.28.2" - "@esbuild/linux-mips64el" "0.28.2" - "@esbuild/linux-ppc64" "0.28.2" - "@esbuild/linux-riscv64" "0.28.2" - "@esbuild/linux-s390x" "0.28.2" - "@esbuild/linux-x64" "0.28.2" - "@esbuild/netbsd-arm64" "0.28.2" - "@esbuild/netbsd-x64" "0.28.2" - "@esbuild/openbsd-arm64" "0.28.2" - "@esbuild/openbsd-x64" "0.28.2" - "@esbuild/openharmony-arm64" "0.28.2" - "@esbuild/sunos-x64" "0.28.2" - "@esbuild/win32-arm64" "0.28.2" - "@esbuild/win32-ia32" "0.28.2" - "@esbuild/win32-x64" "0.28.2" - -esm-env@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/esm-env/-/esm-env-1.2.2.tgz#263c9455c55861f41618df31b20cb571fc20b75e" - integrity sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA== - -esrap@^2.3.6: - version "2.4.0" - resolved "https://registry.yarnpkg.com/esrap/-/esrap-2.4.0.tgz#ea090ec9815d7d9acca2e6d6e89e54e183c34f42" - integrity sha512-CQPcneEHw/czj32uwQC52nYnax8H4SXt25FCM+LIwGZ49cMIxpOj3bP8wmzcI+Z0HIy5KkClaPhRLfCySzwHPA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" - -estree-walker@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" - integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== - dependencies: - "@types/estree" "^1.0.0" - -expect-type@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.4.0.tgz#24edf7f0cc69a44d008567ba4594ab96f3c3a3d6" - integrity sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA== - -fdir@^6.5.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" - integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== - -flimsy@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/flimsy/-/flimsy-1.1.0.tgz#18469a735e421baac40941a7423ef025c06d1040" - integrity sha512-ciGv7dnh5h6/jwCHpJrwUTNxjiOCb4nzcNYClHUjG/jlP9l6uN0InJBjHPoPBh9XOzZs3d6hes4r14Rl7xZROw== - -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -idb-keyval@^6.2.4: - version "6.3.0" - resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.3.0.tgz#3fa4c062fcaddd7e577c51b51f69924bccfb58e6" - integrity sha512-um+2dgAWmYsu615EXpWVwSmapJhON0G43t3Ka/EVaohzPQXSMqKEqeDK/oIW3Ow+BXaF2PvSc+oBTFp793A5Ow== - -is-reference@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.3.tgz#9ef7bf9029c70a67b2152da4adf57c23d718910f" - integrity sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw== - dependencies: - "@types/estree" "^1.0.6" - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4" - integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ== - -jsesc@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" - integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== - -locate-character@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-3.0.0.tgz#0305c5b8744f61028ef5d01f444009e00779f974" - integrity sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA== - -loupe@^3.1.0, loupe@^3.1.4: - version "3.2.1" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.2.1.tgz#0095cf56dc5b7a9a7c08ff5b1a8796ec8ad17e76" - integrity sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ== - -magic-string@^0.30.11, magic-string@^0.30.17: - version "0.30.21" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" - integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.5" - -mobx@^6.13.0: - version "6.16.1" - resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.16.1.tgz#8b3166186d1298b1848395e10e64b5c43d6dc43b" - integrity sha512-syNcDdX3KT+Jq3je6eGjBhuc24Z68td2VG0zNFqRswaE433D9SNH5VRy/xrGbJsUixfppLLccXhAW9JSf6n+SQ== - -ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@^3.3.19: - version "3.3.20" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.20.tgz#dfd4444d85aa10111ef66ba85ed72e08ba0855d8" - integrity sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ== - -oby@^15.1.0: - version "15.1.2" - resolved "https://registry.yarnpkg.com/oby/-/oby-15.1.2.tgz#c960a0eeff10a1c87f67ce658d32ac349ac83fb4" - integrity sha512-6QD9iEoPzV+pMDdcg3RtFWhgDX8pS5hZouVHvgXGDy3Q9RxFfnI3CYv9i62keeuX+qk6iN2z5E9FD3q3OckZ6A== - -pathe@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" - integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== - -pathval@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.1.tgz#8855c5a2899af072d6ac05d11e46045ad0dc605d" - integrity sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^4.0.2, picomatch@^4.0.3, picomatch@^4.0.4: - version "4.0.7" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.7.tgz#6313360034ccb36b3dc61ecbdff78121f90fe21f" - integrity sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA== - -postcss@^8.5.6: - version "8.5.29" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.29.tgz#086a0ded2c0257c71efb8c68776b477774714b4a" - integrity sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ== - dependencies: - nanoid "^3.3.19" - picocolors "^1.1.1" - source-map-js "^1.2.2" - -pota@^0.7.0: - version "0.7.82" - resolved "https://registry.yarnpkg.com/pota/-/pota-0.7.82.tgz#9bc2cd2b484d974b9f45b4fcd7a7e96b0b736556" - integrity sha512-ZIJbG5z5e7V5jFUswxnaWBZAid4DsntYUCyjoM9thazWnXHLByIkJ/uK4UBxwZw8G3vTsQAi4uqvEz3U3Dt1Cg== - dependencies: - "@babel/plugin-transform-react-jsx" "^7.23.4" - babel-plugin-transform-rename-import "^2.3.0" - flimsy "^1.1.0" - oby "^15.1.0" - solid-js "^1.8.12" - -rollup@^4.43.0: - version "4.64.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.64.2.tgz#5be367e38284e178c74578de5a39e42e36a8ef89" - integrity sha512-RxXm0XVVV1hFI3dYe12ruaOgsYQ725lUcUWeMSQqkF9tTxVErY+fy2Ets6vWhItL9MZMSNZGbvZFc7rH/VHp2Q== - dependencies: - "@types/estree" "1.0.9" - optionalDependencies: - "@napi-rs/lzma-linux-x64-gnu" "1.5.1" - "@rollup/rollup-android-arm-eabi" "4.64.2" - "@rollup/rollup-android-arm64" "4.64.2" - "@rollup/rollup-darwin-arm64" "4.64.2" - "@rollup/rollup-darwin-x64" "4.64.2" - "@rollup/rollup-freebsd-arm64" "4.64.2" - "@rollup/rollup-freebsd-x64" "4.64.2" - "@rollup/rollup-linux-arm-gnueabihf" "4.64.2" - "@rollup/rollup-linux-arm-musleabihf" "4.64.2" - "@rollup/rollup-linux-arm64-gnu" "4.64.2" - "@rollup/rollup-linux-arm64-musl" "4.64.2" - "@rollup/rollup-linux-loong64-gnu" "4.64.2" - "@rollup/rollup-linux-loong64-musl" "4.64.2" - "@rollup/rollup-linux-ppc64-gnu" "4.64.2" - "@rollup/rollup-linux-ppc64-musl" "4.64.2" - "@rollup/rollup-linux-riscv64-gnu" "4.64.2" - "@rollup/rollup-linux-riscv64-musl" "4.64.2" - "@rollup/rollup-linux-s390x-gnu" "4.64.2" - "@rollup/rollup-linux-x64-gnu" "4.64.2" - "@rollup/rollup-linux-x64-musl" "4.64.2" - "@rollup/rollup-openbsd-x64" "4.64.2" - "@rollup/rollup-openharmony-arm64" "4.64.2" - "@rollup/rollup-win32-arm64-msvc" "4.64.2" - "@rollup/rollup-win32-ia32-msvc" "4.64.2" - "@rollup/rollup-win32-x64-gnu" "4.64.2" - "@rollup/rollup-win32-x64-msvc" "4.64.2" - fsevents "~2.3.2" - -rxjs@^7.8.2: - version "7.8.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" - integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== - dependencies: - tslib "^2.1.0" - -s-js@^0.4.9: - version "0.4.9" - resolved "https://registry.yarnpkg.com/s-js/-/s-js-0.4.9.tgz#ecb12a53072174d1ac58f2eaad529c7e2950cef2" - integrity sha512-RtpOm+cM6O0sHg6IA70wH+UC3FZcND+rccBZpBAHzlUgNO2Bm5BN+FnM8+OBxzXdwpKWFwX11JGF0MFRkhSoIQ== - -seroval-plugins@~1.6.8: - version "1.6.8" - resolved "https://registry.yarnpkg.com/seroval-plugins/-/seroval-plugins-1.6.8.tgz#3187b90331153472bdba83da5be63912e14cd2ac" - integrity sha512-N7mWAMydj89EnYTHtRpS3LBrAz3J9O6oVrqpuXuvlAHfAUG8WEKqtbAd7SBiJNY5NfCAFhSdyAh7wI4Shjqy4g== - -seroval@~1.6.8: - version "1.6.8" - resolved "https://registry.yarnpkg.com/seroval/-/seroval-1.6.8.tgz#916c4a293cfadcd9e0efdb73a8bfbe061f81866b" - integrity sha512-HlSgSAkTk4EqHcje1ptJjfZi1YDv5KbhVJ/d3P7T/nAXua2VmDu+AKDX5VTdFfZf48nDkWB2TKYt0DrCSa+3wg== - -siginfo@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" - integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== - -signal-polyfill@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/signal-polyfill/-/signal-polyfill-0.2.2.tgz#722e2cd272cbd6cdc5fcc741459bd066f93d0264" - integrity sha512-p63Y4Er5/eMQ9RHg0M0Y64NlsQKpiu6MDdhBXpyywRuWiPywhJTpKJ1iB5K2hJEbFZ0BnDS7ZkJ+0AfTuL37Rg== - -solid-js@^1.8.12, solid-js@^1.9.0: - version "1.9.17" - resolved "https://registry.yarnpkg.com/solid-js/-/solid-js-1.9.17.tgz#9f8444b3667f756c233dce15f76e431cf9a86480" - integrity sha512-4GAmLOWPfNV8H9Jfn2LSFTpNEG6jiOKPiwd5lnLGQtehHaX6l3TOLzJqQ7mqwB/3k1Yy3zyumFVopmc/tm34ow== - dependencies: - csstype "^3.1.0" - seroval "~1.6.8" - seroval-plugins "~1.6.8" - -source-map-js@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.2.tgz#79fb88d97535a21cb27162cb05d211b67acea4ab" - integrity sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw== - -stackback@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" - integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== - -std-env@^3.9.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.10.0.tgz#d810b27e3a073047b2b5e40034881f5ea6f9c83b" - integrity sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg== - -strip-literal@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-3.1.0.tgz#222b243dd2d49c0bcd0de8906adbd84177196032" - integrity sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg== - dependencies: - js-tokens "^9.0.1" - -svelte@^5.34.0: - version "5.57.2" - resolved "https://registry.yarnpkg.com/svelte/-/svelte-5.57.2.tgz#708ba9778114dc59457894055c9b034a4e0c86e0" - integrity sha512-1YiPCAXT0Ct6g1vOMmSLa0Nsc3QRMvtDF32ihgglGVrugIuIK38RyDiFNXVDhtQ81TJjSO57NdMw6DyYLqSGDQ== - dependencies: - "@jridgewell/remapping" "^2.3.5" - "@jridgewell/sourcemap-codec" "^1.6.0" - "@sveltejs/acorn-typescript" "^1.0.13" - "@types/estree" "^1.0.9" - acorn "^8.18.0" - aria-query "5.3.1" - axobject-query "^4.1.0" - clsx "^2.1.1" - devalue "^5.9.2" - esm-env "^1.2.1" - esrap "^2.3.6" - is-reference "^3.0.3" - locate-character "^3.0.0" - magic-string "^0.30.11" - zimmerframe "^1.1.2" - -tinybench@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" - integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== - -tinyexec@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" - integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== - -tinyglobby@^0.2.14, tinyglobby@^0.2.15: - version "0.2.17" - resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.17.tgz#562a9a6c9eb2b3b123d39719f9af5bb44fcd7631" - integrity sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g== - dependencies: - fdir "^6.5.0" - picomatch "^4.0.4" - -tinypool@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.1.1.tgz#059f2d042bd37567fbc017d3d426bdd2a2612591" - integrity sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg== - -tinyrainbow@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-2.0.0.tgz#9509b2162436315e80e3eee0fcce4474d2444294" - integrity sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw== - -tinyspy@^4.0.3: - version "4.0.6" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-4.0.6.tgz#68e278e20287f37beb5f4b0a4db211d280400562" - integrity sha512-u8KszXvGfU68hVcZpRHKG28T0krMuv2G5nDhiHaMLen/gIuFEgIJhaJuO69qjnXg5paSrbPMFfx3brNuN8eVSg== - -tslib@^2.1.0, tslib@^2.3.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -typescript@^5.8.0: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - -vite-node@3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-3.2.4.tgz#f3676d94c4af1e76898c162c92728bca65f7bb07" - integrity sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg== - dependencies: - cac "^6.7.14" - debug "^4.4.1" - es-module-lexer "^1.7.0" - pathe "^2.0.3" - vite "^5.0.0 || ^6.0.0 || ^7.0.0-0" - -"vite@^5.0.0 || ^6.0.0 || ^7.0.0-0": - version "7.3.7" - resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.7.tgz#017a80fdce051003a4aa290dddd0b159aa769282" - integrity sha512-AHEzTORMbi7/7aXp7w7KZ5+DCUdSeLsJz0grY8xHpc9DHdYb0vQu6DqJfm2tOw3gDExNgPgnJTXxM6syYFHaCA== - dependencies: - esbuild "^0.27.0 || ^0.28.0" - fdir "^6.5.0" - picomatch "^4.0.3" - postcss "^8.5.6" - rollup "^4.43.0" - tinyglobby "^0.2.15" - optionalDependencies: - fsevents "~2.3.3" - -vitest@^3.2.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-3.2.7.tgz#1944b6ed013a25fd26a73d18e1af92c10a57af6c" - integrity sha512-KrxIJ62Fd89gfysR4WotlgZABiz2dqFPgqGzX7s+CwsqLFomRH7777ZcrOD6+WVAh7khPQP41A+BKbpcJFrdEg== - dependencies: - "@types/chai" "^5.2.2" - "@vitest/expect" "3.2.7" - "@vitest/mocker" "3.2.7" - "@vitest/pretty-format" "^3.2.7" - "@vitest/runner" "3.2.7" - "@vitest/snapshot" "3.2.7" - "@vitest/spy" "3.2.7" - "@vitest/utils" "3.2.7" - chai "^5.2.0" - debug "^4.4.1" - expect-type "^1.2.1" - magic-string "^0.30.17" - pathe "^2.0.3" - picomatch "^4.0.2" - std-env "^3.9.0" - tinybench "^2.9.0" - tinyexec "^0.3.2" - tinyglobby "^0.2.14" - tinypool "^1.1.1" - tinyrainbow "^2.0.0" - vite "^5.0.0 || ^6.0.0 || ^7.0.0-0" - vite-node "3.2.4" - why-is-node-running "^2.3.0" - -why-is-node-running@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" - integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== - dependencies: - siginfo "^2.0.0" - stackback "0.0.2" - -zimmerframe@^1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/zimmerframe/-/zimmerframe-1.1.5.tgz#8e34202e0419b424974a197aba746a8423a3fba8" - integrity sha512-msJxIvYDYcoNL+PJsu+7qmpDWsYmAxTY+2TNYXXF0hzBzBk0BMecOqDOG/EckUoKCuKwObfbugIl8QpqHDXeFA== From 232a4cdcf3d6dc8d3a1a93b4b9b503a58e416199 Mon Sep 17 00:00:00 2001 From: Den Pol Date: Wed, 14 Oct 2026 08:42:25 +0300 Subject: [PATCH 9/9] fix --- package.json | 4 ++-- test/frameworks/index.ts | 4 ++-- test/frameworks/reactiveEngine.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b4eed7f..965d312 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@amadeus-it-group/tansu": "^2.0.0", "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", - "@pravosleva/reactive-engine": "2.1.12", + "@pravosleva/reactive-engine": "latest", "@preact/signals-core": "^1.8.0", "@reactively/core": "^0.0.8", "@reatom/core": "^1001.0.0", @@ -54,4 +54,4 @@ "typescript": "^5.8.0", "vitest": "^3.2.0" } -} +} \ No newline at end of file diff --git a/test/frameworks/index.ts b/test/frameworks/index.ts index 919b891..bfedebc 100644 --- a/test/frameworks/index.ts +++ b/test/frameworks/index.ts @@ -15,7 +15,7 @@ import { tansuFramework } from "./tansu.js"; import { tc39SignalsFramework } from "./tc39Signals.js"; import { vueReactivityFramework } from "./vueReactivity.js"; import { solidSignalsFramework } from "./solidSignals.js"; -import { reactiveEngineFrameork } from './reactiveEngine.js'; +import { reactiveEngineFramework } from './reactiveEngine.js'; export const frameworks: ReactiveFramework[] = [ alienSignalsFramework, @@ -33,5 +33,5 @@ export const frameworks: ReactiveFramework[] = [ potaFramework, angularSignalsFramework, anodFramework, - reactiveEngineFrameork, + reactiveEngineFramework, ]; diff --git a/test/frameworks/reactiveEngine.ts b/test/frameworks/reactiveEngine.ts index 1ab24e4..c44013e 100644 --- a/test/frameworks/reactiveEngine.ts +++ b/test/frameworks/reactiveEngine.ts @@ -3,7 +3,7 @@ import { ReactiveEngineCore } from '@pravosleva/reactive-engine' const engine = new ReactiveEngineCore() -export const reactiveEngineFrameork: ReactiveFramework = { +export const reactiveEngineFramework: ReactiveFramework = { name: "@pravosleva/reactive-engine", signal(initialValue: T) {