@flashist/appframework 0.0.346 → 0.0.348

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flashist/appframework",
3
- "version": "0.0.346",
3
+ "version": "0.0.348",
4
4
  "scripts": {
5
5
  "build": "gulp",
6
6
  "publish:patch": "npm version patch && npm run build && cd ./dist && npm publish",
@@ -43,11 +43,32 @@ export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
43
43
  protected getPathsHelperData(deepKey: string, config?: IAppStateChangeConfigVO): IDeepKeyHelperVO;
44
44
  protected triggerPreChangeHooks<StateType, DeepKeyType extends keyof Flatten<StateType>>(stateForTypings: StateType, deepKey: DeepKeyType, config: IAppStateChangeConfigVO): void;
45
45
  getValue<StateType extends object, D extends number = DefaultFlattenDepth>(): <DeepKeyType extends keyof Flatten<StateType, never, D>>(key: DeepKeyType) => Partial<Flatten<StateType, never, D>[DeepKeyType]>;
46
+ /**
47
+ * Use with pre-computed Flatten types to avoid repeated type instantiation.
48
+ * @example
49
+ * type MyPaths = Flatten<MyState, 6>;
50
+ * appStateStorage().getValuePrecomputed<MyPaths>()("deep.path");
51
+ */
52
+ getValuePrecomputed<FlatType extends object>(): <K extends keyof FlatType>(key: K) => Partial<FlatType[K]>;
46
53
  protected innerGetValue<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType): Partial<ValueType>;
47
54
  protected processStateAction<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, config: IAppStateChangeConfigVO<ValueType>): any;
48
55
  substitute<StateType extends object, D extends number = DefaultFlattenDepth>(): <DeepKeyType extends keyof Flatten<StateType, never, D>>(key: DeepKeyType, value: DeepPartial<Flatten<StateType, never, D>[DeepKeyType]>) => void;
56
+ /**
57
+ * Use with pre-computed Flatten types to avoid repeated type instantiation.
58
+ * @example
59
+ * type MyPaths = Flatten<MyState, 6>;
60
+ * appStateStorage().substitutePrecomputed<MyPaths>()("deep.path", value);
61
+ */
62
+ substitutePrecomputed<FlatType extends object>(): <K extends keyof FlatType>(key: K, value: DeepPartial<FlatType[K]>) => void;
49
63
  protected innerSubstitute<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, value: DeepPartial<ValueType>): void;
50
64
  change<StateType extends object, D extends number = DefaultFlattenDepth>(): <DeepKeyType extends keyof Flatten<StateType, never, D>>(key: DeepKeyType, value: DeepPartial<Flatten<StateType, never, D>[DeepKeyType]>) => void;
65
+ /**
66
+ * Use with pre-computed Flatten types to avoid repeated type instantiation.
67
+ * @example
68
+ * type MyPaths = Flatten<MyState, 6>;
69
+ * appStateStorage().changePrecomputed<MyPaths>()("deep.path", value);
70
+ */
71
+ changePrecomputed<FlatType extends object>(): <K extends keyof FlatType>(key: K, value: DeepPartial<FlatType[K]>) => void;
51
72
  protected innerChange<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, value: DeepPartial<ValueType>): void;
52
73
  delete<StateType extends object, D extends number = DefaultFlattenDepth>(): <DeepKeyType extends keyof Flatten<StateType, never, D>, ValueType extends Flatten<StateType, never, D>[DeepKeyType] & Array<any> = Flatten<StateType, never, D>[DeepKeyType] & Array<any>>(key: DeepKeyType) => (((StateType extends readonly any[] ? Exclude<keyof StateType, keyof any[]> extends never ? {
53
74
  [k: number]: StateType[number];
@@ -110,8 +131,82 @@ export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
110
131
  } : Omit<T_19, keyof any[]> : T_19 : never : never) extends infer T_20 ? T_20 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_21 ? T_21 extends U[K_4] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
111
132
  [k: number]: T_21[number];
112
133
  } : Omit<T_21, keyof any[]> : T_21 : never : never) ? T_20 extends never ? T_20 : { [P_15 in keyof T_20 as (<T_21>() => T_21 extends { [Q in P_15]: T_20[P_15]; } ? 1 : 2) extends <T_21>() => T_21 extends { -readonly [Q in P_15]: T_20[P_15]; } ? 1 : 2 ? P_15 : never]: T_20[P_15]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: U[K_5] extends infer T_22 ? T_22 extends U[K_5] ? T_22 extends never ? { [P_16 in K_5]: T_22; } : T_22 extends object ? { [P_17 in keyof T_22 as `${Extract<K_5, string | number>}.${Extract<P_17, string | number>}`]: T_22[P_17]; } : { [P_18 in K_5]: T_22; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_18 extends never ? { [P_12 in K_4]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_4, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_4]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_11 extends never ? { [P_7 in K_2]: T_11; } : T_11 extends object ? { [P_8 in keyof T_11 as `${Extract<K_2, string | number>}.${Extract<P_8, string | number>}`]: T_11[P_8]; } : { [P_9 in K_2]: T_11; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_4 extends never ? { [P_2 in K]: T_4; } : T_4 extends object ? { [P_3 in keyof T_4 as `${Extract<K, string | number>}.${Extract<P_3, string | number>}`]: T_4[P_3]; } : { [P_4 in K]: T_4; } : never : never) => void; }[keyof U] | ((x: U) => void) extends (x: infer I) => void ? { [K_1 in keyof I]: I[K_1]; } : never : U : never)[any];
134
+ /**
135
+ * Use with pre-computed Flatten types to avoid repeated type instantiation.
136
+ * @example
137
+ * type MyPaths = Flatten<MyState, 6>;
138
+ * appStateStorage().deletePrecomputed<MyPaths>()("deep.path");
139
+ */
140
+ deletePrecomputed<FlatType extends object>(): <K extends keyof FlatType>(key: K) => (((FlatType extends readonly any[] ? Exclude<keyof FlatType, keyof any[]> extends never ? {
141
+ [k: number]: FlatType[number];
142
+ } : Omit<FlatType, keyof any[]> : FlatType) extends infer T ? T extends (FlatType extends readonly any[] ? Exclude<keyof FlatType, keyof any[]> extends never ? {
143
+ [k: number]: FlatType[number];
144
+ } : Omit<FlatType, keyof any[]> : FlatType) ? T extends never ? T : { [P in keyof T as (<T_1>() => T_1 extends { [Q in P]: T[P]; } ? 1 : 2) extends <T_1>() => T_1 extends { -readonly [Q in P]: T[P]; } ? 1 : 2 ? P : never]: T[P]; } : never : never) extends infer U ? U extends never ? U : U extends object ? { [K_1 in keyof U]-?: (x: (((0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_1 ? T_1 extends U[K_1] ? T_1 extends readonly any[] ? Exclude<keyof T_1, keyof any[]> extends never ? {
145
+ [k: number]: T_1[number];
146
+ } : Omit<T_1, keyof any[]> : T_1 : never : never) extends infer T_2 ? T_2 extends (0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_3 ? T_3 extends U[K_1] ? T_3 extends readonly any[] ? Exclude<keyof T_3, keyof any[]> extends never ? {
147
+ [k: number]: T_3[number];
148
+ } : Omit<T_3, keyof any[]> : T_3 : never : never) ? T_2 extends never ? T_2 : { [P_1 in keyof T_2 as (<T_3>() => T_3 extends { [Q in P_1]: T_2[P_1]; } ? 1 : 2) extends <T_3>() => T_3 extends { -readonly [Q in P_1]: T_2[P_1]; } ? 1 : 2 ? P_1 : never]: T_2[P_1]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_4 ? T_4 extends U[K_3] ? T_4 extends readonly any[] ? Exclude<keyof T_4, keyof any[]> extends never ? {
149
+ [k: number]: T_4[number];
150
+ } : Omit<T_4, keyof any[]> : T_4 : never : never) extends infer T_5 ? T_5 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_6 ? T_6 extends U[K_3] ? T_6 extends readonly any[] ? Exclude<keyof T_6, keyof any[]> extends never ? {
151
+ [k: number]: T_6[number];
152
+ } : Omit<T_6, keyof any[]> : T_6 : never : never) ? T_5 extends never ? T_5 : { [P_2 in keyof T_5 as (<T_6>() => T_6 extends { [Q in P_2]: T_5[P_2]; } ? 1 : 2) extends <T_6>() => T_6 extends { -readonly [Q in P_2]: T_5[P_2]; } ? 1 : 2 ? P_2 : never]: T_5[P_2]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_7 ? T_7 extends U[K_4] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
153
+ [k: number]: T_7[number];
154
+ } : Omit<T_7, keyof any[]> : T_7 : never : never) extends infer T_8 ? T_8 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_9 ? T_9 extends U[K_4] ? T_9 extends readonly any[] ? Exclude<keyof T_9, keyof any[]> extends never ? {
155
+ [k: number]: T_9[number];
156
+ } : Omit<T_9, keyof any[]> : T_9 : never : never) ? T_8 extends never ? T_8 : { [P_3 in keyof T_8 as (<T_9>() => T_9 extends { [Q in P_3]: T_8[P_3]; } ? 1 : 2) extends <T_9>() => T_9 extends { -readonly [Q in P_3]: T_8[P_3]; } ? 1 : 2 ? P_3 : never]: T_8[P_3]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: U[K_5] extends infer T_10 ? T_10 extends U[K_5] ? T_10 extends never ? { [P_4 in K_5]: T_10; } : T_10 extends object ? { [P_5 in keyof T_10 as `${Extract<K_5, string | number>}.${Extract<P_5, string | number>}`]: T_10[P_5]; } : { [P_6 in K_5]: T_10; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) extends infer T_10 ? T_10 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_11 ? T_11 extends U[K_4] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
157
+ [k: number]: T_11[number];
158
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_13 ? T_13 extends U[K_4] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
159
+ [k: number]: T_13[number];
160
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: U[K_5] extends infer T_14 ? T_14 extends U[K_5] ? T_14 extends never ? { [P_8 in K_5]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_5, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_5]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) ? T_10 extends never ? { [P_4 in K_4]: T_10; } : T_10 extends object ? { [P_5 in keyof T_10 as `${Extract<K_4, string | number>}.${Extract<P_5, string | number>}`]: T_10[P_5]; } : { [P_6 in K_4]: T_10; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_7 ? T_7 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_8 ? T_8 extends U[K_3] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
161
+ [k: number]: T_8[number];
162
+ } : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_10 ? T_10 extends U[K_3] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
163
+ [k: number]: T_10[number];
164
+ } : Omit<T_10, keyof any[]> : T_10 : never : never) ? T_9 extends never ? T_9 : { [P_6 in keyof T_9 as (<T_10>() => T_10 extends { [Q in P_6]: T_9[P_6]; } ? 1 : 2) extends <T_10>() => T_10 extends { -readonly [Q in P_6]: T_9[P_6]; } ? 1 : 2 ? P_6 : never]: T_9[P_6]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_11 ? T_11 extends U[K_4] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
165
+ [k: number]: T_11[number];
166
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_13 ? T_13 extends U[K_4] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
167
+ [k: number]: T_13[number];
168
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_14 ? T_14 extends U[K_6] ? T_14 extends never ? { [P_8 in K_6]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_6, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_6]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_15 ? T_15 extends U[K_4] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
169
+ [k: number]: T_15[number];
170
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_17 ? T_17 extends U[K_4] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
171
+ [k: number]: T_17[number];
172
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_18 ? T_18 extends U[K_6] ? T_18 extends never ? { [P_12 in K_6]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_6, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_6]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_14 extends never ? { [P_8 in K_4]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_4, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_4]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_7 extends never ? { [P_3 in K_3]: T_7; } : T_7 extends object ? { [P_4 in keyof T_7 as `${Extract<K_3, string | number>}.${Extract<P_4, string | number>}`]: T_7[P_4]; } : { [P_5 in K_3]: T_7; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_4 ? T_4 extends (((0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_5 ? T_5 extends U[K_1] ? T_5 extends readonly any[] ? Exclude<keyof T_5, keyof any[]> extends never ? {
173
+ [k: number]: T_5[number];
174
+ } : Omit<T_5, keyof any[]> : T_5 : never : never) extends infer T_6 ? T_6 extends (0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_7 ? T_7 extends U[K_1] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
175
+ [k: number]: T_7[number];
176
+ } : Omit<T_7, keyof any[]> : T_7 : never : never) ? T_6 extends never ? T_6 : { [P_5 in keyof T_6 as (<T_7>() => T_7 extends { [Q in P_5]: T_6[P_5]; } ? 1 : 2) extends <T_7>() => T_7 extends { -readonly [Q in P_5]: T_6[P_5]; } ? 1 : 2 ? P_5 : never]: T_6[P_5]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_8 ? T_8 extends U[K_3] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
177
+ [k: number]: T_8[number];
178
+ } : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_10 ? T_10 extends U[K_3] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
179
+ [k: number]: T_10[number];
180
+ } : Omit<T_10, keyof any[]> : T_10 : never : never) ? T_9 extends never ? T_9 : { [P_6 in keyof T_9 as (<T_10>() => T_10 extends { [Q in P_6]: T_9[P_6]; } ? 1 : 2) extends <T_10>() => T_10 extends { -readonly [Q in P_6]: T_9[P_6]; } ? 1 : 2 ? P_6 : never]: T_9[P_6]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_11 ? T_11 extends U[K_5] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
181
+ [k: number]: T_11[number];
182
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_13 ? T_13 extends U[K_5] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
183
+ [k: number]: T_13[number];
184
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_14 ? T_14 extends U[K_6] ? T_14 extends never ? { [P_8 in K_6]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_6, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_6]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_15 ? T_15 extends U[K_5] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
185
+ [k: number]: T_15[number];
186
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_17 ? T_17 extends U[K_5] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
187
+ [k: number]: T_17[number];
188
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_18 ? T_18 extends U[K_6] ? T_18 extends never ? { [P_12 in K_6]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_6, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_6]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_14 extends never ? { [P_8 in K_5]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_5, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_5]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_11 ? T_11 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_12 ? T_12 extends U[K_3] ? T_12 extends readonly any[] ? Exclude<keyof T_12, keyof any[]> extends never ? {
189
+ [k: number]: T_12[number];
190
+ } : Omit<T_12, keyof any[]> : T_12 : never : never) extends infer T_13 ? T_13 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_14 ? T_14 extends U[K_3] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
191
+ [k: number]: T_14[number];
192
+ } : Omit<T_14, keyof any[]> : T_14 : never : never) ? T_13 extends never ? T_13 : { [P_10 in keyof T_13 as (<T_14>() => T_14 extends { [Q in P_10]: T_13[P_10]; } ? 1 : 2) extends <T_14>() => T_14 extends { -readonly [Q in P_10]: T_13[P_10]; } ? 1 : 2 ? P_10 : never]: T_13[P_10]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_15 ? T_15 extends U[K_5] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
193
+ [k: number]: T_15[number];
194
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_17 ? T_17 extends U[K_5] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
195
+ [k: number]: T_17[number];
196
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_18 ? T_18 extends U[K_6] ? T_18 extends never ? { [P_12 in K_6]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_6, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_6]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_18 ? T_18 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_19 ? T_19 extends U[K_5] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
197
+ [k: number]: T_19[number];
198
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) extends infer T_20 ? T_20 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_21 ? T_21 extends U[K_5] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
199
+ [k: number]: T_21[number];
200
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) ? T_20 extends never ? T_20 : { [P_15 in keyof T_20 as (<T_21>() => T_21 extends { [Q in P_15]: T_20[P_15]; } ? 1 : 2) extends <T_21>() => T_21 extends { -readonly [Q in P_15]: T_20[P_15]; } ? 1 : 2 ? P_15 : never]: T_20[P_15]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_22 ? T_22 extends U[K_6] ? T_22 extends never ? { [P_16 in K_6]: T_22; } : T_22 extends object ? { [P_17 in keyof T_22 as `${Extract<K_6, string | number>}.${Extract<P_17, string | number>}`]: T_22[P_17]; } : { [P_18 in K_6]: T_22; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_18 extends never ? { [P_12 in K_5]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_5, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_5]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_11 extends never ? { [P_7 in K_3]: T_11; } : T_11 extends object ? { [P_8 in keyof T_11 as `${Extract<K_3, string | number>}.${Extract<P_8, string | number>}`]: T_11[P_8]; } : { [P_9 in K_3]: T_11; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_4 extends never ? { [P_2 in K_1]: T_4; } : T_4 extends object ? { [P_3 in keyof T_4 as `${Extract<K_1, string | number>}.${Extract<P_3, string | number>}`]: T_4[P_3]; } : { [P_4 in K_1]: T_4; } : never : never) => void; }[keyof U] | ((x: U) => void) extends (x: infer I) => void ? { [K_2 in keyof I]: I[K_2]; } : never : U : never)[any];
113
201
  protected innerDelete<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType): ValueType;
114
202
  push<StateType extends object, D extends number = DefaultFlattenDepth>(): <DeepKeyType extends keyof Flatten<StateType, never, D>, ArrayType extends Flatten<StateType, never, D>[DeepKeyType] & Array<any> = Flatten<StateType, never, D>[DeepKeyType] & Array<any>>(key: DeepKeyType, ...elements: ArrayType) => void;
203
+ /**
204
+ * Use with pre-computed Flatten types to avoid repeated type instantiation.
205
+ * @example
206
+ * type MyPaths = Flatten<MyState, 6>;
207
+ * appStateStorage().pushPrecomputed<MyPaths>()("deep.array.path", element1, element2);
208
+ */
209
+ pushPrecomputed<FlatType extends object>(): <K extends keyof FlatType, ArrayType extends FlatType[K] & Array<any>>(key: K, ...elements: ArrayType) => void;
115
210
  protected innerPush<StateType, DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType] & Array<any> = Flatten<StateType>[DeepKeyType] & Array<any>>(stateForTypings: StateType, deepKey: DeepKeyType, ...elements: ArrayType): void;
116
211
  splice<StateType extends object, D extends number = DefaultFlattenDepth>(): <DeepKeyType extends keyof Flatten<StateType, never, D>, ArrayType extends Flatten<StateType, never, D>[DeepKeyType] & Array<any> = Flatten<StateType, never, D>[DeepKeyType] & Array<any>>(key: DeepKeyType, start: number, deleteCount?: number) => (((StateType extends readonly any[] ? Exclude<keyof StateType, keyof any[]> extends never ? {
117
212
  [k: number]: StateType[number];
@@ -174,5 +269,72 @@ export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
174
269
  } : Omit<T_19, keyof any[]> : T_19 : never : never) extends infer T_20 ? T_20 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_21 ? T_21 extends U[K_4] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
175
270
  [k: number]: T_21[number];
176
271
  } : Omit<T_21, keyof any[]> : T_21 : never : never) ? T_20 extends never ? T_20 : { [P_15 in keyof T_20 as (<T_21>() => T_21 extends { [Q in P_15]: T_20[P_15]; } ? 1 : 2) extends <T_21>() => T_21 extends { -readonly [Q in P_15]: T_20[P_15]; } ? 1 : 2 ? P_15 : never]: T_20[P_15]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: U[K_5] extends infer T_22 ? T_22 extends U[K_5] ? T_22 extends never ? { [P_16 in K_5]: T_22; } : T_22 extends object ? { [P_17 in keyof T_22 as `${Extract<K_5, string | number>}.${Extract<P_17, string | number>}`]: T_22[P_17]; } : { [P_18 in K_5]: T_22; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_18 extends never ? { [P_12 in K_4]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_4, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_4]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_11 extends never ? { [P_7 in K_2]: T_11; } : T_11 extends object ? { [P_8 in keyof T_11 as `${Extract<K_2, string | number>}.${Extract<P_8, string | number>}`]: T_11[P_8]; } : { [P_9 in K_2]: T_11; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_4 extends never ? { [P_2 in K]: T_4; } : T_4 extends object ? { [P_3 in keyof T_4 as `${Extract<K, string | number>}.${Extract<P_3, string | number>}`]: T_4[P_3]; } : { [P_4 in K]: T_4; } : never : never) => void; }[keyof U] | ((x: U) => void) extends (x: infer I) => void ? { [K_1 in keyof I]: I[K_1]; } : never : U : never)[any][];
272
+ /**
273
+ * Use with pre-computed Flatten types to avoid repeated type instantiation.
274
+ * @example
275
+ * type MyPaths = Flatten<MyState, 6>;
276
+ * appStateStorage().splicePrecomputed<MyPaths>()("deep.array.path", 0, 1);
277
+ */
278
+ splicePrecomputed<FlatType extends object>(): <K extends keyof FlatType>(key: K, start: number, deleteCount?: number) => (((FlatType extends readonly any[] ? Exclude<keyof FlatType, keyof any[]> extends never ? {
279
+ [k: number]: FlatType[number];
280
+ } : Omit<FlatType, keyof any[]> : FlatType) extends infer T ? T extends (FlatType extends readonly any[] ? Exclude<keyof FlatType, keyof any[]> extends never ? {
281
+ [k: number]: FlatType[number];
282
+ } : Omit<FlatType, keyof any[]> : FlatType) ? T extends never ? T : { [P in keyof T as (<T_1>() => T_1 extends { [Q in P]: T[P]; } ? 1 : 2) extends <T_1>() => T_1 extends { -readonly [Q in P]: T[P]; } ? 1 : 2 ? P : never]: T[P]; } : never : never) extends infer U ? U extends never ? U : U extends object ? { [K_1 in keyof U]-?: (x: (((0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_1 ? T_1 extends U[K_1] ? T_1 extends readonly any[] ? Exclude<keyof T_1, keyof any[]> extends never ? {
283
+ [k: number]: T_1[number];
284
+ } : Omit<T_1, keyof any[]> : T_1 : never : never) extends infer T_2 ? T_2 extends (0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_3 ? T_3 extends U[K_1] ? T_3 extends readonly any[] ? Exclude<keyof T_3, keyof any[]> extends never ? {
285
+ [k: number]: T_3[number];
286
+ } : Omit<T_3, keyof any[]> : T_3 : never : never) ? T_2 extends never ? T_2 : { [P_1 in keyof T_2 as (<T_3>() => T_3 extends { [Q in P_1]: T_2[P_1]; } ? 1 : 2) extends <T_3>() => T_3 extends { -readonly [Q in P_1]: T_2[P_1]; } ? 1 : 2 ? P_1 : never]: T_2[P_1]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_4 ? T_4 extends U[K_3] ? T_4 extends readonly any[] ? Exclude<keyof T_4, keyof any[]> extends never ? {
287
+ [k: number]: T_4[number];
288
+ } : Omit<T_4, keyof any[]> : T_4 : never : never) extends infer T_5 ? T_5 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_6 ? T_6 extends U[K_3] ? T_6 extends readonly any[] ? Exclude<keyof T_6, keyof any[]> extends never ? {
289
+ [k: number]: T_6[number];
290
+ } : Omit<T_6, keyof any[]> : T_6 : never : never) ? T_5 extends never ? T_5 : { [P_2 in keyof T_5 as (<T_6>() => T_6 extends { [Q in P_2]: T_5[P_2]; } ? 1 : 2) extends <T_6>() => T_6 extends { -readonly [Q in P_2]: T_5[P_2]; } ? 1 : 2 ? P_2 : never]: T_5[P_2]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_7 ? T_7 extends U[K_4] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
291
+ [k: number]: T_7[number];
292
+ } : Omit<T_7, keyof any[]> : T_7 : never : never) extends infer T_8 ? T_8 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_9 ? T_9 extends U[K_4] ? T_9 extends readonly any[] ? Exclude<keyof T_9, keyof any[]> extends never ? {
293
+ [k: number]: T_9[number];
294
+ } : Omit<T_9, keyof any[]> : T_9 : never : never) ? T_8 extends never ? T_8 : { [P_3 in keyof T_8 as (<T_9>() => T_9 extends { [Q in P_3]: T_8[P_3]; } ? 1 : 2) extends <T_9>() => T_9 extends { -readonly [Q in P_3]: T_8[P_3]; } ? 1 : 2 ? P_3 : never]: T_8[P_3]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: U[K_5] extends infer T_10 ? T_10 extends U[K_5] ? T_10 extends never ? { [P_4 in K_5]: T_10; } : T_10 extends object ? { [P_5 in keyof T_10 as `${Extract<K_5, string | number>}.${Extract<P_5, string | number>}`]: T_10[P_5]; } : { [P_6 in K_5]: T_10; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) extends infer T_10 ? T_10 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_11 ? T_11 extends U[K_4] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
295
+ [k: number]: T_11[number];
296
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_13 ? T_13 extends U[K_4] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
297
+ [k: number]: T_13[number];
298
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: U[K_5] extends infer T_14 ? T_14 extends U[K_5] ? T_14 extends never ? { [P_8 in K_5]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_5, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_5]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) ? T_10 extends never ? { [P_4 in K_4]: T_10; } : T_10 extends object ? { [P_5 in keyof T_10 as `${Extract<K_4, string | number>}.${Extract<P_5, string | number>}`]: T_10[P_5]; } : { [P_6 in K_4]: T_10; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_7 ? T_7 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_8 ? T_8 extends U[K_3] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
299
+ [k: number]: T_8[number];
300
+ } : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_10 ? T_10 extends U[K_3] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
301
+ [k: number]: T_10[number];
302
+ } : Omit<T_10, keyof any[]> : T_10 : never : never) ? T_9 extends never ? T_9 : { [P_6 in keyof T_9 as (<T_10>() => T_10 extends { [Q in P_6]: T_9[P_6]; } ? 1 : 2) extends <T_10>() => T_10 extends { -readonly [Q in P_6]: T_9[P_6]; } ? 1 : 2 ? P_6 : never]: T_9[P_6]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_11 ? T_11 extends U[K_4] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
303
+ [k: number]: T_11[number];
304
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_13 ? T_13 extends U[K_4] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
305
+ [k: number]: T_13[number];
306
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_14 ? T_14 extends U[K_6] ? T_14 extends never ? { [P_8 in K_6]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_6, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_6]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_15 ? T_15 extends U[K_4] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
307
+ [k: number]: T_15[number];
308
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_17 ? T_17 extends U[K_4] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
309
+ [k: number]: T_17[number];
310
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_18 ? T_18 extends U[K_6] ? T_18 extends never ? { [P_12 in K_6]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_6, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_6]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_14 extends never ? { [P_8 in K_4]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_4, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_4]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_7 extends never ? { [P_3 in K_3]: T_7; } : T_7 extends object ? { [P_4 in keyof T_7 as `${Extract<K_3, string | number>}.${Extract<P_4, string | number>}`]: T_7[P_4]; } : { [P_5 in K_3]: T_7; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_4 ? T_4 extends (((0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_5 ? T_5 extends U[K_1] ? T_5 extends readonly any[] ? Exclude<keyof T_5, keyof any[]> extends never ? {
311
+ [k: number]: T_5[number];
312
+ } : Omit<T_5, keyof any[]> : T_5 : never : never) extends infer T_6 ? T_6 extends (0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_7 ? T_7 extends U[K_1] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
313
+ [k: number]: T_7[number];
314
+ } : Omit<T_7, keyof any[]> : T_7 : never : never) ? T_6 extends never ? T_6 : { [P_5 in keyof T_6 as (<T_7>() => T_7 extends { [Q in P_5]: T_6[P_5]; } ? 1 : 2) extends <T_7>() => T_7 extends { -readonly [Q in P_5]: T_6[P_5]; } ? 1 : 2 ? P_5 : never]: T_6[P_5]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_8 ? T_8 extends U[K_3] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
315
+ [k: number]: T_8[number];
316
+ } : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_10 ? T_10 extends U[K_3] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
317
+ [k: number]: T_10[number];
318
+ } : Omit<T_10, keyof any[]> : T_10 : never : never) ? T_9 extends never ? T_9 : { [P_6 in keyof T_9 as (<T_10>() => T_10 extends { [Q in P_6]: T_9[P_6]; } ? 1 : 2) extends <T_10>() => T_10 extends { -readonly [Q in P_6]: T_9[P_6]; } ? 1 : 2 ? P_6 : never]: T_9[P_6]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_11 ? T_11 extends U[K_5] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
319
+ [k: number]: T_11[number];
320
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_13 ? T_13 extends U[K_5] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
321
+ [k: number]: T_13[number];
322
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_14 ? T_14 extends U[K_6] ? T_14 extends never ? { [P_8 in K_6]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_6, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_6]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_15 ? T_15 extends U[K_5] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
323
+ [k: number]: T_15[number];
324
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_17 ? T_17 extends U[K_5] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
325
+ [k: number]: T_17[number];
326
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_18 ? T_18 extends U[K_6] ? T_18 extends never ? { [P_12 in K_6]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_6, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_6]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_14 extends never ? { [P_8 in K_5]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_5, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_5]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_11 ? T_11 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_12 ? T_12 extends U[K_3] ? T_12 extends readonly any[] ? Exclude<keyof T_12, keyof any[]> extends never ? {
327
+ [k: number]: T_12[number];
328
+ } : Omit<T_12, keyof any[]> : T_12 : never : never) extends infer T_13 ? T_13 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_14 ? T_14 extends U[K_3] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
329
+ [k: number]: T_14[number];
330
+ } : Omit<T_14, keyof any[]> : T_14 : never : never) ? T_13 extends never ? T_13 : { [P_10 in keyof T_13 as (<T_14>() => T_14 extends { [Q in P_10]: T_13[P_10]; } ? 1 : 2) extends <T_14>() => T_14 extends { -readonly [Q in P_10]: T_13[P_10]; } ? 1 : 2 ? P_10 : never]: T_13[P_10]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_15 ? T_15 extends U[K_5] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
331
+ [k: number]: T_15[number];
332
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_17 ? T_17 extends U[K_5] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
333
+ [k: number]: T_17[number];
334
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_18 ? T_18 extends U[K_6] ? T_18 extends never ? { [P_12 in K_6]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_6, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_6]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_18 ? T_18 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_19 ? T_19 extends U[K_5] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
335
+ [k: number]: T_19[number];
336
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) extends infer T_20 ? T_20 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_21 ? T_21 extends U[K_5] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
337
+ [k: number]: T_21[number];
338
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) ? T_20 extends never ? T_20 : { [P_15 in keyof T_20 as (<T_21>() => T_21 extends { [Q in P_15]: T_20[P_15]; } ? 1 : 2) extends <T_21>() => T_21 extends { -readonly [Q in P_15]: T_20[P_15]; } ? 1 : 2 ? P_15 : never]: T_20[P_15]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_22 ? T_22 extends U[K_6] ? T_22 extends never ? { [P_16 in K_6]: T_22; } : T_22 extends object ? { [P_17 in keyof T_22 as `${Extract<K_6, string | number>}.${Extract<P_17, string | number>}`]: T_22[P_17]; } : { [P_18 in K_6]: T_22; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_18 extends never ? { [P_12 in K_5]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_5, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_5]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_11 extends never ? { [P_7 in K_3]: T_11; } : T_11 extends object ? { [P_8 in keyof T_11 as `${Extract<K_3, string | number>}.${Extract<P_8, string | number>}`]: T_11[P_8]; } : { [P_9 in K_3]: T_11; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_4 extends never ? { [P_2 in K_1]: T_4; } : T_4 extends object ? { [P_3 in keyof T_4 as `${Extract<K_1, string | number>}.${Extract<P_3, string | number>}`]: T_4[P_3]; } : { [P_4 in K_1]: T_4; } : never : never) => void; }[keyof U] | ((x: U) => void) extends (x: infer I) => void ? { [K_2 in keyof I]: I[K_2]; } : never : U : never)[any][];
177
339
  protected innerSplice<StateType, DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, start: number, deleteCount?: number): ArrayType[];
178
340
  }
@@ -148,6 +148,17 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
148
148
  return this.innerGetValue({}, key);
149
149
  };
150
150
  }
151
+ /**
152
+ * Use with pre-computed Flatten types to avoid repeated type instantiation.
153
+ * @example
154
+ * type MyPaths = Flatten<MyState, 6>;
155
+ * appStateStorage().getValuePrecomputed<MyPaths>()("deep.path");
156
+ */
157
+ getValuePrecomputed() {
158
+ return (key) => {
159
+ return this.getValue()(key);
160
+ };
161
+ }
151
162
  innerGetValue(stateForTypings, deepKey) {
152
163
  let result;
153
164
  const pathsHelperData = this.getPathsHelperData(deepKey, null);
@@ -206,6 +217,17 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
206
217
  this.innerSubstitute({}, key, value);
207
218
  };
208
219
  }
220
+ /**
221
+ * Use with pre-computed Flatten types to avoid repeated type instantiation.
222
+ * @example
223
+ * type MyPaths = Flatten<MyState, 6>;
224
+ * appStateStorage().substitutePrecomputed<MyPaths>()("deep.path", value);
225
+ */
226
+ substitutePrecomputed() {
227
+ return (key, value) => {
228
+ this.substitute()(key, value);
229
+ };
230
+ }
209
231
  innerSubstitute(stateForTypings, deepKey, value) {
210
232
  const config = {
211
233
  changeType: AppStateChangeType.SUBSTITUTE,
@@ -222,6 +244,17 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
222
244
  this.innerChange({}, key, value);
223
245
  };
224
246
  }
247
+ /**
248
+ * Use with pre-computed Flatten types to avoid repeated type instantiation.
249
+ * @example
250
+ * type MyPaths = Flatten<MyState, 6>;
251
+ * appStateStorage().changePrecomputed<MyPaths>()("deep.path", value);
252
+ */
253
+ changePrecomputed() {
254
+ return (key, value) => {
255
+ this.change()(key, value);
256
+ };
257
+ }
225
258
  innerChange(stateForTypings, deepKey, value) {
226
259
  const config = {
227
260
  changeType: AppStateChangeType.CHANGE,
@@ -238,6 +271,17 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
238
271
  return this.innerDelete({}, key);
239
272
  };
240
273
  }
274
+ /**
275
+ * Use with pre-computed Flatten types to avoid repeated type instantiation.
276
+ * @example
277
+ * type MyPaths = Flatten<MyState, 6>;
278
+ * appStateStorage().deletePrecomputed<MyPaths>()("deep.path");
279
+ */
280
+ deletePrecomputed() {
281
+ return (key) => {
282
+ return this.delete()(key);
283
+ };
284
+ }
241
285
  innerDelete(stateForTypings, deepKey) {
242
286
  const config = {
243
287
  changeType: AppStateChangeType.DELETE
@@ -253,6 +297,17 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
253
297
  return this.innerPush({}, key, ...elements);
254
298
  };
255
299
  }
300
+ /**
301
+ * Use with pre-computed Flatten types to avoid repeated type instantiation.
302
+ * @example
303
+ * type MyPaths = Flatten<MyState, 6>;
304
+ * appStateStorage().pushPrecomputed<MyPaths>()("deep.array.path", element1, element2);
305
+ */
306
+ pushPrecomputed() {
307
+ return (key, ...elements) => {
308
+ return this.push()(key, ...elements);
309
+ };
310
+ }
256
311
  innerPush(stateForTypings, deepKey, ...elements) {
257
312
  const config = {
258
313
  changeType: AppStateChangeType.PUSH,
@@ -269,6 +324,17 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
269
324
  return this.innerSplice({}, key, start, deleteCount);
270
325
  };
271
326
  }
327
+ /**
328
+ * Use with pre-computed Flatten types to avoid repeated type instantiation.
329
+ * @example
330
+ * type MyPaths = Flatten<MyState, 6>;
331
+ * appStateStorage().splicePrecomputed<MyPaths>()("deep.array.path", 0, 1);
332
+ */
333
+ splicePrecomputed() {
334
+ return (key, start, deleteCount) => {
335
+ return this.splice()(key, start, deleteCount);
336
+ };
337
+ }
272
338
  innerSplice(stateForTypings, deepKey, start, deleteCount) {
273
339
  if (deleteCount === undefined) {
274
340
  deleteCount = Number.MAX_SAFE_INTEGER;
@@ -1 +1 @@
1
- {"version":3,"file":"AppStateStorage.js","sourceRoot":"","sources":["../../../src/state/data/AppStateStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AppStateStorage.js","sourceRoot":"","sources":["../../../src/state/data/AppStateStorage.ts"],"names":[],"mappings":"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"}