Socket
Socket
Sign inDemoInstall

realar

Package Overview
Dependencies
1
Maintainers
1
Versions
129
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.6.0-alpha.4 to 0.6.0-alpha.5

21

build/index.d.ts
import { FC } from 'react';
import { Contextual, Isolate, Local, Observe, PoolEntry, SelectorEntry, SignalEntry, Transaction, Untrack, UseJsx, UseLocal, UseScoped, UseValue, UseValues, ValueEntry } from './types';
export { value, selector, signal, on, sync, cycle, prop, cache, shared, initial, free, mock, unmock, isolate, un, local, contextual, pool, transaction, untrack, observe, useValue, useValues, useLocal, useScoped, shared as useShared, Scope, useJsx, };
declare const selector: SelectorEntry;
import { Contextual, Isolate, Local, Observe, On, PoolEntry, SignalEntry, Sync, Transaction, Untrack, UseJsx, UseLocal, UseScoped, UseValue, UseValues, ValueEntry } from './types';
export { value, signal, on, sync, cycle, prop, cache, shared, initial, free, mock, unmock, isolate, un, local, contextual, pool, transaction, untrack, observe, useValue, useValues, useLocal, useScoped, shared as useShared, Scope, useJsx, };
declare const value: ValueEntry;

@@ -12,13 +11,13 @@ declare const signal: SignalEntry;

declare const local: Local;
declare const on: (target: any, fn: any) => void;
declare const sync: (target: any, fn: any) => void;
declare const cycle: (body: any) => void;
declare const on: On;
declare const sync: Sync;
declare const cycle: (body: () => void) => void;
declare const contextual: Contextual;
declare const initial: (data: any) => void;
declare const shared: <M>(target: (new (init?: any) => M) | ((init?: any) => M)) => M;
declare const shared: <M>(target: (new (init: any) => M) | ((init: any) => M)) => M;
declare const free: () => void;
declare const mock: <M>(target: (new (init?: any) => M) | ((init?: any) => M), mocked: M) => M;
declare const unmock: (target: (new (init?: any) => any) | ((init?: any) => any), ...targets: ((new (init?: any) => any) | ((init?: any) => any))[]) => void;
declare const prop: (_t: any, key: any, descriptor?: any) => any;
declare const cache: (_proto: any, key: any, descriptor: any) => any;
declare const mock: <M>(target: (new (init: any) => M) | ((init: any) => M), mocked: M) => M;
declare const unmock: (target: (new (init: any) => any) | ((init: any) => any), ...targets: ((new (init: any) => any) | ((init: any) => any))[]) => void;
declare const prop: (_target: any, key: any, descriptor?: any) => any;
declare const cache: (_target: any, key: any, descriptor: any) => any;
declare const observe: Observe;

@@ -25,0 +24,0 @@ declare const Scope: FC;

@@ -6,3 +6,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.useJsx = exports.Scope = exports.useShared = exports.useScoped = exports.useLocal = exports.useValues = exports.useValue = exports.observe = exports.untrack = exports.transaction = exports.pool = exports.contextual = exports.local = exports.un = exports.isolate = exports.unmock = exports.mock = exports.free = exports.initial = exports.shared = exports.cache = exports.prop = exports.cycle = exports.sync = exports.on = exports.signal = exports.selector = exports.value = void 0;
exports.useJsx = exports.Scope = exports.useShared = exports.useScoped = exports.useLocal = exports.useValues = exports.useValue = exports.observe = exports.untrack = exports.transaction = exports.pool = exports.contextual = exports.local = exports.un = exports.isolate = exports.unmock = exports.mock = exports.free = exports.initial = exports.shared = exports.cache = exports.prop = exports.cycle = exports.sync = exports.on = exports.signal = exports.value = void 0;
const reactive_box_1 = __importDefault(require("reactive-box"));

@@ -112,3 +112,2 @@ //

const key_combine = 'combine';
const key_join = 'join';
const key_value = 'value';

@@ -121,2 +120,3 @@ const key_as = 'as';

const key_updater = key_update + 'r';
const key_wrap = 'wrap';
const obj_def_prop_value = (obj, key, value) => (obj_def_prop(obj, key, { value }), value);

@@ -211,26 +211,6 @@ const obj_def_prop_trait = (obj, key, trait) => obj_def_prop(obj, key, {

};
const make_join_entity = (fn_get, join_cfg, is_signal, set, is_untrack) => {
const fns = join_cfg.map(is_signal
? (fn) => fn[key_get] || fn
: (fn) => sel(fn[key_get] || fn)[0]);
const h = [
() => {
const ret = [fn_get()];
const finish = is_untrack && internal_untrack();
try {
return ret.concat(fns.map(f => f()));
}
finally {
finish && finish();
}
},
set && set.bind()
];
h[key_is_signal] = is_signal;
return fill_entity(h, set ? proto_entity_writtable : proto_entity_readable);
};
const make_trait_ent_pure_fn_untrack = (trait_fn) => (ctx, fn) => trait_fn(ctx, fn && ((a, b) => {
const make_trait_ent_pure_fn_untrack = (trait_fn) => (ctx, fn) => trait_fn(ctx, fn && ((a, b, c) => {
const finish = internal_untrack();
try {
return fn(a, b);
return fn(a, b, c);
}

@@ -309,3 +289,3 @@ finally {

const trait_ent_pre = (ctx, fn) => (fn
? fill_entity(ctx[key_handler], ctx[key_proto], 0, 0, ctx[key_get], (v) => ctx[key_set](fn(v)))
? fill_entity(ctx[key_handler], ctx[key_proto], 0, 0, ctx[key_get], (v) => ctx[key_set](fn(v, untrack(ctx[key_get]))))
: ctx);

@@ -323,3 +303,5 @@ const trait_ent_pre_untrack = make_trait_ent_pure_fn_untrack(trait_ent_pre);

const trait_ent_pre_filter_not_untrack = make_trait_ent_untrack(trait_ent_pre_filter_not);
const trait_ent_flow = (ctx, fn) => {
const trait_ent_wrap = (ctx, fn_pre, fn_map) => (trait_ent_map(trait_ent_pre(ctx, fn_pre), fn_map));
const trait_ent_wrap_untrack = (ctx, fn_pre, fn_map) => (trait_ent_map_untrack(trait_ent_pre_untrack(ctx, fn_pre), fn_map));
const trait_ent_flow = (ctx, fn, empty_val) => {
fn || (fn = pure_arrow_fn_returns_arg);

@@ -336,3 +318,3 @@ let started, prev;

}
}, const_undef, is_signal && pure_arrow_fn_returns_undef);
}, empty_val, is_signal && pure_arrow_fn_returns_undef);
const h = [

@@ -346,13 +328,11 @@ () => ((started || (f[0](), (started = 1))), f[1]()),

const trait_ent_flow_untrack = make_trait_ent_pure_fn_untrack(trait_ent_flow);
const trait_ent_filter = (ctx, fn) => (trait_ent_flow(ctx, fn
const trait_ent_filter = (ctx, fn, empty_val) => (trait_ent_flow(ctx, fn
? (fn[key_get] && (fn = fn[key_get]),
(v, prev) => (fn(v, prev) ? v : internal_flow_stop))
: (v) => v || internal_flow_stop));
: (v) => v || internal_flow_stop, empty_val));
const trait_ent_filter_untrack = make_trait_ent_untrack(trait_ent_filter);
const trait_ent_filter_not = (ctx, fn) => (trait_ent_filter(ctx, fn
const trait_ent_filter_not = (ctx, fn, empty_val) => (trait_ent_filter(ctx, fn
? (fn[key_get] && (fn = fn[key_get]), (v) => !fn(v))
: pure_arrow_fn_returns_not_arg));
: pure_arrow_fn_returns_not_arg, empty_val));
const trait_ent_filter_not_untrack = make_trait_ent_untrack(trait_ent_filter_not);
const trait_ent_join = (ctx, cfg) => (make_join_entity(ctx[key_get], cfg, ctx[key_handler][key_is_signal], ctx[key_set]));
const trait_ent_join_untrack = (ctx, cfg) => (make_join_entity(ctx[key_get], cfg, ctx[key_handler][key_is_signal], ctx[key_set], 1));
const trait_ent_as_value = (ctx) => (value_from(ctx[key_get], ctx[key_set]));

@@ -392,3 +372,2 @@ const trait_ent_op = (ctx, f) => ((f = f(ctx)), (f === const_undef ? ctx : f));

// .to
// .join (track|untrack)
// .as:readable.as:ns

@@ -405,3 +384,2 @@ // .as.value

obj_def_prop_trait_with_ns(proto_entity_readable, key_map, op_trait_if_not_signal(trait_ent_map, trait_ent_map_untrack), proto_entity_readable_map_ns, 1);
obj_def_prop_trait_with_ns(proto_entity_readable, key_join, trait_ent_join, make_proto_for_trackable_ns(trait_ent_join, trait_ent_join_untrack));
obj_def_prop_with_ns(proto_entity_readable, key_as, proto_entity_readable_as_ns);

@@ -441,2 +419,3 @@ obj_def_prop_promise(proto_entity_readable);

obj_def_prop_trait_with_ns(proto_entity_writtable, key_pre, op_trait_if_not_signal(trait_ent_pre, trait_ent_pre_untrack), proto_entity_writtable_pre_ns, 1);
obj_def_prop_trait_with_ns(proto_entity_writtable, key_wrap, op_trait_if_not_signal(trait_ent_wrap, trait_ent_wrap_untrack), make_proto_for_trackable_ns(trait_ent_wrap, trait_ent_wrap_untrack), 1);
// writtable_leaf.reset.by:ns

@@ -478,15 +457,8 @@ // .reset.by.once

const get_getter_to_reactionable_or_custom = (re) => ((re && re[key_get]) || (typeof re === const_string_function ? re : () => re));
const make_combine = (cfg, is_signal) => {
const make_value_combine_handler = (cfg, fn) => {
const keys = obj_keys(cfg);
const fns = keys.map(is_signal
? (key) => get_getter_to_reactionable_or_custom(cfg[key])
: (key) => sel(get_getter_to_reactionable_or_custom(cfg[key]))[0]);
const h = [
() => keys.reduce((ret, key, key_index) => ((ret[key] = fns[key_index]()), ret), obj_empty_from(cfg))
];
h[key_is_signal] = is_signal;
return fill_entity(h, proto_entity_readable);
const fns = keys.map((key) => sel(get_getter_to_reactionable_or_custom(cfg[key]))[0]);
const re = () => keys.reduce((ret, key, key_index) => ((ret[key] = fns[key_index]()), ret), obj_empty_from(cfg));
return [fn ? sel(() => fn(re()))[0] : re];
};
const selector = (fn) => (fill_entity(sel(fn).slice(0, 1), proto_entity_readable));
exports.selector = selector;
const value = ((initial) => (fill_entity(box(initial), proto_entity_writtable_leaf, 1, initial)));

@@ -497,6 +469,10 @@ exports.value = value;

const value_trigger_flag_invert = (initial) => make_trigger(!initial, 1);
const value_from = (get, set) => ((get = sel(get[key_get] || get).slice(0, 1),
set && ((set = set[key_set] || set), (get[1] = set.bind()))),
fill_entity(get, set ? proto_entity_writtable : proto_entity_readable));
const value_combine = (cfg) => make_combine(cfg);
const value_from = (get, set) => {
const h = sel(get[key_get] || get).slice(0, 1);
if (set)
h[1] = set[key_set] ? set[key_set].bind() : (v) => set(v, untrack(ctx[key_get]));
const ctx = fill_entity(h, set ? proto_entity_writtable : proto_entity_readable);
return ctx;
};
const value_combine = (cfg, fn) => fill_entity(make_value_combine_handler(cfg, fn), proto_entity_readable);
value_trigger_flag[key_invert] = value_trigger_flag_invert;

@@ -516,7 +492,10 @@ value_trigger[key_flag] = value_trigger_flag;

const signal_trigger_flag_invert = (initial) => make_trigger(!initial, 1, 1);
const signal_from = (get, set) => ((get = [get[key_get] || get],
(get[key_is_signal] = 1),
set && ((set = set[key_set] || set), (get[1] = set.bind()))),
fill_entity(get, set ? proto_entity_writtable : proto_entity_readable));
const signal_combine = (cfg) => make_combine(cfg, 1);
const signal_from = (get, set) => {
const h = [get[key_get] || get];
h[key_is_signal] = 1;
if (set)
h[1] = set[key_set] ? set[key_set].bind() : (v) => set(v, untrack(ctx[key_get]));
const ctx = fill_entity(h, set ? proto_entity_writtable : proto_entity_readable);
return ctx;
};
signal_trigger_flag[key_invert] = signal_trigger_flag_invert;

@@ -526,3 +505,2 @@ signal_trigger[key_flag] = signal_trigger_flag;

signal[key_from] = signal_from;
signal[key_combine] = signal_combine;
//

@@ -595,3 +573,3 @@ // Realar internal

const on_once = (target, fn) => reactionable_subscribe(target, fn, 1);
const on = (target, fn) => reactionable_subscribe(target, fn);
const on = ((target, fn) => reactionable_subscribe(target, fn));
exports.on = on;

@@ -686,9 +664,9 @@ on[key_once] = on_once;

obj_def_prop(o, p, { get: init[0], set: init[1] }));
const prop = (_t, key, descriptor) => ((_t = descriptor === null || descriptor === void 0 ? void 0 : descriptor.initializer), {
const prop = (_target, key, descriptor) => ((_target = descriptor && descriptor.initializer), {
get() {
obj_def_box_prop(this, key, _t);
obj_def_box_prop(this, key, _target);
return this[key];
},
set(value) {
obj_def_box_prop(this, key, _t);
obj_def_box_prop(this, key, _target);
this[key] = value;

@@ -698,3 +676,3 @@ },

exports.prop = prop;
const cache = (_proto, key, descriptor) => ({
const cache = (_target, key, descriptor) => ({
get() {

@@ -809,3 +787,3 @@ const [get] = sel(descriptor.get);

deps || (deps = []);
const h = useMemo(() => value.combine(targets), deps);
const h = useMemo(() => value_combine(targets), deps);
return useValue(h, [h]);

@@ -821,7 +799,7 @@ };

const threads = value([]);
const count = threads.select(t => t.length);
const pending = count.select(c => c > 0);
const count = trait_ent_select(threads, t => t.length);
const pending = trait_ent_select(count, c => c > 0);
function run() {
const stop = () => threads.update(t => t.filter(ctx => ctx !== stop));
threads.update(t => t.concat(stop));
const stop = () => trait_ent_update(threads, t => t.filter(ctx => ctx !== stop));
trait_ent_update(threads, t => t.concat(stop));
const stack = context_contextual_stop;

@@ -828,0 +806,0 @@ context_contextual_stop = stop;

import { FC } from 'react';
export { ValueEntry, SignalEntry, SelectorEntry, Local, Contextual, Observe, UseScoped, UseLocal, UseValue, UseValues, UseJsx, Transaction, Untrack, Isolate, PoolEntry, };
export { ValueEntry, SignalEntry, Local, Contextual, Observe, UseScoped, UseLocal, UseValue, UseValues, UseJsx, On, Sync, Transaction, Untrack, Isolate, PoolEntry, };
declare type Equals<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? ([X] extends [Y] ? ([Y] extends [X] ? true : false) : false) : false;

@@ -7,43 +7,159 @@ declare type Re<T> = {

} | (() => T);
interface E_UpdaterPartial<I, O> {
updater: {
<U>(func?: (state: O, upValue: U, upPrev: U) => I): Equals<U, unknown> extends true ? Signal : Signal<U>;
value<U>(func?: (state: O, upValue: U, upPrev: U) => I): Equals<U, unknown> extends true ? Value : Value<U>;
};
declare type ReWrit<T> = {
set: (value: T) => void;
} | ((value: T) => void);
declare type Re_CfgExemplar = {
[key: string]: Re<any>;
};
declare type Will<T> = T | undefined;
declare type WillExpand<T> = ((p: T) => 0) extends ((p: Will<T>) => 0) ? [T] extends [Will<infer P>] ? P | undefined : T : T;
declare type WillExtract<T> = ((p: T) => 0) extends ((p: Will<T>) => 0) ? [T] extends [Will<infer P>] ? P : T : T;
declare type WillEnsure<T> = ((p: T) => 0) extends ((p: Will<T>) => 0) ? [T] extends [Will<infer P>] ? Will<P> : Will<T> : Will<T>;
declare type On = {
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): void;
<T>(target: Re<T>, fn: (value: T, prev: T) => void): void;
};
declare type Sync = {
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): void;
<T>(target: Re<T>, fn: (value: T, prev: T) => void): void;
};
declare type Local = {
inject(fn: () => void): void;
};
declare type Contextual = {
stop: () => void;
};
declare type Isolate = {
(fn: any): () => void;
unsafe: () => () => () => void;
};
declare type Transaction = {
<T>(fn: () => T): T;
unsafe: () => () => void;
};
declare type Untrack = {
<T>(fn: () => T): T;
unsafe: () => () => void;
};
declare type E_SetPartial<T> = Equals<T, void> extends true ? {
(): void;
set(): void;
} : {
(value: T): void;
set(value: T): void;
};
declare type E_ValReadonlyPartial<O> = {
readonly val: O;
};
declare type E_ValPartial<I, O> = Equals<I, O> extends true ? {
val: O;
} : E_ValReadonlyPartial<O>;
interface E_PromisePartial<O> {
promise: Promise<WillExtract<O>>;
}
interface E_GetPartial<T> {
get: () => T;
interface E_GetPartial<O> {
get: () => O;
}
interface E_SyncToPartial<T, Ret> {
sync(func: (value: T, prev: T) => void): Ret;
interface E_SyncToPartial<O, Ret> {
sync(func: (value: WillExtract<O>, prev: WillExpand<O>) => void): Ret;
to: {
(func: (value: T, prev: T) => void): Ret;
once(func: (value: T, prev: T) => void): Ret;
(func: (value: WillExtract<O>, prev: WillExpand<O>) => void): Ret;
once(func: (value: WillExtract<O>, prev: WillExpand<O>) => void): Ret;
};
}
interface E_Value<I, O> extends E_GetPartial<O>, E_SyncToPartial<O, Value<I, O>>, E_UpdaterPartial<I, O> {
op<R>(func: () => R): R extends void ? Value<I, O> : R;
filter: {
(func?: (value: O) => any): Value<I, O>;
untrack(func?: (value: O) => any): Value<I, O>;
not: {
(func?: (value: O) => any): Value<I, O>;
untrack(func?: (value: O) => any): Value<I, O>;
};
interface E_OpPartial<Ret> {
op<R>(func: () => R): R extends void ? Ret : R;
}
declare type E_SelectMultiple_CfgExemplar<O> = {
[key: string]: (state: O) => void;
};
declare type _S<O, T> = ((state: O) => T) | (() => T);
interface E_SelectMultiple_Func<o> {
<A>(targets: [_S<o, A>]): [ValueReadonly<A>];
<A, B>(targets: [_S<o, A>, _S<o, B>]): [ValueReadonly<A>, ValueReadonly<B>];
<A, B, C>(targets: [_S<o, A>, _S<o, B>, _S<o, C>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>];
<A, B, C, D>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>];
<A, B, C, D, E>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>];
<A, B, C, D, E, F>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>];
<A, B, C, D, E, F, G>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>];
<A, B, C, D, E, F, G, H>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>];
<A, B, C, D, E, F, G, H, I>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>];
<A, B, C, D, E, F, G, H, I, J>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>];
<A, B, C, D, E, F, G, H, I, J, K>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>];
<A, B, C, D, E, F, G, H, I, J, K, L>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>];
<A, B, C, D, E, F, G, H, I, J, K, L, M>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>, _S<o, P>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>, ValueReadonly<P>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>, _S<o, P>, _S<o, Q>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>, ValueReadonly<P>, ValueReadonly<Q>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>, _S<o, P>, _S<o, Q>, _S<o, R>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>, ValueReadonly<P>, ValueReadonly<Q>, ValueReadonly<R>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>, _S<o, P>, _S<o, Q>, _S<o, R>, _S<o, S>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>, ValueReadonly<P>, ValueReadonly<Q>, ValueReadonly<R>, ValueReadonly<S>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>, _S<o, P>, _S<o, Q>, _S<o, R>, _S<o, S>, _S<o, T>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>, ValueReadonly<P>, ValueReadonly<Q>, ValueReadonly<R>, ValueReadonly<S>, ValueReadonly<T>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>, _S<o, P>, _S<o, Q>, _S<o, R>, _S<o, S>, _S<o, T>, _S<o, U>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>, ValueReadonly<P>, ValueReadonly<Q>, ValueReadonly<R>, ValueReadonly<S>, ValueReadonly<T>, ValueReadonly<U>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>, _S<o, P>, _S<o, Q>, _S<o, R>, _S<o, S>, _S<o, T>, _S<o, U>, _S<o, V>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>, ValueReadonly<P>, ValueReadonly<Q>, ValueReadonly<R>, ValueReadonly<S>, ValueReadonly<T>, ValueReadonly<U>, ValueReadonly<V>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>, _S<o, P>, _S<o, Q>, _S<o, R>, _S<o, S>, _S<o, T>, _S<o, U>, _S<o, V>, _S<o, W>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>, ValueReadonly<P>, ValueReadonly<Q>, ValueReadonly<R>, ValueReadonly<S>, ValueReadonly<T>, ValueReadonly<U>, ValueReadonly<V>, ValueReadonly<W>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>, _S<o, P>, _S<o, Q>, _S<o, R>, _S<o, S>, _S<o, T>, _S<o, U>, _S<o, V>, _S<o, W>, _S<o, X>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>, ValueReadonly<P>, ValueReadonly<Q>, ValueReadonly<R>, ValueReadonly<S>, ValueReadonly<T>, ValueReadonly<U>, ValueReadonly<V>, ValueReadonly<W>, ValueReadonly<X>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>, _S<o, P>, _S<o, Q>, _S<o, R>, _S<o, S>, _S<o, T>, _S<o, U>, _S<o, V>, _S<o, W>, _S<o, X>, _S<o, Y>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>, ValueReadonly<P>, ValueReadonly<Q>, ValueReadonly<R>, ValueReadonly<S>, ValueReadonly<T>, ValueReadonly<U>, ValueReadonly<V>, ValueReadonly<W>, ValueReadonly<X>, ValueReadonly<Y>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>, _S<o, P>, _S<o, Q>, _S<o, R>, _S<o, S>, _S<o, T>, _S<o, U>, _S<o, V>, _S<o, W>, _S<o, X>, _S<o, Y>, _S<o, Z>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>, ValueReadonly<P>, ValueReadonly<Q>, ValueReadonly<R>, ValueReadonly<S>, ValueReadonly<T>, ValueReadonly<U>, ValueReadonly<V>, ValueReadonly<W>, ValueReadonly<X>, ValueReadonly<Y>, ValueReadonly<Z>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>, _S<o, P>, _S<o, Q>, _S<o, R>, _S<o, S>, _S<o, T>, _S<o, U>, _S<o, V>, _S<o, W>, _S<o, X>, _S<o, Y>, _S<o, Z>, _S<o, $>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>, ValueReadonly<P>, ValueReadonly<Q>, ValueReadonly<R>, ValueReadonly<S>, ValueReadonly<T>, ValueReadonly<U>, ValueReadonly<V>, ValueReadonly<W>, ValueReadonly<X>, ValueReadonly<Y>, ValueReadonly<Z>, ValueReadonly<$>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, _>(targets: [_S<o, A>, _S<o, B>, _S<o, C>, _S<o, D>, _S<o, E>, _S<o, F>, _S<o, G>, _S<o, H>, _S<o, I>, _S<o, J>, _S<o, K>, _S<o, L>, _S<o, M>, _S<o, N>, _S<o, O>, _S<o, P>, _S<o, Q>, _S<o, R>, _S<o, S>, _S<o, T>, _S<o, U>, _S<o, V>, _S<o, W>, _S<o, X>, _S<o, Y>, _S<o, Z>, _S<o, $>, _S<o, _>]): [ValueReadonly<A>, ValueReadonly<B>, ValueReadonly<C>, ValueReadonly<D>, ValueReadonly<E>, ValueReadonly<F>, ValueReadonly<G>, ValueReadonly<H>, ValueReadonly<I>, ValueReadonly<J>, ValueReadonly<K>, ValueReadonly<L>, ValueReadonly<M>, ValueReadonly<N>, ValueReadonly<O>, ValueReadonly<P>, ValueReadonly<Q>, ValueReadonly<R>, ValueReadonly<S>, ValueReadonly<T>, ValueReadonly<U>, ValueReadonly<V>, ValueReadonly<W>, ValueReadonly<X>, ValueReadonly<Y>, ValueReadonly<Z>, ValueReadonly<$>, ValueReadonly<_>];
<T extends E_SelectMultiple_CfgExemplar<o>>(targets: T): {
[P in keyof T]: T[P] extends ((state: o) => infer U) ? ValueReadonly<U> : never;
};
}
interface E_SelectPartial<O> {
select: {
<R>(func?: (value: O) => R): Selector<R>;
untrack<R>(func?: (value: O) => R): Selector<R>;
multiple: {
(cfg: any[]): any;
untrack(cfg: any[]): any;
<R>(func?: (value: O) => R): ValueReadonly<R>;
untrack<R>(func?: (value: O) => R): ValueReadonly<R>;
multiple: E_SelectMultiple_Func<O> & {
untrack: E_SelectMultiple_Func<O>;
};
};
map: {
<R>(func: (value: O) => R): Value<I, R>;
untrack<R>(func: (value: O) => R): Value<I, R>;
}
declare type E_UpdaterMultiple_CfgExemplar<I, O> = {
[key: string]: (state: O, upValue: never, upPrev: never) => I;
};
declare type _US<T> = Equals<T, unknown> extends true ? Signal : Signal<T, Will<T>>;
declare type _U<I, O, U> = ((state: O, upValue: U, upPrev: U) => I) | (() => I);
interface E_UpdaterMultiplePartial<i, o> {
multiple: {
<A>(targets: [_U<i, o, A>]): [_US<A>];
<A, B>(targets: [_U<i, o, A>, _U<i, o, B>]): [_US<A>, _US<B>];
<A, B, C>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>]): [_US<A>, _US<B>, _US<C>];
<A, B, C, D>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>]): [_US<A>, _US<B>, _US<C>, _US<D>];
<A, B, C, D, E>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>];
<A, B, C, D, E, F>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>];
<A, B, C, D, E, F, G>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>];
<A, B, C, D, E, F, G, H>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>];
<A, B, C, D, E, F, G, H, I>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>];
<A, B, C, D, E, F, G, H, I, J>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>];
<A, B, C, D, E, F, G, H, I, J, K>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>];
<A, B, C, D, E, F, G, H, I, J, K, L>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>];
<A, B, C, D, E, F, G, H, I, J, K, L, M>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>, _U<i, o, P>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>, _US<P>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>, _U<i, o, P>, _U<i, o, Q>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>, _US<P>, _US<Q>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>, _U<i, o, P>, _U<i, o, Q>, _U<i, o, R>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>, _US<P>, _US<Q>, _US<R>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>, _U<i, o, P>, _U<i, o, Q>, _U<i, o, R>, _U<i, o, S>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>, _US<P>, _US<Q>, _US<R>, _US<S>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>, _U<i, o, P>, _U<i, o, Q>, _U<i, o, R>, _U<i, o, S>, _U<i, o, T>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>, _US<P>, _US<Q>, _US<R>, _US<S>, _US<T>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>, _U<i, o, P>, _U<i, o, Q>, _U<i, o, R>, _U<i, o, S>, _U<i, o, T>, _U<i, o, U>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>, _US<P>, _US<Q>, _US<R>, _US<S>, _US<T>, _US<U>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>, _U<i, o, P>, _U<i, o, Q>, _U<i, o, R>, _U<i, o, S>, _U<i, o, T>, _U<i, o, U>, _U<i, o, V>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>, _US<P>, _US<Q>, _US<R>, _US<S>, _US<T>, _US<U>, _US<V>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>, _U<i, o, P>, _U<i, o, Q>, _U<i, o, R>, _U<i, o, S>, _U<i, o, T>, _U<i, o, U>, _U<i, o, V>, _U<i, o, W>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>, _US<P>, _US<Q>, _US<R>, _US<S>, _US<T>, _US<U>, _US<V>, _US<W>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>, _U<i, o, P>, _U<i, o, Q>, _U<i, o, R>, _U<i, o, S>, _U<i, o, T>, _U<i, o, U>, _U<i, o, V>, _U<i, o, W>, _U<i, o, X>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>, _US<P>, _US<Q>, _US<R>, _US<S>, _US<T>, _US<U>, _US<V>, _US<W>, _US<X>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>, _U<i, o, P>, _U<i, o, Q>, _U<i, o, R>, _U<i, o, S>, _U<i, o, T>, _U<i, o, U>, _U<i, o, V>, _U<i, o, W>, _U<i, o, X>, _U<i, o, Y>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>, _US<P>, _US<Q>, _US<R>, _US<S>, _US<T>, _US<U>, _US<V>, _US<W>, _US<X>, _US<Y>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>, _U<i, o, P>, _U<i, o, Q>, _U<i, o, R>, _U<i, o, S>, _U<i, o, T>, _U<i, o, U>, _U<i, o, V>, _U<i, o, W>, _U<i, o, X>, _U<i, o, Y>, _U<i, o, Z>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>, _US<P>, _US<Q>, _US<R>, _US<S>, _US<T>, _US<U>, _US<V>, _US<W>, _US<X>, _US<Y>, _US<Z>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>, _U<i, o, P>, _U<i, o, Q>, _U<i, o, R>, _U<i, o, S>, _U<i, o, T>, _U<i, o, U>, _U<i, o, V>, _U<i, o, W>, _U<i, o, X>, _U<i, o, Y>, _U<i, o, Z>, _U<i, o, $>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>, _US<P>, _US<Q>, _US<R>, _US<S>, _US<T>, _US<U>, _US<V>, _US<W>, _US<X>, _US<Y>, _US<Z>, _US<$>];
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, _>(targets: [_U<i, o, A>, _U<i, o, B>, _U<i, o, C>, _U<i, o, D>, _U<i, o, E>, _U<i, o, F>, _U<i, o, G>, _U<i, o, H>, _U<i, o, I>, _U<i, o, J>, _U<i, o, K>, _U<i, o, L>, _U<i, o, M>, _U<i, o, N>, _U<i, o, O>, _U<i, o, P>, _U<i, o, Q>, _U<i, o, R>, _U<i, o, S>, _U<i, o, T>, _U<i, o, U>, _U<i, o, V>, _U<i, o, W>, _U<i, o, X>, _U<i, o, Y>, _U<i, o, Z>, _U<i, o, $>, _U<i, o, _>]): [_US<A>, _US<B>, _US<C>, _US<D>, _US<E>, _US<F>, _US<G>, _US<H>, _US<I>, _US<J>, _US<K>, _US<L>, _US<M>, _US<N>, _US<O>, _US<P>, _US<Q>, _US<R>, _US<S>, _US<T>, _US<U>, _US<V>, _US<W>, _US<X>, _US<Y>, _US<Z>, _US<$>, _US<_>];
<T extends E_UpdaterMultiple_CfgExemplar<i, o>>(targets: T): {
[P in keyof T]: T[P] extends ((state: o, upValue: infer U) => i) ? _US<U> : never;
};
};
flow: any;
join: any;
promise: Promise<O>;
}
interface E_UpdaterPartial<I, O> {
updater: E_UpdaterMultiplePartial<I, O> & {
<U>(func?: (state: O, upValue: U, upPrev: U) => I): Equals<U, unknown> extends true ? Signal : Signal<U, Will<U>>;
};
}
interface E_UpdatePartial<I, O> {
update: {

@@ -53,4 +169,6 @@ (func?: (value: O) => I): void;

by: {
<T>(re: Re<Will<T>>, updater?: (state: O, reValue: T, rePrev: WillExpand<Will<T>>) => I): any;
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I): any;
once: {
<T>(re: Re<Will<T>>, updater?: (state: O, reValue: T, rePrev: WillExpand<Will<T>>) => I): any;
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I): any;

@@ -60,90 +178,107 @@ };

};
pre: {
<N>(func?: (value: N) => I): Value<N, O>;
untrack<N>(func?: (value: N) => I): Value<N, O>;
filter: {
(func?: (value: O) => any): Value<I, O>;
untrack(func?: (value: O) => any): Value<I, O>;
not: {
(func?: (value: O) => any): Value<I, O>;
untrack(func?: (value: O) => any): Value<I, O>;
};
}
interface E_FilterTrackedPartial<O, Ret, WillRet> {
filter: {
(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret;
(func?: (value: WillExpand<O>) => any): WillRet;
untrack(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret;
untrack(func?: (value: WillExpand<O>) => any): WillRet;
not: {
(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret;
(func?: (value: WillExpand<O>) => any): WillRet;
untrack(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret;
untrack(func?: (value: WillExpand<O>) => any): WillRet;
};
};
}
interface E_Signal<I, O> extends E_GetPartial<O>, E_SyncToPartial<O, Signal<I, O>>, E_UpdaterPartial<I, O> {
op<R>(func: () => R): R extends void ? Signal<I, O> : R;
interface E_FilterUnTrackedPartial<O, Ret, WillRet> {
filter: {
(func?: (value: O) => any): Signal<I, O>;
track(func?: (value: O) => any): Signal<I, O>;
(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret;
(func?: (value: WillExpand<O>) => any): WillRet;
track(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret;
track(func?: (value: WillExpand<O>) => any): WillRet;
not: {
(func?: (value: O) => any): Signal<I, O>;
track(func?: (value: O) => any): Signal<I, O>;
(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret;
(func?: (value: WillExpand<O>) => any): WillRet;
track(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret;
track(func?: (value: WillExpand<O>) => any): WillRet;
};
};
select: {
<R>(func?: (value: O) => R): Selector<R>;
untrack<R>(func?: (value: O) => R): Selector<R>;
multiple: {
(cfg: any[]): any;
untrack(cfg: any[]): any;
};
}
interface E_Readable<O, Ret> extends E_GetPartial<O>, E_PromisePartial<O>, E_SyncToPartial<O, Ret>, E_OpPartial<Ret>, E_SelectPartial<WillExpand<O>> {
}
interface E_Writtable<I, O, Ret> extends E_Readable<O, Ret>, E_UpdatePartial<I, WillExpand<O>>, E_UpdaterPartial<I, WillExpand<O>> {
}
interface E_Value<I, O> extends E_Writtable<I, O, Value<I, O>>, E_FilterTrackedPartial<O, Value<I, WillExtract<O>>, Value<I, WillEnsure<O>>> {
map: {
<R>(func: (value: WillExpand<O>) => R): Value<I, R>;
untrack<R>(func: (value: WillExpand<O>) => R): Value<I, R>;
to(): Value<I, void>;
to<R>(value: R): Value<I, R>;
};
pre: E_FilterTrackedPartial<I, Value<I, O>, Value<I, WillEnsure<O>>> & {
<N>(func?: (value: N, state: WillExpand<O>) => I): Value<N, O>;
untrack<N>(func?: (value: N, state: WillExpand<O>) => I): Value<N, O>;
};
wrap: {
<N, R>(pre: (value: N, state: WillExpand<O>) => I, map: (value: WillExpand<O>) => R): Value<N, R>;
untrack<N, R>(pre: (value: N, state: WillExpand<O>) => I, map: (value: WillExpand<O>) => R): Value<N, R>;
};
}
interface E_ValueReadonly<O> extends E_Readable<O, ValueReadonly<O>>, E_FilterTrackedPartial<O, ValueReadonly<WillExtract<O>>, ValueReadonly<WillEnsure<O>>> {
map: {
<R>(func: (value: O) => R): Signal<I, R>;
track<R>(func: (value: O) => R): Signal<I, R>;
<R>(func: (value: WillExpand<O>) => R): ValueReadonly<R>;
untrack<R>(func: (value: WillExpand<O>) => R): ValueReadonly<R>;
to(): ValueReadonly<void>;
to<R>(value: R): ValueReadonly<R>;
};
flow: any;
join: any;
promise: Promise<O>;
update: {
(func?: (value: O) => I): void;
track(func?: (value: O) => I): void;
by: {
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I): any;
once: {
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I): any;
};
};
}
interface E_Signal<I, O> extends E_Writtable<I, O, Signal<I, O>>, E_FilterUnTrackedPartial<O, Signal<I, WillExtract<O>>, Signal<I, WillEnsure<O>>> {
map: {
<R>(func: (value: WillExpand<O>) => R): Signal<I, R>;
track<R>(func: (value: WillExpand<O>) => R): Signal<I, R>;
to(): Signal<I, void>;
to<R>(value: R): Signal<I, R>;
};
pre: {
<N>(func?: (value: N) => I): Signal<N, O>;
track<N>(func?: (value: N) => I): Signal<N, O>;
filter: {
(func?: (value: O) => any): Signal<I, O>;
track(func?: (value: O) => any): Signal<I, O>;
not: {
(func?: (value: O) => any): Signal<I, O>;
track(func?: (value: O) => any): Signal<I, O>;
};
};
pre: E_FilterUnTrackedPartial<I, Signal<I, O>, Signal<I, WillEnsure<O>>> & {
<N>(func?: (value: N, state: WillExpand<O>) => I): Signal<N, O>;
track<N>(func?: (value: N, state: WillExpand<O>) => I): Signal<N, O>;
};
wrap: {
<N, R>(pre: (value: N, state: WillExpand<O>) => I, map: (value: WillExpand<O>) => R): Signal<N, R>;
track<N, R>(pre: (value: N, state: WillExpand<O>) => I, map: (value: WillExpand<O>) => R): Signal<N, R>;
};
as: {
value(): Value<I, O>;
};
}
declare type E_SetPartial<T> = Equals<T, void> extends true ? {
(): void;
set(): void;
} : {
(value: T): void;
set(value: T): void;
};
declare type E_ValPartial<I, O> = Equals<I, O> extends true ? {
val: O;
} : {
readonly val: O;
};
declare type Value<I = void, O = I> = E_SetPartial<I> & E_ValPartial<I, O> & E_Value<I, O>;
declare type Signal<I = void, O = I> = E_SetPartial<I> & E_ValPartial<I, O> & E_Signal<I, O>;
declare type Selector<O> = {
get: () => O;
val: O;
select: any;
};
interface E_SignalReadonly<O> extends E_Readable<O, SignalReadonly<O>>, E_FilterUnTrackedPartial<O, SignalReadonly<WillExtract<O>>, SignalReadonly<WillEnsure<O>>> {
map: {
<R>(func: (value: WillExpand<O>) => R): SignalReadonly<R>;
track<R>(func: (value: WillExpand<O>) => R): SignalReadonly<R>;
to(): SignalReadonly<void>;
to<R>(value: R): SignalReadonly<R>;
};
as: {
value(): ValueReadonly<O>;
};
}
declare type Value<I = void, O = I> = E_SetPartial<I> & E_ValPartial<I, WillExpand<O>> & E_Value<I, O>;
declare type Signal<I = void, O = I> = E_SetPartial<I> & E_ValPartial<I, WillExpand<O>> & E_Signal<I, O>;
declare type ValueReadonly<O> = E_ValReadonlyPartial<WillExpand<O>> & E_ValueReadonly<O>;
declare type SignalReadonly<O> = E_ValReadonlyPartial<WillExpand<O>> & E_SignalReadonly<O>;
declare type ValueEntry = {
<T>(initial?: T): Value<T>;
(): Value;
<T>(): Value<T, Will<T>>;
<T>(initial: T): Value<T>;
trigger: {
(initial?: any): any;
(): Value;
<T>(): Value<T, Will<T>>;
<T>(initial: T): Value<T>;
flag: {
(initial?: any): any;
(): Value<boolean>;
(initial: boolean): Value<boolean>;
invert: {
(initial?: any): any;
(): Value<boolean>;
(initial: boolean): Value<boolean>;
};

@@ -153,19 +288,88 @@ };

from: {
(get: () => any, set?: (v: any) => any): any;
<O>(get: Re<O>): ValueReadonly<O>;
<O, I>(get: Re<O>, set: ((value: I, state: O) => void) | ReWrit<I>): Value<I, O>;
};
combine: {
(cfg: any): any;
<A, r>(targets: [Re<A>], fn: (values: [A]) => r): ValueReadonly<r>;
<A, B, r>(targets: [Re<A>, Re<B>], fn: (values: [A, B]) => r): ValueReadonly<r>;
<A, B, C, r>(targets: [Re<A>, Re<B>, Re<C>], fn: (values: [A, B, C]) => r): ValueReadonly<r>;
<A, B, C, D, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>], fn: (values: [A, B, C, D]) => r): ValueReadonly<r>;
<A, B, C, D, E, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>], fn: (values: [A, B, C, D, E]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>], fn: (values: [A, B, C, D, E, F]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>], fn: (values: [A, B, C, D, E, F, G]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>], fn: (values: [A, B, C, D, E, F, G, H]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>], fn: (values: [A, B, C, D, E, F, G, H, I]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>], fn: (values: [A, B, C, D, E, F, G, H, I, J]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>, Re<W>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>, Re<W>, Re<X>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>, Re<W>, Re<X>, Re<Y>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>, Re<W>, Re<X>, Re<Y>, Re<Z>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>, Re<W>, Re<X>, Re<Y>, Re<Z>, Re<$>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $]) => r): ValueReadonly<r>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, _, r>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>, Re<W>, Re<X>, Re<Y>, Re<Z>, Re<$>, Re<_>], fn: (values: [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, _]) => r): ValueReadonly<r>;
<T extends Re_CfgExemplar, r>(targets: T, fn: (values: {
[P in keyof T]: T[P] extends {
get: () => infer R;
} ? R : T[P] extends (() => infer R) ? R : T[P];
}) => r): ValueReadonly<r>;
<A>(targets: [Re<A>]): ValueReadonly<[A]>;
<A, B>(targets: [Re<A>, Re<B>]): ValueReadonly<[A, B]>;
<A, B, C>(targets: [Re<A>, Re<B>, Re<C>]): ValueReadonly<[A, B, C]>;
<A, B, C, D>(targets: [Re<A>, Re<B>, Re<C>, Re<D>]): ValueReadonly<[A, B, C, D]>;
<A, B, C, D, E>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>]): ValueReadonly<[A, B, C, D, E]>;
<A, B, C, D, E, F>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>]): ValueReadonly<[A, B, C, D, E, F]>;
<A, B, C, D, E, F, G>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>]): ValueReadonly<[A, B, C, D, E, F, G]>;
<A, B, C, D, E, F, G, H>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>]): ValueReadonly<[A, B, C, D, E, F, G, H]>;
<A, B, C, D, E, F, G, H, I>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>]): ValueReadonly<[A, B, C, D, E, F, G, H, I]>;
<A, B, C, D, E, F, G, H, I, J>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J]>;
<A, B, C, D, E, F, G, H, I, J, K>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K]>;
<A, B, C, D, E, F, G, H, I, J, K, L>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>, Re<W>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>, Re<W>, Re<X>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>, Re<W>, Re<X>, Re<Y>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>, Re<W>, Re<X>, Re<Y>, Re<Z>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>, Re<W>, Re<X>, Re<Y>, Re<Z>, Re<$>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $]>;
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, _>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>, Re<W>, Re<X>, Re<Y>, Re<Z>, Re<$>, Re<_>]): ValueReadonly<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, _]>;
<T extends Re_CfgExemplar>(targets: T): ValueReadonly<{
[P in keyof T]: T[P] extends {
get: () => infer R;
} ? R : T[P] extends (() => infer R) ? R : T[P];
}>;
};
};
declare type SelectorEntry = {
(fn: () => any): any;
};
declare type SignalEntry = {
<T>(initial?: T): Signal<T>;
(): Signal;
<T>(): Signal<T, Will<T>>;
<T>(initial: T): Signal<T>;
trigger: {
(initial?: any): any;
(): Signal;
<T>(): Signal<T, Will<T>>;
<T>(initial: T): Signal<T>;
flag: {
(initial?: any): any;
(): Signal<boolean>;
(initial: boolean): Signal<boolean>;
invert: {
(initial?: any): any;
(): Signal<boolean>;
(initial: boolean): Signal<boolean>;
};

@@ -175,26 +379,6 @@ };

from: {
(get: () => any, set?: (v: any) => any): any;
<O>(get: Re<O>): SignalReadonly<O>;
<O, I>(get: Re<O>, set: ((value: I, state: O) => void) | ReWrit<I>): Signal<I, O>;
};
combine: {
(cfg: any): any;
};
};
declare type Local = {
inject(fn: () => void): void;
};
declare type Contextual = {
stop: () => void;
};
declare type Isolate = {
(fn: any): () => void;
unsafe: () => () => () => void;
};
declare type Transaction = {
<T>(fn: () => T): T;
unsafe: () => () => void;
};
declare type Untrack = {
<T>(fn: () => T): T;
unsafe: () => () => void;
};
declare type Observe = {

@@ -207,3 +391,3 @@ <T extends FC>(FunctionComponent: T): React.MemoExoticComponent<T>;

declare type UseScoped = {
<M>(target: (new (init?: any) => M) | ((init?: any) => M)): M;
<M>(target: (new () => M) | (() => M)): M;
};

@@ -216,10 +400,4 @@ declare type UseLocal = {

};
declare type UseValues_CfgExemplar = {
[key: string]: Re<any>;
};
declare type UseValues_ExpandCfgTargets<T> = {
[P in keyof T]: T[P] extends Re<infer Re_T> ? Re_T : T[P];
};
declare type UseValues = {
<T extends UseValues_CfgExemplar>(targets: T, deps?: any[]): UseValues_ExpandCfgTargets<T>;
<A>(targets: [Re<A>], deps?: any[]): [A];
<A, B>(targets: [Re<A>, Re<B>], deps?: any[]): [A, B];

@@ -252,3 +430,7 @@ <A, B, C>(targets: [Re<A>, Re<B>, Re<C>], deps?: any[]): [A, B, C];

<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, _>(targets: [Re<A>, Re<B>, Re<C>, Re<D>, Re<E>, Re<F>, Re<G>, Re<H>, Re<I>, Re<J>, Re<K>, Re<L>, Re<M>, Re<N>, Re<O>, Re<P>, Re<Q>, Re<R>, Re<S>, Re<T>, Re<U>, Re<V>, Re<W>, Re<X>, Re<Y>, Re<Z>, Re<$>, Re<_>], deps?: any[]): [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, _];
<A>(targets: [Re<A>], deps?: any[]): [A];
<T extends Re_CfgExemplar>(targets: T, deps?: any[]): {
[P in keyof T]: T[P] extends {
get: () => infer R;
} ? R : T[P] extends (() => infer R) ? R : T[P];
};
};

@@ -259,3 +441,3 @@ declare type UseJsx = {

declare type PoolEntry_BodyExemplar = {
(...args: any[]): Promise<any>;
(...args: never[]): Promise<unknown>;
};

@@ -266,5 +448,5 @@ declare type PoolEntry = {

declare type Pool<K> = K & {
count: any;
threads: any;
pending: any;
count: ValueReadonly<number>;
threads: ValueReadonly<(() => void)[]>;
pending: ValueReadonly<boolean>;
};
{
"name": "realar",
"version": "0.6.0-alpha.4",
"version": "0.6.0-alpha.5",
"description": "Advanced state manager for React",

@@ -91,3 +91,3 @@ "repository": {

},
"gitHead": "9110b23c712789f798f56d147535b84476f85774"
"gitHead": "8085e77339a4ec8b40cf8cda999a3bde0dc82fe7"
}

@@ -105,9 +105,37 @@ # Realar

- API
- [value](./docs/api.md)
- [signal](./docs/api.md)
- [selector](./docs/api.md)
- [on](./docs/api.md)
- [cache](./docs/api.md)
- [cycle](./docs/api.md)
- [sync](./docs/api.md)
- Declarative framework
- [value](./docs/api.md#value)
- [signal](./docs/api.md#signal)
- Imperative framework
- [on](./docs/api.md#on)
- [sync](./docs/api.md#sync)
- [cycle](./docs/api.md#cycle)
- Class decorators for TRFP
- [prop]()
- [cache](./docs/api.md#cache)
- Shared technique
- [shared]()
- [initial]()
- [free]()
- [mock]()
- [unmock]()
- Unsubscribe scopes control
- [isolate]()
- [un]()
- Additional api
- [local.inject]()
- [contextual]()
- [pool]()
- Track and transactions
- [transaction]()
- [untrack]()
- React bindings
- [observe]()
- [useValue]()
- [useValues]()
- [useLocal]()
- [useScoped]()
- [useShared]()
- [Scope]()
- [useJsx]()

@@ -114,0 +142,0 @@

import React, { Context, FC } from 'react';
import rb from 'reactive-box';
import { Contextual, Isolate, Local, Observe, PoolEntry, SelectorEntry, SignalEntry, Transaction, Untrack, UseJsx, UseLocal, UseScoped, UseValue, UseValues, ValueEntry } from './types';
import { Contextual, Isolate, Local, Observe, On, PoolEntry, SignalEntry, Sync, Transaction, Untrack, UseJsx, UseLocal, UseScoped, UseValue, UseValues, ValueEntry } from './types';

@@ -12,3 +12,2 @@ //

value,
selector,
signal,

@@ -180,3 +179,2 @@

const key_combine = 'combine';
const key_join = 'join';
const key_value = 'value';

@@ -189,2 +187,3 @@ const key_as = 'as';

const key_updater = key_update+'r';
const key_wrap = 'wrap';

@@ -302,26 +301,8 @@

const make_join_entity = (fn_get, join_cfg, is_signal?, set?, is_untrack?) => {
const fns = join_cfg.map(is_signal
? (fn) => fn[key_get] || fn
: (fn) => sel(fn[key_get] || fn)[0]
);
const h = [
() => {
const ret = [fn_get()];
const finish = is_untrack && internal_untrack();
try { return ret.concat(fns.map(f => f())) }
finally { finish && finish() }
},
set && set.bind()
];
h[key_is_signal] = is_signal;
return fill_entity(h, set ? proto_entity_writtable : proto_entity_readable)
}
const make_trait_ent_pure_fn_untrack = (trait_fn) =>
(ctx, fn) => trait_fn(ctx, fn && ((a,b) => {
(ctx, fn) => trait_fn(ctx, fn && ((a,b,c) => {
const finish = internal_untrack();
try { return fn(a,b); }
try { return fn(a,b,c); }
finally { finish() }

@@ -443,3 +424,3 @@ }));

ctx[key_get],
(v) => ctx[key_set](fn(v))
(v) => ctx[key_set](fn(v, untrack(ctx[key_get])))
)

@@ -468,4 +449,10 @@ : ctx

const trait_ent_pre_filter_not_untrack = make_trait_ent_untrack(trait_ent_pre_filter_not);
const trait_ent_wrap = (ctx, fn_pre, fn_map) => (
trait_ent_map(trait_ent_pre(ctx, fn_pre), fn_map)
)
const trait_ent_wrap_untrack = (ctx, fn_pre, fn_map) => (
trait_ent_map_untrack(trait_ent_pre_untrack(ctx, fn_pre), fn_map)
)
const trait_ent_flow = (ctx, fn) => {
const trait_ent_flow = (ctx, fn, empty_val) => {
fn || (fn = pure_arrow_fn_returns_arg);

@@ -478,3 +465,3 @@ let started, prev;

finally { prev = v }
}, const_undef, is_signal && pure_arrow_fn_returns_undef);
}, empty_val, is_signal && pure_arrow_fn_returns_undef);
const h = [

@@ -490,3 +477,3 @@ () => ((started || (f[0](), (started = 1))), f[1]()),

const trait_ent_flow_untrack = make_trait_ent_pure_fn_untrack(trait_ent_flow);
const trait_ent_filter = (ctx, fn) => (
const trait_ent_filter = (ctx, fn, empty_val) => (
trait_ent_flow(ctx, fn

@@ -497,20 +484,16 @@ ? (fn[key_get] && (fn = fn[key_get]),

))
: (v) => v || internal_flow_stop
: (v) => v || internal_flow_stop,
empty_val
)
);
const trait_ent_filter_untrack = make_trait_ent_untrack(trait_ent_filter)
const trait_ent_filter_not = (ctx, fn) => (
const trait_ent_filter_not = (ctx, fn, empty_val) => (
trait_ent_filter(ctx, fn
? (fn[key_get] && (fn = fn[key_get]), (v) => !fn(v))
: pure_arrow_fn_returns_not_arg)
: pure_arrow_fn_returns_not_arg,
empty_val
)
);
const trait_ent_filter_not_untrack = make_trait_ent_untrack(trait_ent_filter_not)
const trait_ent_join = (ctx, cfg) => (
make_join_entity(ctx[key_get], cfg, ctx[key_handler][key_is_signal], ctx[key_set])
);
const trait_ent_join_untrack = (ctx, cfg) => (
make_join_entity(ctx[key_get], cfg, ctx[key_handler][key_is_signal], ctx[key_set], 1)
);
const trait_ent_as_value = (ctx) => (

@@ -575,3 +558,2 @@ value_from(ctx[key_get], ctx[key_set])

// .to
// .join (track|untrack)
// .as:readable.as:ns

@@ -616,8 +598,2 @@ // .as.value

);
obj_def_prop_trait_with_ns(
proto_entity_readable,
key_join,
trait_ent_join,
make_proto_for_trackable_ns(trait_ent_join, trait_ent_join_untrack),
);
obj_def_prop_with_ns(

@@ -701,2 +677,9 @@ proto_entity_readable,

);
obj_def_prop_trait_with_ns(
proto_entity_writtable,
key_wrap,
op_trait_if_not_signal(trait_ent_wrap, trait_ent_wrap_untrack),
make_proto_for_trackable_ns(trait_ent_wrap, trait_ent_wrap_untrack),
1
);

@@ -769,15 +752,9 @@ // writtable_leaf.reset.by:ns

const make_combine = (cfg, is_signal?) => {
const make_value_combine_handler = (cfg, fn) => {
const keys = obj_keys(cfg);
const fns = keys.map(is_signal
? (key) => get_getter_to_reactionable_or_custom(cfg[key])
: (key) => sel(get_getter_to_reactionable_or_custom(cfg[key]))[0]
);
const h = [
() => keys.reduce((ret, key, key_index) => (
(ret[key] = fns[key_index]()), ret
), obj_empty_from(cfg))
];
h[key_is_signal] = is_signal;
return fill_entity(h, proto_entity_readable);
const fns = keys.map((key) => sel(get_getter_to_reactionable_or_custom(cfg[key]))[0]);
const re = () => keys.reduce((ret, key, key_index) => (
(ret[key] = fns[key_index]()), ret
), obj_empty_from(cfg))
return [fn ? sel(() => fn(re()))[0] : re];
}

@@ -787,7 +764,2 @@

const selector: SelectorEntry = (fn) => (
fill_entity(sel(fn).slice(0, 1), proto_entity_readable)
)
const value: ValueEntry = ((initial) => (

@@ -800,8 +772,9 @@ fill_entity(box(initial), proto_entity_writtable_leaf, 1, initial)

const value_trigger_flag_invert = (initial) => make_trigger(!initial, 1);
const value_from = (get, set?) => (
(get = sel(get[key_get] || get).slice(0, 1),
set && ((set = set[key_set] || set), (get[1] = set.bind()))),
fill_entity(get, set ? proto_entity_writtable : proto_entity_readable)
);
const value_combine = (cfg) => make_combine(cfg);
const value_from = (get, set?) => {
const h = sel(get[key_get] || get).slice(0, 1);
if (set) h[1] = set[key_set] ? set[key_set].bind() : (v) => set(v, untrack(ctx[key_get]));
const ctx = fill_entity(h, set ? proto_entity_writtable : proto_entity_readable);
return ctx;
}
const value_combine = (cfg, fn?) => fill_entity(make_value_combine_handler(cfg, fn), proto_entity_readable);

@@ -824,9 +797,9 @@ value_trigger_flag[key_invert] = value_trigger_flag_invert;

const signal_trigger_flag_invert = (initial) => make_trigger(!initial, 1, 1);
const signal_from = (get, set?) => (
(get = [get[key_get] || get],
(get[key_is_signal] = 1),
set && ((set = set[key_set] || set), (get[1] = set.bind()))),
fill_entity(get, set ? proto_entity_writtable : proto_entity_readable)
);
const signal_combine = (cfg) => make_combine(cfg, 1);
const signal_from = (get, set?) => {
const h = [get[key_get] || get];
h[key_is_signal] = 1
if (set) h[1] = set[key_set] ? set[key_set].bind() : (v) => set(v, untrack(ctx[key_get]));
const ctx = fill_entity(h, set ? proto_entity_writtable : proto_entity_readable);
return ctx;
}

@@ -837,3 +810,2 @@ signal_trigger_flag[key_invert] = signal_trigger_flag_invert;

signal[key_from] = signal_from;
signal[key_combine] = signal_combine;

@@ -902,9 +874,9 @@

const on_once = (target, fn) => reactionable_subscribe(target, fn, 1);
const on = (target, fn) => reactionable_subscribe(target, fn);
const on: On = ((target, fn) => reactionable_subscribe(target, fn)) as any;
on[key_once] = on_once;
const sync = (target, fn) => reactionable_subscribe(target, fn, 0, 1);
const sync: Sync = (target, fn) => reactionable_subscribe(target, fn, 0, 1);
const cycle = (body) => {
const cycle = (body: () => void) => {
const iter = () => {

@@ -941,7 +913,3 @@ const stack = context_contextual_stop;

const inst = <M, K extends any[]>(
target: (new (...args: K) => M) | ((...args: K) => M),
args: K,
local_injects_available?: any
): [M, () => void, (() => void)[]] => {
const inst = (target, args, local_injects_available?) => {
let instance, unsub, local_injects;

@@ -955,4 +923,4 @@ const collect = internal_isolate();

target.prototype === const_undef
? (target as any)(...args)
: new (target as any)(...args);
? target(...args)
: new target(...args);
if (!local_injects_available && context_local_injects.length > 0) throw_local_inject_error();

@@ -968,3 +936,3 @@ } finally {

const shared = <M>(target: (new (init?: any) => M) | ((init?: any) => M)): M => {
const shared = <M>(target: (new (init: any) => M) | ((init: any) => M)): M => {
let instance = shareds.get(target);

@@ -989,3 +957,3 @@ if (!instance) {

const mock = <M>(target: (new (init?: any) => M) | ((init?: any) => M), mocked: M): M => (
const mock = <M>(target: (new (init: any) => M) | ((init: any) => M), mocked: M): M => (
shareds.set(target, mocked),

@@ -996,4 +964,4 @@ mocked

const unmock = (
target: (new (init?: any) => any) | ((init?: any) => any),
...targets: ((new (init?: any) => any) | ((init?: any) => any))[]
target: (new (init: any) => any) | ((init: any) => any),
...targets: ((new (init: any) => any) | ((init: any) => any))[]
) => (

@@ -1013,10 +981,10 @@ targets.concat(target).forEach(target => shareds.delete(target))

const prop = (_t: any, key: any, descriptor?: any): any => (
(_t = descriptor?.initializer), {
const prop = (_target: any, key: any, descriptor?: any): any => (
(_target = descriptor && descriptor.initializer), {
get() {
obj_def_box_prop(this, key, _t);
obj_def_box_prop(this, key, _target);
return this[key];
},
set(value: any) {
obj_def_box_prop(this, key, _t);
obj_def_box_prop(this, key, _target);
this[key] = value;

@@ -1027,3 +995,3 @@ },

const cache = (_proto: any, key: any, descriptor: any): any => ({
const cache = (_target: any, key: any, descriptor: any): any => ({
get() {

@@ -1153,3 +1121,3 @@ const [get] = sel(descriptor.get);

deps || (deps = []);
const h = useMemo(() => value.combine(targets), deps);
const h = useMemo(() => value_combine(targets), deps);
return useValue(h, [h]);

@@ -1170,8 +1138,8 @@ };

const threads = value([]);
const count = threads.select(t => t.length);
const pending = count.select(c => c > 0);
const count = trait_ent_select(threads, t => t.length);
const pending = trait_ent_select(count, c => c > 0);
function run(this: any) {
const stop = () => threads.update(t => t.filter(ctx => ctx !== stop));
threads.update(t => t.concat(stop as any));
const stop = () => trait_ent_update(threads, t => t.filter(ctx => ctx !== stop));
trait_ent_update(threads, t => t.concat(stop as any));

@@ -1178,0 +1146,0 @@ const stack = context_contextual_stop;

import { FC } from 'react';
//
// Exports
//
export {
ValueEntry,
SignalEntry,
SelectorEntry,

@@ -18,2 +21,5 @@ Local,

On,
Sync,
Transaction,

@@ -38,61 +44,171 @@ Untrack,

type Re<T> = { get: () => T } | (() => T);
type ReWrit<T> = { set: (value: T) => void } | ((value: T) => void);
type Re_CfgExemplar = {
[key: string]: Re<any>
}
type Will<T> = T | undefined;
type WillExpand<T> = ((p: T) => 0) extends ((p: Will<T>) => 0) ? [T] extends [Will<infer P>] ? P | undefined : T : T;
type WillExtract<T> = ((p: T) => 0) extends ((p: Will<T>) => 0) ? [T] extends [Will<infer P>] ? P : T : T;
type WillEnsure<T> = ((p: T) => 0) extends ((p: Will<T>) => 0) ? [T] extends [Will<infer P>] ? Will<P> : Will<T> : Will<T>;
//
// Realar external api typings
//
type On = {
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): void
<T>(target: Re<T>, fn: (value: T, prev: T) => void): void
}
type Sync = {
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): void
<T>(target: Re<T>, fn: (value: T, prev: T) => void): void
}
type Local = {
inject(fn: () => void): void;
}
type Contextual = {
stop: () => void;
}
type Isolate = {
(fn): () => void;
unsafe: () => () => () => void;
}
type Transaction = {
<T>(fn: () => T): T;
unsafe: () => () => void;
}
type Untrack = {
<T>(fn: () => T): T;
unsafe: () => () => void;
}
//
// Entity types
//
interface E_UpdaterPartial<I, O> {
updater: {
<U>(func?: (state: O, upValue: U, upPrev: U) => I): Equals<U, unknown> extends true ? Signal : Signal<U>
value<U>(func?: (state: O, upValue: U, upPrev: U) => I): Equals<U, unknown> extends true ? Value : Value<U>
}
type E_SetPartial<T> = Equals<T, void> extends true
? { (): void; set(): void }
: { (value: T): void; set(value: T): void }
type E_ValReadonlyPartial<O> = { readonly val: O }
type E_ValPartial<I, O> = Equals<I, O> extends true ? { val: O } : E_ValReadonlyPartial<O>
interface E_PromisePartial<O> {
promise: Promise<WillExtract<O>>
}
interface E_GetPartial<T> {
get: () => T;
interface E_GetPartial<O> {
get: () => O;
}
interface E_SyncToPartial<T, Ret> {
sync(func: (value: T, prev: T) => void): Ret
interface E_SyncToPartial<O, Ret> {
sync(func: (value: WillExtract<O>, prev: WillExpand<O>) => void): Ret
to: {
(func: (value: T, prev: T) => void): Ret
once(func: (value: T, prev: T) => void): Ret
(func: (value: WillExtract<O>, prev: WillExpand<O>) => void): Ret
once(func: (value: WillExtract<O>, prev: WillExpand<O>) => void): Ret
}
}
interface E_OpPartial<Ret> {
op<R>(func: () => R): R extends void ? Ret : R
}
type E_SelectMultiple_CfgExemplar<O> = {
[key: string]: (state: O) => void
}
type _S<O,T> = ((state: O) => T) | (() => T);
interface E_SelectMultiple_Func<o> {
<A>(targets: [_S<o,A>]): [ValueReadonly<A>];
<A,B>(targets: [_S<o,A>,_S<o,B>]): [ValueReadonly<A>,ValueReadonly<B>];
<A,B,C>(targets: [_S<o,A>,_S<o,B>,_S<o,C>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>];
<A,B,C,D>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>];
<A,B,C,D,E>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>];
<A,B,C,D,E,F>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>];
<A,B,C,D,E,F,G>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>];
<A,B,C,D,E,F,G,H>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>];
<A,B,C,D,E,F,G,H,I>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>];
<A,B,C,D,E,F,G,H,I,J>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>];
<A,B,C,D,E,F,G,H,I,J,K>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>];
<A,B,C,D,E,F,G,H,I,J,K,L>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>];
<A,B,C,D,E,F,G,H,I,J,K,L,M>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>,_S<o,P>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>,ValueReadonly<P>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>,_S<o,P>,_S<o,Q>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>,ValueReadonly<P>,ValueReadonly<Q>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>,_S<o,P>,_S<o,Q>,_S<o,R>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>,ValueReadonly<P>,ValueReadonly<Q>,ValueReadonly<R>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>,_S<o,P>,_S<o,Q>,_S<o,R>,_S<o,S>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>,ValueReadonly<P>,ValueReadonly<Q>,ValueReadonly<R>,ValueReadonly<S>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>,_S<o,P>,_S<o,Q>,_S<o,R>,_S<o,S>,_S<o,T>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>,ValueReadonly<P>,ValueReadonly<Q>,ValueReadonly<R>,ValueReadonly<S>,ValueReadonly<T>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>,_S<o,P>,_S<o,Q>,_S<o,R>,_S<o,S>,_S<o,T>,_S<o,U>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>,ValueReadonly<P>,ValueReadonly<Q>,ValueReadonly<R>,ValueReadonly<S>,ValueReadonly<T>,ValueReadonly<U>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>,_S<o,P>,_S<o,Q>,_S<o,R>,_S<o,S>,_S<o,T>,_S<o,U>,_S<o,V>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>,ValueReadonly<P>,ValueReadonly<Q>,ValueReadonly<R>,ValueReadonly<S>,ValueReadonly<T>,ValueReadonly<U>,ValueReadonly<V>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>,_S<o,P>,_S<o,Q>,_S<o,R>,_S<o,S>,_S<o,T>,_S<o,U>,_S<o,V>,_S<o,W>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>,ValueReadonly<P>,ValueReadonly<Q>,ValueReadonly<R>,ValueReadonly<S>,ValueReadonly<T>,ValueReadonly<U>,ValueReadonly<V>,ValueReadonly<W>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>,_S<o,P>,_S<o,Q>,_S<o,R>,_S<o,S>,_S<o,T>,_S<o,U>,_S<o,V>,_S<o,W>,_S<o,X>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>,ValueReadonly<P>,ValueReadonly<Q>,ValueReadonly<R>,ValueReadonly<S>,ValueReadonly<T>,ValueReadonly<U>,ValueReadonly<V>,ValueReadonly<W>,ValueReadonly<X>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>,_S<o,P>,_S<o,Q>,_S<o,R>,_S<o,S>,_S<o,T>,_S<o,U>,_S<o,V>,_S<o,W>,_S<o,X>,_S<o,Y>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>,ValueReadonly<P>,ValueReadonly<Q>,ValueReadonly<R>,ValueReadonly<S>,ValueReadonly<T>,ValueReadonly<U>,ValueReadonly<V>,ValueReadonly<W>,ValueReadonly<X>,ValueReadonly<Y>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>,_S<o,P>,_S<o,Q>,_S<o,R>,_S<o,S>,_S<o,T>,_S<o,U>,_S<o,V>,_S<o,W>,_S<o,X>,_S<o,Y>,_S<o,Z>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>,ValueReadonly<P>,ValueReadonly<Q>,ValueReadonly<R>,ValueReadonly<S>,ValueReadonly<T>,ValueReadonly<U>,ValueReadonly<V>,ValueReadonly<W>,ValueReadonly<X>,ValueReadonly<Y>,ValueReadonly<Z>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>,_S<o,P>,_S<o,Q>,_S<o,R>,_S<o,S>,_S<o,T>,_S<o,U>,_S<o,V>,_S<o,W>,_S<o,X>,_S<o,Y>,_S<o,Z>,_S<o,$>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>,ValueReadonly<P>,ValueReadonly<Q>,ValueReadonly<R>,ValueReadonly<S>,ValueReadonly<T>,ValueReadonly<U>,ValueReadonly<V>,ValueReadonly<W>,ValueReadonly<X>,ValueReadonly<Y>,ValueReadonly<Z>,ValueReadonly<$>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_>(targets: [_S<o,A>,_S<o,B>,_S<o,C>,_S<o,D>,_S<o,E>,_S<o,F>,_S<o,G>,_S<o,H>,_S<o,I>,_S<o,J>,_S<o,K>,_S<o,L>,_S<o,M>,_S<o,N>,_S<o,O>,_S<o,P>,_S<o,Q>,_S<o,R>,_S<o,S>,_S<o,T>,_S<o,U>,_S<o,V>,_S<o,W>,_S<o,X>,_S<o,Y>,_S<o,Z>,_S<o,$>,_S<o,_>]): [ValueReadonly<A>,ValueReadonly<B>,ValueReadonly<C>,ValueReadonly<D>,ValueReadonly<E>,ValueReadonly<F>,ValueReadonly<G>,ValueReadonly<H>,ValueReadonly<I>,ValueReadonly<J>,ValueReadonly<K>,ValueReadonly<L>,ValueReadonly<M>,ValueReadonly<N>,ValueReadonly<O>,ValueReadonly<P>,ValueReadonly<Q>,ValueReadonly<R>,ValueReadonly<S>,ValueReadonly<T>,ValueReadonly<U>,ValueReadonly<V>,ValueReadonly<W>,ValueReadonly<X>,ValueReadonly<Y>,ValueReadonly<Z>,ValueReadonly<$>,ValueReadonly<_>];
interface E_Value<I, O> extends
E_GetPartial<O>,
E_SyncToPartial<O, Value<I, O>>,
E_UpdaterPartial<I, O> {
<T extends E_SelectMultiple_CfgExemplar<o>>(targets: T): {
[P in keyof T]: T[P] extends ((state: o) => infer U) ? ValueReadonly<U> : never
}
}
op<R>(func: () => R): R extends void ? Value<I, O> : R
filter: {
(func?: (value: O) => any): Value<I, O> // tracked by default
untrack(func?: (value: O) => any): Value<I, O>
not: {
(func?: (value: O) => any): Value<I, O> // tracked by default
untrack(func?: (value: O) => any): Value<I, O>
}
}
interface E_SelectPartial<O> {
select: {
<R>(func?: (value: O) => R): Selector<R> // tracked by default
untrack<R>(func?: (value: O) => R): Selector<R>
multiple: {
(cfg: any[]): any // TODO: .select.multiple typings
untrack(cfg: any[]): any
<R>(func?: (value: O) => R): ValueReadonly<R> // tracked by default
untrack<R>(func?: (value: O) => R): ValueReadonly<R>
multiple: E_SelectMultiple_Func<O> & {
untrack: E_SelectMultiple_Func<O>
}
}
map: {
<R>(func: (value: O) => R): Value<I, R> // tracked by default
untrack<R>(func: (value: O) => R): Value<I, R>
}
}
flow: any // TODO: .flow typings
join: any // TODO: .join typings
type E_UpdaterMultiple_CfgExemplar<I, O> = {
[key: string]: (state: O, upValue: never, upPrev: never) => I
}
type _US<T> = Equals<T, unknown> extends true ? Signal : Signal<T, Will<T>>
type _U<I,O,U> = ((state: O, upValue: U, upPrev: U) => I) | (() => I);
promise: Promise<O>
interface E_UpdaterMultiplePartial<i, o> {
multiple: {
<A>(targets: [_U<i,o,A>]): [_US<A>];
<A,B>(targets: [_U<i,o,A>,_U<i,o,B>]): [_US<A>,_US<B>];
<A,B,C>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>]): [_US<A>,_US<B>,_US<C>];
<A,B,C,D>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>]): [_US<A>,_US<B>,_US<C>,_US<D>];
<A,B,C,D,E>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>];
<A,B,C,D,E,F>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>];
<A,B,C,D,E,F,G>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>];
<A,B,C,D,E,F,G,H>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>];
<A,B,C,D,E,F,G,H,I>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>];
<A,B,C,D,E,F,G,H,I,J>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>];
<A,B,C,D,E,F,G,H,I,J,K>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>];
<A,B,C,D,E,F,G,H,I,J,K,L>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>];
<A,B,C,D,E,F,G,H,I,J,K,L,M>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>,_U<i,o,P>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>,_US<P>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>,_U<i,o,P>,_U<i,o,Q>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>,_US<P>,_US<Q>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>,_U<i,o,P>,_U<i,o,Q>,_U<i,o,R>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>,_US<P>,_US<Q>,_US<R>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>,_U<i,o,P>,_U<i,o,Q>,_U<i,o,R>,_U<i,o,S>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>,_US<P>,_US<Q>,_US<R>,_US<S>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>,_U<i,o,P>,_U<i,o,Q>,_U<i,o,R>,_U<i,o,S>,_U<i,o,T>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>,_US<P>,_US<Q>,_US<R>,_US<S>,_US<T>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>,_U<i,o,P>,_U<i,o,Q>,_U<i,o,R>,_U<i,o,S>,_U<i,o,T>,_U<i,o,U>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>,_US<P>,_US<Q>,_US<R>,_US<S>,_US<T>,_US<U>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>,_U<i,o,P>,_U<i,o,Q>,_U<i,o,R>,_U<i,o,S>,_U<i,o,T>,_U<i,o,U>,_U<i,o,V>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>,_US<P>,_US<Q>,_US<R>,_US<S>,_US<T>,_US<U>,_US<V>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>,_U<i,o,P>,_U<i,o,Q>,_U<i,o,R>,_U<i,o,S>,_U<i,o,T>,_U<i,o,U>,_U<i,o,V>,_U<i,o,W>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>,_US<P>,_US<Q>,_US<R>,_US<S>,_US<T>,_US<U>,_US<V>,_US<W>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>,_U<i,o,P>,_U<i,o,Q>,_U<i,o,R>,_U<i,o,S>,_U<i,o,T>,_U<i,o,U>,_U<i,o,V>,_U<i,o,W>,_U<i,o,X>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>,_US<P>,_US<Q>,_US<R>,_US<S>,_US<T>,_US<U>,_US<V>,_US<W>,_US<X>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>,_U<i,o,P>,_U<i,o,Q>,_U<i,o,R>,_U<i,o,S>,_U<i,o,T>,_U<i,o,U>,_U<i,o,V>,_U<i,o,W>,_U<i,o,X>,_U<i,o,Y>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>,_US<P>,_US<Q>,_US<R>,_US<S>,_US<T>,_US<U>,_US<V>,_US<W>,_US<X>,_US<Y>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>,_U<i,o,P>,_U<i,o,Q>,_U<i,o,R>,_U<i,o,S>,_U<i,o,T>,_U<i,o,U>,_U<i,o,V>,_U<i,o,W>,_U<i,o,X>,_U<i,o,Y>,_U<i,o,Z>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>,_US<P>,_US<Q>,_US<R>,_US<S>,_US<T>,_US<U>,_US<V>,_US<W>,_US<X>,_US<Y>,_US<Z>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>,_U<i,o,P>,_U<i,o,Q>,_U<i,o,R>,_U<i,o,S>,_U<i,o,T>,_U<i,o,U>,_U<i,o,V>,_U<i,o,W>,_U<i,o,X>,_U<i,o,Y>,_U<i,o,Z>,_U<i,o,$>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>,_US<P>,_US<Q>,_US<R>,_US<S>,_US<T>,_US<U>,_US<V>,_US<W>,_US<X>,_US<Y>,_US<Z>,_US<$>];
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_>(targets: [_U<i,o,A>,_U<i,o,B>,_U<i,o,C>,_U<i,o,D>,_U<i,o,E>,_U<i,o,F>,_U<i,o,G>,_U<i,o,H>,_U<i,o,I>,_U<i,o,J>,_U<i,o,K>,_U<i,o,L>,_U<i,o,M>,_U<i,o,N>,_U<i,o,O>,_U<i,o,P>,_U<i,o,Q>,_U<i,o,R>,_U<i,o,S>,_U<i,o,T>,_U<i,o,U>,_U<i,o,V>,_U<i,o,W>,_U<i,o,X>,_U<i,o,Y>,_U<i,o,Z>,_U<i,o,$>,_U<i,o,_>]): [_US<A>,_US<B>,_US<C>,_US<D>,_US<E>,_US<F>,_US<G>,_US<H>,_US<I>,_US<J>,_US<K>,_US<L>,_US<M>,_US<N>,_US<O>,_US<P>,_US<Q>,_US<R>,_US<S>,_US<T>,_US<U>,_US<V>,_US<W>,_US<X>,_US<Y>,_US<Z>,_US<$>,_US<_>];
// writtable section
<T extends E_UpdaterMultiple_CfgExemplar<i,o>>(targets: T): {
[P in keyof T]: T[P] extends ((state: o, upValue: infer U) => i) ? _US<U> : never
}
}
}
interface E_UpdaterPartial<I, O> {
updater: E_UpdaterMultiplePartial<I, O> & {
<U>(func?: (state: O, upValue: U, upPrev: U) => I): Equals<U, unknown> extends true ? Signal : Signal<U, Will<U>>
}
}
interface E_UpdatePartial<I, O> {
update: {

@@ -102,4 +218,6 @@ (func?: (value: O) => I): void // untracked by default

by: {
<T>(re: Re<Will<T>>, updater?: (state: O, reValue: T, rePrev: WillExpand<Will<T>>) => I)
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I)
once: {
<T>(re: Re<Will<T>>, updater?: (state: O, reValue: T, rePrev: WillExpand<Will<T>>) => I)
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I)

@@ -109,95 +227,130 @@ }

}
pre: {
<N>(func?: (value: N) => I): Value<N, O> // tracked by default
untrack<N>(func?: (value: N) => I): Value<N, O>
filter: {
(func?: (value: O) => any): Value<I, O> // tracked by default
untrack(func?: (value: O) => any): Value<I, O>
not: { // tracked by default
(func?: (value: O) => any): Value<I, O>
untrack(func?: (value: O) => any): Value<I, O>
}
}
interface E_FilterTrackedPartial<O, Ret, WillRet> {
filter: {
(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret // tracked by default
(func?: (value: WillExpand<O>) => any): WillRet
untrack(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret
untrack(func?: (value: WillExpand<O>) => any): WillRet
not: {
(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret // tracked by default
(func?: (value: WillExpand<O>) => any): WillRet
untrack(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret
untrack(func?: (value: WillExpand<O>) => any): WillRet
}
}
}
interface E_FilterUnTrackedPartial<O, Ret, WillRet> {
filter: {
(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret // untracked by default
(func?: (value: WillExpand<O>) => any): WillRet
track(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret
track(func?: (value: WillExpand<O>) => any): WillRet
not: {
(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret // untracked by default
(func?: (value: WillExpand<O>) => any): WillRet
track(func: (value: WillExpand<O>) => any, emptyValue: WillExtract<O>): Ret
track(func?: (value: WillExpand<O>) => any): WillRet
}
}
}
interface E_Signal<I, O> extends
interface E_Readable<O, Ret> extends
E_GetPartial<O>,
E_SyncToPartial<O, Signal<I, O>>,
E_UpdaterPartial<I, O> {
E_PromisePartial<O>,
E_SyncToPartial<O, Ret>,
E_OpPartial<Ret>,
E_SelectPartial<WillExpand<O>> {}
// readable section
interface E_Writtable<I, O, Ret> extends
E_Readable<O, Ret>,
E_UpdatePartial<I, WillExpand<O>>,
E_UpdaterPartial<I, WillExpand<O>> {}
op<R>(func: () => R): R extends void ? Signal<I, O> : R
filter: {
(func?: (value: O) => any): Signal<I, O> // untracked by default
track(func?: (value: O) => any): Signal<I, O>
not: {
(func?: (value: O) => any): Signal<I, O> // untracked by default
track(func?: (value: O) => any): Signal<I, O>
}
interface E_Value<I, O> extends
E_Writtable<I, O, Value<I, O>>,
E_FilterTrackedPartial<O, Value<I, WillExtract<O>>, Value<I, WillEnsure<O>>> {
map: {
<R>(func: (value: WillExpand<O>) => R): Value<I, R> // tracked by default
untrack<R>(func: (value: WillExpand<O>) => R): Value<I, R>
to(): Value<I, void>
to<R>(value: R): Value<I, R>
}
select: {
<R>(func?: (value: O) => R): Selector<R> // tracked by default
untrack<R>(func?: (value: O) => R): Selector<R>
multiple: {
(cfg: any[]): any // TODO: .select.multiple typings
untrack(cfg: any[]): any
}
pre: E_FilterTrackedPartial<I, Value<I, O>, Value<I, WillEnsure<O>>> & {
<N>(func?: (value: N, state: WillExpand<O>) => I): Value<N, O> // tracked by default
untrack<N>(func?: (value: N, state: WillExpand<O>) => I): Value<N, O>
}
wrap: {
<N, R>(pre: (value: N, state: WillExpand<O>) => I, map: (value: WillExpand<O>) => R): Value<N, R> // tracked by default
untrack<N, R>(pre: (value: N, state: WillExpand<O>) => I, map: (value: WillExpand<O>) => R): Value<N, R>
}
}
interface E_ValueReadonly<O> extends
E_Readable<O, ValueReadonly<O>>,
E_FilterTrackedPartial<O, ValueReadonly<WillExtract<O>>, ValueReadonly<WillEnsure<O>>> {
map: {
<R>(func: (value: O) => R): Signal<I, R> // untracked by default
track<R>(func: (value: O) => R): Signal<I, R>
<R>(func: (value: WillExpand<O>) => R): ValueReadonly<R> // tracked by default
untrack<R>(func: (value: WillExpand<O>) => R): ValueReadonly<R>
to(): ValueReadonly<void>
to<R>(value: R): ValueReadonly<R>
}
}
flow: any // TODO: .flow typings
join: any // TODO: .join typings
promise: Promise<O>
interface E_Signal<I, O> extends
E_Writtable<I, O, Signal<I, O>>,
E_FilterUnTrackedPartial<O, Signal<I, WillExtract<O>>, Signal<I, WillEnsure<O>>> {
// writtable section
update: {
(func?: (value: O) => I): void // untracked by default
track(func?: (value: O) => I): void
by: {
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I)
once: {
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I)
}
}
map: {
<R>(func: (value: WillExpand<O>) => R): Signal<I, R> // untracked by default
track<R>(func: (value: WillExpand<O>) => R): Signal<I, R>
to(): Signal<I, void>
to<R>(value: R): Signal<I, R>
}
pre: {
<N>(func?: (value: N) => I): Signal<N, O> // untracked by default
track<N>(func?: (value: N) => I): Signal<N, O>
filter: {
(func?: (value: O) => any): Signal<I, O> // untracked by default
track(func?: (value: O) => any): Signal<I, O>
not: { // untracked by default
(func?: (value: O) => any): Signal<I, O>
track(func?: (value: O) => any): Signal<I, O>
}
}
pre: E_FilterUnTrackedPartial<I, Signal<I, O>, Signal<I, WillEnsure<O>>> & {
<N>(func?: (value: N, state: WillExpand<O>) => I): Signal<N, O> // untracked by default
track<N>(func?: (value: N, state: WillExpand<O>) => I): Signal<N, O>
}
wrap: {
<N, R>(pre: (value: N, state: WillExpand<O>) => I, map: (value: WillExpand<O>) => R): Signal<N, R> // untracked by default
track<N, R>(pre: (value: N, state: WillExpand<O>) => I, map: (value: WillExpand<O>) => R): Signal<N, R>
}
as: {
value(): Value<I, O>
}
}
type E_SetPartial<T> = Equals<T, void> extends true
? { (): void; set(): void }
: { (value: T): void; set(value: T): void }
interface E_SignalReadonly<O> extends
E_Readable<O, SignalReadonly<O>>,
E_FilterUnTrackedPartial<O, SignalReadonly<WillExtract<O>>, SignalReadonly<WillEnsure<O>>> {
type E_ValPartial<I, O> = Equals<I, O> extends true ? { val: O } : { readonly val: O }
map: {
<R>(func: (value: WillExpand<O>) => R): SignalReadonly<R> // untracked by default
track<R>(func: (value: WillExpand<O>) => R): SignalReadonly<R>
to(): SignalReadonly<void>
to<R>(value: R): SignalReadonly<R>
}
as: {
value(): ValueReadonly<O>
}
}
type Value<I = void, O = I> = E_SetPartial<I> & E_ValPartial<I, O> & E_Value<I, O>
type Signal<I = void, O = I> = E_SetPartial<I> & E_ValPartial<I, O> & E_Signal<I, O>
type Value<I = void, O = I> = E_SetPartial<I> & E_ValPartial<I, WillExpand<O>> & E_Value<I, O>
type Signal<I = void, O = I> = E_SetPartial<I> & E_ValPartial<I, WillExpand<O>> & E_Signal<I, O>
type Selector<O> = {
get: () => O;
val: O;
select: any;
}
type ValueReadonly<O> = E_ValReadonlyPartial<WillExpand<O>> & E_ValueReadonly<O>
type SignalReadonly<O> = E_ValReadonlyPartial<WillExpand<O>> & E_SignalReadonly<O>

@@ -211,30 +364,125 @@

type ValueEntry = {
<T>(initial?: T): Value<T>;
(): Value;
<T>(): Value<T, Will<T>>;
<T>(initial: T): Value<T>;
trigger: {
(initial?: any): any;
(): Value;
<T>(): Value<T, Will<T>>;
<T>(initial: T): Value<T>;
flag: {
(initial?: any): any;
invert: { (initial?: any): any }
(): Value<boolean>;
(initial: boolean): Value<boolean>;
invert: {
(): Value<boolean>;
(initial: boolean): Value<boolean>;
}
}
};
from: { (get: () => any, set?: (v) => any): any },
combine: { (cfg: any): any }
}
type SelectorEntry = {
(fn: () => any): any;
from: {
<O>(get: Re<O>): ValueReadonly<O>
<O, I>(get: Re<O>, set: ((value: I, state: O) => void) | ReWrit<I>): Value<I, O>
}
combine: {
<A,r>(targets: [Re<A>], fn: (values: [A]) => r): ValueReadonly<r>;
<A,B,r>(targets: [Re<A>,Re<B>], fn: (values: [A,B]) => r): ValueReadonly<r>;
<A,B,C,r>(targets: [Re<A>,Re<B>,Re<C>], fn: (values: [A,B,C]) => r): ValueReadonly<r>;
<A,B,C,D,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>], fn: (values: [A,B,C,D]) => r): ValueReadonly<r>;
<A,B,C,D,E,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>], fn: (values: [A,B,C,D,E]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>], fn: (values: [A,B,C,D,E,F]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>], fn: (values: [A,B,C,D,E,F,G]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>], fn: (values: [A,B,C,D,E,F,G,H]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>], fn: (values: [A,B,C,D,E,F,G,H,I]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>], fn: (values: [A,B,C,D,E,F,G,H,I,J]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>,Re<W>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>,Re<W>,Re<X>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>,Re<W>,Re<X>,Re<Y>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>,Re<W>,Re<X>,Re<Y>,Re<Z>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>,Re<W>,Re<X>,Re<Y>,Re<Z>,Re<$>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$]) => r): ValueReadonly<r>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,r>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>,Re<W>,Re<X>,Re<Y>,Re<Z>,Re<$>,Re<_>], fn: (values: [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_]) => r): ValueReadonly<r>;
<T extends Re_CfgExemplar, r>(targets: T, fn: (values: {
[P in keyof T]: T[P] extends { get: () => infer R } ? R : T[P] extends (() => infer R) ? R : T[P]
}) => r): ValueReadonly<r>
<A>(targets: [Re<A>]): ValueReadonly<[A]>;
<A,B>(targets: [Re<A>,Re<B>]): ValueReadonly<[A,B]>;
<A,B,C>(targets: [Re<A>,Re<B>,Re<C>]): ValueReadonly<[A,B,C]>;
<A,B,C,D>(targets: [Re<A>,Re<B>,Re<C>,Re<D>]): ValueReadonly<[A,B,C,D]>;
<A,B,C,D,E>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>]): ValueReadonly<[A,B,C,D,E]>;
<A,B,C,D,E,F>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>]): ValueReadonly<[A,B,C,D,E,F]>;
<A,B,C,D,E,F,G>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>]): ValueReadonly<[A,B,C,D,E,F,G]>;
<A,B,C,D,E,F,G,H>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>]): ValueReadonly<[A,B,C,D,E,F,G,H]>;
<A,B,C,D,E,F,G,H,I>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>]): ValueReadonly<[A,B,C,D,E,F,G,H,I]>;
<A,B,C,D,E,F,G,H,I,J>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J]>;
<A,B,C,D,E,F,G,H,I,J,K>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K]>;
<A,B,C,D,E,F,G,H,I,J,K,L>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>,Re<W>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>,Re<W>,Re<X>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>,Re<W>,Re<X>,Re<Y>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>,Re<W>,Re<X>,Re<Y>,Re<Z>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>,Re<W>,Re<X>,Re<Y>,Re<Z>,Re<$>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$]>;
<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>,Re<W>,Re<X>,Re<Y>,Re<Z>,Re<$>,Re<_>]): ValueReadonly<[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_]>;
<T extends Re_CfgExemplar>(targets: T): ValueReadonly<{
[P in keyof T]: T[P] extends { get: () => infer R } ? R : T[P] extends (() => infer R) ? R : T[P]
}>
}
}
type SignalEntry = {
<T>(initial?: T): Signal<T>;
(): Signal;
<T>(): Signal<T, Will<T>>;
<T>(initial: T): Signal<T>;
trigger: {
(initial?: any): any;
(): Signal;
<T>(): Signal<T, Will<T>>;
<T>(initial: T): Signal<T>;
flag: {
(initial?: any): any;
invert: { (initial?: any): any }
(): Signal<boolean>;
(initial: boolean): Signal<boolean>;
invert: {
(): Signal<boolean>;
(initial: boolean): Signal<boolean>;
}
}
};
from: { (get: () => any, set?: (v) => any): any },
combine: { (cfg: any): any }
from: {
<O>(get: Re<O>): SignalReadonly<O>
<O, I>(get: Re<O>, set: ((value: I, state: O) => void) | ReWrit<I>): Signal<I, O>
}
};

@@ -245,26 +493,2 @@

//
// Realar external api typings
//
type Local = {
inject(fn: () => void): void;
}
type Contextual = {
stop: () => void;
}
type Isolate = {
(fn): () => void;
unsafe: () => () => () => void;
}
type Transaction = {
<T>(fn: () => T): T;
unsafe: () => () => void;
}
type Untrack = {
<T>(fn: () => T): T;
unsafe: () => () => void;
}
//
// Realar external api typings for React

@@ -280,3 +504,3 @@ //

type UseScoped = {
<M>(target: (new (init?: any) => M) | ((init?: any) => M)): M;
<M>(target: (new () => M) | (() => M)): M;
}

@@ -293,10 +517,4 @@ type UseLocal = {

type UseValues_CfgExemplar = {
[key: string]: Re<any>
}
type UseValues_ExpandCfgTargets<T> = {
[P in keyof T]: T[P] extends Re<infer Re_T> ? Re_T : T[P]
}
type UseValues = {
<T extends UseValues_CfgExemplar>(targets: T, deps?: any[]): UseValues_ExpandCfgTargets<T>
<A>(targets: [Re<A>], deps?: any[]): [A];
<A,B>(targets: [Re<A>,Re<B>], deps?: any[]): [A,B];

@@ -329,3 +547,6 @@ <A,B,C>(targets: [Re<A>,Re<B>,Re<C>], deps?: any[]): [A,B,C];

<A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_>(targets: [Re<A>,Re<B>,Re<C>,Re<D>,Re<E>,Re<F>,Re<G>,Re<H>,Re<I>,Re<J>,Re<K>,Re<L>,Re<M>,Re<N>,Re<O>,Re<P>,Re<Q>,Re<R>,Re<S>,Re<T>,Re<U>,Re<V>,Re<W>,Re<X>,Re<Y>,Re<Z>,Re<$>,Re<_>], deps?: any[]): [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_];
<A>(targets: [Re<A>], deps?: any[]): [A];
<T extends Re_CfgExemplar>(targets: T, deps?: any[]): {
[P in keyof T]: T[P] extends { get: () => infer R } ? R : T[P] extends (() => infer R) ? R : T[P]
}
}

@@ -343,3 +564,3 @@

type PoolEntry_BodyExemplar = {
(...args: any[]): Promise<any>;
(...args: never[]): Promise<unknown>;
}

@@ -351,5 +572,5 @@ type PoolEntry = {

type Pool<K> = K & {
count: any;
threads: any;
pending: any;
count: ValueReadonly<number>;
threads: ValueReadonly<(() => void)[]>;
pending: ValueReadonly<boolean>;
};

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc