Comparing version 1.0.27-alpha to 1.0.28-alpha
import type { DisjointsByPath } from "../../nodes/compose.js"; | ||
import type { asConst, evaluate, isAny, List } from "../../utils/generics.js"; | ||
import type { Path, pathToString } from "../../utils/paths.js"; | ||
import type { ParsedMorph } from "./morph.js"; | ||
export type inferIntersection<l, r> = [l] extends [never] ? never : [r] extends [never] ? never : [l & r] extends [never] ? never : isAny<l | r> extends true ? any : l extends ParsedMorph<infer lIn, infer lOut> ? r extends ParsedMorph ? never : (In: evaluate<lIn & r>) => lOut : r extends ParsedMorph<infer rIn, infer rOut> ? (In: evaluate<rIn & l>) => rOut : intersectObjects<l, r> extends infer result ? result : never; | ||
import type { Out, ParsedMorph } from "./morph.js"; | ||
export type inferIntersection<l, r> = [l] extends [never] ? never : [r] extends [never] ? never : [l & r] extends [never] ? never : isAny<l | r> extends true ? any : l extends ParsedMorph<infer lIn, infer lOut> ? r extends ParsedMorph ? never : (In: evaluate<lIn & r>) => Out<lOut> : r extends ParsedMorph<infer rIn, infer rOut> ? (In: evaluate<rIn & l>) => Out<rOut> : intersectObjects<l, r> extends infer result ? result : never; | ||
type intersectObjects<l, r> = [l, r] extends [object, object] ? [l, r] extends [infer lList extends List, infer rList extends List] ? inferArrayIntersection<lList, rList> : evaluate<{ | ||
@@ -7,0 +7,0 @@ [k in keyof l]: k extends keyof r ? inferIntersection<l[k], r[k]> : l[k]; |
@@ -13,6 +13,7 @@ import type { asIn, asOut } from "../../scopes/type.js"; | ||
export type Morph<i = any, o = unknown> = (In: i, problems: Problems) => o; | ||
export type ParsedMorph<i = any, o = unknown> = (In: i) => o; | ||
export type inferMorph<inDef, morph, $> = morph extends Morph ? (In: asIn<inferDefinition<inDef, $>>) => inferMorphOut<ReturnType<morph>> : never; | ||
export type Out<o = unknown> = readonly ["|>", o]; | ||
export type ParsedMorph<i = any, o = unknown> = (In: i) => Out<o>; | ||
export type inferMorph<inDef, morph, $> = morph extends Morph ? (In: asIn<inferDefinition<inDef, $>>) => Out<inferMorphOut<ReturnType<morph>>> : never; | ||
type inferMorphOut<out> = [out] extends [CheckResult<infer t>] ? t : Exclude<out, Problem>; | ||
export declare const writeMalformedMorphExpressionMessage: (value: unknown) => string; | ||
export {}; |
@@ -0,1 +1,2 @@ | ||
import type { Out } from "../parse/ast/morph.js"; | ||
import type { Space } from "./scope.js"; | ||
@@ -34,7 +35,7 @@ import type { TypeParser } from "./type.js"; | ||
uuid: string; | ||
parsedNumber: (In: string) => number; | ||
parsedInteger: (In: string) => number; | ||
parsedDate: (In: string) => Date; | ||
parsedNumber: (In: string) => Out<number>; | ||
parsedInteger: (In: string) => Out<number>; | ||
parsedDate: (In: string) => Out<Date>; | ||
semver: string; | ||
json: (In: string) => unknown; | ||
json: (In: string) => Out<unknown>; | ||
integer: number; | ||
@@ -80,7 +81,7 @@ }, {}, false]>; | ||
uuid: string; | ||
parsedNumber: (In: string) => number; | ||
parsedInteger: (In: string) => number; | ||
parsedDate: (In: string) => Date; | ||
parsedNumber: (In: string) => Out<number>; | ||
parsedInteger: (In: string) => Out<number>; | ||
parsedDate: (In: string) => Out<Date>; | ||
semver: string; | ||
json: (In: string) => unknown; | ||
json: (In: string) => Out<unknown>; | ||
integer: number; | ||
@@ -119,7 +120,7 @@ }, {}, false]>; | ||
uuid: string; | ||
parsedNumber: (In: string) => number; | ||
parsedInteger: (In: string) => number; | ||
parsedDate: (In: string) => Date; | ||
parsedNumber: (In: string) => Out<number>; | ||
parsedInteger: (In: string) => Out<number>; | ||
parsedDate: (In: string) => Out<Date>; | ||
semver: string; | ||
json: (In: string) => unknown; | ||
json: (In: string) => Out<unknown>; | ||
integer: number; | ||
@@ -164,7 +165,7 @@ }, {}, false]>; | ||
uuid: string; | ||
parsedNumber: (In: string) => number; | ||
parsedInteger: (In: string) => number; | ||
parsedDate: (In: string) => Date; | ||
parsedNumber: (In: string) => Out<number>; | ||
parsedInteger: (In: string) => Out<number>; | ||
parsedDate: (In: string) => Out<Date>; | ||
semver: string; | ||
json: (In: string) => unknown; | ||
json: (In: string) => Out<unknown>; | ||
integer: number; | ||
@@ -198,6 +199,6 @@ }>; | ||
semver: string; | ||
json: (In: string) => unknown; | ||
parsedNumber: (In: string) => number; | ||
parsedInteger: (In: string) => number; | ||
parsedDate: (In: string) => Date; | ||
json: (In: string) => Out<unknown>; | ||
parsedNumber: (In: string) => Out<number>; | ||
parsedInteger: (In: string) => Out<number>; | ||
parsedDate: (In: string) => Out<Date>; | ||
Function: (...args: any[]) => unknown; | ||
@@ -204,0 +205,0 @@ Date: Date; |
@@ -22,3 +22,3 @@ type DayDelimiter = "." | "/" | "-"; | ||
export declare const tryParseDate: (data: string, opts?: DateOptions) => Date | string; | ||
export declare const parsedDate: import("../type.js").Type<(In: string) => Date>; | ||
export declare const parsedDate: import("../type.js").Type<(In: string) => import("../../parse/ast/morph.js").Out<Date>>; | ||
export {}; |
@@ -28,7 +28,7 @@ /** | ||
uuid: string; | ||
parsedNumber: (In: string) => number; | ||
parsedInteger: (In: string) => number; | ||
parsedDate: (In: string) => Date; | ||
parsedNumber: (In: string) => import("../../parse/ast/morph.js").Out<number>; | ||
parsedInteger: (In: string) => import("../../parse/ast/morph.js").Out<number>; | ||
parsedDate: (In: string) => import("../../parse/ast/morph.js").Out<Date>; | ||
semver: string; | ||
json: (In: string) => unknown; | ||
json: (In: string) => import("../../parse/ast/morph.js").Out<unknown>; | ||
integer: number; | ||
@@ -44,8 +44,8 @@ }, {}, false]>; | ||
uuid: string; | ||
parsedNumber: (In: string) => number; | ||
parsedInteger: (In: string) => number; | ||
parsedDate: (In: string) => Date; | ||
parsedNumber: (In: string) => import("../../parse/ast/morph.js").Out<number>; | ||
parsedInteger: (In: string) => import("../../parse/ast/morph.js").Out<number>; | ||
parsedDate: (In: string) => import("../../parse/ast/morph.js").Out<Date>; | ||
semver: string; | ||
json: (In: string) => unknown; | ||
json: (In: string) => import("../../parse/ast/morph.js").Out<unknown>; | ||
integer: number; | ||
}>; |
@@ -34,3 +34,3 @@ export declare const asConst: <t>(t: { [k in keyof t]: t[k] extends [] | Literalable ? t[k] : t[k] extends infer T ? { [k_1 in keyof T]: t[k][k_1] extends [] | Literalable ? t[k][k_1] : t[k][k_1] extends infer T_1 ? { [k_2 in keyof T_1]: t[k][k_1][k_2] extends [] | Literalable ? t[k][k_1][k_2] : t[k][k_1][k_2] extends infer T_2 ? { [k_3 in keyof T_2]: t[k][k_1][k_2][k_3] extends [] | Literalable ? t[k][k_1][k_2][k_3] : t[k][k_1][k_2][k_3] extends infer T_3 ? { [k_4 in keyof T_3]: t[k][k_1][k_2][k_3][k_4] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4] : t[k][k_1][k_2][k_3][k_4] extends infer T_4 ? { [k_5 in keyof T_4]: t[k][k_1][k_2][k_3][k_4][k_5] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4][k_5] : t[k][k_1][k_2][k_3][k_4][k_5] extends infer T_5 ? { [k_6 in keyof T_5]: t[k][k_1][k_2][k_3][k_4][k_5][k_6] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4][k_5][k_6] : t[k][k_1][k_2][k_3][k_4][k_5][k_6] extends infer T_6 ? { [k_7 in keyof T_6]: t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7] : t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7] extends infer T_7 ? { [k_8 in keyof T_7]: t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8] : t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8] extends infer T_8 ? { [k_9 in keyof T_8]: t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8][k_9] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8][k_9] : t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8][k_9] extends infer T_9 ? { [k_10 in keyof T_9]: t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8][k_9][k_10] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8][k_9][k_10] : any; } : never; } : never; } : never; } : never; } : never; } : never; } : never; } : never; } : never; } : never; }) => { [k in keyof t]: t[k] extends [] | Literalable ? t[k] : t[k] extends infer T ? { [k_1 in keyof T]: t[k][k_1] extends [] | Literalable ? t[k][k_1] : t[k][k_1] extends infer T_1 ? { [k_2 in keyof T_1]: t[k][k_1][k_2] extends [] | Literalable ? t[k][k_1][k_2] : t[k][k_1][k_2] extends infer T_2 ? { [k_3 in keyof T_2]: t[k][k_1][k_2][k_3] extends [] | Literalable ? t[k][k_1][k_2][k_3] : t[k][k_1][k_2][k_3] extends infer T_3 ? { [k_4 in keyof T_3]: t[k][k_1][k_2][k_3][k_4] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4] : t[k][k_1][k_2][k_3][k_4] extends infer T_4 ? { [k_5 in keyof T_4]: t[k][k_1][k_2][k_3][k_4][k_5] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4][k_5] : t[k][k_1][k_2][k_3][k_4][k_5] extends infer T_5 ? { [k_6 in keyof T_5]: t[k][k_1][k_2][k_3][k_4][k_5][k_6] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4][k_5][k_6] : t[k][k_1][k_2][k_3][k_4][k_5][k_6] extends infer T_6 ? { [k_7 in keyof T_6]: t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7] : t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7] extends infer T_7 ? { [k_8 in keyof T_7]: t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8] : t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8] extends infer T_8 ? { [k_9 in keyof T_8]: t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8][k_9] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8][k_9] : t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8][k_9] extends infer T_9 ? { [k_10 in keyof T_9]: t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8][k_9][k_10] extends [] | Literalable ? t[k][k_1][k_2][k_3][k_4][k_5][k_6][k_7][k_8][k_9][k_10] : any; } : never; } : never; } : never; } : never; } : never; } : never; } : never; } : never; } : never; } : never; }; | ||
export declare const isKeyOf: <k extends string | number, obj extends object>(k: k, obj: obj) => k is Extract<keyof obj, k>; | ||
export type constructor<instance = unknown> = new (...args: any[]) => instance; | ||
export type constructor<instance = unknown> = abstract new (...args: any[]) => instance; | ||
export type instanceOf<classType extends constructor<any>> = classType extends constructor<infer Instance> ? Instance : never; | ||
@@ -37,0 +37,0 @@ export type entryOf<o> = evaluate<{ |
{ | ||
"name": "arktype", | ||
"description": "TypeScript's 1:1 validator, optimized from editor to runtime", | ||
"version": "1.0.27-alpha", | ||
"version": "1.0.28-alpha", | ||
"license": "MIT", | ||
@@ -6,0 +6,0 @@ "author": { |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
500427
10792