@bemedev/decompose 1.1.0 → 1.1.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"types.types.cjs","sources":["../src/types.types.ts"],"sourcesContent":["import type { types } from '@bemedev/types';\n\nexport type StateMatching<\n T extends StateValue,\n Key = keyof T,\n> = T extends StateValueMap\n ? Key extends string\n ? T[Key] extends StateValueMap\n ? `${Key}.${StateMatching<T[Key]>}` | Key\n : `${Key}.${T[Key] & string}` | Key\n : never\n : T;\n\nexport type KeysMatching<\n T extends types.TrueObject,\n AddObjectKeys extends boolean = true,\n Key extends keyof T = keyof T,\n> = Key extends string\n ? Required<T[Key]> extends types.TrueObject\n ?\n | `${Key}.${KeysMatching<Required<T[Key]>, AddObjectKeys> & string}`\n | (AddObjectKeys extends true ? Key : never)\n : Key\n : never;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type EmptyObject = {};\n\n// #region Decompose\n\n// #region type Decompose\ntype WO = 'key' | 'object' | 'both';\n\ntype _Decompose<\n T,\n sep extends string = '.',\n wo extends WO = 'key',\n Remaining extends string = '',\n> = {\n [k in keyof T]: T[k] extends infer Tk\n ? UnionToIntersection2<\n Tk extends ReadonlyArray<any>\n ? Extract<\n {\n [Key in Extract<\n keyof Tk,\n `${number}`\n > as `${Remaining}${k & string}${sep}[${Key & string}]`]: Tk[Key] extends infer TK2\n ? TK2 extends Ru\n ? _Decompose<\n TK2,\n sep,\n wo,\n `${Remaining}${k & string}${sep}[${Key & string}]${sep}`\n > &\n (wo extends 'object' | 'both'\n ? Record<\n `${Remaining}${k & string}${sep}[${Key & string}]`,\n TK2\n >\n : EmptyObject)\n : wo extends 'key' | 'both'\n ? Record<\n `${Remaining}${k & string}${sep}[${Key & string}]`,\n TK2\n >\n : never\n : never;\n } extends infer ARR\n ? ARR[keyof ARR]\n : never,\n object\n > &\n (wo extends 'object' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : EmptyObject)\n : Tk extends Ru\n ? object extends Tk\n ? Record<`${Remaining}${k & string}`, Tk>\n : _Decompose<\n Tk,\n sep,\n wo,\n `${Remaining}${k & string}${sep}`\n > &\n (wo extends 'object' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : EmptyObject)\n : wo extends 'key' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : never\n >\n : never;\n}[keyof T];\n\nexport type DecomposeOptions = {\n sep?: string;\n object?: WO;\n start?: boolean;\n};\n\nexport const DEFAULT_DECOMPOSE_OPTIONS = {\n sep: '.',\n object: 'key',\n start: true,\n} as const satisfies DecomposeOptions;\n\ntype DefaultDecomposeOptions = typeof DEFAULT_DECOMPOSE_OPTIONS;\n\nexport type Decompose<\n T,\n O extends DecomposeOptions = DefaultDecomposeOptions,\n sep extends string = O['sep'] extends string\n ? O['sep']\n : DefaultDecomposeOptions['sep'],\n> =\n NonNullable<unknown> extends T\n ? NonNullable<unknown>\n : UnionToIntersection<\n _Decompose<\n T,\n sep,\n O['object'] extends WO\n ? O['object']\n : DefaultDecomposeOptions['object'],\n O['start'] extends infer S extends boolean\n ? S extends true\n ? sep\n : ''\n : sep\n >\n >;\n// #endregion\n\n// #endregion\n\n// #region type FlatByKey\ntype _ExcludeFrom<\n S extends string,\n T extends string,\n Delimiter extends string = '.',\n> = Exclude<\n S extends `${string}${T}${infer V}` ? _ExcludeFrom<V, T, Delimiter> : S,\n `${string}${string}${Delimiter}${string}` | ''\n>;\n\nexport type ExtractEndsFrom<\n S extends string,\n T extends string,\n Delimiter extends string = '.',\n> = Extract<\n S,\n `${string}${Delimiter}${T}${_ExcludeFrom<S, T, Delimiter>}`\n>;\n\nexport type ExcludeFrom<\n S extends string,\n T extends string,\n Delimiter extends string = '.',\n> = S extends `${infer P}${Delimiter}${T}${infer V}`\n ? ExcludeFrom<`${P}${V}`, T, Delimiter>\n : S;\n\n// export type ExcludeFrom<\n// S extends string,\n// T extends string,\n// Delimiter extends string = '.',\n// > = _ExcludeFrom2<ExtractFrom<S, T, Delimiter>, T>;\n\ntype _FlatByKey<\n T extends object,\n KEY extends types.PickKeysBy<T, object>,\n wc extends boolean = false,\n sep extends string = '.',\n> = (Decompose<T, { sep: sep; object: 'object' }> extends infer D\n ? {\n [K in ExtractEndsFrom<keyof D & string, KEY> as ExcludeFrom<\n K,\n KEY\n >]: wc extends true ? D[K] : Omit<D[K], KEY>;\n }\n : never) &\n Record<sep, T>;\n\nexport type FlatOptions = {\n sep?: string;\n children?: boolean;\n};\n\nexport const DEFAULT_FLAT_OPTIONS = {\n sep: '.',\n children: false,\n} as const satisfies FlatOptions;\n\ntype DefaultFlatOptions = typeof DEFAULT_FLAT_OPTIONS;\n\nexport type FlatByKey<\n T extends object,\n omit extends types.PickKeysBy<T, object>,\n O extends FlatOptions = DefaultFlatOptions,\n> = _FlatByKey<\n T,\n omit,\n O['children'] extends boolean\n ? O['children']\n : DefaultFlatOptions['children'],\n O['sep'] extends string ? O['sep'] : DefaultFlatOptions['sep']\n>;\n\n//#endregion\n\nexport type StateValue = string | StateValueMap;\n\nexport interface StateValueMap {\n [key: string]: StateValue;\n}\n\nexport type Ru = Record<string, unknown>;\n\n// #region Recompose\n// #region Preparation\n// type Primitive = string | number | boolean | null | undefined | never;\nexport type UnionToIntersection<U> = boolean extends U\n ? U\n : (U extends any ? (k: U) => void : never) extends (k: infer I) => void\n ? I\n : never;\n\nexport type UnionKeys<U> = U extends Record<infer K, any> ? K : never;\n\nexport type UnionToIntersection2<U extends object> = {\n [K in UnionKeys<U>]: U extends Record<K, infer T> ? T : never;\n};\n\ntype SplitSeparator<S extends string> = S extends `${infer A}.${string}`\n ? A\n : S;\n\n// Simple tuple creation for arrays up to 10 elements\n\nexport type IndexString = `[${number}]`;\n\n// #endregion\n\ntype _Recompose<T extends Ru> = {\n [key in keyof T as SplitSeparator<key & string>]: UnionToIntersection<\n key extends `${string}.${infer A}`\n ? A extends `${string}.${string}`\n ? _Recompose<Record<A, T[key]>>\n : Record<A, T[key]>\n : T[key]\n >;\n};\n\nexport type Recompose<T extends Ru> = Recompose3<_Recompose<T>>;\n\nexport type Compare<T, U> = T extends U\n ? U extends T\n ? true\n : false\n : false;\n\nexport type Recompose3<T extends types.To> = keyof T extends never\n ? NonNullable<unknown>\n : keyof T extends IndexString\n ? types.ValuesOf<T>[]\n : {\n [K in keyof T]: T[K] extends infer TK extends types.To\n ? Recompose3<TK>\n : T[K];\n };\n\n// #endregion\n"],"names":[],"mappings":";;AAqGO,MAAM,yBAAyB,GAAG;AACvC,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,KAAK,EAAE,IAAI;;AAqFN,MAAM,oBAAoB,GAAG;AAClC,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,QAAQ,EAAE,KAAK;;AAiFjB;;;;;"}
1
+ {"version":3,"file":"types.types.cjs","sources":["../src/types.types.ts"],"sourcesContent":["import type { types } from '@bemedev/types';\n\nexport type StateMatching<\n T extends StateValue,\n Key = keyof T,\n> = T extends StateValueMap\n ? Key extends string\n ? T[Key] extends StateValueMap\n ? `${Key}.${StateMatching<T[Key]>}` | Key\n : `${Key}.${T[Key] & string}` | Key\n : never\n : T;\n\nexport type KeysMatching<\n T extends types.TrueObject,\n AddObjectKeys extends boolean = true,\n Key extends keyof T = keyof T,\n> = Key extends string\n ? Required<T[Key]> extends types.TrueObject\n ?\n | `${Key}.${KeysMatching<Required<T[Key]>, AddObjectKeys> & string}`\n | (AddObjectKeys extends true ? Key : never)\n : Key\n : never;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type EmptyObject = {};\n\n// #region Decompose\n\n// #region type Decompose\ntype WO = 'key' | 'object' | 'both';\n\ntype _Decompose<\n T,\n sep extends string = '.',\n wo extends WO = 'key',\n Remaining extends string = '',\n> = {\n [k in keyof T]: T[k] extends infer Tk\n ? UnionToIntersection2<\n Tk extends types.AnyArray<any>\n ? number extends Tk['length']\n ? wo extends 'object' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : EmptyObject\n : Extract<\n {\n [Key in Extract<\n keyof Tk,\n `${number}`\n > as `${Remaining}${k & string}${sep}[${Key & string}]`]: Tk[Key] extends infer TK2\n ? TK2 extends Ru\n ? _Decompose<\n TK2,\n sep,\n wo,\n `${Remaining}${k & string}${sep}[${Key & string}]${sep}`\n > &\n (wo extends 'object' | 'both'\n ? Record<\n `${Remaining}${k & string}${sep}[${Key & string}]`,\n TK2\n >\n : EmptyObject)\n : wo extends 'key' | 'both'\n ? Record<\n `${Remaining}${k & string}${sep}[${Key & string}]`,\n TK2\n >\n : never\n : never;\n } extends infer ARR\n ? ARR[keyof ARR]\n : never,\n object\n > &\n (wo extends 'object' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : EmptyObject)\n : Tk extends Ru\n ? object extends Tk\n ? Record<`${Remaining}${k & string}`, Tk>\n : _Decompose<\n Tk,\n sep,\n wo,\n `${Remaining}${k & string}${sep}`\n > &\n (wo extends 'object' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : EmptyObject)\n : wo extends 'key' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : never\n >\n : never;\n}[keyof T];\n\nexport type DecomposeOptions = {\n sep?: string;\n object?: WO;\n start?: boolean;\n};\n\nexport const DEFAULT_DECOMPOSE_OPTIONS = {\n sep: '.',\n object: 'key',\n start: true,\n} as const satisfies DecomposeOptions;\n\ntype DefaultDecomposeOptions = typeof DEFAULT_DECOMPOSE_OPTIONS;\n\nexport type Decompose<\n T,\n O extends DecomposeOptions = DefaultDecomposeOptions,\n sep extends string = O['sep'] extends string\n ? O['sep']\n : DefaultDecomposeOptions['sep'],\n> =\n NonNullable<unknown> extends T\n ? NonNullable<unknown>\n : UnionToIntersection2<\n _Decompose<\n T,\n sep,\n O['object'] extends WO\n ? O['object']\n : DefaultDecomposeOptions['object'],\n O['start'] extends infer S extends boolean\n ? S extends true\n ? sep\n : ''\n : sep\n >\n >;\n// #endregion\n\n// #endregion\n\n// #region type FlatByKey\ntype _ExcludeFrom<\n S extends string,\n T extends string,\n Delimiter extends string = '.',\n> = Exclude<\n S extends `${string}${T}${infer V}` ? _ExcludeFrom<V, T, Delimiter> : S,\n `${string}${string}${Delimiter}${string}` | ''\n>;\n\nexport type ExtractEndsFrom<\n S extends string,\n T extends string,\n Delimiter extends string = '.',\n> = Extract<\n S,\n `${string}${Delimiter}${T}${_ExcludeFrom<S, T, Delimiter>}`\n>;\n\nexport type ExcludeFrom<\n S extends string,\n T extends string,\n Delimiter extends string = '.',\n> = S extends `${infer P}${Delimiter}${T}${infer V}`\n ? ExcludeFrom<`${P}${V}`, T, Delimiter>\n : S;\n\n// export type ExcludeFrom<\n// S extends string,\n// T extends string,\n// Delimiter extends string = '.',\n// > = _ExcludeFrom2<ExtractFrom<S, T, Delimiter>, T>;\n\ntype _FlatByKey<\n T extends object,\n KEY extends types.PickKeysBy<T, object>,\n wc extends boolean = false,\n sep extends string = '.',\n> = (Decompose<T, { sep: sep; object: 'object' }> extends infer D\n ? {\n [K in ExtractEndsFrom<keyof D & string, KEY> as ExcludeFrom<\n K,\n KEY\n >]: wc extends true ? D[K] : Omit<D[K], KEY>;\n }\n : never) &\n Record<sep, T>;\n\nexport type FlatOptions = {\n sep?: string;\n children?: boolean;\n};\n\nexport const DEFAULT_FLAT_OPTIONS = {\n sep: '.',\n children: false,\n} as const satisfies FlatOptions;\n\ntype DefaultFlatOptions = typeof DEFAULT_FLAT_OPTIONS;\n\nexport type FlatByKey<\n T extends object,\n omit extends types.PickKeysBy<T, object>,\n O extends FlatOptions = DefaultFlatOptions,\n> = _FlatByKey<\n T,\n omit,\n O['children'] extends boolean\n ? O['children']\n : DefaultFlatOptions['children'],\n O['sep'] extends string ? O['sep'] : DefaultFlatOptions['sep']\n>;\n\n//#endregion\n\nexport type StateValue = string | StateValueMap;\n\nexport interface StateValueMap {\n [key: string]: StateValue;\n}\n\nexport type Ru = Record<string, unknown>;\n\n// #region Recompose\n// #region Preparation\n// type Primitive = string | number | boolean | null | undefined | never;\nexport type UnionToIntersection<U> = boolean extends U\n ? U\n : (U extends any ? (k: U) => void : never) extends (k: infer I) => void\n ? I\n : never;\n\nexport type UnionKeys<U> = U extends Record<infer K, any> ? K : never;\n\nexport type UnionToIntersection2<U extends object> = {\n [K in UnionKeys<U>]: U extends Record<K, infer T> ? T : never;\n};\n\ntype SplitSeparator<S extends string> = S extends `${infer A}.${string}`\n ? A\n : S;\n\n// Simple tuple creation for arrays up to 10 elements\n\nexport type IndexString = `[${number}]`;\n\n// #endregion\n\ntype _Recompose<T extends Ru> = {\n [key in keyof T as SplitSeparator<key & string>]: UnionToIntersection<\n key extends `${string}.${infer A}`\n ? A extends `${string}.${string}`\n ? _Recompose<Record<A, T[key]>>\n : Record<A, T[key]>\n : T[key]\n >;\n};\n\nexport type Recompose<T extends Ru> = Recompose3<_Recompose<T>>;\n\nexport type Compare<T, U> = T extends U\n ? U extends T\n ? true\n : false\n : false;\n\nexport type Recompose3<T extends types.To> = keyof T extends never\n ? NonNullable<unknown>\n : keyof T extends IndexString\n ? types.ValuesOf<T>[]\n : {\n [K in keyof T]: T[K] extends infer TK extends types.To\n ? Recompose3<TK>\n : T[K];\n };\n\n// #endregion\n"],"names":[],"mappings":";;AAyGO,MAAM,yBAAyB,GAAG;AACvC,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,KAAK,EAAE,IAAI;;AAqFN,MAAM,oBAAoB,GAAG;AAClC,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,QAAQ,EAAE,KAAK;;AAiFjB;;;;;"}
@@ -4,7 +4,7 @@ export type KeysMatching<T extends types.TrueObject, AddObjectKeys extends boole
4
4
  export type EmptyObject = {};
5
5
  type WO = 'key' | 'object' | 'both';
6
6
  type _Decompose<T, sep extends string = '.', wo extends WO = 'key', Remaining extends string = ''> = {
7
- [k in keyof T]: T[k] extends infer Tk ? UnionToIntersection2<Tk extends ReadonlyArray<any> ? Extract<{
7
+ [k in keyof T]: T[k] extends infer Tk ? UnionToIntersection2<Tk extends types.AnyArray<any> ? number extends Tk['length'] ? wo extends 'object' | 'both' ? Record<`${Remaining}${k & string}`, Tk> : EmptyObject : Extract<{
8
8
  [Key in Extract<keyof Tk, `${number}`> as `${Remaining}${k & string}${sep}[${Key & string}]`]: Tk[Key] extends infer TK2 ? TK2 extends Ru ? _Decompose<TK2, sep, wo, `${Remaining}${k & string}${sep}[${Key & string}]${sep}`> & (wo extends 'object' | 'both' ? Record<`${Remaining}${k & string}${sep}[${Key & string}]`, TK2> : EmptyObject) : wo extends 'key' | 'both' ? Record<`${Remaining}${k & string}${sep}[${Key & string}]`, TK2> : never : never;
9
9
  } extends infer ARR ? ARR[keyof ARR] : never, object> & (wo extends 'object' | 'both' ? Record<`${Remaining}${k & string}`, Tk> : EmptyObject) : Tk extends Ru ? object extends Tk ? Record<`${Remaining}${k & string}`, Tk> : _Decompose<Tk, sep, wo, `${Remaining}${k & string}${sep}`> & (wo extends 'object' | 'both' ? Record<`${Remaining}${k & string}`, Tk> : EmptyObject) : wo extends 'key' | 'both' ? Record<`${Remaining}${k & string}`, Tk> : never> : never;
10
10
  }[keyof T];
@@ -19,7 +19,7 @@ export declare const DEFAULT_DECOMPOSE_OPTIONS: {
19
19
  readonly start: true;
20
20
  };
21
21
  type DefaultDecomposeOptions = typeof DEFAULT_DECOMPOSE_OPTIONS;
22
- export type Decompose<T, O extends DecomposeOptions = DefaultDecomposeOptions, sep extends string = O['sep'] extends string ? O['sep'] : DefaultDecomposeOptions['sep']> = NonNullable<unknown> extends T ? NonNullable<unknown> : UnionToIntersection<_Decompose<T, sep, O['object'] extends WO ? O['object'] : DefaultDecomposeOptions['object'], O['start'] extends infer S extends boolean ? S extends true ? sep : '' : sep>>;
22
+ export type Decompose<T, O extends DecomposeOptions = DefaultDecomposeOptions, sep extends string = O['sep'] extends string ? O['sep'] : DefaultDecomposeOptions['sep']> = NonNullable<unknown> extends T ? NonNullable<unknown> : UnionToIntersection2<_Decompose<T, sep, O['object'] extends WO ? O['object'] : DefaultDecomposeOptions['object'], O['start'] extends infer S extends boolean ? S extends true ? sep : '' : sep>>;
23
23
  type _ExcludeFrom<S extends string, T extends string, Delimiter extends string = '.'> = Exclude<S extends `${string}${T}${infer V}` ? _ExcludeFrom<V, T, Delimiter> : S, `${string}${string}${Delimiter}${string}` | ''>;
24
24
  export type ExtractEndsFrom<S extends string, T extends string, Delimiter extends string = '.'> = Extract<S, `${string}${Delimiter}${T}${_ExcludeFrom<S, T, Delimiter>}`>;
25
25
  export type ExcludeFrom<S extends string, T extends string, Delimiter extends string = '.'> = S extends `${infer P}${Delimiter}${T}${infer V}` ? ExcludeFrom<`${P}${V}`, T, Delimiter> : S;
@@ -1 +1 @@
1
- {"version":3,"file":"types.types.d.ts","sourceRoot":"","sources":["../src/types.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.types.d.ts","sourceRoot":"","sources":["../src/types.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.types.js","sources":["../src/types.types.ts"],"sourcesContent":["import type { types } from '@bemedev/types';\n\nexport type StateMatching<\n T extends StateValue,\n Key = keyof T,\n> = T extends StateValueMap\n ? Key extends string\n ? T[Key] extends StateValueMap\n ? `${Key}.${StateMatching<T[Key]>}` | Key\n : `${Key}.${T[Key] & string}` | Key\n : never\n : T;\n\nexport type KeysMatching<\n T extends types.TrueObject,\n AddObjectKeys extends boolean = true,\n Key extends keyof T = keyof T,\n> = Key extends string\n ? Required<T[Key]> extends types.TrueObject\n ?\n | `${Key}.${KeysMatching<Required<T[Key]>, AddObjectKeys> & string}`\n | (AddObjectKeys extends true ? Key : never)\n : Key\n : never;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type EmptyObject = {};\n\n// #region Decompose\n\n// #region type Decompose\ntype WO = 'key' | 'object' | 'both';\n\ntype _Decompose<\n T,\n sep extends string = '.',\n wo extends WO = 'key',\n Remaining extends string = '',\n> = {\n [k in keyof T]: T[k] extends infer Tk\n ? UnionToIntersection2<\n Tk extends ReadonlyArray<any>\n ? Extract<\n {\n [Key in Extract<\n keyof Tk,\n `${number}`\n > as `${Remaining}${k & string}${sep}[${Key & string}]`]: Tk[Key] extends infer TK2\n ? TK2 extends Ru\n ? _Decompose<\n TK2,\n sep,\n wo,\n `${Remaining}${k & string}${sep}[${Key & string}]${sep}`\n > &\n (wo extends 'object' | 'both'\n ? Record<\n `${Remaining}${k & string}${sep}[${Key & string}]`,\n TK2\n >\n : EmptyObject)\n : wo extends 'key' | 'both'\n ? Record<\n `${Remaining}${k & string}${sep}[${Key & string}]`,\n TK2\n >\n : never\n : never;\n } extends infer ARR\n ? ARR[keyof ARR]\n : never,\n object\n > &\n (wo extends 'object' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : EmptyObject)\n : Tk extends Ru\n ? object extends Tk\n ? Record<`${Remaining}${k & string}`, Tk>\n : _Decompose<\n Tk,\n sep,\n wo,\n `${Remaining}${k & string}${sep}`\n > &\n (wo extends 'object' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : EmptyObject)\n : wo extends 'key' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : never\n >\n : never;\n}[keyof T];\n\nexport type DecomposeOptions = {\n sep?: string;\n object?: WO;\n start?: boolean;\n};\n\nexport const DEFAULT_DECOMPOSE_OPTIONS = {\n sep: '.',\n object: 'key',\n start: true,\n} as const satisfies DecomposeOptions;\n\ntype DefaultDecomposeOptions = typeof DEFAULT_DECOMPOSE_OPTIONS;\n\nexport type Decompose<\n T,\n O extends DecomposeOptions = DefaultDecomposeOptions,\n sep extends string = O['sep'] extends string\n ? O['sep']\n : DefaultDecomposeOptions['sep'],\n> =\n NonNullable<unknown> extends T\n ? NonNullable<unknown>\n : UnionToIntersection<\n _Decompose<\n T,\n sep,\n O['object'] extends WO\n ? O['object']\n : DefaultDecomposeOptions['object'],\n O['start'] extends infer S extends boolean\n ? S extends true\n ? sep\n : ''\n : sep\n >\n >;\n// #endregion\n\n// #endregion\n\n// #region type FlatByKey\ntype _ExcludeFrom<\n S extends string,\n T extends string,\n Delimiter extends string = '.',\n> = Exclude<\n S extends `${string}${T}${infer V}` ? _ExcludeFrom<V, T, Delimiter> : S,\n `${string}${string}${Delimiter}${string}` | ''\n>;\n\nexport type ExtractEndsFrom<\n S extends string,\n T extends string,\n Delimiter extends string = '.',\n> = Extract<\n S,\n `${string}${Delimiter}${T}${_ExcludeFrom<S, T, Delimiter>}`\n>;\n\nexport type ExcludeFrom<\n S extends string,\n T extends string,\n Delimiter extends string = '.',\n> = S extends `${infer P}${Delimiter}${T}${infer V}`\n ? ExcludeFrom<`${P}${V}`, T, Delimiter>\n : S;\n\n// export type ExcludeFrom<\n// S extends string,\n// T extends string,\n// Delimiter extends string = '.',\n// > = _ExcludeFrom2<ExtractFrom<S, T, Delimiter>, T>;\n\ntype _FlatByKey<\n T extends object,\n KEY extends types.PickKeysBy<T, object>,\n wc extends boolean = false,\n sep extends string = '.',\n> = (Decompose<T, { sep: sep; object: 'object' }> extends infer D\n ? {\n [K in ExtractEndsFrom<keyof D & string, KEY> as ExcludeFrom<\n K,\n KEY\n >]: wc extends true ? D[K] : Omit<D[K], KEY>;\n }\n : never) &\n Record<sep, T>;\n\nexport type FlatOptions = {\n sep?: string;\n children?: boolean;\n};\n\nexport const DEFAULT_FLAT_OPTIONS = {\n sep: '.',\n children: false,\n} as const satisfies FlatOptions;\n\ntype DefaultFlatOptions = typeof DEFAULT_FLAT_OPTIONS;\n\nexport type FlatByKey<\n T extends object,\n omit extends types.PickKeysBy<T, object>,\n O extends FlatOptions = DefaultFlatOptions,\n> = _FlatByKey<\n T,\n omit,\n O['children'] extends boolean\n ? O['children']\n : DefaultFlatOptions['children'],\n O['sep'] extends string ? O['sep'] : DefaultFlatOptions['sep']\n>;\n\n//#endregion\n\nexport type StateValue = string | StateValueMap;\n\nexport interface StateValueMap {\n [key: string]: StateValue;\n}\n\nexport type Ru = Record<string, unknown>;\n\n// #region Recompose\n// #region Preparation\n// type Primitive = string | number | boolean | null | undefined | never;\nexport type UnionToIntersection<U> = boolean extends U\n ? U\n : (U extends any ? (k: U) => void : never) extends (k: infer I) => void\n ? I\n : never;\n\nexport type UnionKeys<U> = U extends Record<infer K, any> ? K : never;\n\nexport type UnionToIntersection2<U extends object> = {\n [K in UnionKeys<U>]: U extends Record<K, infer T> ? T : never;\n};\n\ntype SplitSeparator<S extends string> = S extends `${infer A}.${string}`\n ? A\n : S;\n\n// Simple tuple creation for arrays up to 10 elements\n\nexport type IndexString = `[${number}]`;\n\n// #endregion\n\ntype _Recompose<T extends Ru> = {\n [key in keyof T as SplitSeparator<key & string>]: UnionToIntersection<\n key extends `${string}.${infer A}`\n ? A extends `${string}.${string}`\n ? _Recompose<Record<A, T[key]>>\n : Record<A, T[key]>\n : T[key]\n >;\n};\n\nexport type Recompose<T extends Ru> = Recompose3<_Recompose<T>>;\n\nexport type Compare<T, U> = T extends U\n ? U extends T\n ? true\n : false\n : false;\n\nexport type Recompose3<T extends types.To> = keyof T extends never\n ? NonNullable<unknown>\n : keyof T extends IndexString\n ? types.ValuesOf<T>[]\n : {\n [K in keyof T]: T[K] extends infer TK extends types.To\n ? Recompose3<TK>\n : T[K];\n };\n\n// #endregion\n"],"names":[],"mappings":"AAqGO,MAAM,yBAAyB,GAAG;AACvC,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,KAAK,EAAE,IAAI;;AAqFN,MAAM,oBAAoB,GAAG;AAClC,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,QAAQ,EAAE,KAAK;;AAiFjB;;;;"}
1
+ {"version":3,"file":"types.types.js","sources":["../src/types.types.ts"],"sourcesContent":["import type { types } from '@bemedev/types';\n\nexport type StateMatching<\n T extends StateValue,\n Key = keyof T,\n> = T extends StateValueMap\n ? Key extends string\n ? T[Key] extends StateValueMap\n ? `${Key}.${StateMatching<T[Key]>}` | Key\n : `${Key}.${T[Key] & string}` | Key\n : never\n : T;\n\nexport type KeysMatching<\n T extends types.TrueObject,\n AddObjectKeys extends boolean = true,\n Key extends keyof T = keyof T,\n> = Key extends string\n ? Required<T[Key]> extends types.TrueObject\n ?\n | `${Key}.${KeysMatching<Required<T[Key]>, AddObjectKeys> & string}`\n | (AddObjectKeys extends true ? Key : never)\n : Key\n : never;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type EmptyObject = {};\n\n// #region Decompose\n\n// #region type Decompose\ntype WO = 'key' | 'object' | 'both';\n\ntype _Decompose<\n T,\n sep extends string = '.',\n wo extends WO = 'key',\n Remaining extends string = '',\n> = {\n [k in keyof T]: T[k] extends infer Tk\n ? UnionToIntersection2<\n Tk extends types.AnyArray<any>\n ? number extends Tk['length']\n ? wo extends 'object' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : EmptyObject\n : Extract<\n {\n [Key in Extract<\n keyof Tk,\n `${number}`\n > as `${Remaining}${k & string}${sep}[${Key & string}]`]: Tk[Key] extends infer TK2\n ? TK2 extends Ru\n ? _Decompose<\n TK2,\n sep,\n wo,\n `${Remaining}${k & string}${sep}[${Key & string}]${sep}`\n > &\n (wo extends 'object' | 'both'\n ? Record<\n `${Remaining}${k & string}${sep}[${Key & string}]`,\n TK2\n >\n : EmptyObject)\n : wo extends 'key' | 'both'\n ? Record<\n `${Remaining}${k & string}${sep}[${Key & string}]`,\n TK2\n >\n : never\n : never;\n } extends infer ARR\n ? ARR[keyof ARR]\n : never,\n object\n > &\n (wo extends 'object' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : EmptyObject)\n : Tk extends Ru\n ? object extends Tk\n ? Record<`${Remaining}${k & string}`, Tk>\n : _Decompose<\n Tk,\n sep,\n wo,\n `${Remaining}${k & string}${sep}`\n > &\n (wo extends 'object' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : EmptyObject)\n : wo extends 'key' | 'both'\n ? Record<`${Remaining}${k & string}`, Tk>\n : never\n >\n : never;\n}[keyof T];\n\nexport type DecomposeOptions = {\n sep?: string;\n object?: WO;\n start?: boolean;\n};\n\nexport const DEFAULT_DECOMPOSE_OPTIONS = {\n sep: '.',\n object: 'key',\n start: true,\n} as const satisfies DecomposeOptions;\n\ntype DefaultDecomposeOptions = typeof DEFAULT_DECOMPOSE_OPTIONS;\n\nexport type Decompose<\n T,\n O extends DecomposeOptions = DefaultDecomposeOptions,\n sep extends string = O['sep'] extends string\n ? O['sep']\n : DefaultDecomposeOptions['sep'],\n> =\n NonNullable<unknown> extends T\n ? NonNullable<unknown>\n : UnionToIntersection2<\n _Decompose<\n T,\n sep,\n O['object'] extends WO\n ? O['object']\n : DefaultDecomposeOptions['object'],\n O['start'] extends infer S extends boolean\n ? S extends true\n ? sep\n : ''\n : sep\n >\n >;\n// #endregion\n\n// #endregion\n\n// #region type FlatByKey\ntype _ExcludeFrom<\n S extends string,\n T extends string,\n Delimiter extends string = '.',\n> = Exclude<\n S extends `${string}${T}${infer V}` ? _ExcludeFrom<V, T, Delimiter> : S,\n `${string}${string}${Delimiter}${string}` | ''\n>;\n\nexport type ExtractEndsFrom<\n S extends string,\n T extends string,\n Delimiter extends string = '.',\n> = Extract<\n S,\n `${string}${Delimiter}${T}${_ExcludeFrom<S, T, Delimiter>}`\n>;\n\nexport type ExcludeFrom<\n S extends string,\n T extends string,\n Delimiter extends string = '.',\n> = S extends `${infer P}${Delimiter}${T}${infer V}`\n ? ExcludeFrom<`${P}${V}`, T, Delimiter>\n : S;\n\n// export type ExcludeFrom<\n// S extends string,\n// T extends string,\n// Delimiter extends string = '.',\n// > = _ExcludeFrom2<ExtractFrom<S, T, Delimiter>, T>;\n\ntype _FlatByKey<\n T extends object,\n KEY extends types.PickKeysBy<T, object>,\n wc extends boolean = false,\n sep extends string = '.',\n> = (Decompose<T, { sep: sep; object: 'object' }> extends infer D\n ? {\n [K in ExtractEndsFrom<keyof D & string, KEY> as ExcludeFrom<\n K,\n KEY\n >]: wc extends true ? D[K] : Omit<D[K], KEY>;\n }\n : never) &\n Record<sep, T>;\n\nexport type FlatOptions = {\n sep?: string;\n children?: boolean;\n};\n\nexport const DEFAULT_FLAT_OPTIONS = {\n sep: '.',\n children: false,\n} as const satisfies FlatOptions;\n\ntype DefaultFlatOptions = typeof DEFAULT_FLAT_OPTIONS;\n\nexport type FlatByKey<\n T extends object,\n omit extends types.PickKeysBy<T, object>,\n O extends FlatOptions = DefaultFlatOptions,\n> = _FlatByKey<\n T,\n omit,\n O['children'] extends boolean\n ? O['children']\n : DefaultFlatOptions['children'],\n O['sep'] extends string ? O['sep'] : DefaultFlatOptions['sep']\n>;\n\n//#endregion\n\nexport type StateValue = string | StateValueMap;\n\nexport interface StateValueMap {\n [key: string]: StateValue;\n}\n\nexport type Ru = Record<string, unknown>;\n\n// #region Recompose\n// #region Preparation\n// type Primitive = string | number | boolean | null | undefined | never;\nexport type UnionToIntersection<U> = boolean extends U\n ? U\n : (U extends any ? (k: U) => void : never) extends (k: infer I) => void\n ? I\n : never;\n\nexport type UnionKeys<U> = U extends Record<infer K, any> ? K : never;\n\nexport type UnionToIntersection2<U extends object> = {\n [K in UnionKeys<U>]: U extends Record<K, infer T> ? T : never;\n};\n\ntype SplitSeparator<S extends string> = S extends `${infer A}.${string}`\n ? A\n : S;\n\n// Simple tuple creation for arrays up to 10 elements\n\nexport type IndexString = `[${number}]`;\n\n// #endregion\n\ntype _Recompose<T extends Ru> = {\n [key in keyof T as SplitSeparator<key & string>]: UnionToIntersection<\n key extends `${string}.${infer A}`\n ? A extends `${string}.${string}`\n ? _Recompose<Record<A, T[key]>>\n : Record<A, T[key]>\n : T[key]\n >;\n};\n\nexport type Recompose<T extends Ru> = Recompose3<_Recompose<T>>;\n\nexport type Compare<T, U> = T extends U\n ? U extends T\n ? true\n : false\n : false;\n\nexport type Recompose3<T extends types.To> = keyof T extends never\n ? NonNullable<unknown>\n : keyof T extends IndexString\n ? types.ValuesOf<T>[]\n : {\n [K in keyof T]: T[K] extends infer TK extends types.To\n ? Recompose3<TK>\n : T[K];\n };\n\n// #endregion\n"],"names":[],"mappings":"AAyGO,MAAM,yBAAyB,GAAG;AACvC,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,KAAK,EAAE,IAAI;;AAqFN,MAAM,oBAAoB,GAAG;AAClC,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,QAAQ,EAAE,KAAK;;AAiFjB;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bemedev/decompose",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Decompose object and so more",
5
5
  "author": {
6
6
  "email": "bri_lvi@icloud.com",