sia-reactor 0.0.24 → 0.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,8 +5,9 @@
5
5
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
6
  [![NPM Version](https://img.shields.io/npm/v/sia-reactor.svg)](https://www.npmjs.com/package/sia-reactor)
7
7
  [![Bundle Size](https://img.shields.io/bundlephobia/minzip/sia-reactor)](https://bundlephobia.com/package/sia-reactor)
8
+ [![Github](https://img.shields.io/badge/github-100000?style=for-the-badge&logo=github)](https://github.com/Tobi007-del/sia-reactor)
8
9
 
9
- [Live Demo & Benchmarks](https://tobi007-del.github.io/t007-tools/packages/sia-reactor/src/index.html) | [Report Bug](https://github.com/Tobi007-del/t007-tools/issues)
10
+ [Live Demo & Benchmarks](https://tobi007-del.github.io/sia-reactor/src/index.html) | [Report Bug](https://github.com/Tobi007-del/sia-reactor/issues)
10
11
 
11
12
  [Chronicles](https://github.com/Tobi007-del/tmg-media-player/blob/main/CHRONICLES.md) | [Interaction Folklore](https://github.com/Tobi007-del/tmg-media-player/blob/main/FOLKLORE.md)
12
13
 
@@ -156,21 +157,20 @@ reactor.core.player.volume = 100; // re-assign core if desired
156
157
  All methods are available on `Reactor` instances or objects wrapped in `reactive()`.
157
158
 
158
159
  #### **Mediators (Synchronous Gatekeepers)**
159
- - **`set(path, callback, options)`**: Intercept memory writes. Return a value to modify it, or return `TERMINATOR` to block the write entirely.
160
- - **`get(path, callback, options)`**: Intercept and format data during retrieval.
161
- - **`delete(path, callback, options)`**: Intercept property deletion.
160
+ - **`set(path, callback, options)` <-> `noset(path, callback)`**: Intercept memory writes. Return a value to modify it, or return `TERMINATOR` to block the write entirely.
161
+ - **`get(path, callback, options)` <-> `noget(path, callback)`**: Intercept and format data during retrieval.
162
+ - **`delete(path, callback, options)` <-> `nodelete(path, callback)`**: Intercept property deletion.
162
163
 
163
164
  #### **Watchers (Synchronous Observers)**
164
- - **`watch(path, callback, options)`**: Fires instantly after a mutation. Use strictly for critical internal engine syncing on leaf paths preferably, sees only direct operations.
165
+ - **`watch(path, callback, options)` <-> `nowatch(path, callback)`**: Fires instantly after a mutation. Use strictly for critical internal engine syncing on leaf paths preferably, sees only direct operations.
165
166
 
166
167
  #### **Listeners (Asynchronous/Batched UI Observers)**
167
- - **`on(path, callback, options)`**: Attach DOM-style event listeners that respect `depth`. Supports `{ capture: true, depth: 1, once: true, immediate: true }`.
168
- - **`once(path, callback, options)`**: Fires once and self-destructs.
169
- - **`off(path, callback, options)`**: Removes a listener.
168
+ - **`on(path, callback, options)` <-> `off(path, callback, options)`**: Attach DOM-style event listeners that respect `depth`. Supports `{ capture: true, depth: 1, once: true, immediate: true }`.
169
+ - **`once(path, callback, options)`**: Fires once and self-destructs, others have too: `sonce(...)`, `gonce(...)`, `donce(...)`, `wonce(...)`.
170
170
 
171
171
  #### **Lifecycle & Utilities**
172
172
  - **`tick(path)`**: Forces a synchronous flush of the batch queue for a specific path.
173
- - **`stall(task)` / `nostall(task)`**: Manually stall the queue to wait for calculations before rendering.
173
+ - **`stall(task)` <-> `nostall(task)`**: Manually stall the queue to wait for calculations before rendering.
174
174
  - **`snapshot(raw)`**: Generates a strict, structurally-shared, un-proxied clone of the current state tree.
175
175
  - **`use(new ReactorModule(config), id)`**: Allows extended behaviour with external logic.
176
176
  - **`reset()`**: Clears all records bringing everything back to a clean slate.
@@ -178,25 +178,25 @@ All methods are available on `Reactor` instances or objects wrapped in `reactive
178
178
 
179
179
  ### Memory & Granular Control Flags
180
180
 
181
- You can wrap properties in special flags *before* initializing the reactor to dictate exactly how the Proxy treats them.
181
+ You can wrap properties in special flags *before* initializing the reactor to dictate exactly how the Proxy treats them. e.g. `reactive(volatile(intent({ behavior: "auto" })))`, e.t.c.
182
182
 
183
- - **`inert(obj)` / `live(obj)`**: Tells the proxy to completely ignore an object. It will not be deeply tracked.
184
- - **`intent(obj)` / `state(obj)`**: Marks an object as rejectable. Allows listeners to call `e.reject()` during the Capture phase.
185
- - **`volatile(obj)` / `stable(obj)`**: Forces the reactor to fire event waves even if the new value is identical to the old value (bypassing the Proxy's unchanged performance check).
183
+ - **`intent(obj)` <-> `state(obj)`**: Marks an object as rejectable. Allows listeners to call `e.reject()` during the Capture phase.
184
+ - **`inert(obj)` <-> `live(obj)`**: Tells the proxy to completely ignore an object. It will not be deeply tracked.
185
+ - **`volatile(obj)` <-> `stable(obj)`**: Forces the reactor to fire event waves even if the new value is identical to the old value (bypassing the Proxy's unchanged performance check).
186
186
 
187
187
  ```javascript
188
188
  import { reactive, intent, volatile, inert } from "sia-reactor";
189
189
 
190
190
  const data = reactive({
191
191
  apiResponse: inert({ heavy: "data" }), // Proxy won't traverse this
192
- userWish: intent({ flying: false }), // Can be rejected by a Higher Power
192
+ userWish: intent({ flying: false }), // Can be rejected by a Handler or a Higher Power
193
193
  trigger: volatile({ clickCount: 0 }) // Fires events even if set to 0 again
194
194
  });
195
195
  ```
196
196
 
197
197
  ### React Hooks & Effects
198
198
 
199
- The engine provides native React bindings utilizing `useSyncExternalStore` and an internal `Autotracker` for concurrent-safe, surgically precise component re-renders. All hooks natively accept a `Reactor` instance, a `reactive()` proxy, or a plain object (which will be auto-wrapped on the fly). Just import, your editor will reveal more details.
199
+ The engine provides native React bindings utilizing `useSyncExternalStore` and an internal `Autotracker` for concurrent-safe, surgically precise component re-renders. All hooks natively accept a `Reactor` instance, a `reactive()` proxy, or a plain object (which will be auto-wrapped on the fly). Just import, your editor will reveal more details all round.
200
200
 
201
201
  ```javascript
202
202
  import { reactive } from "sia-reactor";
@@ -231,7 +231,7 @@ const stopTracking = effect(() => console.log("User name changed to:", state.use
231
231
 
232
232
  ### Modules: The Extension Port
233
233
 
234
- The `Reactor` is designed to be a lightweight core. Extended capabilities are attached via Modules. It ships with a suite of powerful modules for common architectural needs.
234
+ The `Reactor` is designed to be a lightweight core. Extended capabilities are attached via Modules. Use `.attach(target: Reactor | Reactive<T>, id)` to chain reactors then `.setup(target, id)` which the `Reactor.use()` also calls to init, the `id` param will be direct keys on the final object, pass dotted paths to manipulate the shape.
235
235
 
236
236
  #### The Persistence Module
237
237
  Automatically syncs your State to LocalStorage, SessionStorage, Memory or IndexedDB. Always use this module first to avoid re-initialization issues.
@@ -241,14 +241,20 @@ import { reactive, Reactor, getReactor } from "sia-reactor";
241
241
  import { PersistModule, LocalStorageAdapter, IndexedDBAdapter, SessionStorageAdapter, CookieAdapter, MemoryAdapter } from "sia-reactor/modules";
242
242
 
243
243
  const state = reactive({ theme: "dark", settings: { volume: 50, brightness: 30 } });
244
- const persist = new PersistModule({ // Plug it in. State is now automatically hydrated and throttled-saved.
245
- key: "APP_PREFS",
246
- paths: ["theme", "settings.brightness"],
247
- throttle: 5000,
248
- fanout: true, // async hydration should use leaf writes to sync already initialized listeners.
244
+ const persist = new PersistModule({
245
+ key: "APP_GLOBAL_STATE",
246
+ whitelist: ["theme", "settings.brightness"], // all paths if omitted, use object if multiple reactors
247
+ blacklist: ["settings.debug"], // optional excluded paths
248
+ throttle: 2500, // ms between saves
249
+ fanout: true, // async hydration use leaf writes to sync initialized listeners.
249
250
  adapter: new IndexedDBAdapter({ dbName: "Session", version: 1, onversionchange: () => location.reload(), useSnapshot: true }) // or `LocalStorageAdapter` (instance or signature)
250
- };
251
- state.use(persist, getReactor(state))); // Put `Reactor` as second constructor arg if you want type inference, e.g. for the paths in the array.
251
+ }, getReactor(state)); // `Reactor` in second arg for path inference
252
+ state.use(persist); // calls `.setup()`, use after all attachments, `id` is the second param too.
253
+
254
+ // Seperate attach sample if multiple reactors desired
255
+ persist.attach(uiState, "ui").setup(appState, "app"); // or paths: "app.ui"
256
+ persist.config.whitelist = { ui: ["settings.theme"], app: ["settings.volume"] }; // Multi-reactor filtering by id key. If you didn't pass ids, use implicit index keys: { "0": [...], "1": [...] }
257
+
252
258
  ```
253
259
 
254
260
  #### The Time Travel Module
@@ -259,7 +265,7 @@ import { TimeTravelModule } from "sia-reactor/modules";
259
265
  import { effect, TimeTravelOverlay } from "sia-reactor/adapters/vanilla";
260
266
  import "sia-reactor/css/time-travel-overlay.css";
261
267
 
262
- const time = new TimeTravelModule({ maxHistory: 300, loop: false, rate: 150 });
268
+ const time = new TimeTravelModule({ maxHistory: 300, loop: false, rate: 150, whitelist: ["state.playing", "state.currentTime"] });
263
269
  state.use(time);
264
270
 
265
271
  // If persist uses an async adapter (e.g. IndexedDB), wait till after hydration:
@@ -532,7 +538,7 @@ S.I.A. Reactor synthesizes core concepts from the heavyweights of web and media
532
538
 
533
539
  No fancy screenshots here. True engineers look at performance metrics.
534
540
 
535
- To see the Reactor handle deep DAG mutations, DOM-style event routing, and microtask batching in real-time, visit the **[Live Demo](https://tobi007-del.github.io/t007-tools/packages/sia-reactor/src/index.html)**, open your DevTools console, and run the built-in Grand Master Stress Suite directly on your own CPU.
541
+ To see the Reactor handle deep DAG mutations, DOM-style event routing, and microtask batching in real-time, visit the **[Live Demo](https://tobi007-del.github.io/sia-reactor/src/index.html)**, open your DevTools console, and run the built-in Grand Master Stress Suite directly on your own CPU.
536
542
 
537
543
  *NOTE: The reactor is progressively enhanced so it's performance depends on how you use it and the options you toggle, it's base form is incredibly light.*
538
544
 
@@ -541,7 +547,7 @@ To see the Reactor handle deep DAG mutations, DOM-style event routing, and micro
541
547
  ## Author
542
548
 
543
549
  - Architect & Developer - [Oketade Oluwatobiloba (Tobi007-del)](https://github.com/Tobi007-del)
544
- - Project - [t007-tools](https://github.com/Tobi007-del/t007-tools)
550
+ - Project - [t007-tools](https://github.com/Tobi007-del/sia-reactor)
545
551
 
546
552
  ## Acknowledgments
547
553
 
@@ -551,6 +557,6 @@ Designed to bring absolute architectural dominance and rendering efficiency to c
551
557
 
552
558
  If you find this project useful, please consider giving it a star! ⭐
553
559
 
554
- [![Star History Chart](https://api.star-history.com/svg?repos=Tobi007-del/t007-tools&type=Date)](https://github.com/Tobi007-del/t007-tools)
560
+ [![Star History Chart](https://api.star-history.com/svg?repos=Tobi007-del/sia-reactor&type=Date)](https://github.com/Tobi007-del/sia-reactor)
555
561
 
556
562
  **[⬆ Back to Top](#sia-reactor)**
@@ -1,8 +1,8 @@
1
- import { d as Reactive } from './index-CDRimfvj.cjs';
2
- import { m as TimeTravelModule } from './timeTravel-CVgE6N0I.cjs';
1
+ import { d as Reactive } from './index-2jKy98op.cjs';
2
+ import { m as TimeTravelModule } from './timeTravel-DzgX8BKQ.cjs';
3
3
 
4
4
  /** Reactive options for the TimeTravel overlay instance. */
5
- interface TimeTravelConfig {
5
+ interface TimeTravelOverlayConfig {
6
6
  /** Header text shown at the top of the overlay panel. */
7
7
  title: string;
8
8
  /** Accent color used to derive panel theme variables. */
@@ -22,7 +22,7 @@ interface TimeTravelConfig {
22
22
  declare class TimeTravelOverlay {
23
23
  static count: number;
24
24
  index: number;
25
- config: TimeTravelConfig;
25
+ config: TimeTravelOverlayConfig;
26
26
  readonly state: Reactive<{
27
27
  open: boolean;
28
28
  import: string;
@@ -35,8 +35,8 @@ declare class TimeTravelOverlay {
35
35
  * @param time TimeTravel module instance that owns timeline operations.
36
36
  * @param build Optional initial overlay config overrides.
37
37
  */
38
- constructor(time: TimeTravelModule, build?: Partial<TimeTravelConfig>);
38
+ constructor(time: TimeTravelModule, build?: Partial<TimeTravelOverlayConfig>);
39
39
  destroy(): void;
40
40
  }
41
41
 
42
- export { type TimeTravelConfig as T, TimeTravelOverlay as a };
42
+ export { TimeTravelOverlay as T, type TimeTravelOverlayConfig as a };
@@ -1,8 +1,8 @@
1
- import { d as Reactive } from './index-CDRimfvj.js';
2
- import { m as TimeTravelModule } from './timeTravel-Cb8MHdYz.js';
1
+ import { d as Reactive } from './index-2jKy98op.js';
2
+ import { m as TimeTravelModule } from './timeTravel-CsbQ8qhP.js';
3
3
 
4
4
  /** Reactive options for the TimeTravel overlay instance. */
5
- interface TimeTravelConfig {
5
+ interface TimeTravelOverlayConfig {
6
6
  /** Header text shown at the top of the overlay panel. */
7
7
  title: string;
8
8
  /** Accent color used to derive panel theme variables. */
@@ -22,7 +22,7 @@ interface TimeTravelConfig {
22
22
  declare class TimeTravelOverlay {
23
23
  static count: number;
24
24
  index: number;
25
- config: TimeTravelConfig;
25
+ config: TimeTravelOverlayConfig;
26
26
  readonly state: Reactive<{
27
27
  open: boolean;
28
28
  import: string;
@@ -35,8 +35,8 @@ declare class TimeTravelOverlay {
35
35
  * @param time TimeTravel module instance that owns timeline operations.
36
36
  * @param build Optional initial overlay config overrides.
37
37
  */
38
- constructor(time: TimeTravelModule, build?: Partial<TimeTravelConfig>);
38
+ constructor(time: TimeTravelModule, build?: Partial<TimeTravelOverlayConfig>);
39
39
  destroy(): void;
40
40
  }
41
41
 
42
- export { type TimeTravelConfig as T, TimeTravelOverlay as a };
42
+ export { TimeTravelOverlay as T, type TimeTravelOverlayConfig as a };
@@ -1,7 +1,7 @@
1
- import { E as EffectOptions, R as Reactor, d as Reactive, v as ReactorBuild, D as DeepReadonly, W as WildPaths, e as PathValue } from '../index-CDRimfvj.cjs';
1
+ import { E as EffectOptions, R as Reactor, d as Reactive, v as ReactorBuild, D as DeepReadonly, W as WildPaths, e as PathValue } from '../index-2jKy98op.cjs';
2
2
  import { useLayoutEffect } from 'react';
3
- import { m as TimeTravelModule } from '../timeTravel-CVgE6N0I.cjs';
4
- import { T as TimeTravelConfig } from '../TimeTravelOverlay-XwZju4iS.cjs';
3
+ import { m as TimeTravelModule } from '../timeTravel-DzgX8BKQ.cjs';
4
+ import { a as TimeTravelOverlayConfig } from '../TimeTravelOverlay-_6k5wu1I.cjs';
5
5
 
6
6
  /**
7
7
  * Subscribes a component to desired Reactor state and returns it.
@@ -132,7 +132,7 @@ declare function usePath<T extends object, P extends WildPaths<T>>(target: T | R
132
132
  declare const useISOLayoutEffect: typeof useLayoutEffect;
133
133
 
134
134
  /** React props for controlling the vanilla TimeTravel overlay. */
135
- interface TimeTravelOverlayProps extends Partial<TimeTravelConfig> {
135
+ interface TimeTravelOverlayProps extends Partial<TimeTravelOverlayConfig> {
136
136
  /** Module instance controlled by this overlay bridge. */
137
137
  time: TimeTravelModule;
138
138
  }
@@ -1,7 +1,7 @@
1
- import { E as EffectOptions, R as Reactor, d as Reactive, v as ReactorBuild, D as DeepReadonly, W as WildPaths, e as PathValue } from '../index-CDRimfvj.js';
1
+ import { E as EffectOptions, R as Reactor, d as Reactive, v as ReactorBuild, D as DeepReadonly, W as WildPaths, e as PathValue } from '../index-2jKy98op.js';
2
2
  import { useLayoutEffect } from 'react';
3
- import { m as TimeTravelModule } from '../timeTravel-Cb8MHdYz.js';
4
- import { T as TimeTravelConfig } from '../TimeTravelOverlay-BdJMMcX9.js';
3
+ import { m as TimeTravelModule } from '../timeTravel-CsbQ8qhP.js';
4
+ import { a as TimeTravelOverlayConfig } from '../TimeTravelOverlay-fun5VLIo.js';
5
5
 
6
6
  /**
7
7
  * Subscribes a component to desired Reactor state and returns it.
@@ -132,7 +132,7 @@ declare function usePath<T extends object, P extends WildPaths<T>>(target: T | R
132
132
  declare const useISOLayoutEffect: typeof useLayoutEffect;
133
133
 
134
134
  /** React props for controlling the vanilla TimeTravel overlay. */
135
- interface TimeTravelOverlayProps extends Partial<TimeTravelConfig> {
135
+ interface TimeTravelOverlayProps extends Partial<TimeTravelOverlayConfig> {
136
136
  /** Module instance controlled by this overlay bridge. */
137
137
  time: TimeTravelModule;
138
138
  }
@@ -2,10 +2,10 @@ import {
2
2
  Autotracker,
3
3
  TimeTravelOverlay,
4
4
  withTracker
5
- } from "../chunk-6V5NR37Q.js";
5
+ } from "../chunk-MWC3R7QL.js";
6
6
  import {
7
7
  getReactor
8
- } from "../chunk-4FES5IIH.js";
8
+ } from "../chunk-3UHI7CNE.js";
9
9
  import "../chunk-5A44QFT6.js";
10
10
  import "../chunk-P37ADJMM.js";
11
11
  import {
@@ -1,7 +1,7 @@
1
- import { E as EffectOptions } from '../index-CDRimfvj.cjs';
2
- export { A as Autotracker, w as withTracker } from '../index-CDRimfvj.cjs';
3
- export { T as TimeTravelConfig, a as TimeTravelOverlay } from '../TimeTravelOverlay-XwZju4iS.cjs';
4
- import '../timeTravel-CVgE6N0I.cjs';
1
+ import { E as EffectOptions } from '../index-2jKy98op.cjs';
2
+ export { A as Autotracker, w as withTracker } from '../index-2jKy98op.cjs';
3
+ export { T as TimeTravelOverlay, a as TimeTravelOverlayConfig } from '../TimeTravelOverlay-_6k5wu1I.cjs';
4
+ import '../timeTravel-DzgX8BKQ.cjs';
5
5
 
6
6
  /**
7
7
  * Runs a reactive side effect in vanilla JavaScript.
@@ -1,7 +1,7 @@
1
- import { E as EffectOptions } from '../index-CDRimfvj.js';
2
- export { A as Autotracker, w as withTracker } from '../index-CDRimfvj.js';
3
- export { T as TimeTravelConfig, a as TimeTravelOverlay } from '../TimeTravelOverlay-BdJMMcX9.js';
4
- import '../timeTravel-Cb8MHdYz.js';
1
+ import { E as EffectOptions } from '../index-2jKy98op.js';
2
+ export { A as Autotracker, w as withTracker } from '../index-2jKy98op.js';
3
+ export { T as TimeTravelOverlay, a as TimeTravelOverlayConfig } from '../TimeTravelOverlay-fun5VLIo.js';
4
+ import '../timeTravel-CsbQ8qhP.js';
5
5
 
6
6
  /**
7
7
  * Runs a reactive side effect in vanilla JavaScript.
@@ -3,8 +3,8 @@ import {
3
3
  TimeTravelOverlay,
4
4
  effect,
5
5
  withTracker
6
- } from "../chunk-6V5NR37Q.js";
7
- import "../chunk-4FES5IIH.js";
6
+ } from "../chunk-MWC3R7QL.js";
7
+ import "../chunk-3UHI7CNE.js";
8
8
  import "../chunk-5A44QFT6.js";
9
9
  import "../chunk-P37ADJMM.js";
10
10
  import "../chunk-EZ4VRGYI.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  reactive
3
- } from "./chunk-4FES5IIH.js";
3
+ } from "./chunk-3UHI7CNE.js";
4
4
  import {
5
5
  createEl,
6
6
  formatKeyForDisplay,
@@ -19,7 +19,7 @@ type Paths<T, S extends string = ".", D extends number = MaxDepth> = [D] extends
19
19
  : T extends NoTraverse
20
20
  ? never
21
21
  : T extends readonly (infer U)[]
22
- ? `${Extract<keyof T, number>}` | `${Extract<keyof T, number>}${S}${Paths<U, S, PrevDepth[D]>}`
22
+ ? `${Extract<keyof T, number>}` | `${Extract<keyof T, number>}${S}${Paths<U, S, PrevDepth[D]>}` // or just `${number}`
23
23
  : {
24
24
  [K in keyof T & (string | number)]: T[K] extends Primitive
25
25
  ? `${K}`
@@ -36,7 +36,8 @@ type ChildPaths<
36
36
  > = Extract<
37
37
  Paths<T, S, AddDepth<PathDepth<P, S>, D>>,
38
38
  `${P extends "*" ? "" : P}${P extends "*" ? "" : S}${string}`
39
- >;
39
+ > &
40
+ Paths<T, S>; // bundlers can shutup and just believe
40
41
 
41
42
  /** Leaf key name extracted from a path. */
42
43
  type PathKey<T, P extends string = Paths<T>, S extends string = "."> = P extends "*"
@@ -212,7 +213,7 @@ type DeepReadonly<T, D extends number = MaxDepth> = [D] extends [0]
212
213
 
213
214
  /** Config for defining recursive limits for all parts of the application */
214
215
  interface DepthConfig {
215
- max: 11; // 19 is observed bundler recursive limit for state trees
216
+ max: 11; // 19 is observed bundler recursive limit for state trees so, raise amm!!!
216
217
  prev: [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19];
217
218
  next: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
218
219
  }
@@ -356,24 +357,6 @@ type Reactive<T extends object, P extends ReactivePreferences | undefined = unde
356
357
  * const state = reactive(rtr);
357
358
  */
358
359
  declare function reactive<T extends object, const P extends ReactivePreferences | undefined = undefined>(target: T, build?: ReactorBuild<T>, preferences?: P): T extends Reactive<infer O, infer P> ? T : Reactive<T, P>;
359
- /**
360
- * Marks an object as inert so it is skipped by proxy mediation.
361
- * @param target Object to mark.
362
- * @returns The same object with inert typing.
363
- */
364
- declare function inert<T extends object>(target: T): Inert<T>;
365
- /**
366
- * Removes the inert marker from an object.
367
- * @param target Object to unmark.
368
- * @returns The same object with live typing.
369
- */
370
- declare function live<T extends object>(target: T): Live<T>;
371
- /**
372
- * Checks whether an object is marked as inert.
373
- * @param target Object to test.
374
- * @returns `true` when inert.
375
- */
376
- declare function isInert<T extends object>(target?: T): target is Inert<T>;
377
360
  /**
378
361
  * Marks an object as intent (rejectable).
379
362
  * @param target Object to mark.
@@ -392,6 +375,24 @@ declare function state<T extends object>(target: T): State<T>;
392
375
  * @returns `true` when marked as intent.
393
376
  */
394
377
  declare function isIntent<T extends object>(target?: T): target is Intent<T>;
378
+ /**
379
+ * Marks an object as inert so it is skipped by proxy mediation.
380
+ * @param target Object to mark.
381
+ * @returns The same object with inert typing.
382
+ */
383
+ declare function inert<T extends object>(target: T): Inert<T>;
384
+ /**
385
+ * Removes the inert marker from an object.
386
+ * @param target Object to unmark.
387
+ * @returns The same object with live typing.
388
+ */
389
+ declare function live<T extends object>(target: T): Live<T>;
390
+ /**
391
+ * Checks whether an object is marked as inert.
392
+ * @param target Object to test.
393
+ * @returns `true` when inert.
394
+ */
395
+ declare function isInert<T extends object>(target?: T): target is Inert<T>;
395
396
  /**
396
397
  * Marks an object as volatile (indiffable enabled).
397
398
  * @param target Object to mark.
@@ -557,9 +558,11 @@ type Watcher<T, P extends WildPaths<T> = WildPaths<T>> = (
557
558
  ) => void;
558
559
 
559
560
  /** Listener callback (batched/asynchronous by default). */
560
- type Listener<T, P extends WildPaths<T> = WildPaths<T>, D extends number = MaxDepth> = (
561
- event: REvent<T, P, D>
562
- ) => void;
561
+ type Listener<
562
+ T extends object,
563
+ P extends WildPaths<T> = WildPaths<T>,
564
+ D extends number = MaxDepth
565
+ > = (event: REvent<T, P, D>) => void;
563
566
 
564
567
  // ===========================================================================
565
568
  // ENGINE RECORDS (Internal Storage)
@@ -813,6 +816,7 @@ declare function deepClone<T>(obj: T, config?: {
813
816
  declare function nuke(target: any): void;
814
817
 
815
818
  type ReactorModuleId = string | number;
819
+ type ModulePaths<P extends string = string> = P[] | Partial<Record<string, P[]>>;
816
820
  interface ReactorModuleConstructor<P extends BaseReactorModule = BaseReactorModule, T extends object = any> {
817
821
  new (rtr: Reactor<T>, config: any): P;
818
822
  moduleName: string;
@@ -870,6 +874,13 @@ declare abstract class BaseReactorModule<T extends object = any, Config = any, S
870
874
  * window.addEventListener("resize", this.guard(() => this.syncLayout(true)), { signal: this.signal });
871
875
  */
872
876
  guard: <Fn extends Function>(fn: Fn) => Fn;
877
+ /**
878
+ * Path resolution utility for modules, provides automatic reactor id resolution for multi-reactor setups.
879
+ * @param paths Paths to filter by, supports same formats as `ModulePaths`, will be resolved with the module's reactor id if applicable.
880
+ * @param target Reactor or reactor id to resolve paths for when using per-reactor path lists`.
881
+ * @returns Resolved paths array, defaults to `["*"]` if no paths are found using search criteria.
882
+ */
883
+ protected getPaths<P extends string = string>(paths?: ModulePaths<P>, target?: Reactor<any> | ReactorModuleId): P[];
873
884
  }
874
885
 
875
886
  /**
@@ -1192,4 +1203,4 @@ declare const NIL: any;
1192
1203
  /** Shared no-operation function. */
1193
1204
  declare const NOOP: () => void;
1194
1205
 
1195
- export { type Live as $, Autotracker as A, BaseReactorModule as B, CTX as C, type DeepReadonly as D, type EffectOptions as E, type FanoutTuple as F, type DeepMerge as G, type DeepPartial as H, type Inert as I, type DeepRequired as J, type Deleter as K, type DeleterRecord as L, type DepthConfig as M, type DirectPayload as N, EVT_OPTS as O, type Paths as P, type Getter as Q, Reactor as R, type GetterRecord as S, INDIFFABLE as T, INERTIA as U, type Intent as V, type WildPaths as W, type Listener as X, type ListenerOptions as Y, type ListenerOptionsTuple as Z, type ListenerRecord as _, type REvent as a, type MaxDepth as a0, NIL as a1, NOOP as a2, type NextDepth as a3, type NoTraverse as a4, type PathBranch as a5, type PathBranchValue as a6, type PathDepth as a7, type PathKey as a8, type PathLeaf as a9, type WatcherRecord as aA, getRaw as aB, getSnapshotVersion as aC, getVersion as aD, inert as aE, intent as aF, isInert as aG, isIntent as aH, isVolatile as aI, live as aJ, methods as aK, reactive as aL, stable as aM, state as aN, volatile as aO, type Payload as aa, type PrevDepth as ab, type Primitive as ac, RAW as ad, REJECTABLE as ae, RTR_BATCH as af, RTR_LOG as ag, type ReactivePreferences as ah, ReactorEvent as ai, SSVERSION as aj, type Setter as ak, type SetterRecord as al, type Stable as am, type State as an, type StrictPathKey as ao, type SubtractDepth as ap, type SyncOptions as aq, type SyncOptionsTuple as ar, TERMINATOR as as, type Target as at, type Unflatten as au, type UnionToIntersection as av, type UpdatePayload as aw, VERSION as ax, type Volatile as ay, type Watcher as az, type ReactorModuleConstructor as b, type ReactorModuleId as c, type Reactive as d, type PathValue as e, arrRegex as f, canHandle as g, deepClone as h, deleteAny as i, fanout as j, fanoutOptsArr as k, getAny as l, getTrailRecords as m, inAny as n, isObj as o, isPOJO as p, mergeObjs as q, nuke as r, parseAnyObj as s, parseEvtOpts as t, setAny as u, type ReactorBuild as v, withTracker as w, type AddDepth as x, type ChildPaths as y, type DeepKeys as z };
1206
+ export { type ListenerRecord as $, Autotracker as A, BaseReactorModule as B, CTX as C, type DeepReadonly as D, type EffectOptions as E, type FanoutTuple as F, type DeepMerge as G, type DeepPartial as H, type Inert as I, type DeepRequired as J, type Deleter as K, type DeleterRecord as L, type ModulePaths as M, type DepthConfig as N, type DirectPayload as O, type Paths as P, EVT_OPTS as Q, Reactor as R, type Getter as S, type GetterRecord as T, INDIFFABLE as U, INERTIA as V, type WildPaths as W, type Intent as X, type Listener as Y, type ListenerOptions as Z, type ListenerOptionsTuple as _, type ReactorModuleId as a, type Live as a0, type MaxDepth as a1, NIL as a2, NOOP as a3, type NextDepth as a4, type NoTraverse as a5, type PathBranch as a6, type PathBranchValue as a7, type PathDepth as a8, type PathKey as a9, type Watcher as aA, type WatcherRecord as aB, getRaw as aC, getSnapshotVersion as aD, getVersion as aE, inert as aF, intent as aG, isInert as aH, isIntent as aI, isVolatile as aJ, live as aK, methods as aL, reactive as aM, stable as aN, state as aO, volatile as aP, type PathLeaf as aa, type Payload as ab, type PrevDepth as ac, type Primitive as ad, RAW as ae, REJECTABLE as af, RTR_BATCH as ag, RTR_LOG as ah, type ReactivePreferences as ai, ReactorEvent as aj, SSVERSION as ak, type Setter as al, type SetterRecord as am, type Stable as an, type State as ao, type StrictPathKey as ap, type SubtractDepth as aq, type SyncOptions as ar, type SyncOptionsTuple as as, TERMINATOR as at, type Target as au, type Unflatten as av, type UnionToIntersection as aw, type UpdatePayload as ax, VERSION as ay, type Volatile as az, type REvent as b, type ReactorModuleConstructor as c, type Reactive as d, type PathValue as e, arrRegex as f, canHandle as g, deepClone as h, deleteAny as i, fanout as j, fanoutOptsArr as k, getAny as l, getTrailRecords as m, inAny as n, isObj as o, isPOJO as p, mergeObjs as q, nuke as r, parseAnyObj as s, parseEvtOpts as t, setAny as u, type ReactorBuild as v, withTracker as w, type AddDepth as x, type ChildPaths as y, type DeepKeys as z };
@@ -19,7 +19,7 @@ type Paths<T, S extends string = ".", D extends number = MaxDepth> = [D] extends
19
19
  : T extends NoTraverse
20
20
  ? never
21
21
  : T extends readonly (infer U)[]
22
- ? `${Extract<keyof T, number>}` | `${Extract<keyof T, number>}${S}${Paths<U, S, PrevDepth[D]>}`
22
+ ? `${Extract<keyof T, number>}` | `${Extract<keyof T, number>}${S}${Paths<U, S, PrevDepth[D]>}` // or just `${number}`
23
23
  : {
24
24
  [K in keyof T & (string | number)]: T[K] extends Primitive
25
25
  ? `${K}`
@@ -36,7 +36,8 @@ type ChildPaths<
36
36
  > = Extract<
37
37
  Paths<T, S, AddDepth<PathDepth<P, S>, D>>,
38
38
  `${P extends "*" ? "" : P}${P extends "*" ? "" : S}${string}`
39
- >;
39
+ > &
40
+ Paths<T, S>; // bundlers can shutup and just believe
40
41
 
41
42
  /** Leaf key name extracted from a path. */
42
43
  type PathKey<T, P extends string = Paths<T>, S extends string = "."> = P extends "*"
@@ -212,7 +213,7 @@ type DeepReadonly<T, D extends number = MaxDepth> = [D] extends [0]
212
213
 
213
214
  /** Config for defining recursive limits for all parts of the application */
214
215
  interface DepthConfig {
215
- max: 11; // 19 is observed bundler recursive limit for state trees
216
+ max: 11; // 19 is observed bundler recursive limit for state trees so, raise amm!!!
216
217
  prev: [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19];
217
218
  next: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
218
219
  }
@@ -356,24 +357,6 @@ type Reactive<T extends object, P extends ReactivePreferences | undefined = unde
356
357
  * const state = reactive(rtr);
357
358
  */
358
359
  declare function reactive<T extends object, const P extends ReactivePreferences | undefined = undefined>(target: T, build?: ReactorBuild<T>, preferences?: P): T extends Reactive<infer O, infer P> ? T : Reactive<T, P>;
359
- /**
360
- * Marks an object as inert so it is skipped by proxy mediation.
361
- * @param target Object to mark.
362
- * @returns The same object with inert typing.
363
- */
364
- declare function inert<T extends object>(target: T): Inert<T>;
365
- /**
366
- * Removes the inert marker from an object.
367
- * @param target Object to unmark.
368
- * @returns The same object with live typing.
369
- */
370
- declare function live<T extends object>(target: T): Live<T>;
371
- /**
372
- * Checks whether an object is marked as inert.
373
- * @param target Object to test.
374
- * @returns `true` when inert.
375
- */
376
- declare function isInert<T extends object>(target?: T): target is Inert<T>;
377
360
  /**
378
361
  * Marks an object as intent (rejectable).
379
362
  * @param target Object to mark.
@@ -392,6 +375,24 @@ declare function state<T extends object>(target: T): State<T>;
392
375
  * @returns `true` when marked as intent.
393
376
  */
394
377
  declare function isIntent<T extends object>(target?: T): target is Intent<T>;
378
+ /**
379
+ * Marks an object as inert so it is skipped by proxy mediation.
380
+ * @param target Object to mark.
381
+ * @returns The same object with inert typing.
382
+ */
383
+ declare function inert<T extends object>(target: T): Inert<T>;
384
+ /**
385
+ * Removes the inert marker from an object.
386
+ * @param target Object to unmark.
387
+ * @returns The same object with live typing.
388
+ */
389
+ declare function live<T extends object>(target: T): Live<T>;
390
+ /**
391
+ * Checks whether an object is marked as inert.
392
+ * @param target Object to test.
393
+ * @returns `true` when inert.
394
+ */
395
+ declare function isInert<T extends object>(target?: T): target is Inert<T>;
395
396
  /**
396
397
  * Marks an object as volatile (indiffable enabled).
397
398
  * @param target Object to mark.
@@ -557,9 +558,11 @@ type Watcher<T, P extends WildPaths<T> = WildPaths<T>> = (
557
558
  ) => void;
558
559
 
559
560
  /** Listener callback (batched/asynchronous by default). */
560
- type Listener<T, P extends WildPaths<T> = WildPaths<T>, D extends number = MaxDepth> = (
561
- event: REvent<T, P, D>
562
- ) => void;
561
+ type Listener<
562
+ T extends object,
563
+ P extends WildPaths<T> = WildPaths<T>,
564
+ D extends number = MaxDepth
565
+ > = (event: REvent<T, P, D>) => void;
563
566
 
564
567
  // ===========================================================================
565
568
  // ENGINE RECORDS (Internal Storage)
@@ -813,6 +816,7 @@ declare function deepClone<T>(obj: T, config?: {
813
816
  declare function nuke(target: any): void;
814
817
 
815
818
  type ReactorModuleId = string | number;
819
+ type ModulePaths<P extends string = string> = P[] | Partial<Record<string, P[]>>;
816
820
  interface ReactorModuleConstructor<P extends BaseReactorModule = BaseReactorModule, T extends object = any> {
817
821
  new (rtr: Reactor<T>, config: any): P;
818
822
  moduleName: string;
@@ -870,6 +874,13 @@ declare abstract class BaseReactorModule<T extends object = any, Config = any, S
870
874
  * window.addEventListener("resize", this.guard(() => this.syncLayout(true)), { signal: this.signal });
871
875
  */
872
876
  guard: <Fn extends Function>(fn: Fn) => Fn;
877
+ /**
878
+ * Path resolution utility for modules, provides automatic reactor id resolution for multi-reactor setups.
879
+ * @param paths Paths to filter by, supports same formats as `ModulePaths`, will be resolved with the module's reactor id if applicable.
880
+ * @param target Reactor or reactor id to resolve paths for when using per-reactor path lists`.
881
+ * @returns Resolved paths array, defaults to `["*"]` if no paths are found using search criteria.
882
+ */
883
+ protected getPaths<P extends string = string>(paths?: ModulePaths<P>, target?: Reactor<any> | ReactorModuleId): P[];
873
884
  }
874
885
 
875
886
  /**
@@ -1192,4 +1203,4 @@ declare const NIL: any;
1192
1203
  /** Shared no-operation function. */
1193
1204
  declare const NOOP: () => void;
1194
1205
 
1195
- export { type Live as $, Autotracker as A, BaseReactorModule as B, CTX as C, type DeepReadonly as D, type EffectOptions as E, type FanoutTuple as F, type DeepMerge as G, type DeepPartial as H, type Inert as I, type DeepRequired as J, type Deleter as K, type DeleterRecord as L, type DepthConfig as M, type DirectPayload as N, EVT_OPTS as O, type Paths as P, type Getter as Q, Reactor as R, type GetterRecord as S, INDIFFABLE as T, INERTIA as U, type Intent as V, type WildPaths as W, type Listener as X, type ListenerOptions as Y, type ListenerOptionsTuple as Z, type ListenerRecord as _, type REvent as a, type MaxDepth as a0, NIL as a1, NOOP as a2, type NextDepth as a3, type NoTraverse as a4, type PathBranch as a5, type PathBranchValue as a6, type PathDepth as a7, type PathKey as a8, type PathLeaf as a9, type WatcherRecord as aA, getRaw as aB, getSnapshotVersion as aC, getVersion as aD, inert as aE, intent as aF, isInert as aG, isIntent as aH, isVolatile as aI, live as aJ, methods as aK, reactive as aL, stable as aM, state as aN, volatile as aO, type Payload as aa, type PrevDepth as ab, type Primitive as ac, RAW as ad, REJECTABLE as ae, RTR_BATCH as af, RTR_LOG as ag, type ReactivePreferences as ah, ReactorEvent as ai, SSVERSION as aj, type Setter as ak, type SetterRecord as al, type Stable as am, type State as an, type StrictPathKey as ao, type SubtractDepth as ap, type SyncOptions as aq, type SyncOptionsTuple as ar, TERMINATOR as as, type Target as at, type Unflatten as au, type UnionToIntersection as av, type UpdatePayload as aw, VERSION as ax, type Volatile as ay, type Watcher as az, type ReactorModuleConstructor as b, type ReactorModuleId as c, type Reactive as d, type PathValue as e, arrRegex as f, canHandle as g, deepClone as h, deleteAny as i, fanout as j, fanoutOptsArr as k, getAny as l, getTrailRecords as m, inAny as n, isObj as o, isPOJO as p, mergeObjs as q, nuke as r, parseAnyObj as s, parseEvtOpts as t, setAny as u, type ReactorBuild as v, withTracker as w, type AddDepth as x, type ChildPaths as y, type DeepKeys as z };
1206
+ export { type ListenerRecord as $, Autotracker as A, BaseReactorModule as B, CTX as C, type DeepReadonly as D, type EffectOptions as E, type FanoutTuple as F, type DeepMerge as G, type DeepPartial as H, type Inert as I, type DeepRequired as J, type Deleter as K, type DeleterRecord as L, type ModulePaths as M, type DepthConfig as N, type DirectPayload as O, type Paths as P, EVT_OPTS as Q, Reactor as R, type Getter as S, type GetterRecord as T, INDIFFABLE as U, INERTIA as V, type WildPaths as W, type Intent as X, type Listener as Y, type ListenerOptions as Z, type ListenerOptionsTuple as _, type ReactorModuleId as a, type Live as a0, type MaxDepth as a1, NIL as a2, NOOP as a3, type NextDepth as a4, type NoTraverse as a5, type PathBranch as a6, type PathBranchValue as a7, type PathDepth as a8, type PathKey as a9, type Watcher as aA, type WatcherRecord as aB, getRaw as aC, getSnapshotVersion as aD, getVersion as aE, inert as aF, intent as aG, isInert as aH, isIntent as aI, isVolatile as aJ, live as aK, methods as aL, reactive as aM, stable as aN, state as aO, volatile as aP, type PathLeaf as aa, type Payload as ab, type PrevDepth as ac, type Primitive as ad, RAW as ae, REJECTABLE as af, RTR_BATCH as ag, RTR_LOG as ah, type ReactivePreferences as ai, ReactorEvent as aj, SSVERSION as ak, type Setter as al, type SetterRecord as am, type Stable as an, type State as ao, type StrictPathKey as ap, type SubtractDepth as aq, type SyncOptions as ar, type SyncOptionsTuple as as, TERMINATOR as at, type Target as au, type Unflatten as av, type UnionToIntersection as aw, type UpdatePayload as ax, VERSION as ay, type Volatile as az, type REvent as b, type ReactorModuleConstructor as c, type Reactive as d, type PathValue as e, arrRegex as f, canHandle as g, deepClone as h, deleteAny as i, fanout as j, fanoutOptsArr as k, getAny as l, getTrailRecords as m, inAny as n, isObj as o, isPOJO as p, mergeObjs as q, nuke as r, parseAnyObj as s, parseEvtOpts as t, setAny as u, type ReactorBuild as v, withTracker as w, type AddDepth as x, type ChildPaths as y, type DeepKeys as z };
package/dist/index.cjs CHANGED
@@ -886,15 +886,6 @@ function reactive(target, build, preferences = NIL) {
886
886
  descriptors["__Reactor__"] = { value: rtr, ...locks };
887
887
  return Object.defineProperties(rtr.core, descriptors), rtr.core;
888
888
  }
889
- function inert(target) {
890
- return getRaw(target)[INERTIA] = true, target;
891
- }
892
- function live(target) {
893
- return delete getRaw(target)[INERTIA], target;
894
- }
895
- function isInert(target = NIL) {
896
- return !!getRaw(target)[INERTIA];
897
- }
898
889
  function intent(target) {
899
890
  return getRaw(target)[REJECTABLE] = true, target;
900
891
  }
@@ -904,6 +895,15 @@ function state(target) {
904
895
  function isIntent(target = NIL) {
905
896
  return !!getRaw(target)[REJECTABLE];
906
897
  }
898
+ function inert(target) {
899
+ return getRaw(target)[INERTIA] = true, target;
900
+ }
901
+ function live(target) {
902
+ return delete getRaw(target)[INERTIA], target;
903
+ }
904
+ function isInert(target = NIL) {
905
+ return !!getRaw(target)[INERTIA];
906
+ }
907
907
  function volatile(target) {
908
908
  return getRaw(target)[INDIFFABLE] = true, target;
909
909
  }
package/dist/index.d.cts CHANGED
@@ -1 +1 @@
1
- export { x as AddDepth, C as CTX, y as ChildPaths, z as DeepKeys, G as DeepMerge, H as DeepPartial, D as DeepReadonly, J as DeepRequired, K as Deleter, L as DeleterRecord, M as DepthConfig, N as DirectPayload, O as EVT_OPTS, E as EffectOptions, Q as Getter, S as GetterRecord, T as INDIFFABLE, U as INERTIA, I as Inert, V as Intent, X as Listener, Y as ListenerOptions, Z as ListenerOptionsTuple, _ as ListenerRecord, $ as Live, a0 as MaxDepth, a1 as NIL, a2 as NOOP, a3 as NextDepth, a4 as NoTraverse, a5 as PathBranch, a6 as PathBranchValue, a7 as PathDepth, a8 as PathKey, a9 as PathLeaf, e as PathValue, P as Paths, aa as Payload, ab as PrevDepth, ac as Primitive, ad as RAW, ae as REJECTABLE, a as REvent, af as RTR_BATCH, ag as RTR_LOG, d as Reactive, ah as ReactivePreferences, R as Reactor, v as ReactorBuild, ai as ReactorEvent, aj as SSVERSION, ak as Setter, al as SetterRecord, am as Stable, an as State, ao as StrictPathKey, ap as SubtractDepth, aq as SyncOptions, ar as SyncOptionsTuple, as as TERMINATOR, at as Target, au as Unflatten, av as UnionToIntersection, aw as UpdatePayload, ax as VERSION, ay as Volatile, az as Watcher, aA as WatcherRecord, W as WildPaths, aB as getRaw, aC as getSnapshotVersion, aD as getVersion, aE as inert, aF as intent, aG as isInert, aH as isIntent, aI as isVolatile, aJ as live, aK as methods, aL as reactive, aM as stable, aN as state, aO as volatile } from './index-CDRimfvj.cjs';
1
+ export { x as AddDepth, C as CTX, y as ChildPaths, z as DeepKeys, G as DeepMerge, H as DeepPartial, D as DeepReadonly, J as DeepRequired, K as Deleter, L as DeleterRecord, N as DepthConfig, O as DirectPayload, Q as EVT_OPTS, E as EffectOptions, S as Getter, T as GetterRecord, U as INDIFFABLE, V as INERTIA, I as Inert, X as Intent, Y as Listener, Z as ListenerOptions, _ as ListenerOptionsTuple, $ as ListenerRecord, a0 as Live, a1 as MaxDepth, a2 as NIL, a3 as NOOP, a4 as NextDepth, a5 as NoTraverse, a6 as PathBranch, a7 as PathBranchValue, a8 as PathDepth, a9 as PathKey, aa as PathLeaf, e as PathValue, P as Paths, ab as Payload, ac as PrevDepth, ad as Primitive, ae as RAW, af as REJECTABLE, b as REvent, ag as RTR_BATCH, ah as RTR_LOG, d as Reactive, ai as ReactivePreferences, R as Reactor, v as ReactorBuild, aj as ReactorEvent, ak as SSVERSION, al as Setter, am as SetterRecord, an as Stable, ao as State, ap as StrictPathKey, aq as SubtractDepth, ar as SyncOptions, as as SyncOptionsTuple, at as TERMINATOR, au as Target, av as Unflatten, aw as UnionToIntersection, ax as UpdatePayload, ay as VERSION, az as Volatile, aA as Watcher, aB as WatcherRecord, W as WildPaths, aC as getRaw, aD as getSnapshotVersion, aE as getVersion, aF as inert, aG as intent, aH as isInert, aI as isIntent, aJ as isVolatile, aK as live, aL as methods, aM as reactive, aN as stable, aO as state, aP as volatile } from './index-2jKy98op.cjs';
package/dist/index.d.ts CHANGED
@@ -1 +1 @@
1
- export { x as AddDepth, C as CTX, y as ChildPaths, z as DeepKeys, G as DeepMerge, H as DeepPartial, D as DeepReadonly, J as DeepRequired, K as Deleter, L as DeleterRecord, M as DepthConfig, N as DirectPayload, O as EVT_OPTS, E as EffectOptions, Q as Getter, S as GetterRecord, T as INDIFFABLE, U as INERTIA, I as Inert, V as Intent, X as Listener, Y as ListenerOptions, Z as ListenerOptionsTuple, _ as ListenerRecord, $ as Live, a0 as MaxDepth, a1 as NIL, a2 as NOOP, a3 as NextDepth, a4 as NoTraverse, a5 as PathBranch, a6 as PathBranchValue, a7 as PathDepth, a8 as PathKey, a9 as PathLeaf, e as PathValue, P as Paths, aa as Payload, ab as PrevDepth, ac as Primitive, ad as RAW, ae as REJECTABLE, a as REvent, af as RTR_BATCH, ag as RTR_LOG, d as Reactive, ah as ReactivePreferences, R as Reactor, v as ReactorBuild, ai as ReactorEvent, aj as SSVERSION, ak as Setter, al as SetterRecord, am as Stable, an as State, ao as StrictPathKey, ap as SubtractDepth, aq as SyncOptions, ar as SyncOptionsTuple, as as TERMINATOR, at as Target, au as Unflatten, av as UnionToIntersection, aw as UpdatePayload, ax as VERSION, ay as Volatile, az as Watcher, aA as WatcherRecord, W as WildPaths, aB as getRaw, aC as getSnapshotVersion, aD as getVersion, aE as inert, aF as intent, aG as isInert, aH as isIntent, aI as isVolatile, aJ as live, aK as methods, aL as reactive, aM as stable, aN as state, aO as volatile } from './index-CDRimfvj.js';
1
+ export { x as AddDepth, C as CTX, y as ChildPaths, z as DeepKeys, G as DeepMerge, H as DeepPartial, D as DeepReadonly, J as DeepRequired, K as Deleter, L as DeleterRecord, N as DepthConfig, O as DirectPayload, Q as EVT_OPTS, E as EffectOptions, S as Getter, T as GetterRecord, U as INDIFFABLE, V as INERTIA, I as Inert, X as Intent, Y as Listener, Z as ListenerOptions, _ as ListenerOptionsTuple, $ as ListenerRecord, a0 as Live, a1 as MaxDepth, a2 as NIL, a3 as NOOP, a4 as NextDepth, a5 as NoTraverse, a6 as PathBranch, a7 as PathBranchValue, a8 as PathDepth, a9 as PathKey, aa as PathLeaf, e as PathValue, P as Paths, ab as Payload, ac as PrevDepth, ad as Primitive, ae as RAW, af as REJECTABLE, b as REvent, ag as RTR_BATCH, ah as RTR_LOG, d as Reactive, ai as ReactivePreferences, R as Reactor, v as ReactorBuild, aj as ReactorEvent, ak as SSVERSION, al as Setter, am as SetterRecord, an as Stable, ao as State, ap as StrictPathKey, aq as SubtractDepth, ar as SyncOptions, as as SyncOptionsTuple, at as TERMINATOR, au as Target, av as Unflatten, aw as UnionToIntersection, ax as UpdatePayload, ay as VERSION, az as Volatile, aA as Watcher, aB as WatcherRecord, W as WildPaths, aC as getRaw, aD as getSnapshotVersion, aE as getVersion, aF as inert, aG as intent, aH as isInert, aI as isIntent, aJ as isVolatile, aK as live, aL as methods, aM as reactive, aN as stable, aO as state, aP as volatile } from './index-2jKy98op.js';