@legendapp/state 3.0.0-alpha.1 → 3.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.DS_Store +0 -0
- package/CHANGELOG.md +1 -831
- package/LICENSE +1 -21
- package/README.md +1 -141
- package/as/arrayAsRecord.d.mts +5 -0
- package/as/arrayAsRecord.d.ts +5 -0
- package/as/arrayAsRecord.js +28 -0
- package/as/arrayAsRecord.mjs +26 -0
- package/as/arrayAsSet.d.mts +5 -0
- package/as/arrayAsSet.d.ts +5 -0
- package/as/arrayAsSet.js +13 -0
- package/as/arrayAsSet.mjs +11 -0
- package/as/arrayAsString.d.mts +5 -0
- package/as/arrayAsString.d.ts +5 -0
- package/as/arrayAsString.js +13 -0
- package/as/arrayAsString.mjs +11 -0
- package/as/numberAsString.d.mts +5 -0
- package/as/numberAsString.d.ts +5 -0
- package/as/numberAsString.js +13 -0
- package/as/numberAsString.mjs +11 -0
- package/as/recordAsArray.d.mts +5 -0
- package/as/recordAsArray.d.ts +5 -0
- package/as/recordAsArray.js +25 -0
- package/as/recordAsArray.mjs +23 -0
- package/as/recordAsString.d.mts +5 -0
- package/as/recordAsString.d.ts +5 -0
- package/as/recordAsString.js +13 -0
- package/as/recordAsString.mjs +11 -0
- package/as/setAsArray.d.mts +5 -0
- package/as/setAsArray.d.ts +5 -0
- package/as/setAsArray.js +13 -0
- package/as/setAsArray.mjs +11 -0
- package/as/setAsString.d.mts +5 -0
- package/as/setAsString.d.ts +5 -0
- package/as/setAsString.js +13 -0
- package/as/setAsString.mjs +11 -0
- package/as/stringAsArray.d.mts +5 -0
- package/as/stringAsArray.d.ts +5 -0
- package/as/stringAsArray.js +13 -0
- package/as/stringAsArray.mjs +11 -0
- package/as/stringAsNumber.d.mts +5 -0
- package/as/stringAsNumber.d.ts +5 -0
- package/as/stringAsNumber.js +16 -0
- package/as/stringAsNumber.mjs +14 -0
- package/as/stringAsRecord.d.mts +5 -0
- package/as/stringAsRecord.d.ts +5 -0
- package/as/stringAsRecord.js +15 -0
- package/as/stringAsRecord.mjs +13 -0
- package/as/stringAsSet.d.mts +5 -0
- package/as/stringAsSet.d.ts +5 -0
- package/as/stringAsSet.js +13 -0
- package/as/stringAsSet.mjs +11 -0
- package/babel.d.mts +21 -0
- package/babel.d.ts +21 -2
- package/babel.js +57 -53
- package/babel.mjs +65 -0
- package/config/enable$GetSet.js +13 -14
- package/config/enable$GetSet.mjs +13 -14
- package/config/enableReactComponents.d.mts +9 -0
- package/config/enableReactComponents.d.ts +4 -2
- package/config/enableReactComponents.js +13 -10
- package/config/enableReactComponents.mjs +13 -10
- package/config/enableReactNativeComponents.d.mts +22 -0
- package/config/enableReactNativeComponents.d.ts +6 -4
- package/config/enableReactNativeComponents.js +43 -47
- package/config/enableReactNativeComponents.mjs +43 -47
- package/config/enableReactTracking.d.mts +7 -0
- package/config/enableReactTracking.d.ts +3 -2
- package/config/enableReactTracking.js +33 -38
- package/config/enableReactTracking.mjs +33 -38
- package/config/enableReactUse.d.mts +10 -0
- package/config/enableReactUse.d.ts +4 -1
- package/config/enableReactUse.js +15 -14
- package/config/enableReactUse.mjs +15 -14
- package/config/{enable$GetSet.d.ts → enable_GetSet.d.mts} +4 -2
- package/config/enable_GetSet.d.ts +10 -0
- package/config/enable_PeekAssign.d.mts +10 -0
- package/config/enable_PeekAssign.d.ts +4 -2
- package/config/enable_PeekAssign.js +13 -14
- package/config/enable_PeekAssign.mjs +13 -14
- package/helpers/pageHash.d.mts +9 -0
- package/helpers/pageHash.d.ts +2 -0
- package/helpers/pageHash.js +25 -30
- package/helpers/pageHash.mjs +25 -30
- package/helpers/pageHashParams.d.mts +9 -0
- package/helpers/pageHashParams.d.ts +2 -0
- package/helpers/pageHashParams.js +34 -37
- package/helpers/pageHashParams.mjs +34 -37
- package/helpers/time.d.mts +6 -0
- package/helpers/time.d.ts +6 -3
- package/helpers/time.js +17 -17
- package/helpers/time.mjs +17 -17
- package/helpers/trackHistory.d.mts +6 -0
- package/helpers/trackHistory.d.ts +4 -2
- package/helpers/trackHistory.js +13 -16
- package/helpers/trackHistory.mjs +13 -16
- package/helpers/undoRedo.d.mts +37 -0
- package/helpers/undoRedo.d.ts +5 -3
- package/helpers/undoRedo.js +59 -94
- package/helpers/undoRedo.mjs +59 -94
- package/index.d.mts +404 -0
- package/index.d.ts +371 -28
- package/index.js +2015 -2166
- package/index.mjs +2015 -2166
- package/package.json +254 -195
- package/persist-plugins/async-storage.d.mts +18 -0
- package/persist-plugins/async-storage.d.ts +6 -3
- package/persist-plugins/async-storage.js +79 -86
- package/persist-plugins/async-storage.mjs +79 -86
- package/persist-plugins/indexeddb.d.mts +29 -0
- package/persist-plugins/indexeddb.d.ts +6 -3
- package/persist-plugins/indexeddb.js +331 -352
- package/persist-plugins/indexeddb.mjs +331 -352
- package/persist-plugins/local-storage.d.mts +23 -0
- package/persist-plugins/local-storage.d.ts +8 -5
- package/persist-plugins/local-storage.js +74 -76
- package/persist-plugins/local-storage.mjs +74 -76
- package/persist-plugins/mmkv.d.mts +18 -0
- package/persist-plugins/mmkv.d.ts +6 -3
- package/persist-plugins/mmkv.js +82 -86
- package/persist-plugins/mmkv.mjs +82 -86
- package/react-hooks/createObservableHook.d.mts +5 -0
- package/react-hooks/createObservableHook.d.ts +4 -1
- package/react-hooks/createObservableHook.js +29 -30
- package/react-hooks/createObservableHook.mjs +25 -30
- package/react-hooks/useHover.d.mts +5 -0
- package/react-hooks/useHover.d.ts +5 -3
- package/react-hooks/useHover.js +29 -29
- package/react-hooks/useHover.mjs +29 -29
- package/react-hooks/useMeasure.d.mts +9 -0
- package/react-hooks/useMeasure.d.ts +5 -2
- package/react-hooks/useMeasure.js +30 -32
- package/react-hooks/useMeasure.mjs +30 -32
- package/react-hooks/useObservableNextRouter.d.mts +35 -0
- package/react-hooks/useObservableNextRouter.d.ts +9 -7
- package/react-hooks/useObservableNextRouter.js +64 -77
- package/react-hooks/useObservableNextRouter.mjs +60 -77
- package/react.d.mts +157 -0
- package/react.d.ts +157 -21
- package/react.js +458 -749
- package/react.mjs +457 -752
- package/sync-plugins/crud.d.mts +54 -0
- package/sync-plugins/crud.d.ts +12 -10
- package/sync-plugins/crud.js +253 -270
- package/sync-plugins/crud.mjs +253 -270
- package/sync-plugins/fetch.d.mts +21 -0
- package/sync-plugins/fetch.d.ts +7 -4
- package/sync-plugins/fetch.js +50 -37
- package/sync-plugins/fetch.mjs +50 -37
- package/sync-plugins/keel.d.mts +108 -0
- package/sync-plugins/keel.d.ts +17 -15
- package/sync-plugins/keel.js +229 -462
- package/sync-plugins/keel.mjs +227 -464
- package/sync-plugins/supabase.d.mts +39 -0
- package/sync-plugins/supabase.d.ts +16 -14
- package/sync-plugins/supabase.js +128 -128
- package/sync-plugins/supabase.mjs +128 -128
- package/sync-plugins/tanstack-query.d.mts +14 -0
- package/sync-plugins/tanstack-query.d.ts +7 -4
- package/sync-plugins/tanstack-query.js +51 -57
- package/sync-plugins/tanstack-query.mjs +51 -57
- package/sync-plugins/tanstack-react-query.d.mts +8 -0
- package/sync-plugins/tanstack-react-query.d.ts +6 -1
- package/sync-plugins/tanstack-react-query.js +2 -2
- package/sync-plugins/tanstack-react-query.mjs +2 -2
- package/sync.d.mts +351 -0
- package/sync.d.ts +349 -9
- package/sync.js +910 -964
- package/sync.mjs +920 -974
- package/trace.d.mts +9 -0
- package/trace.d.ts +9 -4
- package/trace.js +72 -62
- package/trace.mjs +72 -62
- package/types/babel.d.ts +1 -12
- package/babel.js.map +0 -1
- package/config/enable$GetSet.js.map +0 -1
- package/config/enable$GetSet.mjs.map +0 -1
- package/config/enableReactComponents.js.map +0 -1
- package/config/enableReactComponents.mjs.map +0 -1
- package/config/enableReactNativeComponents.js.map +0 -1
- package/config/enableReactNativeComponents.mjs.map +0 -1
- package/config/enableReactTracking.js.map +0 -1
- package/config/enableReactTracking.mjs.map +0 -1
- package/config/enableReactUse.js.map +0 -1
- package/config/enableReactUse.mjs.map +0 -1
- package/config/enable_PeekAssign.js.map +0 -1
- package/config/enable_PeekAssign.mjs.map +0 -1
- package/helpers/pageHash.js.map +0 -1
- package/helpers/pageHash.mjs.map +0 -1
- package/helpers/pageHashParams.js.map +0 -1
- package/helpers/pageHashParams.mjs.map +0 -1
- package/helpers/time.js.map +0 -1
- package/helpers/time.mjs.map +0 -1
- package/helpers/trackHistory.js.map +0 -1
- package/helpers/trackHistory.mjs.map +0 -1
- package/helpers/undoRedo.js.map +0 -1
- package/helpers/undoRedo.mjs.map +0 -1
- package/history.d.ts +0 -1
- package/history.js +0 -24
- package/history.js.map +0 -1
- package/history.mjs +0 -22
- package/history.mjs.map +0 -1
- package/index.js.map +0 -1
- package/index.mjs.map +0 -1
- package/persist-plugins/async-storage.js.map +0 -1
- package/persist-plugins/async-storage.mjs.map +0 -1
- package/persist-plugins/indexeddb.js.map +0 -1
- package/persist-plugins/indexeddb.mjs.map +0 -1
- package/persist-plugins/local-storage.js.map +0 -1
- package/persist-plugins/local-storage.mjs.map +0 -1
- package/persist-plugins/mmkv.js.map +0 -1
- package/persist-plugins/mmkv.mjs.map +0 -1
- package/react-hooks/createObservableHook.js.map +0 -1
- package/react-hooks/createObservableHook.mjs.map +0 -1
- package/react-hooks/useHover.js.map +0 -1
- package/react-hooks/useHover.mjs.map +0 -1
- package/react-hooks/useMeasure.js.map +0 -1
- package/react-hooks/useMeasure.mjs.map +0 -1
- package/react-hooks/useObservableNextRouter.js.map +0 -1
- package/react-hooks/useObservableNextRouter.mjs.map +0 -1
- package/react.js.map +0 -1
- package/react.mjs.map +0 -1
- package/src/ObservableObject.ts +0 -1350
- package/src/ObservablePrimitive.ts +0 -62
- package/src/babel/index.ts +0 -83
- package/src/batching.ts +0 -357
- package/src/computed.ts +0 -18
- package/src/config/enable$GetSet.ts +0 -30
- package/src/config/enableReactComponents.ts +0 -26
- package/src/config/enableReactNativeComponents.ts +0 -102
- package/src/config/enableReactTracking.ts +0 -62
- package/src/config/enableReactUse.ts +0 -32
- package/src/config/enable_PeekAssign.ts +0 -31
- package/src/config.ts +0 -47
- package/src/createObservable.ts +0 -47
- package/src/event.ts +0 -26
- package/src/globals.ts +0 -235
- package/src/helpers/pageHash.ts +0 -41
- package/src/helpers/pageHashParams.ts +0 -55
- package/src/helpers/time.ts +0 -30
- package/src/helpers/trackHistory.ts +0 -29
- package/src/helpers/undoRedo.ts +0 -111
- package/src/helpers.ts +0 -231
- package/src/is.ts +0 -63
- package/src/linked.ts +0 -17
- package/src/observable.ts +0 -32
- package/src/observableInterfaces.ts +0 -151
- package/src/observableTypes.ts +0 -232
- package/src/observe.ts +0 -89
- package/src/old-plugins/firebase.ts +0 -1053
- package/src/onChange.ts +0 -146
- package/src/persist/configureObservablePersistence.ts +0 -7
- package/src/persist/fieldTransformer.ts +0 -149
- package/src/persist/observablePersistRemoteFunctionsAdapter.ts +0 -39
- package/src/persist/persistObservable.ts +0 -1034
- package/src/persist-plugins/async-storage.ts +0 -99
- package/src/persist-plugins/indexeddb.ts +0 -439
- package/src/persist-plugins/local-storage.ts +0 -86
- package/src/persist-plugins/mmkv.ts +0 -91
- package/src/proxy.ts +0 -28
- package/src/react/Computed.tsx +0 -8
- package/src/react/For.tsx +0 -116
- package/src/react/Memo.tsx +0 -4
- package/src/react/Reactive.tsx +0 -53
- package/src/react/Show.tsx +0 -33
- package/src/react/Switch.tsx +0 -43
- package/src/react/react-globals.ts +0 -3
- package/src/react/reactInterfaces.ts +0 -32
- package/src/react/reactive-observer.tsx +0 -210
- package/src/react/useComputed.ts +0 -36
- package/src/react/useEffectOnce.ts +0 -41
- package/src/react/useIsMounted.ts +0 -16
- package/src/react/useMount.ts +0 -15
- package/src/react/useObservable.ts +0 -24
- package/src/react/useObservableReducer.ts +0 -52
- package/src/react/useObservableState.ts +0 -30
- package/src/react/useObserve.ts +0 -54
- package/src/react/useObserveEffect.ts +0 -40
- package/src/react/usePauseProvider.tsx +0 -16
- package/src/react/useSelector.ts +0 -167
- package/src/react/useUnmount.ts +0 -8
- package/src/react/useWhen.ts +0 -9
- package/src/react-hooks/createObservableHook.ts +0 -53
- package/src/react-hooks/useHover.ts +0 -40
- package/src/react-hooks/useMeasure.ts +0 -48
- package/src/react-hooks/useObservableNextRouter.ts +0 -137
- package/src/retry.ts +0 -71
- package/src/setupTracking.ts +0 -26
- package/src/sync/activateSyncedNode.ts +0 -128
- package/src/sync/configureObservableSync.ts +0 -7
- package/src/sync/persistTypes.ts +0 -216
- package/src/sync/syncHelpers.ts +0 -180
- package/src/sync/syncObservable.ts +0 -1056
- package/src/sync/syncObservableAdapter.ts +0 -31
- package/src/sync/syncTypes.ts +0 -189
- package/src/sync/synced.ts +0 -21
- package/src/sync-plugins/crud.ts +0 -412
- package/src/sync-plugins/fetch.ts +0 -80
- package/src/sync-plugins/keel.ts +0 -495
- package/src/sync-plugins/supabase.ts +0 -249
- package/src/sync-plugins/tanstack-query.ts +0 -113
- package/src/sync-plugins/tanstack-react-query.ts +0 -12
- package/src/trace/traceHelpers.ts +0 -11
- package/src/trace/useTraceListeners.ts +0 -34
- package/src/trace/useTraceUpdates.ts +0 -24
- package/src/trace/useVerifyNotTracking.ts +0 -33
- package/src/trace/useVerifyOneRender.ts +0 -10
- package/src/trackSelector.ts +0 -52
- package/src/tracking.ts +0 -43
- package/src/types/babel.d.ts +0 -12
- package/src/when.ts +0 -75
- package/sync-plugins/crud.js.map +0 -1
- package/sync-plugins/crud.mjs.map +0 -1
- package/sync-plugins/fetch.js.map +0 -1
- package/sync-plugins/fetch.mjs.map +0 -1
- package/sync-plugins/keel.js.map +0 -1
- package/sync-plugins/keel.mjs.map +0 -1
- package/sync-plugins/supabase.js.map +0 -1
- package/sync-plugins/supabase.mjs.map +0 -1
- package/sync-plugins/tanstack-query.js.map +0 -1
- package/sync-plugins/tanstack-query.mjs.map +0 -1
- package/sync-plugins/tanstack-react-query.js.map +0 -1
- package/sync-plugins/tanstack-react-query.mjs.map +0 -1
- package/sync.js.map +0 -1
- package/sync.mjs.map +0 -1
- package/trace.js.map +0 -1
- package/trace.mjs.map +0 -1
package/index.d.ts
CHANGED
|
@@ -1,25 +1,366 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
type Primitive$1 = string | number | boolean | symbol | bigint | undefined | null | Date;
|
|
2
|
+
type ArrayOverrideFnNames = 'find' | 'every' | 'some' | 'filter' | 'reduce' | 'reduceRight' | 'forEach' | 'map' | 'sort';
|
|
3
|
+
type RemoveIndex<T> = {
|
|
4
|
+
[K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];
|
|
5
|
+
};
|
|
6
|
+
type BuiltIns = String | Boolean | Number | Date | Error | RegExp | Array<any> | Function | Promise<any>;
|
|
7
|
+
type IsUserDefinedObject<T> = T extends Function | BuiltIns | any[] ? false : T extends object ? true : false;
|
|
8
|
+
type RemoveObservables<T> = T extends ImmutableObservableBase<infer t> ? t : IsUserDefinedObject<T> extends true ? {
|
|
9
|
+
[K in keyof T]: RemoveObservables<T[K]>;
|
|
10
|
+
} : T extends ImmutableObservableBase<infer TObs> ? TObs : T extends () => infer TRet ? RemoveObservables<TRet> & T : T extends (key: string) => infer TRet ? Record<string, RemoveObservables<TRet>> & T : T;
|
|
11
|
+
interface ObservableArray<T, U> extends ObservablePrimitive<T>, Pick<Array<Observable<U>>, ArrayOverrideFnNames>, Omit<RemoveIndex<Array<U>>, ArrayOverrideFnNames> {
|
|
12
|
+
}
|
|
13
|
+
interface ObservableObjectFns<T> {
|
|
14
|
+
assign(value: Partial<T>): Observable<T>;
|
|
15
|
+
}
|
|
16
|
+
interface ObservableObjectFunctions<T = Record<string, any>> extends ObservablePrimitive<T>, ObservableObjectFns<T> {
|
|
17
|
+
}
|
|
18
|
+
type MapKey<T extends Map<any, any> | WeakMap<any, any>> = Parameters<T['has']>[0];
|
|
19
|
+
type MapValue<T extends Map<any, any> | WeakMap<any, any>> = Parameters<T['get']>[0];
|
|
20
|
+
type ObservableMap<T extends Map<any, any> | WeakMap<any, any>> = Omit<T, 'get' | 'size'> & Omit<ObservablePrimitive<T>, 'get' | 'size'> & {
|
|
21
|
+
get(key: Parameters<T['get']>[0]): Observable<Parameters<T['set']>[1]>;
|
|
22
|
+
get(): T;
|
|
23
|
+
size: ImmutableObservableBase<number>;
|
|
24
|
+
assign(value: Record<MapKey<T>, MapValue<T>> | Map<MapKey<T>, MapValue<T>> | WeakMap<MapKey<T>, MapValue<T>>): Observable<T>;
|
|
25
|
+
};
|
|
26
|
+
type ObservableSet<T extends Set<any> | WeakSet<any>> = Omit<T, 'size'> & Omit<ObservablePrimitive<T>, 'size'> & {
|
|
27
|
+
size: ImmutableObservableBase<number>;
|
|
28
|
+
};
|
|
29
|
+
interface ObservableBoolean extends ObservablePrimitive<boolean> {
|
|
30
|
+
toggle(): void;
|
|
31
|
+
}
|
|
32
|
+
interface ObservablePrimitive<T> extends ImmutableObservableBase<T>, MutableObservableBase<T> {
|
|
33
|
+
}
|
|
34
|
+
type ObservableAny = Partial<ObservableObjectFns<any>> & ObservablePrimitive<any> & Record<string, any>;
|
|
35
|
+
interface ImmutableObservableSimple<T> {
|
|
36
|
+
peek(): T;
|
|
37
|
+
get(trackingType?: any): any;
|
|
38
|
+
onChange(cb: ListenerFn<any>, options?: any): () => void;
|
|
39
|
+
}
|
|
40
|
+
interface ImmutableObservableBase<T> extends ImmutableObservableSimple<T> {
|
|
41
|
+
peek(): RemoveObservables<T>;
|
|
42
|
+
peek(): T;
|
|
43
|
+
get(trackingType?: TrackingType | GetOptions): RemoveObservables<T>;
|
|
44
|
+
onChange(cb: ListenerFn<T>, options?: {
|
|
45
|
+
trackingType?: TrackingType;
|
|
46
|
+
initial?: boolean;
|
|
47
|
+
immediate?: boolean;
|
|
48
|
+
noArgs?: boolean;
|
|
49
|
+
}): () => void;
|
|
50
|
+
}
|
|
51
|
+
interface MutableObservableSimple {
|
|
52
|
+
set(value: any): void;
|
|
53
|
+
delete(): void;
|
|
54
|
+
}
|
|
55
|
+
interface MutableObservableBase<T> extends MutableObservableSimple {
|
|
56
|
+
set(value: (prev: RemoveObservables<T>) => RemoveObservables<T>): void;
|
|
57
|
+
set(value: RecursiveValueOrFunction<T>): void;
|
|
58
|
+
set(value: Promise<RemoveObservables<T>>): void;
|
|
59
|
+
set(value: RemoveObservables<T>): void;
|
|
60
|
+
set(value: Observable<RemoveObservables<T>>): void;
|
|
61
|
+
delete(): void;
|
|
62
|
+
}
|
|
63
|
+
type UndefinedIf<T, U> = U extends true ? T | undefined : T;
|
|
64
|
+
type IsNullable<T> = undefined extends T ? true : null extends T ? true : false;
|
|
65
|
+
type NonObservable = Function | Observable;
|
|
66
|
+
type NonObservableKeys<T> = {
|
|
67
|
+
[K in keyof T]-?: IsStrictAny<T[K]> extends true ? never : T[K] extends undefined | null ? never : NonNullable<T[K]> extends NonObservable ? K : never;
|
|
68
|
+
}[keyof T];
|
|
69
|
+
type ObservableProps<T> = NonObservableKeys<NonNullable<T>> extends never ? T : RestoreNullability<T, Omit<NonNullable<T>, NonObservableKeys<NonNullable<T>>>>;
|
|
70
|
+
type NonObservableProps<T> = RestoreNullability<T, NullablePropsIf<Pick<NonNullable<T>, NonObservableKeys<NonNullable<T>>>, IsNullable<T>>>;
|
|
71
|
+
type NullablePropsIf<T, U> = {
|
|
72
|
+
[K in keyof T]: UndefinedIf<T[K], U>;
|
|
73
|
+
};
|
|
74
|
+
type RestoreNullability<Source, Target> = IsNullable<Source> extends true ? Target | Extract<Source, null | undefined> : Target;
|
|
75
|
+
type ObservableChildren<T, Nullable = IsNullable<T>> = {
|
|
76
|
+
[K in keyof T]-?: Observable<UndefinedIf<T[K], Nullable>>;
|
|
77
|
+
};
|
|
78
|
+
type ObservableFunctionChildren<T> = {
|
|
79
|
+
[K in keyof T]-?: T[K] extends Observable ? T[K] : T[K] extends (key: infer Key extends string) => Promise<infer t> | infer t ? HasOneStringParam<T[K]> extends true ? Observable<Record<Key, t>> & T[K] : t extends void ? T[K] : t extends Observable ? t : Observable<t> & (() => t) : T[K] & Observable<T[K]>;
|
|
80
|
+
};
|
|
81
|
+
type IsStrictAny<T> = 0 extends 1 & T ? true : false;
|
|
82
|
+
type ObservableObject<T> = ObservableObjectFunctions<ObservableProps<T> & NonObservableProps<T>> & ObservableChildren<ObservableProps<T>> & ObservableFunctionChildren<NonObservableProps<T>>;
|
|
83
|
+
type ObservableFunction<T> = T extends () => infer t ? t | (() => t) : T;
|
|
84
|
+
type HasOneStringParam<T> = T extends (...args: infer P) => any ? P extends {
|
|
85
|
+
length: 1;
|
|
86
|
+
} ? P[0] extends string | ObservablePrimitive<string> ? true : false : false : false;
|
|
87
|
+
type ObservableNode<T, NT = NonNullable<T>> = [NT] extends [never] ? ObservablePrimitive<T> : IsStrictAny<T> extends true ? ObservableAny : [T] extends [Promise<infer t>] ? ObservableNode<t> : [T] extends [(key: infer K extends string) => infer t] ? [t] extends [ImmutableObservableBase<any>] ? HasOneStringParam<T> extends true ? Observable<Record<K, t>> : t : HasOneStringParam<T> extends true ? Observable<Record<K, t>> & T : Observable<ObservableFunction<t>> : [NT] extends [ImmutableObservableBase<any>] ? NT : [NT] extends [Primitive$1] ? [NT] extends [boolean] ? ObservableBoolean : ObservablePrimitive<T> : NT extends Map<any, any> | WeakMap<any, any> ? ObservableMap<NT> : NT extends Set<infer U> ? ObservableSet<Set<UndefinedIf<U, IsNullable<T>>>> : NT extends WeakSet<any> ? ObservableSet<NT> : NT extends Array<infer U> ? ObservableArray<T, U> & ObservableChildren<T> : ObservableObject<T> & {};
|
|
88
|
+
type Observable<T = any> = ObservableNode<T> & {};
|
|
89
|
+
type ObservableParam<T = any> = ImmutableObservableSimple<T> & MutableObservableSimple;
|
|
90
|
+
type ValueOrFunction<T> = T extends Function ? T : T | ImmutableObservableBase<T> | Promise<T> | (() => T | Promise<T>);
|
|
91
|
+
type ValueOrFunctionKeys<T> = {
|
|
92
|
+
[K in keyof T]: RecursiveValueOrFunction<T[K]>;
|
|
93
|
+
};
|
|
94
|
+
type RecursiveValueOrFunction<T> = T extends Function ? T : T extends object ? ((key: string) => any) | Promise<ValueOrFunctionKeys<T>> | ValueOrFunctionKeys<T> | ImmutableObservableBase<T> | (() => T | Promise<T> | ValueOrFunctionKeys<T> | Promise<ValueOrFunctionKeys<T>> | Observable<T>) : ValueOrFunction<T>;
|
|
95
|
+
|
|
96
|
+
declare const symbolOpaque: unique symbol;
|
|
97
|
+
declare function getPathType(value: any): TypeAtPath;
|
|
98
|
+
declare function safeStringify(value: any): string;
|
|
99
|
+
declare function safeParse(value: any): any;
|
|
100
|
+
declare function clone<T>(value: T): any;
|
|
101
|
+
declare function isObservable(value$: any): value$ is Observable;
|
|
102
|
+
declare function getNode(value$: ObservableParam): NodeValue;
|
|
103
|
+
declare function setNodeValue(node: NodeValue, newValue: any): {
|
|
104
|
+
prevValue: any;
|
|
105
|
+
newValue: any;
|
|
106
|
+
};
|
|
107
|
+
declare function getNodeValue(node: NodeValue): any;
|
|
108
|
+
declare function ensureNodeValue(node: NodeValue): any;
|
|
109
|
+
declare function findIDKey(obj: unknown | undefined, node: NodeValue): string | ((value: any) => string) | undefined;
|
|
110
|
+
|
|
111
|
+
type TrackingType = undefined | true | symbol;
|
|
112
|
+
interface GetOptions {
|
|
113
|
+
shallow: boolean;
|
|
114
|
+
}
|
|
115
|
+
type OpaqueObject<T> = T & {
|
|
116
|
+
[symbolOpaque]: true;
|
|
117
|
+
};
|
|
118
|
+
interface ListenerParams<T = any> {
|
|
119
|
+
value: T;
|
|
120
|
+
getPrevious: () => T;
|
|
121
|
+
changes: Change[];
|
|
122
|
+
remote: boolean;
|
|
123
|
+
}
|
|
124
|
+
type ListenerFn<T = any> = (params: ListenerParams<T>) => void;
|
|
125
|
+
interface ObservableEvent {
|
|
126
|
+
fire(): void;
|
|
127
|
+
on(cb?: () => void): ObservableListenerDispose;
|
|
128
|
+
get(): void;
|
|
129
|
+
}
|
|
130
|
+
type TypeAtPath = 'object' | 'array' | 'map' | 'set';
|
|
131
|
+
interface Change {
|
|
132
|
+
path: string[];
|
|
133
|
+
pathTypes: TypeAtPath[];
|
|
134
|
+
valueAtPath: any;
|
|
135
|
+
prevAtPath: any;
|
|
136
|
+
}
|
|
137
|
+
type RecordValue<T> = T extends Record<string, infer t> ? t : never;
|
|
138
|
+
type ArrayValue<T> = T extends Array<infer t> ? t : never;
|
|
139
|
+
type ObservableValue<T> = T extends Observable<infer t> ? t : never;
|
|
140
|
+
type Selector<T> = ObservableParam<T> | ObservableEvent | (() => T) | T;
|
|
141
|
+
type ClassConstructor<I, Args extends any[] = any[]> = new (...args: Args) => I;
|
|
142
|
+
type ObservableListenerDispose = () => void;
|
|
143
|
+
interface ObservableRoot {
|
|
144
|
+
_: any;
|
|
145
|
+
set?: (value: any) => void;
|
|
146
|
+
}
|
|
147
|
+
type Primitive = boolean | string | number | Date;
|
|
148
|
+
type NotPrimitive<T> = T extends Primitive ? never : T;
|
|
149
|
+
interface NodeValueListener {
|
|
150
|
+
track: TrackingType;
|
|
151
|
+
noArgs?: boolean;
|
|
152
|
+
listener: ListenerFn;
|
|
153
|
+
}
|
|
154
|
+
interface TrackingState {
|
|
155
|
+
nodes?: Map<NodeValue, TrackingNode>;
|
|
156
|
+
traceListeners?: (nodes: Map<NodeValue, TrackingNode>) => void;
|
|
157
|
+
traceUpdates?: (fn: Function) => Function;
|
|
158
|
+
}
|
|
159
|
+
interface BaseNodeValue {
|
|
160
|
+
children?: Map<string, ChildNodeValue>;
|
|
161
|
+
proxy?: object;
|
|
162
|
+
root: ObservableRoot;
|
|
163
|
+
listeners?: Set<NodeValueListener>;
|
|
164
|
+
listenersImmediate?: Set<NodeValueListener>;
|
|
165
|
+
isEvent?: boolean;
|
|
166
|
+
linkedToNode?: NodeValue;
|
|
167
|
+
linkedToNodeDispose?: () => void;
|
|
168
|
+
activatedObserveDispose?: () => void;
|
|
169
|
+
linkedFromNodes?: Set<NodeValue>;
|
|
170
|
+
isSetting?: number;
|
|
171
|
+
isAssigning?: number;
|
|
172
|
+
isComputing?: boolean;
|
|
173
|
+
parentOther?: NodeValue;
|
|
174
|
+
functions?: Map<string, Function | Observable<any>>;
|
|
175
|
+
lazy?: boolean;
|
|
176
|
+
lazyFn?: Function;
|
|
177
|
+
needsExtract?: boolean;
|
|
178
|
+
numListenersRecursive: number;
|
|
179
|
+
state?: Observable<ObservableSyncState>;
|
|
180
|
+
activated?: boolean;
|
|
181
|
+
activationState?: LinkedOptions & {
|
|
182
|
+
onError?: () => void;
|
|
183
|
+
persistedRetry?: boolean;
|
|
184
|
+
};
|
|
185
|
+
dirtyFn?: () => void;
|
|
186
|
+
dirtyChildren?: Set<NodeValue>;
|
|
187
|
+
}
|
|
188
|
+
interface RootNodeValue extends BaseNodeValue {
|
|
189
|
+
parent?: undefined;
|
|
190
|
+
key?: undefined;
|
|
191
|
+
}
|
|
192
|
+
interface ChildNodeValue extends BaseNodeValue {
|
|
193
|
+
parent: NodeValue;
|
|
194
|
+
key: string;
|
|
195
|
+
}
|
|
196
|
+
type NodeValue = RootNodeValue | ChildNodeValue;
|
|
197
|
+
interface TrackingNode {
|
|
198
|
+
node: NodeValue;
|
|
199
|
+
track: TrackingType;
|
|
200
|
+
num: number;
|
|
201
|
+
}
|
|
202
|
+
interface ObserveEvent<T> {
|
|
203
|
+
num: number;
|
|
204
|
+
previous?: T | undefined;
|
|
205
|
+
cancel?: boolean;
|
|
206
|
+
onCleanup?: () => void;
|
|
207
|
+
}
|
|
208
|
+
interface ObserveEventCallback<T> {
|
|
209
|
+
num: number;
|
|
210
|
+
previous?: T | undefined;
|
|
211
|
+
value?: T;
|
|
212
|
+
cancel: boolean;
|
|
213
|
+
nodes: Map<NodeValue, TrackingNode> | undefined;
|
|
214
|
+
refresh: () => void;
|
|
215
|
+
onCleanup?: () => void;
|
|
216
|
+
onCleanupReaction?: () => void;
|
|
217
|
+
}
|
|
218
|
+
type SetParams<T> = ListenerParams<T extends Promise<infer t> ? t : T>;
|
|
219
|
+
interface LinkedOptions<T = any> {
|
|
220
|
+
get?: () => Promise<T> | T;
|
|
221
|
+
set?: (params: SetParams<T>) => void | Promise<any>;
|
|
222
|
+
waitFor?: Selector<any>;
|
|
223
|
+
waitForSet?: ((params: WaitForSetFnParams<T>) => any) | Promise<any> | ObservableParam<any> | ObservableEvent;
|
|
224
|
+
initial?: (() => T) | T;
|
|
225
|
+
activate?: 'auto' | 'lazy';
|
|
226
|
+
}
|
|
227
|
+
interface WaitForSetFnParams<T = any> {
|
|
228
|
+
value: T;
|
|
229
|
+
changes: Change[];
|
|
230
|
+
}
|
|
231
|
+
type GetMode = 'set' | 'assign' | 'merge' | 'append' | 'prepend';
|
|
232
|
+
interface UpdateFnParams {
|
|
233
|
+
value: unknown;
|
|
234
|
+
mode?: GetMode;
|
|
235
|
+
lastSync?: number | undefined;
|
|
236
|
+
}
|
|
237
|
+
type UpdateFn = (params: UpdateFnParams) => void;
|
|
238
|
+
type Linked<T> = T;
|
|
239
|
+
interface ObserveOptions {
|
|
240
|
+
immediate?: boolean;
|
|
241
|
+
}
|
|
242
|
+
interface ObservableSyncStateBase {
|
|
243
|
+
isPersistLoaded: boolean;
|
|
244
|
+
isPersistEnabled: boolean;
|
|
245
|
+
isSyncEnabled: boolean;
|
|
246
|
+
lastSync?: number;
|
|
247
|
+
syncCount?: number;
|
|
248
|
+
clearPersist: () => Promise<void>;
|
|
249
|
+
sync: () => Promise<void>;
|
|
250
|
+
getPendingChanges: () => Record<string, {
|
|
251
|
+
p: any;
|
|
252
|
+
v?: any;
|
|
253
|
+
}> | undefined;
|
|
254
|
+
}
|
|
255
|
+
interface ObservableState {
|
|
256
|
+
isLoaded: boolean;
|
|
257
|
+
error?: Error;
|
|
258
|
+
}
|
|
259
|
+
type ObservableSyncState = ObservableState & ObservableSyncStateBase;
|
|
260
|
+
interface RetryOptions {
|
|
261
|
+
infinite?: boolean;
|
|
262
|
+
times?: number;
|
|
263
|
+
delay?: number;
|
|
264
|
+
backoff?: 'constant' | 'exponential';
|
|
265
|
+
maxDelay?: number;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
declare function createPreviousHandler(value: any, changes: Change[]): () => any;
|
|
269
|
+
declare function batch(fn: () => void): void;
|
|
270
|
+
declare function beginBatch(): void;
|
|
271
|
+
declare function endBatch(force?: boolean): void;
|
|
272
|
+
|
|
273
|
+
declare function computed<T>(get: () => RecursiveValueOrFunction<T>): Observable<T>;
|
|
274
|
+
declare function computed<T, T2 = T>(get: (() => RecursiveValueOrFunction<T>) | RecursiveValueOrFunction<T>, set: (value: T2) => void): Observable<T>;
|
|
275
|
+
|
|
276
|
+
declare function linked<T>(params: LinkedOptions<T> | (() => T), options?: LinkedOptions<T>): Linked<T>;
|
|
277
|
+
|
|
278
|
+
declare function configureLegendState({ observableFunctions, observableProperties, jsonReplacer, jsonReviver, }: {
|
|
279
|
+
observableFunctions?: Record<string, (node: NodeValue, ...args: any[]) => any>;
|
|
280
|
+
observableProperties?: Record<string, {
|
|
281
|
+
get: (node: NodeValue) => any;
|
|
282
|
+
set: (node: NodeValue, value: any) => any;
|
|
283
|
+
}>;
|
|
284
|
+
jsonReplacer?: (this: any, key: string, value: any) => any;
|
|
285
|
+
jsonReviver?: (this: any, key: string, value: any) => any;
|
|
286
|
+
}): void;
|
|
287
|
+
|
|
288
|
+
declare function event(): ObservableEvent;
|
|
289
|
+
|
|
290
|
+
declare function computeSelector<T>(selector: Selector<T>, e?: ObserveEvent<T>, retainObservable?: boolean): T;
|
|
291
|
+
declare function getObservableIndex(value$: ObservableParam): number;
|
|
292
|
+
declare function opaqueObject<T extends object>(value: T): OpaqueObject<T>;
|
|
293
|
+
declare function getValueAtPath(obj: Record<string, any>, path: string[]): any;
|
|
294
|
+
declare function setAtPath<T extends object>(obj: T, path: string[], pathTypes: TypeAtPath[], value: any, mode?: 'set' | 'merge', fullObj?: T, restore?: (path: string[], value: any) => void): T;
|
|
295
|
+
declare function setInObservableAtPath(value$: ObservableParam, path: string[], pathTypes: TypeAtPath[], value: any, mode: 'assign' | 'set' | 'merge'): void;
|
|
296
|
+
declare function mergeIntoObservable<T extends ObservableParam<Record<string, any>> | object>(target: T, ...sources: any[]): T;
|
|
297
|
+
declare function constructObjectWithPath(path: string[], pathTypes: TypeAtPath[], value: any): object;
|
|
298
|
+
declare function deconstructObjectWithPath(path: string[], pathTypes: TypeAtPath[], value: any): object;
|
|
299
|
+
declare function isObservableValueReady(value: any): boolean;
|
|
300
|
+
declare function setSilently(value$: ObservableParam, newValue: any): any;
|
|
301
|
+
declare function initializePathType(pathType: TypeAtPath): any;
|
|
302
|
+
declare function applyChange<T extends object>(value: T, change: Change, applyPrevious?: boolean): T;
|
|
303
|
+
declare function applyChanges<T extends object>(value: T, changes: Change[], applyPrevious?: boolean): T;
|
|
304
|
+
|
|
305
|
+
declare const hasOwnProperty: (v: PropertyKey) => boolean;
|
|
306
|
+
declare function isArray(obj: unknown): obj is Array<any>;
|
|
307
|
+
declare function isString(obj: unknown): obj is string;
|
|
308
|
+
declare function isObject(obj: unknown): obj is Record<any, any>;
|
|
309
|
+
declare function isFunction(obj: unknown): obj is Function;
|
|
310
|
+
declare function isPrimitive(arg: unknown): arg is string | number | bigint | boolean | symbol;
|
|
311
|
+
declare function isDate(obj: unknown): obj is Date;
|
|
312
|
+
declare function isSymbol(obj: unknown): obj is symbol;
|
|
313
|
+
declare function isBoolean(obj: unknown): obj is boolean;
|
|
314
|
+
declare function isPromise<T>(obj: unknown): obj is Promise<T>;
|
|
315
|
+
declare function isMap(obj: unknown): obj is Map<any, any>;
|
|
316
|
+
declare function isNumber(obj: unknown): obj is number;
|
|
317
|
+
declare function isEmpty(obj: object): boolean;
|
|
318
|
+
declare function isNullOrUndefined(value: any): value is undefined | null;
|
|
319
|
+
|
|
320
|
+
declare function observable<T>(): Observable<T | undefined>;
|
|
321
|
+
declare function observable<T>(value: Promise<RecursiveValueOrFunction<T>> | (() => RecursiveValueOrFunction<T>) | RecursiveValueOrFunction<T>): Observable<T>;
|
|
322
|
+
declare function observable<T>(value: T): Observable<T>;
|
|
323
|
+
declare function observablePrimitive<T>(value: Promise<T>): ObservablePrimitive<T>;
|
|
324
|
+
declare function observablePrimitive<T>(value?: T): ObservablePrimitive<T>;
|
|
325
|
+
declare function syncState(obs: ObservableParam): Observable<ObservableSyncState>;
|
|
326
|
+
|
|
327
|
+
declare function observe<T>(run: (e: ObserveEvent<T>) => T | void, options?: ObserveOptions): () => void;
|
|
328
|
+
declare function observe<T>(selector: Selector<T> | ((e: ObserveEvent<T>) => any), reaction?: (e: ObserveEventCallback<T>) => any, options?: ObserveOptions): () => void;
|
|
329
|
+
|
|
330
|
+
declare function proxy<T, T2 = T>(get: (key: string) => T, set: (key: string, value: T2) => void): Observable<Record<string, T>>;
|
|
331
|
+
declare function proxy<T extends Record<string, any>>(get: <K extends keyof T>(key: K) => ObservableParam<T[K]>): Observable<T>;
|
|
332
|
+
declare function proxy<T>(get: (key: string) => ObservableParam<T>): Observable<Record<string, T>>;
|
|
333
|
+
declare function proxy<T>(get: (key: string) => T): Observable<Record<string, T>>;
|
|
334
|
+
|
|
335
|
+
declare function trackSelector<T>(selector: Selector<T>, update: (params: ListenerParams) => void, observeEvent?: ObserveEvent<T>, observeOptions?: ObserveOptions, createResubscribe?: boolean): {
|
|
336
|
+
nodes: Map<NodeValue, TrackingNode> | undefined;
|
|
337
|
+
value: T;
|
|
338
|
+
dispose: (() => void) | undefined;
|
|
339
|
+
resubscribe: (() => () => void) | undefined;
|
|
340
|
+
};
|
|
341
|
+
|
|
342
|
+
declare function when<T, T2>(predicate: Promise<T>, effect: (value: T) => T2): Promise<T2>;
|
|
343
|
+
declare function when<T, T2>(predicate: Selector<T>, effect: (value: T) => T2): Promise<T2>;
|
|
344
|
+
declare function when<T>(predicate: Selector<T>): Promise<T>;
|
|
345
|
+
declare function whenReady<T, T2>(predicate: Promise<T>, effect: (value: T) => T2): Promise<T2>;
|
|
346
|
+
declare function whenReady<T, T2>(predicate: Selector<T>, effect: (value: T) => T2): Promise<T2>;
|
|
347
|
+
declare function whenReady<T>(predicate: Selector<T>): Promise<T>;
|
|
348
|
+
|
|
349
|
+
declare function getProxy(node: NodeValue, p?: string, asFunction?: Function): Observable;
|
|
350
|
+
declare function set(node: NodeValue, newValue?: any): void;
|
|
351
|
+
declare function get(node: NodeValue, options?: TrackingType | GetOptions): any;
|
|
352
|
+
declare function peek(node: NodeValue): any;
|
|
353
|
+
declare function isObserved(node: NodeValue): boolean;
|
|
354
|
+
declare function shouldIgnoreUnobserved(node: NodeValue, refreshFn: () => void): true | undefined;
|
|
355
|
+
|
|
356
|
+
declare function runWithRetry<T>(node: NodeValue, state: {
|
|
357
|
+
attemptNum: number;
|
|
358
|
+
retry: RetryOptions | undefined;
|
|
359
|
+
}, fn: (e: {
|
|
360
|
+
cancel?: boolean;
|
|
361
|
+
}) => T | Promise<T>): T | Promise<T>;
|
|
362
|
+
|
|
363
|
+
declare const internal: {
|
|
23
364
|
createPreviousHandler: typeof createPreviousHandler;
|
|
24
365
|
clone: typeof clone;
|
|
25
366
|
ensureNodeValue: typeof ensureNodeValue;
|
|
@@ -34,17 +375,17 @@ export declare const internal: {
|
|
|
34
375
|
isLoadingLocal: boolean;
|
|
35
376
|
isMerging: boolean;
|
|
36
377
|
isLoadingRemote: boolean;
|
|
37
|
-
activateSyncedNode: (node:
|
|
38
|
-
update:
|
|
378
|
+
activateSyncedNode: (node: NodeValue, newValue: any) => {
|
|
379
|
+
update: UpdateFn;
|
|
39
380
|
value: any;
|
|
40
381
|
};
|
|
41
|
-
pendingNodes: Map<
|
|
42
|
-
dirtyNodes: Set<
|
|
382
|
+
pendingNodes: Map<NodeValue, () => void>;
|
|
383
|
+
dirtyNodes: Set<NodeValue>;
|
|
43
384
|
replacer: ((this: any, key: string, value: any) => any) | undefined;
|
|
44
385
|
reviver: ((this: any, key: string, value: any) => any) | undefined;
|
|
45
386
|
};
|
|
46
387
|
initializePathType: typeof initializePathType;
|
|
47
|
-
observableFns: Map<string, (node:
|
|
388
|
+
observableFns: Map<string, (node: NodeValue, ...args: any[]) => any>;
|
|
48
389
|
optimized: symbol;
|
|
49
390
|
peek: typeof peek;
|
|
50
391
|
runWithRetry: typeof runWithRetry;
|
|
@@ -56,6 +397,8 @@ export declare const internal: {
|
|
|
56
397
|
symbolLinked: symbol;
|
|
57
398
|
symbolDelete: symbol;
|
|
58
399
|
tracking: {
|
|
59
|
-
current:
|
|
400
|
+
current: TrackingState | undefined;
|
|
60
401
|
};
|
|
61
402
|
};
|
|
403
|
+
|
|
404
|
+
export { type ArrayValue, type Change, type ChildNodeValue, type ClassConstructor, type GetMode, type GetOptions, type ImmutableObservableBase, type Linked, type LinkedOptions, type ListenerFn, type ListenerParams, type NodeValue, type NodeValueListener, type NotPrimitive, type Observable, type ObservableBoolean, type ObservableEvent, type ObservableListenerDispose, type ObservableObject, type ObservableParam, type ObservablePrimitive, type ObservableRoot, type ObservableState, type ObservableSyncState, type ObservableSyncStateBase, type ObservableValue, type ObserveEvent, type ObserveEventCallback, type ObserveOptions, type OpaqueObject, type Primitive, type RecordValue, type RecursiveValueOrFunction, type RemoveObservables, type RetryOptions, type RootNodeValue, type Selector, type SetParams, type TrackingNode, type TrackingState, type TrackingType, type TypeAtPath, type UpdateFn, type UpdateFnParams, type WaitForSetFnParams, applyChange, applyChanges, batch, beginBatch, computeSelector, computed, configureLegendState, constructObjectWithPath, deconstructObjectWithPath, endBatch, event, getObservableIndex, hasOwnProperty, internal, isArray, isBoolean, isDate, isEmpty, isFunction, isMap, isNullOrUndefined, isNumber, isObject, isObservable, isObservableValueReady, isObserved, isPrimitive, isPromise, isString, isSymbol, linked, mergeIntoObservable, observable, observablePrimitive, observe, opaqueObject, proxy, setAtPath, setInObservableAtPath, setSilently, shouldIgnoreUnobserved, syncState, trackSelector, when, whenReady };
|