@legendapp/state 3.0.0-alpha.4 → 3.0.0-alpha.40
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 +831 -1
- package/LICENSE +21 -1
- package/README.md +141 -1
- package/babel.js +0 -2
- package/babel.mjs +0 -2
- package/config/configureLegendState.d.mts +13 -0
- package/config/configureLegendState.d.ts +13 -0
- package/config/configureLegendState.js +45 -0
- package/config/configureLegendState.mjs +43 -0
- package/config/enable$GetSet.js +2 -1
- package/config/enable$GetSet.mjs +2 -1
- package/config/enableReactTracking.js +2 -1
- package/config/enableReactTracking.mjs +2 -1
- package/config/enableReactUse.js +2 -1
- package/config/enableReactUse.mjs +2 -1
- package/config/enable_PeekAssign.js +2 -1
- package/config/enable_PeekAssign.mjs +2 -1
- package/helpers/trackHistory.js +2 -2
- package/helpers/trackHistory.mjs +2 -2
- package/index.d.mts +106 -81
- package/index.d.ts +106 -81
- package/index.js +347 -335
- package/index.mjs +344 -333
- package/package.json +36 -1
- package/persist-plugins/async-storage.d.mts +6 -3
- package/persist-plugins/async-storage.d.ts +6 -3
- package/persist-plugins/async-storage.js +8 -4
- package/persist-plugins/async-storage.mjs +8 -5
- package/persist-plugins/indexeddb.d.mts +6 -4
- package/persist-plugins/indexeddb.d.ts +6 -4
- package/persist-plugins/indexeddb.js +35 -15
- package/persist-plugins/indexeddb.mjs +35 -16
- package/persist-plugins/mmkv.d.mts +5 -1
- package/persist-plugins/mmkv.d.ts +5 -1
- package/persist-plugins/mmkv.js +10 -5
- package/persist-plugins/mmkv.mjs +10 -6
- package/react-reactive/enableReactComponents.d.mts +9 -0
- package/react-reactive/enableReactComponents.d.ts +9 -0
- package/react-reactive/enableReactComponents.js +19 -0
- package/react-reactive/enableReactComponents.mjs +17 -0
- package/react-reactive/enableReactNativeComponents.d.mts +22 -0
- package/react-reactive/enableReactNativeComponents.d.ts +22 -0
- package/react-reactive/enableReactNativeComponents.js +53 -0
- package/react-reactive/enableReactNativeComponents.mjs +51 -0
- package/react-reactive/enableReactive.d.mts +5 -0
- package/react-reactive/enableReactive.d.ts +5 -0
- package/react-reactive/enableReactive.js +24 -0
- package/react-reactive/enableReactive.mjs +22 -0
- package/react-reactive/enableReactive.native.d.mts +5 -0
- package/react-reactive/enableReactive.native.d.ts +5 -0
- package/react-reactive/enableReactive.native.js +58 -0
- package/react-reactive/enableReactive.native.mjs +56 -0
- package/react-reactive/enableReactive.web.d.mts +5 -0
- package/react-reactive/enableReactive.web.d.ts +5 -0
- package/react-reactive/enableReactive.web.js +58 -0
- package/react-reactive/enableReactive.web.mjs +56 -0
- package/react.d.mts +39 -34
- package/react.d.ts +39 -34
- package/react.js +54 -27
- package/react.mjs +55 -28
- package/sync-plugins/crud.d.mts +21 -24
- package/sync-plugins/crud.d.ts +21 -24
- package/sync-plugins/crud.js +241 -140
- package/sync-plugins/crud.mjs +243 -142
- package/sync-plugins/fetch.js +12 -8
- package/sync-plugins/fetch.mjs +13 -9
- package/sync-plugins/firebase.d.mts +27 -0
- package/sync-plugins/firebase.d.ts +27 -0
- package/sync-plugins/firebase.js +373 -0
- package/sync-plugins/firebase.mjs +368 -0
- package/sync-plugins/keel.d.mts +43 -26
- package/sync-plugins/keel.d.ts +43 -26
- package/sync-plugins/keel.js +143 -100
- package/sync-plugins/keel.mjs +145 -100
- package/sync-plugins/supabase.d.mts +19 -9
- package/sync-plugins/supabase.d.ts +19 -9
- package/sync-plugins/supabase.js +52 -22
- package/sync-plugins/supabase.mjs +53 -23
- package/sync-plugins/tanstack-query.d.mts +2 -2
- package/sync-plugins/tanstack-query.d.ts +2 -2
- package/sync-plugins/tanstack-query.js +22 -5
- package/sync-plugins/tanstack-query.mjs +22 -5
- package/sync-plugins/tanstack-react-query.d.mts +1 -1
- package/sync-plugins/tanstack-react-query.d.ts +1 -1
- package/sync-plugins/tanstack-react-query.js +8 -1
- package/sync-plugins/tanstack-react-query.mjs +8 -1
- package/sync.d.mts +74 -200
- package/sync.d.ts +74 -200
- package/sync.js +510 -307
- package/sync.mjs +516 -313
- package/types/babel.d.ts +12 -1
- /package/config/{enable_GetSet.d.mts → enable$GetSet.d.mts} +0 -0
- /package/config/{enable_GetSet.d.ts → enable$GetSet.d.ts} +0 -0
package/index.d.mts
CHANGED
|
@@ -5,9 +5,9 @@ type RemoveIndex<T> = {
|
|
|
5
5
|
};
|
|
6
6
|
type BuiltIns = String | Boolean | Number | Date | Error | RegExp | Array<any> | Function | Promise<any>;
|
|
7
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 ? {
|
|
8
|
+
type RemoveObservables<T> = T extends ImmutableObservableBase<infer t> ? t : T extends ImmutableObservableBase<infer t>[] ? t[] : IsUserDefinedObject<T> extends true ? {
|
|
9
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<
|
|
10
|
+
} : T extends ImmutableObservableBase<infer TObs> ? TObs : T extends () => infer TRet ? RemoveObservables<TRet> & T : T extends (key: infer TKey extends string | number) => infer TRet ? Record<TKey, RemoveObservables<TRet>> & T : T;
|
|
11
11
|
interface ObservableArray<T, U> extends ObservablePrimitive<T>, Pick<Array<Observable<U>>, ArrayOverrideFnNames>, Omit<RemoveIndex<Array<U>>, ArrayOverrideFnNames> {
|
|
12
12
|
}
|
|
13
13
|
interface ObservableObjectFns<T> {
|
|
@@ -16,15 +16,18 @@ interface ObservableObjectFns<T> {
|
|
|
16
16
|
interface ObservableObjectFunctions<T = Record<string, any>> extends ObservablePrimitive<T>, ObservableObjectFns<T> {
|
|
17
17
|
}
|
|
18
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>> =
|
|
20
|
-
type ObservableMap<T extends Map<any, any> | WeakMap<any, any>> = Omit<T, 'get' | 'size'> & Omit<ObservablePrimitive<T>, 'get' | 'size'> & {
|
|
19
|
+
type MapValue<T extends Map<any, any> | WeakMap<any, any>> = ReturnType<T['get']>;
|
|
20
|
+
type ObservableMap<T extends Map<any, any> | WeakMap<any, any>> = Omit<T, 'get' | 'size' | 'set'> & Omit<ObservablePrimitive<T>, 'get' | 'size'> & Record<MapKey<T>, Observable<MapValue<T>>> & {
|
|
21
21
|
get(key: Parameters<T['get']>[0]): Observable<Parameters<T['set']>[1]>;
|
|
22
22
|
get(): T;
|
|
23
|
-
size:
|
|
23
|
+
size: number;
|
|
24
|
+
set(key: MapKey<T>, value: MapValue<T>): Observable<T>;
|
|
24
25
|
assign(value: Record<MapKey<T>, MapValue<T>> | Map<MapKey<T>, MapValue<T>> | WeakMap<MapKey<T>, MapValue<T>>): Observable<T>;
|
|
25
26
|
};
|
|
26
|
-
type
|
|
27
|
-
|
|
27
|
+
type SetValue<T extends Set<any> | WeakSet<any>> = Parameters<T['has']>[0];
|
|
28
|
+
type ObservableSet<T extends Set<any> | WeakSet<any>> = Omit<T, 'size' | 'add'> & Omit<ObservablePrimitive<T>, 'size'> & {
|
|
29
|
+
size: number;
|
|
30
|
+
add: (value: SetValue<T>) => Observable<T>;
|
|
28
31
|
};
|
|
29
32
|
interface ObservableBoolean extends ObservablePrimitive<boolean> {
|
|
30
33
|
toggle(): void;
|
|
@@ -35,7 +38,7 @@ type ObservableAny = Partial<ObservableObjectFns<any>> & ObservablePrimitive<any
|
|
|
35
38
|
interface ImmutableObservableSimple<T> {
|
|
36
39
|
peek(): T;
|
|
37
40
|
get(trackingType?: any): any;
|
|
38
|
-
onChange(cb: ListenerFn<
|
|
41
|
+
onChange(cb: ListenerFn<T>, options?: any): () => void;
|
|
39
42
|
}
|
|
40
43
|
interface ImmutableObservableBase<T> extends ImmutableObservableSimple<T> {
|
|
41
44
|
peek(): RemoveObservables<T>;
|
|
@@ -54,10 +57,10 @@ interface MutableObservableSimple {
|
|
|
54
57
|
}
|
|
55
58
|
interface MutableObservableBase<T> extends MutableObservableSimple {
|
|
56
59
|
set(value: (prev: RemoveObservables<T>) => RemoveObservables<T>): void;
|
|
60
|
+
set(value: Observable<RemoveObservables<T>>): void;
|
|
57
61
|
set(value: RecursiveValueOrFunction<T>): void;
|
|
58
62
|
set(value: Promise<RemoveObservables<T>>): void;
|
|
59
63
|
set(value: RemoveObservables<T>): void;
|
|
60
|
-
set(value: Observable<RemoveObservables<T>>): void;
|
|
61
64
|
delete(): void;
|
|
62
65
|
}
|
|
63
66
|
type UndefinedIf<T, U> = U extends true ? T | undefined : T;
|
|
@@ -76,37 +79,39 @@ type ObservableChildren<T, Nullable = IsNullable<T>> = {
|
|
|
76
79
|
[K in keyof T]-?: Observable<UndefinedIf<T[K], Nullable>>;
|
|
77
80
|
};
|
|
78
81
|
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 ?
|
|
82
|
+
[K in keyof T]-?: T[K] extends Observable ? T[K] : T[K] extends (key: infer Key extends string | number) => Promise<infer t> | infer t ? IsLookupFunction<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
83
|
};
|
|
81
84
|
type IsStrictAny<T> = 0 extends 1 & T ? true : false;
|
|
82
85
|
type ObservableObject<T> = ObservableObjectFunctions<ObservableProps<T> & NonObservableProps<T>> & ObservableChildren<ObservableProps<T>> & ObservableFunctionChildren<NonObservableProps<T>>;
|
|
83
86
|
type ObservableFunction<T> = T extends () => infer t ? t | (() => t) : T;
|
|
84
|
-
type
|
|
87
|
+
type IsLookupFunction<T> = T extends (...args: infer P) => any ? P extends {
|
|
85
88
|
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>] ?
|
|
89
|
+
} ? P[0] extends string | ObservablePrimitive<string> | number | ObservablePrimitive<number> ? true : false : false : false;
|
|
90
|
+
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>] ? IsLookupFunction<T> extends true ? Observable<Record<K, t>> : t : IsLookupFunction<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
91
|
type Observable<T = any> = ObservableNode<T> & {};
|
|
89
92
|
type ObservableParam<T = any> = ImmutableObservableSimple<T> & MutableObservableSimple;
|
|
90
|
-
type
|
|
93
|
+
type FixExpanded<T> = [T] extends [boolean] ? boolean : T;
|
|
94
|
+
type ValueOrFunction<T> = [T] extends [Function] ? T : T | ImmutableObservableBase<FixExpanded<T> | T> | Promise<FixExpanded<T> | T> | (() => FixExpanded<T> | T | Promise<FixExpanded<T> | T> | ImmutableObservableBase<FixExpanded<T> | T>);
|
|
91
95
|
type ValueOrFunctionKeys<T> = {
|
|
92
96
|
[K in keyof T]: RecursiveValueOrFunction<T[K]>;
|
|
93
97
|
};
|
|
94
98
|
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
99
|
|
|
96
100
|
declare const symbolOpaque: unique symbol;
|
|
101
|
+
declare const symbolPlain: unique symbol;
|
|
97
102
|
declare function getPathType(value: any): TypeAtPath;
|
|
98
|
-
declare function safeStringify(value: any):
|
|
103
|
+
declare function safeStringify(value: any): any;
|
|
99
104
|
declare function safeParse(value: any): any;
|
|
100
105
|
declare function clone<T>(value: T): any;
|
|
101
106
|
declare function isObservable(value$: any): value$ is Observable;
|
|
102
|
-
declare function getNode(value$: ObservableParam):
|
|
103
|
-
declare function setNodeValue(node:
|
|
107
|
+
declare function getNode(value$: ObservableParam): NodeInfo;
|
|
108
|
+
declare function setNodeValue(node: NodeInfo, newValue: any): {
|
|
104
109
|
prevValue: any;
|
|
105
110
|
newValue: any;
|
|
106
111
|
};
|
|
107
|
-
declare function getNodeValue(node:
|
|
108
|
-
declare function ensureNodeValue(node:
|
|
109
|
-
declare function findIDKey(obj: unknown | undefined, node:
|
|
112
|
+
declare function getNodeValue(node: NodeInfo): any;
|
|
113
|
+
declare function ensureNodeValue(node: NodeInfo): any;
|
|
114
|
+
declare function findIDKey(obj: unknown | undefined, node: NodeInfo): string | ((value: any) => string) | undefined;
|
|
110
115
|
|
|
111
116
|
type TrackingType = undefined | true | symbol;
|
|
112
117
|
interface GetOptions {
|
|
@@ -115,11 +120,15 @@ interface GetOptions {
|
|
|
115
120
|
type OpaqueObject<T> = T & {
|
|
116
121
|
[symbolOpaque]: true;
|
|
117
122
|
};
|
|
123
|
+
type PlainObject<T> = T & {
|
|
124
|
+
[symbolPlain]: true;
|
|
125
|
+
};
|
|
118
126
|
interface ListenerParams<T = any> {
|
|
119
127
|
value: T;
|
|
120
128
|
getPrevious: () => T;
|
|
121
129
|
changes: Change[];
|
|
122
|
-
|
|
130
|
+
isFromSync: boolean;
|
|
131
|
+
isFromPersist: boolean;
|
|
123
132
|
}
|
|
124
133
|
type ListenerFn<T = any> = (params: ListenerParams<T>) => void;
|
|
125
134
|
interface ObservableEvent {
|
|
@@ -146,31 +155,31 @@ interface ObservableRoot {
|
|
|
146
155
|
}
|
|
147
156
|
type Primitive = boolean | string | number | Date;
|
|
148
157
|
type NotPrimitive<T> = T extends Primitive ? never : T;
|
|
149
|
-
interface
|
|
158
|
+
interface NodeListener {
|
|
150
159
|
track: TrackingType;
|
|
151
160
|
noArgs?: boolean;
|
|
152
161
|
listener: ListenerFn;
|
|
153
162
|
}
|
|
154
163
|
interface TrackingState {
|
|
155
|
-
nodes?: Map<
|
|
156
|
-
traceListeners?: (nodes: Map<
|
|
164
|
+
nodes?: Map<NodeInfo, TrackingNode>;
|
|
165
|
+
traceListeners?: (nodes: Map<NodeInfo, TrackingNode>) => void;
|
|
157
166
|
traceUpdates?: (fn: Function) => Function;
|
|
158
167
|
}
|
|
159
|
-
interface
|
|
160
|
-
children?: Map<string,
|
|
168
|
+
interface BaseNodeInfo {
|
|
169
|
+
children?: Map<string, ChildNodeInfo>;
|
|
161
170
|
proxy?: object;
|
|
162
171
|
root: ObservableRoot;
|
|
163
|
-
listeners?: Set<
|
|
164
|
-
listenersImmediate?: Set<
|
|
172
|
+
listeners?: Set<NodeListener>;
|
|
173
|
+
listenersImmediate?: Set<NodeListener>;
|
|
165
174
|
isEvent?: boolean;
|
|
166
|
-
linkedToNode?:
|
|
175
|
+
linkedToNode?: NodeInfo;
|
|
167
176
|
linkedToNodeDispose?: () => void;
|
|
168
177
|
activatedObserveDispose?: () => void;
|
|
169
|
-
linkedFromNodes?: Set<
|
|
178
|
+
linkedFromNodes?: Set<NodeInfo>;
|
|
170
179
|
isSetting?: number;
|
|
171
180
|
isAssigning?: number;
|
|
172
181
|
isComputing?: boolean;
|
|
173
|
-
parentOther?:
|
|
182
|
+
parentOther?: NodeInfo;
|
|
174
183
|
functions?: Map<string, Function | Observable<any>>;
|
|
175
184
|
lazy?: boolean;
|
|
176
185
|
lazyFn?: Function;
|
|
@@ -178,24 +187,27 @@ interface BaseNodeValue {
|
|
|
178
187
|
numListenersRecursive: number;
|
|
179
188
|
state?: Observable<ObservableSyncState>;
|
|
180
189
|
activated?: boolean;
|
|
190
|
+
recursivelyAutoActivated?: boolean;
|
|
181
191
|
activationState?: LinkedOptions & {
|
|
182
192
|
onError?: () => void;
|
|
183
|
-
|
|
193
|
+
onChange: (params: UpdateFnParams) => void | Promise<void>;
|
|
184
194
|
};
|
|
185
195
|
dirtyFn?: () => void;
|
|
186
|
-
dirtyChildren?: Set<
|
|
196
|
+
dirtyChildren?: Set<NodeInfo>;
|
|
197
|
+
numGets?: number;
|
|
198
|
+
getNumResolved?: number;
|
|
187
199
|
}
|
|
188
|
-
interface
|
|
200
|
+
interface RootNodeInfo extends BaseNodeInfo {
|
|
189
201
|
parent?: undefined;
|
|
190
202
|
key?: undefined;
|
|
191
203
|
}
|
|
192
|
-
interface
|
|
193
|
-
parent:
|
|
204
|
+
interface ChildNodeInfo extends BaseNodeInfo {
|
|
205
|
+
parent: NodeInfo;
|
|
194
206
|
key: string;
|
|
195
207
|
}
|
|
196
|
-
type
|
|
208
|
+
type NodeInfo = RootNodeInfo | ChildNodeInfo;
|
|
197
209
|
interface TrackingNode {
|
|
198
|
-
node:
|
|
210
|
+
node: NodeInfo;
|
|
199
211
|
track: TrackingType;
|
|
200
212
|
num: number;
|
|
201
213
|
}
|
|
@@ -210,17 +222,18 @@ interface ObserveEventCallback<T> {
|
|
|
210
222
|
previous?: T | undefined;
|
|
211
223
|
value?: T;
|
|
212
224
|
cancel: boolean;
|
|
213
|
-
nodes: Map<
|
|
225
|
+
nodes: Map<NodeInfo, TrackingNode> | undefined;
|
|
214
226
|
refresh: () => void;
|
|
215
227
|
onCleanup?: () => void;
|
|
216
228
|
onCleanupReaction?: () => void;
|
|
217
229
|
}
|
|
218
230
|
type SetParams<T> = ListenerParams<T extends Promise<infer t> ? t : T>;
|
|
231
|
+
type WaitForSet<T> = ((params: WaitForSetFnParams<T>) => any) | Promise<any> | ObservableParam<any> | ObservableEvent | ObservableParam<any>[] | ObservableEvent[];
|
|
219
232
|
interface LinkedOptions<T = any> {
|
|
220
233
|
get?: () => Promise<T> | T;
|
|
221
234
|
set?: (params: SetParams<T>) => void | Promise<any>;
|
|
222
|
-
waitFor?: Selector<
|
|
223
|
-
waitForSet?:
|
|
235
|
+
waitFor?: Selector<unknown>;
|
|
236
|
+
waitForSet?: WaitForSet<T>;
|
|
224
237
|
initial?: (() => T) | T;
|
|
225
238
|
activate?: 'auto' | 'lazy';
|
|
226
239
|
}
|
|
@@ -229,12 +242,12 @@ interface WaitForSetFnParams<T = any> {
|
|
|
229
242
|
changes: Change[];
|
|
230
243
|
}
|
|
231
244
|
type GetMode = 'set' | 'assign' | 'merge' | 'append' | 'prepend';
|
|
232
|
-
interface UpdateFnParams {
|
|
233
|
-
value:
|
|
245
|
+
interface UpdateFnParams<T = any> {
|
|
246
|
+
value: T;
|
|
234
247
|
mode?: GetMode;
|
|
235
248
|
lastSync?: number | undefined;
|
|
236
249
|
}
|
|
237
|
-
type UpdateFn = (params: UpdateFnParams) => void;
|
|
250
|
+
type UpdateFn<T = any> = (params: UpdateFnParams<T>) => void;
|
|
238
251
|
type Linked<T> = T;
|
|
239
252
|
interface ObserveOptions {
|
|
240
253
|
immediate?: boolean;
|
|
@@ -245,12 +258,19 @@ interface ObservableSyncStateBase {
|
|
|
245
258
|
isSyncEnabled: boolean;
|
|
246
259
|
lastSync?: number;
|
|
247
260
|
syncCount?: number;
|
|
248
|
-
|
|
261
|
+
isGetting?: boolean;
|
|
262
|
+
isSetting?: boolean;
|
|
263
|
+
numPendingGets?: number;
|
|
264
|
+
numPendingSets?: number;
|
|
249
265
|
sync: () => Promise<void>;
|
|
250
266
|
getPendingChanges: () => Record<string, {
|
|
251
267
|
p: any;
|
|
252
268
|
v?: any;
|
|
253
269
|
}> | undefined;
|
|
270
|
+
resetPersistence: () => Promise<void>;
|
|
271
|
+
reset: () => Promise<void>;
|
|
272
|
+
numPendingRemoteLoads?: number;
|
|
273
|
+
clearPersist: () => Promise<void>;
|
|
254
274
|
}
|
|
255
275
|
interface ObservableState {
|
|
256
276
|
isLoaded: boolean;
|
|
@@ -265,6 +285,18 @@ interface RetryOptions {
|
|
|
265
285
|
maxDelay?: number;
|
|
266
286
|
}
|
|
267
287
|
|
|
288
|
+
declare const ObservableHint: {
|
|
289
|
+
opaque: <T extends object>(value: T) => OpaqueObject<T>;
|
|
290
|
+
plain: <T extends object>(value: T) => PlainObject<T>;
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
declare function getProxy(node: NodeInfo, p?: string, asFunction?: Function): Observable;
|
|
294
|
+
declare function set(node: NodeInfo, newValue?: any): void;
|
|
295
|
+
declare function get(node: NodeInfo, options?: TrackingType | GetOptions): any;
|
|
296
|
+
declare function peek(node: NodeInfo): any;
|
|
297
|
+
declare function isObserved(node: NodeInfo): boolean;
|
|
298
|
+
declare function shouldIgnoreUnobserved(node: NodeInfo, refreshFn: () => void): true | undefined;
|
|
299
|
+
|
|
268
300
|
declare function createPreviousHandler(value: any, changes: Change[]): () => any;
|
|
269
301
|
declare function batch(fn: () => void): void;
|
|
270
302
|
declare function beginBatch(): void;
|
|
@@ -273,18 +305,6 @@ declare function endBatch(force?: boolean): void;
|
|
|
273
305
|
declare function computed<T>(get: () => RecursiveValueOrFunction<T>): Observable<T>;
|
|
274
306
|
declare function computed<T, T2 = T>(get: (() => RecursiveValueOrFunction<T>) | RecursiveValueOrFunction<T>, set: (value: T2) => void): Observable<T>;
|
|
275
307
|
|
|
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
308
|
declare function event(): ObservableEvent;
|
|
289
309
|
|
|
290
310
|
declare function computeSelector<T>(selector: Selector<T>, e?: ObserveEvent<T>, retainObservable?: boolean): T;
|
|
@@ -292,8 +312,7 @@ declare function getObservableIndex(value$: ObservableParam): number;
|
|
|
292
312
|
declare function opaqueObject<T extends object>(value: T): OpaqueObject<T>;
|
|
293
313
|
declare function getValueAtPath(obj: Record<string, any>, path: string[]): any;
|
|
294
314
|
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
|
|
296
|
-
declare function mergeIntoObservable<T extends ObservableParam<Record<string, any>> | object>(target: T, ...sources: any[]): T;
|
|
315
|
+
declare function mergeIntoObservable<T extends ObservableParam<any>>(target: T, ...sources: any[]): T;
|
|
297
316
|
declare function constructObjectWithPath(path: string[], pathTypes: TypeAtPath[], value: any): object;
|
|
298
317
|
declare function deconstructObjectWithPath(path: string[], pathTypes: TypeAtPath[], value: any): object;
|
|
299
318
|
declare function isObservableValueReady(value: any): boolean;
|
|
@@ -301,11 +320,13 @@ declare function setSilently(value$: ObservableParam, newValue: any): any;
|
|
|
301
320
|
declare function initializePathType(pathType: TypeAtPath): any;
|
|
302
321
|
declare function applyChange<T extends object>(value: T, change: Change, applyPrevious?: boolean): T;
|
|
303
322
|
declare function applyChanges<T extends object>(value: T, changes: Change[], applyPrevious?: boolean): T;
|
|
323
|
+
declare function deepMerge<T>(target: T, ...sources: any[]): T;
|
|
304
324
|
|
|
305
325
|
declare const hasOwnProperty: (v: PropertyKey) => boolean;
|
|
306
326
|
declare function isArray(obj: unknown): obj is Array<any>;
|
|
307
327
|
declare function isString(obj: unknown): obj is string;
|
|
308
328
|
declare function isObject(obj: unknown): obj is Record<any, any>;
|
|
329
|
+
declare function isPlainObject(obj: unknown): obj is Record<any, any>;
|
|
309
330
|
declare function isFunction(obj: unknown): obj is Function;
|
|
310
331
|
declare function isPrimitive(arg: unknown): arg is string | number | bigint | boolean | symbol;
|
|
311
332
|
declare function isDate(obj: unknown): obj is Date;
|
|
@@ -313,16 +334,18 @@ declare function isSymbol(obj: unknown): obj is symbol;
|
|
|
313
334
|
declare function isBoolean(obj: unknown): obj is boolean;
|
|
314
335
|
declare function isPromise<T>(obj: unknown): obj is Promise<T>;
|
|
315
336
|
declare function isMap(obj: unknown): obj is Map<any, any>;
|
|
337
|
+
declare function isSet(obj: unknown): obj is Set<any>;
|
|
316
338
|
declare function isNumber(obj: unknown): obj is number;
|
|
317
339
|
declare function isEmpty(obj: object): boolean;
|
|
318
340
|
declare function isNullOrUndefined(value: any): value is undefined | null;
|
|
319
341
|
|
|
342
|
+
declare function linked<T>(params: LinkedOptions<T> | (() => T), options?: LinkedOptions<T>): Linked<T>;
|
|
343
|
+
|
|
320
344
|
declare function observable<T>(): Observable<T | undefined>;
|
|
321
345
|
declare function observable<T>(value: Promise<RecursiveValueOrFunction<T>> | (() => RecursiveValueOrFunction<T>) | RecursiveValueOrFunction<T>): Observable<T>;
|
|
322
346
|
declare function observable<T>(value: T): Observable<T>;
|
|
323
347
|
declare function observablePrimitive<T>(value: Promise<T>): ObservablePrimitive<T>;
|
|
324
348
|
declare function observablePrimitive<T>(value?: T): ObservablePrimitive<T>;
|
|
325
|
-
declare function syncState(obs: ObservableParam): Observable<ObservableSyncState>;
|
|
326
349
|
|
|
327
350
|
declare function observe<T>(run: (e: ObserveEvent<T>) => T | void, options?: ObserveOptions): () => void;
|
|
328
351
|
declare function observe<T>(selector: Selector<T> | ((e: ObserveEvent<T>) => any), reaction?: (e: ObserveEventCallback<T>) => any, options?: ObserveOptions): () => void;
|
|
@@ -332,37 +355,36 @@ declare function proxy<T extends Record<string, any>>(get: <K extends keyof T>(k
|
|
|
332
355
|
declare function proxy<T>(get: (key: string) => ObservableParam<T>): Observable<Record<string, T>>;
|
|
333
356
|
declare function proxy<T>(get: (key: string) => T): Observable<Record<string, T>>;
|
|
334
357
|
|
|
358
|
+
declare function syncState(obs: ObservableParam): Observable<ObservableSyncState>;
|
|
359
|
+
|
|
335
360
|
declare function trackSelector<T>(selector: Selector<T>, update: (params: ListenerParams) => void, observeEvent?: ObserveEvent<T>, observeOptions?: ObserveOptions, createResubscribe?: boolean): {
|
|
336
|
-
nodes: Map<
|
|
361
|
+
nodes: Map<NodeInfo, TrackingNode> | undefined;
|
|
337
362
|
value: T;
|
|
338
363
|
dispose: (() => void) | undefined;
|
|
339
364
|
resubscribe: (() => () => void) | undefined;
|
|
340
365
|
};
|
|
341
366
|
|
|
342
367
|
declare function when<T, T2>(predicate: Promise<T>, effect: (value: T) => T2): Promise<T2>;
|
|
368
|
+
declare function when<T, T2>(predicate: Selector<T>[], effect: (value: T[]) => T2): Promise<T2>;
|
|
343
369
|
declare function when<T, T2>(predicate: Selector<T>, effect: (value: T) => T2): Promise<T2>;
|
|
370
|
+
declare function when<T>(predicate: Selector<T>[]): Promise<T[]>;
|
|
344
371
|
declare function when<T>(predicate: Selector<T>): Promise<T>;
|
|
345
372
|
declare function whenReady<T, T2>(predicate: Promise<T>, effect: (value: T) => T2): Promise<T2>;
|
|
373
|
+
declare function whenReady<T, T2>(predicate: Selector<T>[], effect: (value: T[]) => T2): Promise<T2[]>;
|
|
346
374
|
declare function whenReady<T, T2>(predicate: Selector<T>, effect: (value: T) => T2): Promise<T2>;
|
|
375
|
+
declare function whenReady<T>(predicate: Selector<T>[]): Promise<T[]>;
|
|
347
376
|
declare function whenReady<T>(predicate: Selector<T>): Promise<T>;
|
|
348
377
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
declare function
|
|
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>;
|
|
378
|
+
interface ObservablePrimitiveState {
|
|
379
|
+
_node: NodeInfo;
|
|
380
|
+
toggle: () => void;
|
|
381
|
+
}
|
|
382
|
+
declare function ObservablePrimitiveClass<T>(this: ObservablePrimitive<T> & ObservablePrimitiveState, node: NodeInfo): void;
|
|
362
383
|
|
|
363
384
|
declare const internal: {
|
|
364
385
|
createPreviousHandler: typeof createPreviousHandler;
|
|
365
386
|
clone: typeof clone;
|
|
387
|
+
deepMerge: typeof deepMerge;
|
|
366
388
|
ensureNodeValue: typeof ensureNodeValue;
|
|
367
389
|
findIDKey: typeof findIDKey;
|
|
368
390
|
get: typeof get;
|
|
@@ -373,22 +395,25 @@ declare const internal: {
|
|
|
373
395
|
getValueAtPath: typeof getValueAtPath;
|
|
374
396
|
globalState: {
|
|
375
397
|
isLoadingLocal: boolean;
|
|
376
|
-
isMerging: boolean;
|
|
377
398
|
isLoadingRemote: boolean;
|
|
378
|
-
activateSyncedNode: (node:
|
|
399
|
+
activateSyncedNode: (node: NodeInfo, newValue: any) => {
|
|
379
400
|
update: UpdateFn;
|
|
380
401
|
value: any;
|
|
381
402
|
};
|
|
382
|
-
pendingNodes: Map<
|
|
383
|
-
dirtyNodes: Set<
|
|
403
|
+
pendingNodes: Map<NodeInfo, () => void>;
|
|
404
|
+
dirtyNodes: Set<NodeInfo>;
|
|
384
405
|
replacer: ((this: any, key: string, value: any) => any) | undefined;
|
|
385
406
|
reviver: ((this: any, key: string, value: any) => any) | undefined;
|
|
386
407
|
};
|
|
387
408
|
initializePathType: typeof initializePathType;
|
|
388
|
-
|
|
409
|
+
ObservablePrimitiveClass: typeof ObservablePrimitiveClass;
|
|
410
|
+
observableProperties: Map<string, {
|
|
411
|
+
get: (node: NodeInfo, ...args: any[]) => any;
|
|
412
|
+
set: (node: NodeInfo, value: any) => any;
|
|
413
|
+
}>;
|
|
414
|
+
observableFns: Map<string, (node: NodeInfo, ...args: any[]) => any>;
|
|
389
415
|
optimized: symbol;
|
|
390
416
|
peek: typeof peek;
|
|
391
|
-
runWithRetry: typeof runWithRetry;
|
|
392
417
|
safeParse: typeof safeParse;
|
|
393
418
|
safeStringify: typeof safeStringify;
|
|
394
419
|
set: typeof set;
|
|
@@ -401,4 +426,4 @@ declare const internal: {
|
|
|
401
426
|
};
|
|
402
427
|
};
|
|
403
428
|
|
|
404
|
-
export { type ArrayValue, type Change, type
|
|
429
|
+
export { type ArrayValue, type Change, type ChildNodeInfo, type ClassConstructor, type GetMode, type GetOptions, type ImmutableObservableBase, type Linked, type LinkedOptions, type ListenerFn, type ListenerParams, type NodeInfo, type NodeListener, type NotPrimitive, type Observable, type ObservableBoolean, type ObservableEvent, ObservableHint, type ObservableListenerDispose, type ObservableMap, type ObservableObject, type ObservableObjectFns, type ObservableParam, type ObservablePrimitive, type ObservableRoot, type ObservableState, type ObservableSyncState, type ObservableSyncStateBase, type ObservableValue, type ObserveEvent, type ObserveEventCallback, type ObserveOptions, type OpaqueObject, type PlainObject, type Primitive, type RecordValue, type RecursiveValueOrFunction, type RemoveObservables, type RetryOptions, type RootNodeInfo, type Selector, type SetParams, type TrackingNode, type TrackingState, type TrackingType, type TypeAtPath, type UpdateFn, type UpdateFnParams, type WaitForSet, type WaitForSetFnParams, applyChange, applyChanges, batch, beginBatch, computeSelector, computed, constructObjectWithPath, deconstructObjectWithPath, endBatch, event, getObservableIndex, hasOwnProperty, internal, isArray, isBoolean, isDate, isEmpty, isFunction, isMap, isNullOrUndefined, isNumber, isObject, isObservable, isObservableValueReady, isObserved, isPlainObject, isPrimitive, isPromise, isSet, isString, isSymbol, linked, mergeIntoObservable, observable, observablePrimitive, observe, opaqueObject, proxy, setAtPath, setSilently, shouldIgnoreUnobserved, syncState, trackSelector, when, whenReady };
|