@duplojs/utils 1.4.34 → 1.4.35

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.
@@ -4401,6 +4401,9 @@
4401
4401
  {
4402
4402
  "name": "array.d.ts"
4403
4403
  },
4404
+ {
4405
+ "name": "function.d.ts"
4406
+ },
4404
4407
  {
4405
4408
  "name": "index.d.ts"
4406
4409
  },
@@ -4421,6 +4424,9 @@
4421
4424
  {
4422
4425
  "name": "array.d.ts"
4423
4426
  },
4427
+ {
4428
+ "name": "function.d.ts"
4429
+ },
4424
4430
  {
4425
4431
  "name": "getIncompleteUnion.d.ts"
4426
4432
  },
@@ -0,0 +1,8 @@
1
+ import { type AnyFunction, type IsEqual } from "../../../common";
2
+ export type ComplexMatchedFunction<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
3
+ Extract<GenericInput, AnyFunction>,
4
+ Extract<GenericPatternValue, AnyFunction>
5
+ ] extends [
6
+ infer inferredInput extends AnyFunction,
7
+ infer inferredPatternValue extends AnyFunction
8
+ ] ? Extract<inferredInput, inferredPatternValue> extends infer inferredValue ? IsEqual<inferredValue, never> extends true ? inferredPatternValue : inferredValue : never : never);
@@ -3,4 +3,6 @@ import { type ComplexMatchedObject } from "./object";
3
3
  import { type ComplexMatchedArray } from "./array";
4
4
  import { type PatternValueMaybeAll } from "../pattern";
5
5
  import { type ComplexMatchedMaybeAll } from "./maybeAll";
6
- export type ComplexMatchedValue<GenericInput extends unknown, GenericPatternValue extends unknown> = Exclude<GenericPatternValue, PatternValueMaybeAll> extends infer InferredPatternValue ? (ComplexMatchedPrimitive<GenericInput, InferredPatternValue> | ComplexMatchedObject<GenericInput, InferredPatternValue> | ComplexMatchedArray<GenericInput, InferredPatternValue> | ComplexMatchedMaybeAll<GenericInput, GenericPatternValue>) : never;
6
+ import { type ComplexMatchedFunction } from "./function";
7
+ import { type AnyValue, type IsEqual } from "../../../common";
8
+ export type ComplexMatchedValue<GenericInput extends unknown, GenericPatternValue extends unknown> = (IsEqual<GenericInput, unknown> extends true ? AnyValue : GenericInput) extends infer InferredInput ? Exclude<GenericPatternValue, PatternValueMaybeAll> extends infer InferredPatternValue ? (ComplexMatchedPrimitive<InferredInput, InferredPatternValue> | ComplexMatchedObject<InferredInput, InferredPatternValue> | ComplexMatchedArray<InferredInput, InferredPatternValue> | ComplexMatchedFunction<InferredInput, InferredPatternValue> | ComplexMatchedMaybeAll<InferredInput, GenericPatternValue>) : never : never;
@@ -1,9 +1,9 @@
1
- import { type Adaptor, type SimplifyTopLevel, type IsEqual } from "../../../common";
1
+ import { type Adaptor, type SimplifyTopLevel, type IsEqual, type AnyFunction } from "../../../common";
2
2
  import { type ComplexMatchedValue } from ".";
3
3
  import { type GetPropsWithValue } from "../../../object";
4
4
  export type ComplexMatchedObject<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
5
- Exclude<Extract<GenericInput, object>, readonly any[]>,
6
- Exclude<Extract<GenericPatternValue, object>, readonly any[]>
5
+ Exclude<Extract<GenericInput, object>, readonly any[] | AnyFunction>,
6
+ Exclude<Extract<GenericPatternValue, object>, readonly any[] | AnyFunction>
7
7
  ] extends [
8
8
  infer InferredInput,
9
9
  infer InferredPatternValue
@@ -5,15 +5,15 @@ type ComplexUnMatchedArrayTuple<GenericInput extends unknown, GenericPatternValu
5
5
  Extract<GenericPatternValue, AnyTuple>
6
6
  ] extends [
7
7
  infer InferredInput,
8
- infer _InferredPatternValue
9
- ] ? InferredInput : never);
8
+ infer InferredPatternValue
9
+ ] ? IsEqual<InferredPatternValue, never> extends true ? never : InferredInput : never);
10
10
  type ComplexUnMatchedTupleTuple<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
11
11
  Extract<GenericInput, AnyTuple>,
12
12
  Extract<GenericPatternValue, AnyTuple>
13
13
  ] extends [
14
14
  infer InferredInput,
15
15
  infer InferredPatternValue
16
- ] ? IsEqual<InferredPatternValue, never> extends true ? InferredInput : IsUnion<InferredPatternValue> extends true ? never : InferredInput extends InferredPatternValue ? never : [
16
+ ] ? IsEqual<InferredPatternValue, never> extends true ? never : IsUnion<InferredPatternValue> extends true ? never : InferredInput extends InferredPatternValue ? never : [
17
17
  InferredInput,
18
18
  InferredPatternValue
19
19
  ] extends [
@@ -23,5 +23,12 @@ type ComplexUnMatchedTupleTuple<GenericInput extends unknown, GenericPatternValu
23
23
  IsEqual<InferredResultFirst, never> extends true ? InferredInputFirst : InferredResultFirst,
24
24
  ...Adaptor<IsEqual<InferredResultRest, never> extends true ? InferredPatternValueRest : InferredResultRest, readonly any[]>
25
25
  ] : never : never : never : never);
26
- export type ComplexUnMatchedArray<GenericInput extends unknown, GenericPatternValue extends unknown> = Exclude<GenericPatternValue, readonly []> extends infer InferredPatternValue ? IsEqual<InferredPatternValue, never> extends true ? never : (ComplexUnMatchedTupleTuple<GenericInput, InferredPatternValue> | ComplexUnMatchedArrayTuple<GenericInput, InferredPatternValue>) : never;
26
+ type ComplexUnMatchedArrayArray<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
27
+ Exclude<Extract<GenericInput, readonly any[]>, AnyTuple>,
28
+ Exclude<Extract<GenericPatternValue, readonly any[]>, AnyTuple>
29
+ ] extends [
30
+ infer InferredInput extends readonly any[],
31
+ infer InferredPatternValue extends readonly any[]
32
+ ] ? IsEqual<InferredInput, never> extends true ? never : InferredInput[number] extends infer InferredInnerValue ? InferredInnerValue extends any ? Extract<InferredInnerValue, InferredPatternValue[number]> extends infer InferredObviousMatch ? IsEqual<InferredObviousMatch, never> extends true ? ComplexUnMatchedValue<InferredInnerValue, InferredPatternValue[number]> extends infer InferredValue ? IsEqual<InferredValue, never> extends true ? never : InferredInput : never : never : never : never : never : never);
33
+ export type ComplexUnMatchedArray<GenericInput extends unknown, GenericPatternValue extends unknown> = Exclude<GenericPatternValue, readonly []> extends infer InferredPatternValue ? IsEqual<InferredPatternValue, never> extends true ? never : (ComplexUnMatchedTupleTuple<GenericInput, InferredPatternValue> | ComplexUnMatchedArrayTuple<GenericInput, InferredPatternValue> | ComplexUnMatchedArrayArray<GenericInput, InferredPatternValue>) : never;
27
34
  export {};
@@ -0,0 +1,8 @@
1
+ import { type AnyFunction } from "../../../common";
2
+ export type ComplexUnMatchedFunction<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
3
+ Extract<GenericInput, AnyFunction>,
4
+ Extract<GenericPatternValue, AnyFunction>
5
+ ] extends [
6
+ infer inferredInput,
7
+ infer inferredPatternValue
8
+ ] ? Exclude<inferredInput, inferredPatternValue> : never);
@@ -52,7 +52,18 @@ export type GetIncompleteUnion<GenericInput extends unknown, GenericPatternValue
52
52
  ] ? GetIncompleteUnion<InferredInput[number], InferredPatternValueFirst> extends infer InferredResultFirst ? FlatObject<{
53
53
  "@duplojs/utils/[array.first": InferredResultFirst;
54
54
  "@duplojs/utils/array.rest]": IsEqual<InferredResultFirst, {}> extends true ? GetIncompleteUnion<InferredInput, InferredPatternValueRest> : never;
55
- }> : {} : {} : never) | (Extract<GenericPatternValue, PatternValueMaybeAll> extends infer InferredPatternValue ? IsEqual<InferredPatternValue, never> extends true ? never : {
55
+ }> : {} : {} : never) | ([
56
+ Exclude<Extract<GenericInput, readonly any[]>, AnyTuple>,
57
+ Exclude<Extract<GenericPatternValue, readonly any[]>, AnyTuple>
58
+ ] extends [
59
+ infer InferredInput extends readonly any[],
60
+ infer InferredPatternValue extends readonly any[]
61
+ ] ? Or<[
62
+ IsEqual<InferredPatternValue, never>,
63
+ IsEqual<InferredInput, never>
64
+ ]> extends true ? never : IsEqual<Exclude<InferredInput[number], InferredPatternValue[number]>, never> extends true ? {} : {
65
+ "@duplojs/utils/[array]": true;
66
+ } : never) | (Extract<GenericPatternValue, PatternValueMaybeAll> extends infer InferredPatternValue ? IsEqual<InferredPatternValue, never> extends true ? never : {
56
67
  "@duplojs/utils/{maybeAll}": true;
57
68
  } : never) | ([
58
69
  Extract<GenericInput, readonly any[]>,
@@ -1,4 +1,4 @@
1
- import { type UnionToTuple } from "../../../common";
1
+ import { type AnyValue, type IsEqual, type UnionToTuple } from "../../../common";
2
2
  import { type GetIncompleteUnion } from "./getIncompleteUnion";
3
3
  import { type ComplexUnMatchedPrimitive } from "./primitive";
4
4
  import { type ComplexUnMatchedObject } from "./object";
@@ -6,4 +6,11 @@ import { type ComplexUnMatchedUnionObject } from "./unionObject";
6
6
  import { type ComplexUnMatchedArray } from "./array";
7
7
  import { type PatternValueMaybeAll } from "../pattern";
8
8
  import { type ComplexUnMatchedMaybeAll } from "./maybeAll";
9
- export type ComplexUnMatchedValue<GenericInput extends unknown, GenericPatternValue extends unknown> = UnionToTuple<keyof GetIncompleteUnion<GenericInput, GenericPatternValue>>["length"] extends 0 | 1 ? Exclude<GenericPatternValue, PatternValueMaybeAll> extends infer InferredPatternValue ? (ComplexUnMatchedPrimitive<GenericInput, InferredPatternValue> | ComplexUnMatchedObject<GenericInput, InferredPatternValue> | ComplexUnMatchedArray<GenericInput, InferredPatternValue> | ComplexUnMatchedUnionObject<GenericInput, InferredPatternValue> | ComplexUnMatchedMaybeAll<GenericInput, GenericPatternValue>) : never : GenericInput;
9
+ import { type ComplexUnMatchedFunction } from "./function";
10
+ export type ComplexUnMatchedValue<GenericInput extends unknown, GenericPatternValue extends unknown> = (IsEqual<GenericInput, unknown> extends true ? AnyValue : GenericInput) extends infer InferredInput ? (InferredInput extends any ? UnionToTuple<keyof GetIncompleteUnion<InferredInput, GenericPatternValue>>["length"] extends 0 | 1 ? never : InferredInput : never) extends infer InferredIncompleteUnionInput ? [
11
+ Exclude<InferredInput, InferredIncompleteUnionInput>,
12
+ Exclude<GenericPatternValue, PatternValueMaybeAll>
13
+ ] extends [
14
+ infer InferredSortedInput,
15
+ infer InferredPatternValue
16
+ ] ? (ComplexUnMatchedPrimitive<InferredSortedInput, InferredPatternValue> | ComplexUnMatchedObject<InferredSortedInput, InferredPatternValue> | ComplexUnMatchedArray<InferredSortedInput, InferredPatternValue> | ComplexUnMatchedUnionObject<InferredSortedInput, InferredPatternValue> | ComplexUnMatchedFunction<InferredSortedInput, InferredPatternValue> | ComplexUnMatchedMaybeAll<InferredSortedInput, GenericPatternValue> | InferredIncompleteUnionInput) : never : never : never;
@@ -1,8 +1,8 @@
1
- import { type Adaptor, type SimplifyTopLevel, type IsEqual, type IsUnion, type NeverCoalescing, type RemoveReadonly } from "../../../common";
1
+ import { type Adaptor, type SimplifyTopLevel, type IsEqual, type IsUnion, type NeverCoalescing, type RemoveReadonly, type AnyFunction } from "../../../common";
2
2
  import { type ComplexUnMatchedValue } from ".";
3
3
  export type ComplexUnMatchedObject<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
4
- Exclude<Extract<GenericInput, object>, readonly any[]>,
5
- Exclude<Extract<GenericPatternValue, object>, readonly any[]>
4
+ Exclude<Extract<GenericInput, object>, readonly any[] | AnyFunction>,
5
+ Exclude<Extract<GenericPatternValue, object>, readonly any[] | AnyFunction>
6
6
  ] extends [
7
7
  infer InferredInput,
8
8
  infer InferredPatternValue
@@ -1,5 +1,5 @@
1
1
  import { type MergeUnionTuple } from "../../array/types/mergeUnionTuple";
2
- import { type AnyTuple, type Adaptor, type IsEqual, type ObjectKey, type WrappedValue } from "../../common";
2
+ import { type AnyTuple, type Adaptor, type IsEqual, type ObjectKey, type WrappedValue, type AnyValue } from "../../common";
3
3
  export type EligiblePrimitiveMatch = string | number | bigint | boolean | undefined | null;
4
4
  type PrimitivePattern<GenericInput extends unknown> = GenericInput extends EligiblePrimitiveMatch ? GenericInput : never;
5
5
  type ObjectPattern<GenericInput extends unknown> = Exclude<GenericInput, readonly any[]> extends infer InferredInput ? [
@@ -25,7 +25,7 @@ export interface ToolPattern<GenericInput extends unknown = any, GenericPattern
25
25
  [SymbolToolPatternFunction](input: GenericInput): boolean;
26
26
  [SymbolToolPattern]: GenericPattern;
27
27
  }
28
- export type Pattern<GenericInput extends unknown = any> = (PredicatePattern<GenericInput> | ToolPattern<GenericInput> | PrimitivePattern<GenericInput> | ObjectPattern<GenericInput> | ArrayPattern<GenericInput>);
28
+ export type Pattern<GenericInput extends unknown = any> = (IsEqual<GenericInput, unknown> extends true ? AnyValue : GenericInput) extends infer InferredInput ? (PredicatePattern<InferredInput> | ToolPattern<InferredInput> | PrimitivePattern<InferredInput> | ObjectPattern<InferredInput> | ArrayPattern<InferredInput>) : never;
29
29
  declare const SymbolPatternValueMaybeAll: unique symbol;
30
30
  type SymbolPatternValueMaybeAll = typeof SymbolPatternValueMaybeAll;
31
31
  export interface PatternValueMaybeAll<GenericValue extends unknown = any> extends WrappedValue<GenericValue> {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duplojs/utils",
3
- "version": "1.4.34",
3
+ "version": "1.4.35",
4
4
  "author": {
5
5
  "name": "mathcovax",
6
6
  "url": "https://github.com/mathcovax"