@flashist/appframework 0.0.343 → 0.0.345

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/index.d.ts CHANGED
@@ -80,6 +80,7 @@ export * from './state/data/AppStateStorage';
80
80
  export * from './state/data/DeepKeyTypings';
81
81
  export * from './state/data/DeepPartialTypings';
82
82
  export * from './state/data/DeepReadableTypings';
83
+ export * from './state/data/DeepTypeUtils';
83
84
  export * from './state/data/IAppStateChangeConfigVO';
84
85
  export * from './state/data/IChangeWrapper';
85
86
  export * from './state/data/IPreChangeHook';
package/index.js CHANGED
@@ -80,6 +80,7 @@ export * from './state/data/AppStateStorage';
80
80
  export * from './state/data/DeepKeyTypings';
81
81
  export * from './state/data/DeepPartialTypings';
82
82
  export * from './state/data/DeepReadableTypings';
83
+ export * from './state/data/DeepTypeUtils';
83
84
  export * from './state/data/IAppStateChangeConfigVO';
84
85
  export * from './state/data/IChangeWrapper';
85
86
  export * from './state/data/IPreChangeHook';
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qDAAqD,CAAC;AACpE,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qDAAqD,CAAC;AACpE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yDAAyD,CAAC;AACxE,cAAc,0DAA0D,CAAC;AACzE,cAAc,sEAAsE,CAAC;AACrF,cAAc,+DAA+D,CAAC;AAC9E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kDAAkD,CAAC;AACjE,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,uDAAuD,CAAC;AACtE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,+DAA+D,CAAC;AAC9E,cAAc,iDAAiD,CAAC;AAChE,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8DAA8D,CAAC;AAC7E,cAAc,oEAAoE,CAAC;AACnF,cAAc,mEAAmE,CAAC;AAClF,cAAc,0DAA0D,CAAC;AACzE,cAAc,mDAAmD,CAAC;AAClE,cAAc,uDAAuD,CAAC;AACtE,cAAc,0CAA0C,CAAC;AACzD,cAAc,+CAA+C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flashist/appframework",
3
- "version": "0.0.343",
3
+ "version": "0.0.345",
4
4
  "scripts": {
5
5
  "build": "gulp",
6
6
  "publish:patch": "npm version patch && npm run build && cd ./dist && npm publish",
@@ -5,6 +5,7 @@ import { DeepReadonly } from "./DeepReadableTypings";
5
5
  import { IPreChangeHook } from "./IPreChangeHook";
6
6
  import { IAppStateChangeConfigVO } from "./IAppStateChangeConfigVO";
7
7
  import { DeepPartial } from "./DeepPartialTypings";
8
+ import { DefaultFlattenDepth } from "./DeepTypeUtils";
8
9
  export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
9
10
  /**
10
11
  * The purpose of the method is to "prepare" a "wrapper" of a part of a state,
@@ -27,7 +28,7 @@ export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
27
28
 
28
29
  * @returns
29
30
  */
30
- changePropertyWrapper<StateType extends object>(): <WrapperStateType extends Partial<Flatten<StateType>[DeepKeyType]>, DeepKeyType extends keyof Flatten<StateType>>(key: DeepKeyType) => <WrapperDeepKeyType extends keyof Flatten<WrapperStateType>>(wrapperKey: WrapperDeepKeyType, value: DeepPartial<Flatten<WrapperStateType>[WrapperDeepKeyType]>) => void;
31
+ changePropertyWrapper<StateType extends object, D extends number = DefaultFlattenDepth>(): <WrapperStateType extends Partial<Flatten<StateType, never, D>[DeepKeyType]>, DeepKeyType extends keyof Flatten<StateType, never, D>>(key: DeepKeyType) => <WrapperDeepKeyType extends keyof Flatten<WrapperStateType>>(wrapperKey: WrapperDeepKeyType, value: DeepPartial<Flatten<WrapperStateType>[WrapperDeepKeyType]>) => void;
31
32
  protected isInitialized: boolean;
32
33
  protected state: object;
33
34
  protected pathsHelperDataCache: {
@@ -41,17 +42,137 @@ export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
41
42
  protected dispatchChangeEvents(helperData: IDeepKeyHelperVO): void;
42
43
  protected getPathsHelperData(deepKey: string, config?: IAppStateChangeConfigVO): IDeepKeyHelperVO;
43
44
  protected triggerPreChangeHooks<StateType, DeepKeyType extends keyof Flatten<StateType>>(stateForTypings: StateType, deepKey: DeepKeyType, config: IAppStateChangeConfigVO): void;
44
- getValue<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType>>(key: DeepKeyType) => Partial<Flatten<StateType>[DeepKeyType]>;
45
+ getValue<StateType extends object, D extends number = DefaultFlattenDepth>(): <DeepKeyType extends keyof Flatten<StateType, never, D>>(key: DeepKeyType) => Partial<Flatten<StateType, never, D>[DeepKeyType]>;
45
46
  protected innerGetValue<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType): Partial<ValueType>;
46
47
  protected processStateAction<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, config: IAppStateChangeConfigVO<ValueType>): any;
47
- substitute<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType>>(key: DeepKeyType, value: DeepPartial<Flatten<StateType>[DeepKeyType]>) => void;
48
+ 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;
48
49
  protected innerSubstitute<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, value: DeepPartial<ValueType>): void;
49
- change<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType>>(key: DeepKeyType, value: DeepPartial<Flatten<StateType>[DeepKeyType]>) => void;
50
+ 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;
50
51
  protected innerChange<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, value: DeepPartial<ValueType>): void;
51
- delete<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType] & Array<any> = Flatten<StateType>[DeepKeyType] & Array<any>>(key: DeepKeyType) => Flatten<StateType, never>[DeepKeyType];
52
+ 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
+ [k: `${number}`]: StateType[number];
54
+ } : Omit<StateType, keyof any[]> : StateType) extends infer T ? T extends (StateType extends readonly any[] ? Exclude<keyof StateType, keyof any[]> extends never ? {
55
+ [k: `${number}`]: StateType[number];
56
+ } : Omit<StateType, keyof any[]> : StateType) ? 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 in keyof U]-?: (x: (((0 extends 1 & U[K] ? unknown : U[K] extends infer T_1 ? T_1 extends U[K] ? T_1 extends readonly any[] ? Exclude<keyof T_1, keyof any[]> extends never ? {
57
+ [k: `${number}`]: T_1[number];
58
+ } : Omit<T_1, keyof any[]> : T_1 : never : never) extends infer T_2 ? T_2 extends (0 extends 1 & U[K] ? unknown : U[K] extends infer T_3 ? T_3 extends U[K] ? T_3 extends readonly any[] ? Exclude<keyof T_3, keyof any[]> extends never ? {
59
+ [k: `${number}`]: T_3[number];
60
+ } : 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_2 in keyof U]-?: (x: (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_4 ? T_4 extends U[K_2] ? T_4 extends readonly any[] ? Exclude<keyof T_4, keyof any[]> extends never ? {
61
+ [k: `${number}`]: T_4[number];
62
+ } : Omit<T_4, keyof any[]> : T_4 : never : never) extends infer T_5 ? T_5 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_6 ? T_6 extends U[K_2] ? T_6 extends readonly any[] ? Exclude<keyof T_6, keyof any[]> extends never ? {
63
+ [k: `${number}`]: T_6[number];
64
+ } : 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_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_7 ? T_7 extends U[K_3] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
65
+ [k: `${number}`]: T_7[number];
66
+ } : Omit<T_7, keyof any[]> : T_7 : never : never) extends infer T_8 ? T_8 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_9 ? T_9 extends U[K_3] ? T_9 extends readonly any[] ? Exclude<keyof T_9, keyof any[]> extends never ? {
67
+ [k: `${number}`]: T_9[number];
68
+ } : 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_4 in keyof U]-?: (x: U[K_4] extends infer T_10 ? T_10 extends U[K_4] ? 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_10 ? T_10 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_11 ? T_11 extends U[K_3] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
69
+ [k: `${number}`]: T_11[number];
70
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_13 ? T_13 extends U[K_3] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
71
+ [k: `${number}`]: T_13[number];
72
+ } : 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_4 in keyof U]-?: (x: U[K_4] extends infer T_14 ? T_14 extends U[K_4] ? 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_10 extends never ? { [P_4 in K_3]: T_10; } : T_10 extends object ? { [P_5 in keyof T_10 as `${Extract<K_3, string | number>}.${Extract<P_5, string | number>}`]: T_10[P_5]; } : { [P_6 in K_3]: T_10; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_7 ? T_7 extends (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_8 ? T_8 extends U[K_2] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
73
+ [k: `${number}`]: T_8[number];
74
+ } : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_10 ? T_10 extends U[K_2] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
75
+ [k: `${number}`]: T_10[number];
76
+ } : 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_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_11 ? T_11 extends U[K_3] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
77
+ [k: `${number}`]: T_11[number];
78
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_13 ? T_13 extends U[K_3] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
79
+ [k: `${number}`]: T_13[number];
80
+ } : 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_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_15 ? T_15 extends U[K_3] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
81
+ [k: `${number}`]: T_15[number];
82
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_17 ? T_17 extends U[K_3] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
83
+ [k: `${number}`]: T_17[number];
84
+ } : 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_5 in keyof U]-?: (x: U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? 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_14 extends never ? { [P_8 in K_3]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_3, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_3]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_7 extends never ? { [P_3 in K_2]: T_7; } : T_7 extends object ? { [P_4 in keyof T_7 as `${Extract<K_2, string | number>}.${Extract<P_4, string | number>}`]: T_7[P_4]; } : { [P_5 in K_2]: T_7; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_4 ? T_4 extends (((0 extends 1 & U[K] ? unknown : U[K] extends infer T_5 ? T_5 extends U[K] ? T_5 extends readonly any[] ? Exclude<keyof T_5, keyof any[]> extends never ? {
85
+ [k: `${number}`]: T_5[number];
86
+ } : Omit<T_5, keyof any[]> : T_5 : never : never) extends infer T_6 ? T_6 extends (0 extends 1 & U[K] ? unknown : U[K] extends infer T_7 ? T_7 extends U[K] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
87
+ [k: `${number}`]: T_7[number];
88
+ } : 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_2 in keyof U]-?: (x: (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_8 ? T_8 extends U[K_2] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
89
+ [k: `${number}`]: T_8[number];
90
+ } : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_10 ? T_10 extends U[K_2] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
91
+ [k: `${number}`]: T_10[number];
92
+ } : 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 ? {
93
+ [k: `${number}`]: T_11[number];
94
+ } : 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 ? {
95
+ [k: `${number}`]: T_13[number];
96
+ } : 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_3 in keyof I]: I[K_3]; } : 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 ? {
97
+ [k: `${number}`]: T_15[number];
98
+ } : 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 ? {
99
+ [k: `${number}`]: T_17[number];
100
+ } : 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_5 in keyof U]-?: (x: U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? 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_3 in keyof I]: I[K_3]; } : 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_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_11 ? T_11 extends (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_12 ? T_12 extends U[K_2] ? T_12 extends readonly any[] ? Exclude<keyof T_12, keyof any[]> extends never ? {
101
+ [k: `${number}`]: T_12[number];
102
+ } : Omit<T_12, keyof any[]> : T_12 : never : never) extends infer T_13 ? T_13 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_14 ? T_14 extends U[K_2] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
103
+ [k: `${number}`]: T_14[number];
104
+ } : 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_4 in keyof U]-?: (x: (((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 ? {
105
+ [k: `${number}`]: T_15[number];
106
+ } : 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 ? {
107
+ [k: `${number}`]: T_17[number];
108
+ } : 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_5 in keyof U]-?: (x: U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? 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_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_18 ? T_18 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_19 ? T_19 extends U[K_4] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
109
+ [k: `${number}`]: T_19[number];
110
+ } : 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
+ [k: `${number}`]: T_21[number];
112
+ } : 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];
52
113
  protected innerDelete<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType): ValueType;
53
- push<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType] & Array<any> = Flatten<StateType>[DeepKeyType] & Array<any>>(key: DeepKeyType, ...elements: ArrayType) => void;
114
+ 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;
54
115
  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;
55
- splice<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType] & Array<any> = Flatten<StateType>[DeepKeyType] & Array<any>>(key: DeepKeyType, start: number, deleteCount?: number) => Flatten<StateType, never>[DeepKeyType][];
116
+ 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
+ [k: `${number}`]: StateType[number];
118
+ } : Omit<StateType, keyof any[]> : StateType) extends infer T ? T extends (StateType extends readonly any[] ? Exclude<keyof StateType, keyof any[]> extends never ? {
119
+ [k: `${number}`]: StateType[number];
120
+ } : Omit<StateType, keyof any[]> : StateType) ? 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 in keyof U]-?: (x: (((0 extends 1 & U[K] ? unknown : U[K] extends infer T_1 ? T_1 extends U[K] ? T_1 extends readonly any[] ? Exclude<keyof T_1, keyof any[]> extends never ? {
121
+ [k: `${number}`]: T_1[number];
122
+ } : Omit<T_1, keyof any[]> : T_1 : never : never) extends infer T_2 ? T_2 extends (0 extends 1 & U[K] ? unknown : U[K] extends infer T_3 ? T_3 extends U[K] ? T_3 extends readonly any[] ? Exclude<keyof T_3, keyof any[]> extends never ? {
123
+ [k: `${number}`]: T_3[number];
124
+ } : 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_2 in keyof U]-?: (x: (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_4 ? T_4 extends U[K_2] ? T_4 extends readonly any[] ? Exclude<keyof T_4, keyof any[]> extends never ? {
125
+ [k: `${number}`]: T_4[number];
126
+ } : Omit<T_4, keyof any[]> : T_4 : never : never) extends infer T_5 ? T_5 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_6 ? T_6 extends U[K_2] ? T_6 extends readonly any[] ? Exclude<keyof T_6, keyof any[]> extends never ? {
127
+ [k: `${number}`]: T_6[number];
128
+ } : 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_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_7 ? T_7 extends U[K_3] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
129
+ [k: `${number}`]: T_7[number];
130
+ } : Omit<T_7, keyof any[]> : T_7 : never : never) extends infer T_8 ? T_8 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_9 ? T_9 extends U[K_3] ? T_9 extends readonly any[] ? Exclude<keyof T_9, keyof any[]> extends never ? {
131
+ [k: `${number}`]: T_9[number];
132
+ } : 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_4 in keyof U]-?: (x: U[K_4] extends infer T_10 ? T_10 extends U[K_4] ? 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_10 ? T_10 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_11 ? T_11 extends U[K_3] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
133
+ [k: `${number}`]: T_11[number];
134
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_13 ? T_13 extends U[K_3] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
135
+ [k: `${number}`]: T_13[number];
136
+ } : 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_4 in keyof U]-?: (x: U[K_4] extends infer T_14 ? T_14 extends U[K_4] ? 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_10 extends never ? { [P_4 in K_3]: T_10; } : T_10 extends object ? { [P_5 in keyof T_10 as `${Extract<K_3, string | number>}.${Extract<P_5, string | number>}`]: T_10[P_5]; } : { [P_6 in K_3]: T_10; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_7 ? T_7 extends (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_8 ? T_8 extends U[K_2] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
137
+ [k: `${number}`]: T_8[number];
138
+ } : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_10 ? T_10 extends U[K_2] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
139
+ [k: `${number}`]: T_10[number];
140
+ } : 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_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_11 ? T_11 extends U[K_3] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
141
+ [k: `${number}`]: T_11[number];
142
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_13 ? T_13 extends U[K_3] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
143
+ [k: `${number}`]: T_13[number];
144
+ } : 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_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_15 ? T_15 extends U[K_3] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
145
+ [k: `${number}`]: T_15[number];
146
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_17 ? T_17 extends U[K_3] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
147
+ [k: `${number}`]: T_17[number];
148
+ } : 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_5 in keyof U]-?: (x: U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? 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_14 extends never ? { [P_8 in K_3]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_3, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_3]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_7 extends never ? { [P_3 in K_2]: T_7; } : T_7 extends object ? { [P_4 in keyof T_7 as `${Extract<K_2, string | number>}.${Extract<P_4, string | number>}`]: T_7[P_4]; } : { [P_5 in K_2]: T_7; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_4 ? T_4 extends (((0 extends 1 & U[K] ? unknown : U[K] extends infer T_5 ? T_5 extends U[K] ? T_5 extends readonly any[] ? Exclude<keyof T_5, keyof any[]> extends never ? {
149
+ [k: `${number}`]: T_5[number];
150
+ } : Omit<T_5, keyof any[]> : T_5 : never : never) extends infer T_6 ? T_6 extends (0 extends 1 & U[K] ? unknown : U[K] extends infer T_7 ? T_7 extends U[K] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
151
+ [k: `${number}`]: T_7[number];
152
+ } : 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_2 in keyof U]-?: (x: (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_8 ? T_8 extends U[K_2] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
153
+ [k: `${number}`]: T_8[number];
154
+ } : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_10 ? T_10 extends U[K_2] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
155
+ [k: `${number}`]: T_10[number];
156
+ } : 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 ? {
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_3 in keyof I]: I[K_3]; } : 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 ? {
161
+ [k: `${number}`]: T_15[number];
162
+ } : 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 ? {
163
+ [k: `${number}`]: T_17[number];
164
+ } : 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_5 in keyof U]-?: (x: U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? 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_3 in keyof I]: I[K_3]; } : 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_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_11 ? T_11 extends (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_12 ? T_12 extends U[K_2] ? T_12 extends readonly any[] ? Exclude<keyof T_12, keyof any[]> extends never ? {
165
+ [k: `${number}`]: T_12[number];
166
+ } : Omit<T_12, keyof any[]> : T_12 : never : never) extends infer T_13 ? T_13 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_14 ? T_14 extends U[K_2] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
167
+ [k: `${number}`]: T_14[number];
168
+ } : 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_4 in keyof U]-?: (x: (((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_5 in keyof U]-?: (x: U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? 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_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_18 ? T_18 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_19 ? T_19 extends U[K_4] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
173
+ [k: `${number}`]: T_19[number];
174
+ } : 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
+ [k: `${number}`]: T_21[number];
176
+ } : 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][];
56
177
  protected innerSplice<StateType, DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, start: number, deleteCount?: number): ArrayType[];
57
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AppStateStorage.js","sourceRoot":"","sources":["../../../src/state/data/AppStateStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAKrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,OAAO,eAAgB,SAAQ,8BAA8B;IAAnE;;QA+Bc,kBAAa,GAAY,KAAK,CAAC;QAE/B,UAAK,GAAW,EAAE,CAAC;QAEnB,yBAAoB,GAAiD,EAAE,CAAC;QAExE,mBAAc,GAAqB,EAAE,CAAC;QA8QhD,cAAc;QAEd,mIAAmI;QACnI,2JAA2J;QAC3J,yDAAyD;QACzD,qDAAqD;QACrD,6FAA6F;QAE7F,+EAA+E;QAC/E,qGAAqG;QACrG,kGAAkG;QAElG,4DAA4D;QAC5D,iDAAiD;QACjD,4FAA4F;QAE5F,mBAAmB;QACnB,mDAAmD;QACnD,YAAY;QACZ,QAAQ;QAER,kDAAkD;QAClD,IAAI;QAEJ,iGAAiG;QACjG,yDAAyD;QACzD,qDAAqD;QACrD,6FAA6F;QAE7F,+EAA+E;QAC/E,qGAAqG;QACrG,kGAAkG;QAElG,4DAA4D;QAC5D,6CAA6C;QAE7C,mBAAmB;QACnB,mDAAmD;QACnD,YAAY;QACZ,QAAQ;QAER,kDAAkD;QAClD,IAAI;QAEJ,+IAA+I;QAC/I,yDAAyD;QACzD,qDAAqD;QACrD,6FAA6F;QAE7F,+EAA+E;QAC/E,qGAAqG;QACrG,kGAAkG;QAClG,+CAA+C;QAC/C,QAAQ;QAER,4DAA4D;QAE5D,kDAAkD;QAClD,IAAI;QAEJ,kJAAkJ;QAClJ,yDAAyD;QACzD,qDAAqD;QACrD,6FAA6F;QAE7F,+EAA+E;QAC/E,qGAAqG;QACrG,kGAAkG;QAClG,+CAA+C;QAC/C,QAAQ;QAER,4EAA4E;QAE5E,kDAAkD;QAClD,IAAI;IACR,CAAC;IA5XG;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,qBAAqB;QACxB,OAAO,CAAkH,GAAgB,EAAE,EAAE;YACzI,OAAO,CAA6D,UAA8B,EAAE,KAAiE,EAAQ,EAAE;gBAC3K,IAAI,CAAC,WAAW,CAAC,EAAe,EAAE,CAAC,GAAG,GAAa,IAAI,UAAoB,EAAE,CAAQ,EAAE,KAAK,CAAC,CAAC;YAClG,CAAC,CAAA;QACL,CAAC,CAAA;IACL,CAAC;IAUM,cAAc,CAA2B,SAAoB;QAChE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QAED,WAAW,CAAC,SAAS,CACjB,IAAI,CAAC,KAAK,EACV,SAAS,CACZ,CAAC;IACN,CAAC;IAEM,kBAAkB;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,KAAY,CAAC;IAC7B,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,KAAY,CAAC;IAC7B,CAAC;IAES,oBAAoB,CAAC,UAA4B;QACvD,KAAK,IAAI,2BAA2B,IAAI,UAAU,CAAC,sBAAsB,EAAE,CAAC;YACxE,MAAM,SAAS,GAAW,wBAAwB,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;YAC/F,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAES,kBAAkB,CAAC,OAAe,EAAE,SAAkC,IAAI;QAChF,IAAI,MAAM,GAAqB,IAAI,CAAC;QACpC,oCAAoC;QACpC,IAAI,MAAM,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,MAAM,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACxE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YAChD,CAAC;YAED,mFAAmF;QACvF,CAAC;aAAM,CAAC;YACJ,iDAAiD;YACjD,yIAAyI;YACzI,MAAM,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5E,CAAC;QAGD,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,qBAAqB,CAA0D,eAA0B,EAAE,OAAoB,EAAE,MAA+B;QACtK,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO;QACX,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,OAAO,CACvB,CAAC,IAAoB,EAAE,EAAE;YACrB,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC,CACJ,CAAC;IACN,CAAC;IAEM,QAAQ;QACX,OAAO,CAA+C,GAAgB,EAA4C,EAAE;YAChH,OAAO,IAAI,CAAC,aAAa,CAAC,EAAe,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC,CAAA;IACL,CAAC;IAES,aAAa,CAA6G,eAA0B,EAAE,OAAoB;QAEhL,IAAI,MAA0B,CAAC;QAE/B,MAAM,eAAe,GAAqB,IAAI,CAAC,kBAAkB,CAAC,OAAiB,EAAE,IAAI,CAAC,CAAC;QAC3F,sFAAsF;QAEtF,IAAI,UAAU,GAAQ,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,gBAAgB,GAAW,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC;QACxE,KAAK,IAAI,eAAe,GAAW,CAAC,EAAE,eAAe,GAAG,gBAAgB,EAAE,eAAe,EAAE,EAAE,CAAC;YAC1F,MAAM,UAAU,GAAoB,eAAe,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;YAEvF,IAAI,eAAe,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC7C,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;YAEnC,CAAC;iBAAM,CAAC;gBACJ,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,kBAAkB,CAA6G,eAA0B,EAAE,OAAoB,EAAE,MAA0C;QACjO,IAAI,MAAW,CAAC;QAEhB,MAAM,eAAe,GAAqB,IAAI,CAAC,kBAAkB,CAAC,OAAiB,EAAE,MAAM,CAAC,CAAC;QAC7F,sFAAsF;QAEtF,IAAI,UAAU,GAAQ,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,gBAAgB,GAAW,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC;QACxE,KAAK,IAAI,eAAe,GAAW,CAAC,EAAE,eAAe,GAAG,gBAAgB,EAAE,eAAe,EAAE,EAAE,CAAC;YAC1F,MAAM,UAAU,GAAoB,eAAe,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;YAEvF,IAAI,eAAe,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC7C,gFAAgF;gBAEhF,IAAI,MAAM,CAAC,UAAU,KAAK,kBAAkB,CAAC,UAAU,EAAE,CAAC;oBACtD,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;oBAC9B,WAAW,CAAC,uBAAuB,CAAC,UAAU,EAAE,UAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAExF,CAAC;qBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBACzD,WAAW,CAAC,uBAAuB,CAAC,UAAU,EAAE,UAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAExF,CAAC;qBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBACzD,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;oBAChC,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;gBAElC,CAAC;qBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,kBAAkB,CAAC,IAAI,EAAE,CAAC;oBACvD,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAEpD,CAAC;qBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBACzD,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC7E,CAAC;YAEL,CAAC;iBAAM,CAAC;gBACJ,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAE3C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,oBAAoB;IACb,UAAU;QACb,OAAO,CAA+C,GAAgB,EAAE,KAAmD,EAAQ,EAAE;YACjI,IAAI,CAAC,eAAe,CAAC,EAAe,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC,CAAA;IACL,CAAC;IAES,eAAe,CAA6G,eAA0B,EAAE,OAAoB,EAAE,KAA6B;QACjN,MAAM,MAAM,GAA4B;YACpC,UAAU,EAAE,kBAAkB,CAAC,UAAU;YACzC,KAAK,EAAE,KAAK;SACf,CAAC;QAEF,2MAA2M;QAC3M,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE7D,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IACD,kBAAkB;IAGlB,gBAAgB;IAET,MAAM;QACT,OAAO,CAA+C,GAAgB,EAAE,KAAmD,EAAQ,EAAE;YACjI,IAAI,CAAC,WAAW,CAAC,EAAe,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC,CAAA;IACL,CAAC;IAES,WAAW,CAA6G,eAA0B,EAAE,OAAoB,EAAE,KAA6B;QAC7M,MAAM,MAAM,GAA4B;YACpC,UAAU,EAAE,kBAAkB,CAAC,MAAM;YACrC,KAAK,EAAE,KAAK;SACf,CAAC;QAEF,2MAA2M;QAC3M,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE7D,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,cAAc;IAEd,gBAAgB;IACT,MAAM;QACT,OAAO,CAGL,GAAgB,EAAE,EAAE;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC,EAAe,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC,CAAA;IACL,CAAC;IAES,WAAW,CAKf,eAA0B,EAAE,OAAoB;QAElD,MAAM,MAAM,GAA4B;YACpC,UAAU,EAAE,kBAAkB,CAAC,MAAM;SACxC,CAAC;QAEF,2MAA2M;QAC3M,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IACD,cAAc;IAGd,cAAc;IACP,IAAI;QACP,OAAO,CAGL,GAAgB,EAAE,GAAG,QAAmB,EAAE,EAAE;YAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,EAAe,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC7D,CAAC,CAAA;IACL,CAAC;IAES,SAAS,CAKb,eAA0B,EAAE,OAAoB,EAAE,GAAG,QAAmB;QAE1E,MAAM,MAAM,GAA4B;YACpC,UAAU,EAAE,kBAAkB,CAAC,IAAI;YACnC,QAAQ,EAAE,QAAQ;SACrB,CAAC;QAEF,2MAA2M;QAC3M,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE7D,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IACD,YAAY;IAGZ,gBAAgB;IACT,MAAM;QACT,OAAO,CAGL,GAAgB,EAAE,KAAa,EAAE,WAAoB,EAAE,EAAE;YACvD,OAAO,IAAI,CAAC,WAAW,CAAC,EAAe,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACtE,CAAC,CAAA;IACL,CAAC;IAES,WAAW,CAKf,eAA0B,EAAE,OAAoB,EAAE,KAAa,EAAE,WAAoB;QAEvF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC1C,CAAC;QAED,MAAM,MAAM,GAA4B;YACpC,UAAU,EAAE,kBAAkB,CAAC,MAAM;YACrC,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,WAAW;SAC3B,CAAC;QAEF,2MAA2M;QAC3M,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;CA4EJ"}
1
+ {"version":3,"file":"AppStateStorage.js","sourceRoot":"","sources":["../../../src/state/data/AppStateStorage.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { DefaultFlattenDepth, Prev } from "./DeepTypeUtils";
1
2
  type Writable<T, O> = T extends O ? T : {
2
3
  [P in keyof T as IfEquals<{
3
4
  [Q in P]: T[P];
@@ -17,8 +18,24 @@ type PrefixKeys<V, K extends PropertyKey, O> = V extends O ? {
17
18
  [P in K]: V;
18
19
  };
19
20
  type ValueOf<T> = T[keyof T];
20
- export type Flatten<T, O = never> = Writable<Cleanup<T>, O> extends infer U ? U extends O ? U : U extends object ? ValueOf<{
21
- [K in keyof U]-?: (x: PrefixKeys<Flatten<U[K], O>, K, O>) => void;
21
+ /**
22
+ * Flattens a nested object type into a flat object with dot-notation keys.
23
+ *
24
+ * @typeParam T - The type to flatten
25
+ * @typeParam O - Types to exclude from flattening (treated as leaf values)
26
+ * @typeParam D - Maximum recursion depth (default: 5)
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * type Nested = { a: { b: { c: number } } };
31
+ * type Flat = Flatten<Nested>;
32
+ * // { a: { b: { c: number } }; "a.b": { c: number }; "a.b.c": number }
33
+ * ```
34
+ */
35
+ export type Flatten<T, O = never, D extends number = DefaultFlattenDepth> = [
36
+ D
37
+ ] extends [never] ? T : Writable<Cleanup<T>, O> extends infer U ? U extends O ? U : U extends object ? ValueOf<{
38
+ [K in keyof U]-?: (x: PrefixKeys<Flatten<U[K], O, Prev[D]>, K, O>) => void;
22
39
  }> | ((x: U) => void) extends (x: infer I) => void ? {
23
40
  [K in keyof I]: I[K];
24
41
  } : never : U : never;
@@ -140,5 +140,5 @@ export type ObjectNestedPathsType<T extends object> = Array<Paths<T>>
140
140
  // keys: ["a", "nest.c", "otherNest.otherNest"]
141
141
  // }
142
142
 
143
- */
143
+ */
144
144
  //# sourceMappingURL=DeepKeyTypings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeepKeyTypings.js","sourceRoot":"","sources":["../../../src/state/data/DeepKeyTypings.ts"],"names":[],"mappings":";AA4BA,iFAAiF;AACjF,2CAA2C;AAC3C,kCAAkC;AAClC,mGAAmG;AACnG,IAAI;AAGJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4DE;AAGF,gGAAgG;AAChG,kCAAkC;AAClC,mGAAmG;AACnG,IAAI;AACJ,mCAAmC;AACnC,qCAAqC;AACrC,yCAAyC;AAEzC,QAAQ;AACR,uFAAuF;AACvF,gBAAgB;AAChB,gDAAgD;AAChD,IAAI;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DE"}
1
+ {"version":3,"file":"DeepKeyTypings.js","sourceRoot":"","sources":["../../../src/state/data/DeepKeyTypings.ts"],"names":[],"mappings":";AA+CA,iFAAiF;AACjF,2CAA2C;AAC3C,kCAAkC;AAClC,mGAAmG;AACnG,IAAI;AAGJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4DE;AAGF,gGAAgG;AAChG,kCAAkC;AAClC,mGAAmG;AACnG,IAAI;AACJ,mCAAmC;AACnC,qCAAqC;AACrC,yCAAyC;AAEzC,QAAQ;AACR,uFAAuF;AACvF,gBAAgB;AAChB,gDAAgD;AAChD,IAAI;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DE"}
@@ -1,4 +1,5 @@
1
1
  import { BuiltIns } from "./DeepReadableTypings";
2
+ import { DefaultDeepTypeDepth, Prev } from "./DeepTypeUtils";
2
3
  /**
3
4
  @see DeepPartial
4
5
  */
@@ -17,6 +18,10 @@ Use-cases:
17
18
  - Merging a default settings/config object with another object, the second object would be a deep partial of the default object.
18
19
  - Mocking and testing complex entities, where populating an entire object with its keys would be redundant in terms of the mock or test.
19
20
 
21
+ @typeParam T - The type to make deeply partial
22
+ @typeParam Options - Configuration options for the transformation
23
+ @typeParam D - Maximum recursion depth (default: 10)
24
+
20
25
  @example
21
26
  ```
22
27
  import type {DeepPartial} from 'type-fest';
@@ -57,27 +62,29 @@ const partialSettings: DeepPartial<Settings, {recurseIntoArrays: true}> = {
57
62
  @category Set
58
63
  @category Map
59
64
  */
60
- export type DeepPartial<T, Options extends DeepPartialOptions = {}> = T extends BuiltIns ? T : T extends Map<infer KeyType, infer ValueType> ? DeepPartialMap<KeyType, ValueType, Options> : T extends Set<infer ItemType> ? DeepPartialSet<ItemType, Options> : T extends ReadonlyMap<infer KeyType, infer ValueType> ? DeepPartialReadonlyMap<KeyType, ValueType, Options> : T extends ReadonlySet<infer ItemType> ? DeepPartialReadonlySet<ItemType, Options> : T extends ((...arguments_: any[]) => unknown) ? T | undefined : T extends object ? T extends ReadonlyArray<infer ItemType> ? Options['recurseIntoArrays'] extends true ? ItemType[] extends T ? readonly ItemType[] extends T ? ReadonlyArray<DeepPartial<ItemType | undefined, Options>> : Array<DeepPartial<ItemType | undefined, Options>> : DeepPartialObject<T, Options> : T : DeepPartialObject<T, Options> : unknown;
65
+ export type DeepPartial<T, Options extends DeepPartialOptions = {}, D extends number = DefaultDeepTypeDepth> = [
66
+ D
67
+ ] extends [never] ? Partial<T> : T extends BuiltIns ? T : T extends Map<infer KeyType, infer ValueType> ? DeepPartialMap<KeyType, ValueType, Options, D> : T extends Set<infer ItemType> ? DeepPartialSet<ItemType, Options, D> : T extends ReadonlyMap<infer KeyType, infer ValueType> ? DeepPartialReadonlyMap<KeyType, ValueType, Options, D> : T extends ReadonlySet<infer ItemType> ? DeepPartialReadonlySet<ItemType, Options, D> : T extends ((...arguments_: any[]) => unknown) ? T | undefined : T extends object ? T extends ReadonlyArray<infer ItemType> ? Options['recurseIntoArrays'] extends true ? ItemType[] extends T ? readonly ItemType[] extends T ? ReadonlyArray<DeepPartial<ItemType | undefined, Options, Prev[D]>> : Array<DeepPartial<ItemType | undefined, Options, Prev[D]>> : DeepPartialObject<T, Options, D> : T : DeepPartialObject<T, Options, D> : unknown;
61
68
  /**
62
69
  Same as `DeepPartial`, but accepts only `Map`s and as inputs. Internal helper for `DeepPartial`.
63
70
  */
64
- type DeepPartialMap<KeyType, ValueType, Options extends DeepPartialOptions> = {} & Map<DeepPartial<KeyType, Options>, DeepPartial<ValueType, Options>>;
71
+ type DeepPartialMap<KeyType, ValueType, Options extends DeepPartialOptions, D extends number> = {} & Map<DeepPartial<KeyType, Options, Prev[D]>, DeepPartial<ValueType, Options, Prev[D]>>;
65
72
  /**
66
73
  Same as `DeepPartial`, but accepts only `Set`s as inputs. Internal helper for `DeepPartial`.
67
74
  */
68
- type DeepPartialSet<T, Options extends DeepPartialOptions> = {} & Set<DeepPartial<T, Options>>;
75
+ type DeepPartialSet<T, Options extends DeepPartialOptions, D extends number> = {} & Set<DeepPartial<T, Options, Prev[D]>>;
69
76
  /**
70
77
  Same as `DeepPartial`, but accepts only `ReadonlyMap`s as inputs. Internal helper for `DeepPartial`.
71
78
  */
72
- type DeepPartialReadonlyMap<KeyType, ValueType, Options extends DeepPartialOptions> = {} & ReadonlyMap<DeepPartial<KeyType, Options>, DeepPartial<ValueType, Options>>;
79
+ type DeepPartialReadonlyMap<KeyType, ValueType, Options extends DeepPartialOptions, D extends number> = {} & ReadonlyMap<DeepPartial<KeyType, Options, Prev[D]>, DeepPartial<ValueType, Options, Prev[D]>>;
73
80
  /**
74
81
  Same as `DeepPartial`, but accepts only `ReadonlySet`s as inputs. Internal helper for `DeepPartial`.
75
82
  */
76
- type DeepPartialReadonlySet<T, Options extends DeepPartialOptions> = {} & ReadonlySet<DeepPartial<T, Options>>;
83
+ type DeepPartialReadonlySet<T, Options extends DeepPartialOptions, D extends number> = {} & ReadonlySet<DeepPartial<T, Options, Prev[D]>>;
77
84
  /**
78
85
  Same as `DeepPartial`, but accepts only `object`s as inputs. Internal helper for `DeepPartial`.
79
86
  */
80
- type DeepPartialObject<ObjectType extends object, Options extends DeepPartialOptions> = {
81
- [KeyType in keyof ObjectType]?: DeepPartial<ObjectType[KeyType], Options>;
87
+ type DeepPartialObject<ObjectType extends object, Options extends DeepPartialOptions, D extends number> = {
88
+ [KeyType in keyof ObjectType]?: DeepPartial<ObjectType[KeyType], Options, Prev[D]>;
82
89
  };
83
90
  export {};
@@ -1,3 +1,4 @@
1
+ import { DefaultDeepTypeDepth, Prev } from "./DeepTypeUtils";
1
2
  export type HasMultipleCallSignatures<T extends (...arguments_: any[]) => unknown> = T extends {
2
3
  (...arguments_: infer A): unknown;
3
4
  (...arguments_: any[]): unknown;
@@ -11,6 +12,9 @@ This is useful when a deeply nested structure needs to be exposed as completely
11
12
 
12
13
  Please upvote [this issue](https://github.com/microsoft/TypeScript/issues/13923) if you want to have this type as a built-in in TypeScript.
13
14
 
15
+ @typeParam T - The type to make deeply readonly
16
+ @typeParam D - Maximum recursion depth (default: 10)
17
+
14
18
  @example
15
19
  ```
16
20
  // data.json
@@ -40,19 +44,21 @@ Note that types containing overloaded functions are not made deeply readonly due
40
44
  @category Set
41
45
  @category Map
42
46
  */
43
- export type DeepReadonly<T> = T extends BuiltIns ? T : T extends (...arguments_: any[]) => unknown ? {} extends DeepReadonlyObject<T> ? T : HasMultipleCallSignatures<T> extends true ? T : ((...arguments_: Parameters<T>) => ReturnType<T>) & DeepReadonlyObject<T> : T extends Readonly<ReadonlyMap<infer KeyType, infer ValueType>> ? DeepReadonlyMap<KeyType, ValueType> : T extends Readonly<ReadonlySet<infer ItemType>> ? DeepReadonlySet<ItemType> : T extends readonly [] | readonly [...never[]] ? readonly [] : T extends readonly [infer U, ...infer V] ? readonly [DeepReadonly<U>, ...DeepReadonly<V>] : T extends readonly [...infer U, infer V] ? readonly [...DeepReadonly<U>, DeepReadonly<V>] : T extends ReadonlyArray<infer ItemType> ? ReadonlyArray<DeepReadonly<ItemType>> : T extends object ? DeepReadonlyObject<T> : unknown;
47
+ export type DeepReadonly<T, D extends number = DefaultDeepTypeDepth> = [
48
+ D
49
+ ] extends [never] ? Readonly<T> : T extends BuiltIns ? T : T extends (...arguments_: any[]) => unknown ? {} extends DeepReadonlyObject<T, D> ? T : HasMultipleCallSignatures<T> extends true ? T : ((...arguments_: Parameters<T>) => ReturnType<T>) & DeepReadonlyObject<T, D> : T extends Readonly<ReadonlyMap<infer KeyType, infer ValueType>> ? DeepReadonlyMap<KeyType, ValueType, D> : T extends Readonly<ReadonlySet<infer ItemType>> ? DeepReadonlySet<ItemType, D> : T extends readonly [] | readonly [...never[]] ? readonly [] : T extends readonly [infer U, ...infer V] ? readonly [DeepReadonly<U, Prev[D]>, ...DeepReadonly<V, Prev[D]>] : T extends readonly [...infer U, infer V] ? readonly [...DeepReadonly<U, Prev[D]>, DeepReadonly<V, Prev[D]>] : T extends ReadonlyArray<infer ItemType> ? ReadonlyArray<DeepReadonly<ItemType, Prev[D]>> : T extends object ? DeepReadonlyObject<T, D> : unknown;
44
50
  /**
45
51
  Same as `DeepReadonly`, but accepts only `ReadonlyMap`s as inputs. Internal helper for `DeepReadonly`.
46
52
  */
47
- type DeepReadonlyMap<KeyType, ValueType> = {} & Readonly<ReadonlyMap<DeepReadonly<KeyType>, DeepReadonly<ValueType>>>;
53
+ type DeepReadonlyMap<KeyType, ValueType, D extends number> = {} & Readonly<ReadonlyMap<DeepReadonly<KeyType, Prev[D]>, DeepReadonly<ValueType, Prev[D]>>>;
48
54
  /**
49
55
  Same as `DeepReadonly`, but accepts only `ReadonlySet`s as inputs. Internal helper for `DeepReadonly`.
50
56
  */
51
- type DeepReadonlySet<ItemType> = {} & Readonly<ReadonlySet<DeepReadonly<ItemType>>>;
57
+ type DeepReadonlySet<ItemType, D extends number> = {} & Readonly<ReadonlySet<DeepReadonly<ItemType, Prev[D]>>>;
52
58
  /**
53
59
  Same as `DeepReadonly`, but accepts only `object`s as inputs. Internal helper for `DeepReadonly`.
54
60
  */
55
- type DeepReadonlyObject<ObjectType extends object> = {
56
- readonly [KeyType in keyof ObjectType]: DeepReadonly<ObjectType[KeyType]>;
61
+ type DeepReadonlyObject<ObjectType extends object, D extends number> = {
62
+ readonly [KeyType in keyof ObjectType]: DeepReadonly<ObjectType[KeyType], Prev[D]>;
57
63
  };
58
64
  export {};
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Shared utilities for depth-limited recursive types.
3
+ *
4
+ * The Prev tuple is used to decrement depth counters in recursive type definitions.
5
+ * When D is used as an index into Prev, it returns D-1 (e.g., Prev[5] = 4).
6
+ * When D reaches 0, Prev[0] = never, which triggers the base case.
7
+ */
8
+ export type Prev = [
9
+ never,
10
+ 0,
11
+ 1,
12
+ 2,
13
+ 3,
14
+ 4,
15
+ 5,
16
+ 6,
17
+ 7,
18
+ 8,
19
+ 9,
20
+ 10,
21
+ 11,
22
+ 12,
23
+ 13,
24
+ 14,
25
+ 15,
26
+ 16,
27
+ 17,
28
+ 18,
29
+ 19,
30
+ 20,
31
+ ...0[]
32
+ ];
33
+ /**
34
+ * Default depth for Flatten type.
35
+ *
36
+ * Flatten generates exponential string unions for deep key paths.
37
+ * A depth of 3 covers paths like `a.b.c` which is sufficient
38
+ * for most state changes while avoiding excessive type computation.
39
+ *
40
+ * For deeper paths, pass a custom depth parameter to methods like
41
+ * `change<MyState, 7>()` to override the default.
42
+ */
43
+ export type DefaultFlattenDepth = 3;
44
+ /**
45
+ * Default depth for DeepReadonly and DeepPartial types.
46
+ *
47
+ * These types have simpler recursion than Flatten (no string unions),
48
+ * so they can safely recurse deeper. A depth of 10 handles most
49
+ * real-world nested state structures.
50
+ */
51
+ export type DefaultDeepTypeDepth = 10;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DeepTypeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepTypeUtils.js","sourceRoot":"","sources":["../../../src/state/data/DeepTypeUtils.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  import { Flatten } from "./DeepKeyTypings";
2
- export interface IChangeWrapper<WrapperStateType, WrapperDeepKeyType extends keyof Flatten<WrapperStateType, never> = keyof Flatten<WrapperStateType, never>> {
3
- (wrapperKey: WrapperDeepKeyType, value: Partial<Flatten<WrapperStateType, never>[WrapperDeepKeyType]>): void;
2
+ import { DefaultFlattenDepth } from "./DeepTypeUtils";
3
+ export interface IChangeWrapper<WrapperStateType, D extends number = DefaultFlattenDepth, WrapperDeepKeyType extends keyof Flatten<WrapperStateType, never, D> = keyof Flatten<WrapperStateType, never, D>> {
4
+ (wrapperKey: WrapperDeepKeyType, value: Partial<Flatten<WrapperStateType, never, D>[WrapperDeepKeyType]>): void;
4
5
  }
@@ -1,5 +1,6 @@
1
1
  import { Flatten } from "./DeepKeyTypings";
2
+ import { DefaultFlattenDepth } from "./DeepTypeUtils";
2
3
  import { IAppStateChangeConfigVO } from "./IAppStateChangeConfigVO";
3
4
  export interface IPreChangeHook extends Function {
4
- <StateType, DeepKeyType extends keyof Flatten<StateType>>(stateForTypings: StateType, deepKey: DeepKeyType, changeConfig: IAppStateChangeConfigVO): void;
5
+ <StateType, D extends number = DefaultFlattenDepth, DeepKeyType extends keyof Flatten<StateType, never, D> = keyof Flatten<StateType, never, D>>(stateForTypings: StateType, deepKey: DeepKeyType, changeConfig: IAppStateChangeConfigVO): void;
5
6
  }