Comparing version 2.1.7 to 2.1.8
@@ -17,3 +17,3 @@ import { GenericRoot, type arkKind, type BaseParseContext, type GenericAst, type GenericParamAst, type GenericParamDef, type genericParamNames, type LazyGenericBody } from "@ark/schema"; | ||
export type GenericInstantiator<params extends array<GenericParamAst>, def, $, args$> = params["length"] extends 1 ? { | ||
<const a, r = instantiateGeneric<def, params, [a], $, args$>>(a: type.validate<a, args$> & validateGenericArg<a, params[0], args$>): r; | ||
<const a, r = instantiateGeneric<def, params, [a], $, args$>>(a: type.validate<a, args$> & validateGenericArg<a, params[0], args$>): r extends infer _ ? _ : never; | ||
} : params["length"] extends 2 ? { | ||
@@ -23,74 +23,34 @@ <const a, const b, r = instantiateGeneric<def, params, [a, b], $, args$>>(...args: [ | ||
type.validate<b, args$> & validateGenericArg<b, params[1], args$> | ||
]): r; | ||
]): r extends infer _ ? _ : never; | ||
} : params["length"] extends 3 ? { | ||
<const a, const b, const c, r = instantiateGeneric<def, params, [a, b, c], $, args$>>(...args: [ | ||
type.validate<a, args$>, | ||
type.validate<b, args$>, | ||
type.validate<c, args$> | ||
] & [ | ||
validateGenericArg<a, params[0], args$>, | ||
validateGenericArg<b, params[1], args$>, | ||
validateGenericArg<c, params[2], args$> | ||
]): r; | ||
type.validate<a, args$> & validateGenericArg<a, params[0], args$>, | ||
type.validate<b, args$> & validateGenericArg<b, params[1], args$>, | ||
type.validate<c, args$> & validateGenericArg<c, params[2], args$> | ||
]): r extends infer _ ? _ : never; | ||
} : params["length"] extends 4 ? { | ||
<const a, const b, const c, const d, r = instantiateGeneric<def, params, [a, b, c, d], $, args$>>(...args: [ | ||
type.validate<a, args$>, | ||
type.validate<b, args$>, | ||
type.validate<c, args$>, | ||
type.validate<d, args$> | ||
] & [ | ||
validateGenericArg<a, params[0], args$>, | ||
validateGenericArg<b, params[1], args$>, | ||
validateGenericArg<c, params[2], args$>, | ||
validateGenericArg<d, params[3], args$> | ||
]): r; | ||
} : params["length"] extends 4 ? { | ||
type.validate<a, args$> & validateGenericArg<a, params[0], args$>, | ||
type.validate<b, args$> & validateGenericArg<b, params[1], args$>, | ||
type.validate<c, args$> & validateGenericArg<c, params[2], args$>, | ||
type.validate<d, args$> & validateGenericArg<d, params[3], args$> | ||
]): r extends infer _ ? _ : never; | ||
} : params["length"] extends 5 ? { | ||
<const a, const b, const c, const d, const e, r = instantiateGeneric<def, params, [a, b, c, d, e], $, args$>>(...args: [ | ||
type.validate<a, args$>, | ||
type.validate<b, args$>, | ||
type.validate<c, args$>, | ||
type.validate<d, args$>, | ||
type.validate<e, args$> | ||
] & [ | ||
validateGenericArg<a, params[0], args$>, | ||
validateGenericArg<b, params[1], args$>, | ||
validateGenericArg<c, params[2], args$>, | ||
validateGenericArg<d, params[3], args$>, | ||
validateGenericArg<e, params[4], args$> | ||
]): r; | ||
} : params["length"] extends 5 ? { | ||
type.validate<a, args$> & validateGenericArg<a, params[0], args$>, | ||
type.validate<b, args$> & validateGenericArg<b, params[1], args$>, | ||
type.validate<c, args$> & validateGenericArg<c, params[2], args$>, | ||
type.validate<d, args$> & validateGenericArg<d, params[3], args$>, | ||
type.validate<e, args$> & validateGenericArg<e, params[4], args$> | ||
]): r extends infer _ ? _ : never; | ||
} : params["length"] extends 6 ? { | ||
<const a, const b, const c, const d, const e, const f, r = instantiateGeneric<def, params, [a, b, c, d, e, f], $, args$>>(...args: [ | ||
type.validate<a, args$>, | ||
type.validate<b, args$>, | ||
type.validate<c, args$>, | ||
type.validate<d, args$>, | ||
type.validate<e, args$>, | ||
type.validate<f, args$> | ||
] & [ | ||
validateGenericArg<a, params[0], args$>, | ||
validateGenericArg<b, params[1], args$>, | ||
validateGenericArg<c, params[2], args$>, | ||
validateGenericArg<d, params[3], args$>, | ||
validateGenericArg<e, params[4], args$>, | ||
validateGenericArg<f, params[5], args$> | ||
]): r; | ||
} : params["length"] extends 6 ? { | ||
<const a, const b, const c, const d, const e, const f, const g, r = instantiateGeneric<def, params, [a, b, c, d, e, f, g], $, args$>>(...args: [ | ||
type.validate<a, args$>, | ||
type.validate<b, args$>, | ||
type.validate<c, args$>, | ||
type.validate<d, args$>, | ||
type.validate<e, args$>, | ||
type.validate<f, args$>, | ||
type.validate<g, args$> | ||
] & [ | ||
validateGenericArg<a, params[0], args$>, | ||
validateGenericArg<b, params[1], args$>, | ||
validateGenericArg<c, params[2], args$>, | ||
validateGenericArg<d, params[3], args$>, | ||
validateGenericArg<e, params[4], args$>, | ||
validateGenericArg<f, params[5], args$>, | ||
validateGenericArg<g, params[6], args$> | ||
]): r; | ||
} : (error: ErrorMessage<`You may not define more than 7 positional generic parameters`>) => never; | ||
type.validate<a, args$> & validateGenericArg<a, params[0], args$>, | ||
type.validate<b, args$> & validateGenericArg<b, params[1], args$>, | ||
type.validate<c, args$> & validateGenericArg<c, params[2], args$>, | ||
type.validate<d, args$> & validateGenericArg<d, params[3], args$>, | ||
type.validate<e, args$> & validateGenericArg<e, params[4], args$>, | ||
type.validate<f, args$> & validateGenericArg<f, params[5], args$> | ||
]): r extends infer _ ? _ : never; | ||
} : (error: ErrorMessage<`You may not define more than 6 positional generic parameters`>) => never; | ||
type instantiateGeneric<def, params extends array<GenericParamAst>, args, $, args$> = Type<[ | ||
@@ -97,0 +57,0 @@ def |
@@ -255,2 +255,3 @@ import { type IntersectionNode } from "@ark/schema"; | ||
alphanumeric: unknown; | ||
hex: unknown; | ||
base64: Submodule<{ | ||
@@ -312,2 +313,3 @@ root: unknown; | ||
alphanumeric: string; | ||
hex: string; | ||
base64: base64.submodule; | ||
@@ -314,0 +316,0 @@ capitalize: capitalize.submodule; |
@@ -28,2 +28,3 @@ import { ArkErrors, intrinsic, node, rootSchema } from "@ark/schema"; | ||
}); | ||
const hex = regexStringNode(/^[0-9a-fA-F]+$/, "hex characters only"); | ||
const base64 = Scope.module({ | ||
@@ -422,2 +423,3 @@ root: regexStringNode(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/, "base64-encoded"), | ||
alphanumeric: regexStringNode(/^[A-Za-z\d]*$/, "only letters and digits 0-9"), | ||
hex, | ||
base64, | ||
@@ -424,0 +426,0 @@ capitalize, |
@@ -138,7 +138,7 @@ import type { BaseRoot, Disjoint, JsonSchema, Morph, Predicate, StandardSchemaV1, UndeclaredKeyBehavior } from "@ark/schema"; | ||
* }) | ||
* // throws AggregateError: superImportantValue must be a string (was missing) | ||
* // throws TraversalError: superImportantValue must be a string (was missing) | ||
* const data = criticalPayload.assert({ irrelevantValue: "whoops" }) | ||
* console.log(data.superImportantValue) // valid output can be accessed directly | ||
* | ||
* @throws {AggregateError} | ||
* @throws {TraversalError} | ||
*/ | ||
@@ -145,0 +145,0 @@ assert(data: unknown): this["infer"]; |
{ | ||
"name": "arktype", | ||
"description": "Optimized runtime validation for TypeScript syntax", | ||
"version": "2.1.7", | ||
"version": "2.1.8", | ||
"license": "MIT", | ||
@@ -37,4 +37,4 @@ "repository": { | ||
"dependencies": { | ||
"@ark/util": "0.44.2", | ||
"@ark/schema": "0.44.2" | ||
"@ark/util": "0.44.3", | ||
"@ark/schema": "0.44.3" | ||
}, | ||
@@ -41,0 +41,0 @@ "publishConfig": { |
261701
5038
+ Added@ark/schema@0.44.3(transitive)
+ Added@ark/util@0.44.3(transitive)
- Removed@ark/schema@0.44.2(transitive)
- Removed@ark/util@0.44.2(transitive)
Updated@ark/schema@0.44.3
Updated@ark/util@0.44.3