sia-reactor 0.0.24 → 0.0.25
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 +12 -13
- package/dist/{TimeTravelOverlay-XwZju4iS.d.cts → TimeTravelOverlay-Bz2v9hov.d.cts} +6 -6
- package/dist/{TimeTravelOverlay-BdJMMcX9.d.ts → TimeTravelOverlay-CvTDJWpP.d.ts} +6 -6
- package/dist/adapters/react.d.cts +4 -4
- package/dist/adapters/react.d.ts +4 -4
- package/dist/adapters/react.js +2 -2
- package/dist/adapters/vanilla.d.cts +4 -4
- package/dist/adapters/vanilla.d.ts +4 -4
- package/dist/adapters/vanilla.js +2 -2
- package/dist/{chunk-6V5NR37Q.js → chunk-MWC3R7QL.js} +1 -1
- package/dist/{index-CDRimfvj.d.cts → index-CB-IiZIB.d.cts} +27 -24
- package/dist/{index-CDRimfvj.d.ts → index-CB-IiZIB.d.ts} +27 -24
- package/dist/index.cjs +9 -9
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/modules.d.cts +4 -4
- package/dist/modules.d.ts +4 -4
- package/dist/modules.js +1 -1
- package/dist/super.d.ts +40 -36
- package/dist/super.global.js +9 -9
- package/dist/{timeTravel-Cb8MHdYz.d.ts → timeTravel-CEc3grUE.d.cts} +2 -2
- package/dist/{timeTravel-CVgE6N0I.d.cts → timeTravel-D7NiYqdD.d.ts} +2 -2
- package/dist/utils.d.cts +1 -1
- package/dist/utils.d.ts +1 -1
- package/package.json +1 -1
- package/dist/{chunk-4FES5IIH.js → chunk-3UHI7CNE.js} +12 -12
package/README.md
CHANGED
|
@@ -156,21 +156,20 @@ reactor.core.player.volume = 100; // re-assign core if desired
|
|
|
156
156
|
All methods are available on `Reactor` instances or objects wrapped in `reactive()`.
|
|
157
157
|
|
|
158
158
|
#### **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.
|
|
159
|
+
- **`set(path, callback, options)` <-> `noset(path, callback)`**: Intercept memory writes. Return a value to modify it, or return `TERMINATOR` to block the write entirely.
|
|
160
|
+
- **`get(path, callback, options)` <-> `noget(path, callback)`**: Intercept and format data during retrieval.
|
|
161
|
+
- **`delete(path, callback, options)` <-> `nodelete(path, callback)`**: Intercept property deletion.
|
|
162
162
|
|
|
163
163
|
#### **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.
|
|
164
|
+
- **`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
165
|
|
|
166
166
|
#### **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.
|
|
167
|
+
- **`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 }`.
|
|
168
|
+
- **`once(path, callback, options)`**: Fires once and self-destructs, others have too: `sonce(...)`, `gonce(...)`, `donce(...)`, `wonce(...)`.
|
|
170
169
|
|
|
171
170
|
#### **Lifecycle & Utilities**
|
|
172
171
|
- **`tick(path)`**: Forces a synchronous flush of the batch queue for a specific path.
|
|
173
|
-
- **`stall(task)`
|
|
172
|
+
- **`stall(task)` <-> `nostall(task)`**: Manually stall the queue to wait for calculations before rendering.
|
|
174
173
|
- **`snapshot(raw)`**: Generates a strict, structurally-shared, un-proxied clone of the current state tree.
|
|
175
174
|
- **`use(new ReactorModule(config), id)`**: Allows extended behaviour with external logic.
|
|
176
175
|
- **`reset()`**: Clears all records bringing everything back to a clean slate.
|
|
@@ -178,18 +177,18 @@ All methods are available on `Reactor` instances or objects wrapped in `reactive
|
|
|
178
177
|
|
|
179
178
|
### Memory & Granular Control Flags
|
|
180
179
|
|
|
181
|
-
You can wrap properties in special flags *before* initializing the reactor to dictate exactly how the Proxy treats them.
|
|
180
|
+
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
181
|
|
|
183
|
-
- **`
|
|
184
|
-
- **`
|
|
185
|
-
- **`volatile(obj)`
|
|
182
|
+
- **`intent(obj)` <-> `state(obj)`**: Marks an object as rejectable. Allows listeners to call `e.reject()` during the Capture phase.
|
|
183
|
+
- **`inert(obj)` <-> `live(obj)`**: Tells the proxy to completely ignore an object. It will not be deeply tracked.
|
|
184
|
+
- **`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
185
|
|
|
187
186
|
```javascript
|
|
188
187
|
import { reactive, intent, volatile, inert } from "sia-reactor";
|
|
189
188
|
|
|
190
189
|
const data = reactive({
|
|
191
190
|
apiResponse: inert({ heavy: "data" }), // Proxy won't traverse this
|
|
192
|
-
userWish: intent({ flying: false }), // Can be rejected by a Higher Power
|
|
191
|
+
userWish: intent({ flying: false }), // Can be rejected by a Handler or a Higher Power
|
|
193
192
|
trigger: volatile({ clickCount: 0 }) // Fires events even if set to 0 again
|
|
194
193
|
});
|
|
195
194
|
```
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { d as Reactive } from './index-
|
|
2
|
-
import { m as TimeTravelModule } from './timeTravel-
|
|
1
|
+
import { d as Reactive } from './index-CB-IiZIB.cjs';
|
|
2
|
+
import { m as TimeTravelModule } from './timeTravel-CEc3grUE.cjs';
|
|
3
3
|
|
|
4
4
|
/** Reactive options for the TimeTravel overlay instance. */
|
|
5
|
-
interface
|
|
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:
|
|
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<
|
|
38
|
+
constructor(time: TimeTravelModule, build?: Partial<TimeTravelOverlayConfig>);
|
|
39
39
|
destroy(): void;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
export {
|
|
42
|
+
export { TimeTravelOverlay as T, type TimeTravelOverlayConfig as a };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { d as Reactive } from './index-
|
|
2
|
-
import { m as TimeTravelModule } from './timeTravel-
|
|
1
|
+
import { d as Reactive } from './index-CB-IiZIB.js';
|
|
2
|
+
import { m as TimeTravelModule } from './timeTravel-D7NiYqdD.js';
|
|
3
3
|
|
|
4
4
|
/** Reactive options for the TimeTravel overlay instance. */
|
|
5
|
-
interface
|
|
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:
|
|
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<
|
|
38
|
+
constructor(time: TimeTravelModule, build?: Partial<TimeTravelOverlayConfig>);
|
|
39
39
|
destroy(): void;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
export {
|
|
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-
|
|
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-CB-IiZIB.cjs';
|
|
2
2
|
import { useLayoutEffect } from 'react';
|
|
3
|
-
import { m as TimeTravelModule } from '../timeTravel-
|
|
4
|
-
import {
|
|
3
|
+
import { m as TimeTravelModule } from '../timeTravel-CEc3grUE.cjs';
|
|
4
|
+
import { a as TimeTravelOverlayConfig } from '../TimeTravelOverlay-Bz2v9hov.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<
|
|
135
|
+
interface TimeTravelOverlayProps extends Partial<TimeTravelOverlayConfig> {
|
|
136
136
|
/** Module instance controlled by this overlay bridge. */
|
|
137
137
|
time: TimeTravelModule;
|
|
138
138
|
}
|
package/dist/adapters/react.d.ts
CHANGED
|
@@ -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-
|
|
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-CB-IiZIB.js';
|
|
2
2
|
import { useLayoutEffect } from 'react';
|
|
3
|
-
import { m as TimeTravelModule } from '../timeTravel-
|
|
4
|
-
import {
|
|
3
|
+
import { m as TimeTravelModule } from '../timeTravel-D7NiYqdD.js';
|
|
4
|
+
import { a as TimeTravelOverlayConfig } from '../TimeTravelOverlay-CvTDJWpP.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<
|
|
135
|
+
interface TimeTravelOverlayProps extends Partial<TimeTravelOverlayConfig> {
|
|
136
136
|
/** Module instance controlled by this overlay bridge. */
|
|
137
137
|
time: TimeTravelModule;
|
|
138
138
|
}
|
package/dist/adapters/react.js
CHANGED
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
Autotracker,
|
|
3
3
|
TimeTravelOverlay,
|
|
4
4
|
withTracker
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-MWC3R7QL.js";
|
|
6
6
|
import {
|
|
7
7
|
getReactor
|
|
8
|
-
} from "../chunk-
|
|
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-
|
|
2
|
-
export { A as Autotracker, w as withTracker } from '../index-
|
|
3
|
-
export { T as
|
|
4
|
-
import '../timeTravel-
|
|
1
|
+
import { E as EffectOptions } from '../index-CB-IiZIB.cjs';
|
|
2
|
+
export { A as Autotracker, w as withTracker } from '../index-CB-IiZIB.cjs';
|
|
3
|
+
export { T as TimeTravelOverlay, a as TimeTravelOverlayConfig } from '../TimeTravelOverlay-Bz2v9hov.cjs';
|
|
4
|
+
import '../timeTravel-CEc3grUE.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-
|
|
2
|
-
export { A as Autotracker, w as withTracker } from '../index-
|
|
3
|
-
export { T as
|
|
4
|
-
import '../timeTravel-
|
|
1
|
+
import { E as EffectOptions } from '../index-CB-IiZIB.js';
|
|
2
|
+
export { A as Autotracker, w as withTracker } from '../index-CB-IiZIB.js';
|
|
3
|
+
export { T as TimeTravelOverlay, a as TimeTravelOverlayConfig } from '../TimeTravelOverlay-CvTDJWpP.js';
|
|
4
|
+
import '../timeTravel-D7NiYqdD.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Runs a reactive side effect in vanilla JavaScript.
|
package/dist/adapters/vanilla.js
CHANGED
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
TimeTravelOverlay,
|
|
4
4
|
effect,
|
|
5
5
|
withTracker
|
|
6
|
-
} from "../chunk-
|
|
7
|
-
import "../chunk-
|
|
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";
|
|
@@ -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<
|
|
561
|
-
|
|
562
|
-
|
|
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)
|
|
@@ -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<
|
|
561
|
-
|
|
562
|
-
|
|
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)
|
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-
|
|
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-CB-IiZIB.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-
|
|
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-CB-IiZIB.js';
|
package/dist/index.js
CHANGED
package/dist/modules.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { P as Paths, I as Inert, F as FanoutTuple, B as BaseReactorModule, R as Reactor, a as REvent } from './index-
|
|
2
|
-
export { b as ReactorModuleConstructor, c as ReactorModuleId } from './index-
|
|
3
|
-
import { S as StorageAdapter, A as AsyncStorageAdapter, a as StorageAdapterConstructor, b as AsyncStorageAdapterConstructor } from './timeTravel-
|
|
4
|
-
export { B as BaseStorageAdapter, C as COOKIE_ADAPTER_BUILD, c as CookieAdapter, d as CookieAdapterConfig, e as CookieOptions, H as HistoryEntry, I as INDEXED_DB_ADAPTER_BUILD, f as IndexedDBAdapter, g as IndexedDBAdapterConfig, J as JSONReplacer, h as JSONReviver, L as LocalStorageAdapter, M as MemoryAdapter, i as MemoryAdapterConfig, j as SessionStorageAdapter, k as StorageAdapterConfig, T as TIME_TRAVEL_MODULE_BUILD, l as TimeTravelConfig, m as TimeTravelModule, n as TimeTravelState } from './timeTravel-
|
|
1
|
+
import { P as Paths, I as Inert, F as FanoutTuple, B as BaseReactorModule, R as Reactor, a as REvent } from './index-CB-IiZIB.cjs';
|
|
2
|
+
export { b as ReactorModuleConstructor, c as ReactorModuleId } from './index-CB-IiZIB.cjs';
|
|
3
|
+
import { S as StorageAdapter, A as AsyncStorageAdapter, a as StorageAdapterConstructor, b as AsyncStorageAdapterConstructor } from './timeTravel-CEc3grUE.cjs';
|
|
4
|
+
export { B as BaseStorageAdapter, C as COOKIE_ADAPTER_BUILD, c as CookieAdapter, d as CookieAdapterConfig, e as CookieOptions, H as HistoryEntry, I as INDEXED_DB_ADAPTER_BUILD, f as IndexedDBAdapter, g as IndexedDBAdapterConfig, J as JSONReplacer, h as JSONReviver, L as LocalStorageAdapter, M as MemoryAdapter, i as MemoryAdapterConfig, j as SessionStorageAdapter, k as StorageAdapterConfig, T as TIME_TRAVEL_MODULE_BUILD, l as TimeTravelConfig, m as TimeTravelModule, n as TimeTravelState } from './timeTravel-CEc3grUE.cjs';
|
|
5
5
|
|
|
6
6
|
interface PersistConfig<T extends object, P extends Paths<T> = Paths<T>> {
|
|
7
7
|
/** Whether the persistence is disabled and cleared */
|
package/dist/modules.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { P as Paths, I as Inert, F as FanoutTuple, B as BaseReactorModule, R as Reactor, a as REvent } from './index-
|
|
2
|
-
export { b as ReactorModuleConstructor, c as ReactorModuleId } from './index-
|
|
3
|
-
import { S as StorageAdapter, A as AsyncStorageAdapter, a as StorageAdapterConstructor, b as AsyncStorageAdapterConstructor } from './timeTravel-
|
|
4
|
-
export { B as BaseStorageAdapter, C as COOKIE_ADAPTER_BUILD, c as CookieAdapter, d as CookieAdapterConfig, e as CookieOptions, H as HistoryEntry, I as INDEXED_DB_ADAPTER_BUILD, f as IndexedDBAdapter, g as IndexedDBAdapterConfig, J as JSONReplacer, h as JSONReviver, L as LocalStorageAdapter, M as MemoryAdapter, i as MemoryAdapterConfig, j as SessionStorageAdapter, k as StorageAdapterConfig, T as TIME_TRAVEL_MODULE_BUILD, l as TimeTravelConfig, m as TimeTravelModule, n as TimeTravelState } from './timeTravel-
|
|
1
|
+
import { P as Paths, I as Inert, F as FanoutTuple, B as BaseReactorModule, R as Reactor, a as REvent } from './index-CB-IiZIB.js';
|
|
2
|
+
export { b as ReactorModuleConstructor, c as ReactorModuleId } from './index-CB-IiZIB.js';
|
|
3
|
+
import { S as StorageAdapter, A as AsyncStorageAdapter, a as StorageAdapterConstructor, b as AsyncStorageAdapterConstructor } from './timeTravel-D7NiYqdD.js';
|
|
4
|
+
export { B as BaseStorageAdapter, C as COOKIE_ADAPTER_BUILD, c as CookieAdapter, d as CookieAdapterConfig, e as CookieOptions, H as HistoryEntry, I as INDEXED_DB_ADAPTER_BUILD, f as IndexedDBAdapter, g as IndexedDBAdapterConfig, J as JSONReplacer, h as JSONReviver, L as LocalStorageAdapter, M as MemoryAdapter, i as MemoryAdapterConfig, j as SessionStorageAdapter, k as StorageAdapterConfig, T as TIME_TRAVEL_MODULE_BUILD, l as TimeTravelConfig, m as TimeTravelModule, n as TimeTravelState } from './timeTravel-D7NiYqdD.js';
|
|
5
5
|
|
|
6
6
|
interface PersistConfig<T extends object, P extends Paths<T> = Paths<T>> {
|
|
7
7
|
/** Whether the persistence is disabled and cleared */
|
package/dist/modules.js
CHANGED
package/dist/super.d.ts
CHANGED
|
@@ -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<
|
|
561
|
-
|
|
562
|
-
|
|
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)
|
|
@@ -1443,7 +1446,7 @@ interface IndexedDBAdapterConfig extends StorageAdapterConfig, IDBTransactionOpt
|
|
|
1443
1446
|
dbName: string;
|
|
1444
1447
|
/** Database version tag to use during creation or retrieval. */
|
|
1445
1448
|
version: number;
|
|
1446
|
-
/** First store is default during operations if none provided */
|
|
1449
|
+
/** First store is default during operations if none is provided, i.e. ["VAULT", "TEMP"] -> clear(store = "VAULT") {} */
|
|
1447
1450
|
stores: string[];
|
|
1448
1451
|
/** return a preffered instance or `throw` to prevent accessing the database */
|
|
1449
1452
|
onidb: () => any;
|
|
@@ -1743,7 +1746,7 @@ interface HistoryEntry<T extends object = any, P extends Paths<T> = Paths<T>> {
|
|
|
1743
1746
|
/** For multi-reactor management, identifies who the entry belongs to */
|
|
1744
1747
|
rid: ReactorModuleId;
|
|
1745
1748
|
}
|
|
1746
|
-
interface TimeTravelConfig
|
|
1749
|
+
interface TimeTravelConfig<T extends object, P extends Paths<T> = Paths<T>> {
|
|
1747
1750
|
/** Specific paths only, no "*"; instead don't pass anything */
|
|
1748
1751
|
paths: P[];
|
|
1749
1752
|
/** Maximum number of history entries to keep (Memory Cap), you lose replaying Sessions or the Genesis */
|
|
@@ -1769,14 +1772,14 @@ interface TimeTravelState<T extends object, P extends Paths<T> = Paths<T>> {
|
|
|
1769
1772
|
* Allows history from single or multiple reactors to be recorded and replayed in a synchronized manner, even if they have different shapes.
|
|
1770
1773
|
* If paired with async persistence, `use()` or `setup()` this module after hydration where applicable to avoid recording restore waves.
|
|
1771
1774
|
*/
|
|
1772
|
-
declare class TimeTravelModule<T extends object = any, P extends Paths<T> = Paths<T>> extends BaseReactorModule<T, TimeTravelConfig
|
|
1775
|
+
declare class TimeTravelModule<T extends object = any, P extends Paths<T> = Paths<T>> extends BaseReactorModule<T, TimeTravelConfig<T, P>, TimeTravelState<T, P>> {
|
|
1773
1776
|
static readonly moduleName: string;
|
|
1774
1777
|
protected lastTimestamp: number;
|
|
1775
1778
|
protected playbackTimeoutId: number;
|
|
1776
|
-
constructor(config?: Partial<TimeTravelConfig
|
|
1779
|
+
constructor(config?: Partial<TimeTravelConfig<T, P>>, rtr?: Reactor<T>);
|
|
1777
1780
|
wire(): void;
|
|
1778
1781
|
protected onAttach(rtr: Reactor<any>, rid: ReactorModuleId): void;
|
|
1779
|
-
protected handlePaths({ value: paths, oldValue: prevs }: REvent<TimeTravelConfig
|
|
1782
|
+
protected handlePaths({ value: paths, oldValue: prevs }: REvent<TimeTravelConfig<T, P>, "paths">): void;
|
|
1780
1783
|
/** Chronicling the lifecycle of the system, Captures the essence of every mutation wave that bubbles up. */
|
|
1781
1784
|
protected record(e: REvent<any, P>, rid?: ReactorModuleId): void;
|
|
1782
1785
|
/** Clears timeline history and resets playhead/genesis to the current reactor state. */
|
|
@@ -1802,7 +1805,7 @@ declare class TimeTravelModule<T extends object = any, P extends Paths<T> = Path
|
|
|
1802
1805
|
/** Imports a session from a JSON string, allowing you to replay or analyze past states. */
|
|
1803
1806
|
import(json: string, reviver?: JSONReviver): void;
|
|
1804
1807
|
}
|
|
1805
|
-
declare const TIME_TRAVEL_MODULE_BUILD: Partial<TimeTravelConfig
|
|
1808
|
+
declare const TIME_TRAVEL_MODULE_BUILD: Partial<TimeTravelConfig<any>>;
|
|
1806
1809
|
|
|
1807
1810
|
type modules_AsyncStorageAdapter<Config extends StorageAdapterConfig = StorageAdapterConfig> = AsyncStorageAdapter<Config>;
|
|
1808
1811
|
declare const modules_AsyncStorageAdapter: typeof AsyncStorageAdapter;
|
|
@@ -1841,11 +1844,12 @@ declare const modules_StorageAdapter: typeof StorageAdapter;
|
|
|
1841
1844
|
type modules_StorageAdapterConfig = StorageAdapterConfig;
|
|
1842
1845
|
type modules_StorageAdapterConstructor<Config extends StorageAdapterConfig = StorageAdapterConfig> = StorageAdapterConstructor<Config>;
|
|
1843
1846
|
declare const modules_TIME_TRAVEL_MODULE_BUILD: typeof TIME_TRAVEL_MODULE_BUILD;
|
|
1847
|
+
type modules_TimeTravelConfig<T extends object, P extends Paths<T> = Paths<T>> = TimeTravelConfig<T, P>;
|
|
1844
1848
|
type modules_TimeTravelModule<T extends object = any, P extends Paths<T> = Paths<T>> = TimeTravelModule<T, P>;
|
|
1845
1849
|
declare const modules_TimeTravelModule: typeof TimeTravelModule;
|
|
1846
1850
|
type modules_TimeTravelState<T extends object, P extends Paths<T> = Paths<T>> = TimeTravelState<T, P>;
|
|
1847
1851
|
declare namespace modules {
|
|
1848
|
-
export { modules_AsyncStorageAdapter as AsyncStorageAdapter, type modules_AsyncStorageAdapterConstructor as AsyncStorageAdapterConstructor, modules_BaseReactorModule as BaseReactorModule, modules_BaseStorageAdapter as BaseStorageAdapter, modules_COOKIE_ADAPTER_BUILD as COOKIE_ADAPTER_BUILD, modules_CookieAdapter as CookieAdapter, type modules_CookieAdapterConfig as CookieAdapterConfig, type modules_CookieOptions as CookieOptions, type modules_HistoryEntry as HistoryEntry, modules_INDEXED_DB_ADAPTER_BUILD as INDEXED_DB_ADAPTER_BUILD, modules_IndexedDBAdapter as IndexedDBAdapter, type modules_IndexedDBAdapterConfig as IndexedDBAdapterConfig, type modules_JSONReplacer as JSONReplacer, type modules_JSONReviver as JSONReviver, modules_LocalStorageAdapter as LocalStorageAdapter, modules_MemoryAdapter as MemoryAdapter, type modules_MemoryAdapterConfig as MemoryAdapterConfig, modules_PERSIST_MODULE_BUILD as PERSIST_MODULE_BUILD, type modules_PersistConfig as PersistConfig, modules_PersistModule as PersistModule, type modules_ReactorModuleConstructor as ReactorModuleConstructor, type modules_ReactorModuleId as ReactorModuleId, modules_SessionStorageAdapter as SessionStorageAdapter, modules_StorageAdapter as StorageAdapter, type modules_StorageAdapterConfig as StorageAdapterConfig, type modules_StorageAdapterConstructor as StorageAdapterConstructor, modules_TIME_TRAVEL_MODULE_BUILD as TIME_TRAVEL_MODULE_BUILD, type
|
|
1852
|
+
export { modules_AsyncStorageAdapter as AsyncStorageAdapter, type modules_AsyncStorageAdapterConstructor as AsyncStorageAdapterConstructor, modules_BaseReactorModule as BaseReactorModule, modules_BaseStorageAdapter as BaseStorageAdapter, modules_COOKIE_ADAPTER_BUILD as COOKIE_ADAPTER_BUILD, modules_CookieAdapter as CookieAdapter, type modules_CookieAdapterConfig as CookieAdapterConfig, type modules_CookieOptions as CookieOptions, type modules_HistoryEntry as HistoryEntry, modules_INDEXED_DB_ADAPTER_BUILD as INDEXED_DB_ADAPTER_BUILD, modules_IndexedDBAdapter as IndexedDBAdapter, type modules_IndexedDBAdapterConfig as IndexedDBAdapterConfig, type modules_JSONReplacer as JSONReplacer, type modules_JSONReviver as JSONReviver, modules_LocalStorageAdapter as LocalStorageAdapter, modules_MemoryAdapter as MemoryAdapter, type modules_MemoryAdapterConfig as MemoryAdapterConfig, modules_PERSIST_MODULE_BUILD as PERSIST_MODULE_BUILD, type modules_PersistConfig as PersistConfig, modules_PersistModule as PersistModule, type modules_ReactorModuleConstructor as ReactorModuleConstructor, type modules_ReactorModuleId as ReactorModuleId, modules_SessionStorageAdapter as SessionStorageAdapter, modules_StorageAdapter as StorageAdapter, type modules_StorageAdapterConfig as StorageAdapterConfig, type modules_StorageAdapterConstructor as StorageAdapterConstructor, modules_TIME_TRAVEL_MODULE_BUILD as TIME_TRAVEL_MODULE_BUILD, type modules_TimeTravelConfig as TimeTravelConfig, modules_TimeTravelModule as TimeTravelModule, type modules_TimeTravelState as TimeTravelState };
|
|
1849
1853
|
}
|
|
1850
1854
|
|
|
1851
1855
|
/**
|
|
@@ -1861,7 +1865,7 @@ declare namespace modules {
|
|
|
1861
1865
|
declare function effect(callback: () => void, options?: EffectOptions): () => void;
|
|
1862
1866
|
|
|
1863
1867
|
/** Reactive options for the TimeTravel overlay instance. */
|
|
1864
|
-
interface
|
|
1868
|
+
interface TimeTravelOverlayConfig {
|
|
1865
1869
|
/** Header text shown at the top of the overlay panel. */
|
|
1866
1870
|
title: string;
|
|
1867
1871
|
/** Accent color used to derive panel theme variables. */
|
|
@@ -1881,7 +1885,7 @@ interface TimeTravelConfig {
|
|
|
1881
1885
|
declare class TimeTravelOverlay {
|
|
1882
1886
|
static count: number;
|
|
1883
1887
|
index: number;
|
|
1884
|
-
config:
|
|
1888
|
+
config: TimeTravelOverlayConfig;
|
|
1885
1889
|
readonly state: Reactive<{
|
|
1886
1890
|
open: boolean;
|
|
1887
1891
|
import: string;
|
|
@@ -1894,19 +1898,19 @@ declare class TimeTravelOverlay {
|
|
|
1894
1898
|
* @param time TimeTravel module instance that owns timeline operations.
|
|
1895
1899
|
* @param build Optional initial overlay config overrides.
|
|
1896
1900
|
*/
|
|
1897
|
-
constructor(time: TimeTravelModule, build?: Partial<
|
|
1901
|
+
constructor(time: TimeTravelModule, build?: Partial<TimeTravelOverlayConfig>);
|
|
1898
1902
|
destroy(): void;
|
|
1899
1903
|
}
|
|
1900
1904
|
|
|
1901
1905
|
type vanilla_Autotracker<T extends object> = Autotracker<T>;
|
|
1902
1906
|
declare const vanilla_Autotracker: typeof Autotracker;
|
|
1903
|
-
type vanilla_TimeTravelConfig = TimeTravelConfig;
|
|
1904
1907
|
type vanilla_TimeTravelOverlay = TimeTravelOverlay;
|
|
1905
1908
|
declare const vanilla_TimeTravelOverlay: typeof TimeTravelOverlay;
|
|
1909
|
+
type vanilla_TimeTravelOverlayConfig = TimeTravelOverlayConfig;
|
|
1906
1910
|
declare const vanilla_effect: typeof effect;
|
|
1907
1911
|
declare const vanilla_withTracker: typeof withTracker;
|
|
1908
1912
|
declare namespace vanilla {
|
|
1909
|
-
export { vanilla_Autotracker as Autotracker,
|
|
1913
|
+
export { vanilla_Autotracker as Autotracker, vanilla_TimeTravelOverlay as TimeTravelOverlay, type vanilla_TimeTravelOverlayConfig as TimeTravelOverlayConfig, vanilla_effect as effect, vanilla_withTracker as withTracker };
|
|
1910
1914
|
}
|
|
1911
1915
|
|
|
1912
1916
|
declare const adapters: {
|
package/dist/super.global.js
CHANGED
|
@@ -950,15 +950,6 @@ var sia = (() => {
|
|
|
950
950
|
descriptors["__Reactor__"] = { value: rtr, ...locks };
|
|
951
951
|
return Object.defineProperties(rtr.core, descriptors), rtr.core;
|
|
952
952
|
}
|
|
953
|
-
function inert(target) {
|
|
954
|
-
return getRaw(target)[INERTIA] = true, target;
|
|
955
|
-
}
|
|
956
|
-
function live(target) {
|
|
957
|
-
return delete getRaw(target)[INERTIA], target;
|
|
958
|
-
}
|
|
959
|
-
function isInert(target = NIL) {
|
|
960
|
-
return !!getRaw(target)[INERTIA];
|
|
961
|
-
}
|
|
962
953
|
function intent(target) {
|
|
963
954
|
return getRaw(target)[REJECTABLE] = true, target;
|
|
964
955
|
}
|
|
@@ -968,6 +959,15 @@ var sia = (() => {
|
|
|
968
959
|
function isIntent(target = NIL) {
|
|
969
960
|
return !!getRaw(target)[REJECTABLE];
|
|
970
961
|
}
|
|
962
|
+
function inert(target) {
|
|
963
|
+
return getRaw(target)[INERTIA] = true, target;
|
|
964
|
+
}
|
|
965
|
+
function live(target) {
|
|
966
|
+
return delete getRaw(target)[INERTIA], target;
|
|
967
|
+
}
|
|
968
|
+
function isInert(target = NIL) {
|
|
969
|
+
return !!getRaw(target)[INERTIA];
|
|
970
|
+
}
|
|
971
971
|
function volatile(target) {
|
|
972
972
|
return getRaw(target)[INDIFFABLE] = true, target;
|
|
973
973
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as Paths, e as PathValue, a as REvent, c as ReactorModuleId, B as BaseReactorModule, R as Reactor } from './index-
|
|
1
|
+
import { P as Paths, e as PathValue, a as REvent, c as ReactorModuleId, B as BaseReactorModule, R as Reactor } from './index-CB-IiZIB.cjs';
|
|
2
2
|
|
|
3
3
|
type JSONReplacer = ((this: any, key: string, value: any) => any) | (number | string)[] | null;
|
|
4
4
|
type JSONReviver = ((this: any, key: string, value: any) => any) | undefined;
|
|
@@ -34,7 +34,7 @@ interface IndexedDBAdapterConfig extends StorageAdapterConfig, IDBTransactionOpt
|
|
|
34
34
|
dbName: string;
|
|
35
35
|
/** Database version tag to use during creation or retrieval. */
|
|
36
36
|
version: number;
|
|
37
|
-
/** First store is default during operations if none provided */
|
|
37
|
+
/** First store is default during operations if none is provided, i.e. ["VAULT", "TEMP"] -> clear(store = "VAULT") {} */
|
|
38
38
|
stores: string[];
|
|
39
39
|
/** return a preffered instance or `throw` to prevent accessing the database */
|
|
40
40
|
onidb: () => any;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as Paths, e as PathValue, a as REvent, c as ReactorModuleId, B as BaseReactorModule, R as Reactor } from './index-
|
|
1
|
+
import { P as Paths, e as PathValue, a as REvent, c as ReactorModuleId, B as BaseReactorModule, R as Reactor } from './index-CB-IiZIB.js';
|
|
2
2
|
|
|
3
3
|
type JSONReplacer = ((this: any, key: string, value: any) => any) | (number | string)[] | null;
|
|
4
4
|
type JSONReviver = ((this: any, key: string, value: any) => any) | undefined;
|
|
@@ -34,7 +34,7 @@ interface IndexedDBAdapterConfig extends StorageAdapterConfig, IDBTransactionOpt
|
|
|
34
34
|
dbName: string;
|
|
35
35
|
/** Database version tag to use during creation or retrieval. */
|
|
36
36
|
version: number;
|
|
37
|
-
/** First store is default during operations if none provided */
|
|
37
|
+
/** First store is default during operations if none is provided, i.e. ["VAULT", "TEMP"] -> clear(store = "VAULT") {} */
|
|
38
38
|
stores: string[];
|
|
39
39
|
/** return a preffered instance or `throw` to prevent accessing the database */
|
|
40
40
|
onidb: () => any;
|
package/dist/utils.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { F as FanoutTuple, f as arrRegex, g as canHandle, h as deepClone, i as deleteAny, j as fanout, k as fanoutOptsArr, l as getAny, m as getTrailRecords, n as inAny, o as isObj, p as isPOJO, q as mergeObjs, r as nuke, s as parseAnyObj, t as parseEvtOpts, u as setAny } from './index-
|
|
1
|
+
export { F as FanoutTuple, f as arrRegex, g as canHandle, h as deepClone, i as deleteAny, j as fanout, k as fanoutOptsArr, l as getAny, m as getTrailRecords, n as inAny, o as isObj, p as isPOJO, q as mergeObjs, r as nuke, s as parseAnyObj, t as parseEvtOpts, u as setAny } from './index-CB-IiZIB.cjs';
|
|
2
2
|
|
|
3
3
|
declare function clamp(min: number | undefined, val: number, max?: number): number;
|
|
4
4
|
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { F as FanoutTuple, f as arrRegex, g as canHandle, h as deepClone, i as deleteAny, j as fanout, k as fanoutOptsArr, l as getAny, m as getTrailRecords, n as inAny, o as isObj, p as isPOJO, q as mergeObjs, r as nuke, s as parseAnyObj, t as parseEvtOpts, u as setAny } from './index-
|
|
1
|
+
export { F as FanoutTuple, f as arrRegex, g as canHandle, h as deepClone, i as deleteAny, j as fanout, k as fanoutOptsArr, l as getAny, m as getTrailRecords, n as inAny, o as isObj, p as isPOJO, q as mergeObjs, r as nuke, s as parseAnyObj, t as parseEvtOpts, u as setAny } from './index-CB-IiZIB.js';
|
|
2
2
|
|
|
3
3
|
declare function clamp(min: number | undefined, val: number, max?: number): number;
|
|
4
4
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sia-reactor",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.25",
|
|
4
4
|
"description": "The Programmable Data DOM. A high-performance State Intent Architecture (S.I.A.) Engine with zero-allocation loops, event propagation, and structural sharing.",
|
|
5
5
|
"author": "Oketade Oluwatobiloba <tobioketade007@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -717,15 +717,6 @@ function reactive(target, build, preferences = NIL) {
|
|
|
717
717
|
descriptors["__Reactor__"] = { value: rtr, ...locks };
|
|
718
718
|
return Object.defineProperties(rtr.core, descriptors), rtr.core;
|
|
719
719
|
}
|
|
720
|
-
function inert(target) {
|
|
721
|
-
return getRaw(target)[INERTIA] = true, target;
|
|
722
|
-
}
|
|
723
|
-
function live(target) {
|
|
724
|
-
return delete getRaw(target)[INERTIA], target;
|
|
725
|
-
}
|
|
726
|
-
function isInert(target = NIL) {
|
|
727
|
-
return !!getRaw(target)[INERTIA];
|
|
728
|
-
}
|
|
729
720
|
function intent(target) {
|
|
730
721
|
return getRaw(target)[REJECTABLE] = true, target;
|
|
731
722
|
}
|
|
@@ -735,6 +726,15 @@ function state(target) {
|
|
|
735
726
|
function isIntent(target = NIL) {
|
|
736
727
|
return !!getRaw(target)[REJECTABLE];
|
|
737
728
|
}
|
|
729
|
+
function inert(target) {
|
|
730
|
+
return getRaw(target)[INERTIA] = true, target;
|
|
731
|
+
}
|
|
732
|
+
function live(target) {
|
|
733
|
+
return delete getRaw(target)[INERTIA], target;
|
|
734
|
+
}
|
|
735
|
+
function isInert(target = NIL) {
|
|
736
|
+
return !!getRaw(target)[INERTIA];
|
|
737
|
+
}
|
|
738
738
|
function volatile(target) {
|
|
739
739
|
return getRaw(target)[INDIFFABLE] = true, target;
|
|
740
740
|
}
|
|
@@ -762,12 +762,12 @@ export {
|
|
|
762
762
|
Reactor,
|
|
763
763
|
methods,
|
|
764
764
|
reactive,
|
|
765
|
-
inert,
|
|
766
|
-
live,
|
|
767
|
-
isInert,
|
|
768
765
|
intent,
|
|
769
766
|
state,
|
|
770
767
|
isIntent,
|
|
768
|
+
inert,
|
|
769
|
+
live,
|
|
770
|
+
isInert,
|
|
771
771
|
volatile,
|
|
772
772
|
stable,
|
|
773
773
|
isVolatile,
|