Socket
Socket
Sign inDemoInstall

arktype

Package Overview
Dependencies
Maintainers
1
Versions
100
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

arktype - npm Package Compare versions

Comparing version 2.0.0-beta.1 to 2.0.0-beta.2

33

out/generic.d.ts

@@ -1,3 +0,3 @@

import type { GenericParamAst, GenericParamDef, genericParamSchemasToAst, GenericProps, GenericRoot, LazyGenericBody } from "@ark/schema";
import { type array, type Callable, type conform, type ErrorMessage, type Hkt, type keyError, type WhiteSpaceToken } from "@ark/util";
import type { ConstrainedGenericParamDef, GenericHkt, GenericParamAst, GenericParamDef, GenericProps, GenericRoot, LazyGenericBody } from "@ark/schema";
import { type array, type Callable, type conform, type ErrorMessage, type ErrorType, type WhiteSpaceToken } from "@ark/util";
import type { inferDefinition } from "./parser/definition.js";

@@ -13,4 +13,4 @@ import type { inferAstRoot } from "./parser/semantic/infer.js";

export type extractParams<s extends ParameterString> = s extends ParameterString<infer params> ? params : never;
export type validateParameterString<s extends ParameterString, $> = parseGenericParams<extractParams<s>, $> extends keyError<infer message> ? ErrorMessage<message> : s;
export type validateGenericArg<arg, param extends GenericParamAst, $> = inferTypeRoot<arg, $> extends param[1] ? arg : Type<param[1]>;
export type validateParameterString<s extends ParameterString, $> = parseGenericParams<extractParams<s>, $> extends infer e extends ErrorMessage ? e : s;
export type validateGenericArg<arg, param extends GenericParamAst, $> = inferTypeRoot<arg, $> extends param[1] ? arg : ErrorType<`Invalid argument for ${param[0]}`, [expected: param[1]]>;
export type GenericInstantiator<params extends array<GenericParamAst>, def, $, args$> = <const args extends {

@@ -22,3 +22,3 @@ [i in keyof params]: validateTypeRoot<args[i & keyof args], args$>;

[i in keyof args]: validateGenericArg<args[i], params[i & keyof params & `${number}`], args$>;
}) => Type<def extends Hkt.Kind ? Hkt.apply<def, {
}) => Type<def extends GenericHkt ? GenericHkt.instantiate<def, {
[i in keyof args]: inferTypeRoot<args[i], args$>;

@@ -29,3 +29,6 @@ }> : inferDefinition<def, $, bindGenericArgs<params, args$, args>>, $>;

};
export type baseGenericArgs<params extends array<GenericParamAst>> = {
type baseGenericResolutions<params extends array<GenericParamAst>, $> = baseGenericConstraints<params> extends infer baseConstraints ? {
[k in keyof baseConstraints]: Type<baseConstraints[k], $>;
} : never;
export type baseGenericConstraints<params extends array<GenericParamAst>> = {
[i in keyof params & `${number}` as params[i][0]]: params[i][1];

@@ -53,7 +56,7 @@ };

type parseName<unscanned extends string, result extends array<GenericParamAst>, $> = parseNextNameChar<Scanner.skipWhitespace<unscanned>, "", result, $>;
type parseNextNameChar<unscanned extends string, name extends string, result extends array<GenericParamAst>, $> = unscanned extends `${infer lookahead}${infer nextUnscanned}` ? lookahead extends ParamsTerminator ? name extends "" ? keyError<emptyGenericParameterMessage> : lookahead extends "," ? parseName<nextUnscanned, [...result, [name, unknown]], $> : lookahead extends ":" | WhiteSpaceToken ? _parseOptionalConstraint<unscanned, name, result, $> : never : parseNextNameChar<nextUnscanned, `${name}${lookahead}`, result, $> : name extends "" ? result : [...result, [name, unknown]];
type parseNextNameChar<unscanned extends string, name extends string, result extends array<GenericParamAst>, $> = unscanned extends `${infer lookahead}${infer nextUnscanned}` ? lookahead extends ParamsTerminator ? name extends "" ? ErrorMessage<emptyGenericParameterMessage> : lookahead extends "," ? parseName<nextUnscanned, [...result, [name, unknown]], $> : lookahead extends ":" | WhiteSpaceToken ? _parseOptionalConstraint<unscanned, name, result, $> : never : parseNextNameChar<nextUnscanned, `${name}${lookahead}`, result, $> : name extends "" ? result : [...result, [name, unknown]];
declare const extendsToken = "extends ";
type ConstrainingToken = ":" | typeof extendsToken;
declare const _parseOptionalConstraint: (scanner: Scanner, name: string, result: GenericParamDef[], ctx: ParseContext) => GenericParamDef[];
type _parseOptionalConstraint<unscanned extends string, name extends string, result extends array<GenericParamAst>, $> = Scanner.skipWhitespace<unscanned> extends (`${ConstrainingToken}${infer nextUnscanned}`) ? parseUntilFinalizer<state.initialize<nextUnscanned>, $, {}> extends (infer finalArgState extends StaticState) ? validateAst<finalArgState["root"], $, {}> extends (ErrorMessage<infer message>) ? keyError<message> : parseName<finalArgState["unscanned"], [
type _parseOptionalConstraint<unscanned extends string, name extends string, result extends array<GenericParamAst>, $> = Scanner.skipWhitespace<unscanned> extends (`${ConstrainingToken}${infer nextUnscanned}`) ? parseUntilFinalizer<state.initialize<nextUnscanned>, $, {}> extends (infer finalArgState extends StaticState) ? validateAst<finalArgState["root"], $, {}> extends (infer e extends ErrorMessage) ? e : parseName<finalArgState["unscanned"], [
...result,

@@ -65,6 +68,12 @@ [name, inferAstRoot<finalArgState["root"], $, {}>]

], $>;
export type GenericHktParser<$ = {}> = <const paramsDef extends array<GenericParamDef>>(...params: paramsDef) => (instantiateDef: LazyGenericBody<genericParamSchemasToAst<paramsDef, $>>) => GenericHktSubclass<genericParamSchemasToAst<paramsDef, $>, $>;
export type GenericHktSubclass<params extends array<GenericParamAst>, $> = abstract new () => GenericHkt<genericParamSchemasToAst<params, $>, Hkt.Kind, $, $>;
export interface GenericHkt<params extends array<GenericParamAst>, hkt extends Hkt.Kind, $, args$> extends Generic<params, hkt, $, args$>, Hkt.Kind {
}
type genericParamDefToAst<schema extends GenericParamDef, $> = schema extends string ? [schema, unknown] : schema extends ConstrainedGenericParamDef ? [
schema[0],
inferTypeRoot<schema[1], $>
] : never;
export type genericParamDefsToAst<schemas extends array<GenericParamDef>, $> = [
...{
[i in keyof schemas]: genericParamDefToAst<schemas[i], $>;
}
];
export type GenericHktParser<$ = {}> = <const paramsDef extends array<GenericParamDef>>(...params: paramsDef) => <hkt extends abstract new () => GenericHkt, params extends Array<GenericParamAst> = genericParamDefsToAst<paramsDef, $>>(instantiateDef: LazyGenericBody<baseGenericResolutions<params, $>>, hkt: hkt) => Generic<params, InstanceType<hkt>, $, $>;
export {};

@@ -1,6 +0,7 @@

export { ArkError, ArkErrors as ArkErrors } from "@ark/schema";
export { ArkError, ArkErrors, GenericHkt } from "@ark/schema";
export type { Ark, ArkConfig, Out, constrained, inferred } from "@ark/schema";
export { ambient, ark, declare, define, generic, match, type } from "./ark.js";
export type { Generic } from "./generic.js";
export { Module } from "./module.js";
export { scope, type Scope, type inferScope, type validateScope } from "./scope.js";
export { Type, type AnyType, type inferTypeRoot, type validateTypeRoot } from "./type.js";

@@ -1,2 +0,2 @@

export { ArkError, ArkErrors as ArkErrors } from "@ark/schema";
export { ArkError, ArkErrors, GenericHkt } from "@ark/schema";
export { ambient, ark, declare, define, generic, match, type } from "./ark.js";

@@ -3,0 +3,0 @@ export { Module } from "./module.js";

import { RootModule, type arkKind, type GenericProps } from "@ark/schema";
import type { anyOrNever, Hkt } from "@ark/util";
import type { Generic, GenericHkt } from "./generic.js";
import type { anyOrNever } from "@ark/util";
import type { Generic } from "./generic.js";
import type { Type } from "./type.js";

@@ -10,3 +10,3 @@ type exportScope<$> = {

$[k]
] extends [anyOrNever] ? Type<$[k], $> : $[k] : $[k] extends GenericProps<infer params, infer bodyDef, infer args$> ? $[k] extends Hkt.Kind ? GenericHkt<params, $[k], $, args$> : Generic<params, bodyDef, $, args$> : Type<$[k], $>;
] extends [anyOrNever] ? Type<$[k], $> : $[k] : $[k] extends GenericProps<infer params, infer bodyDef, infer args$> ? Generic<params, bodyDef, $, args$> : Type<$[k], $>;
};

@@ -13,0 +13,0 @@ export declare const Module: new <$ = {}>(types: exportScope<$>) => Module<$>;

import { type BaseRoot, type Default, type IndexNode, type of, type OptionalNode, type RequiredNode, type UndeclaredKeyBehavior, type writeInvalidPropertyKeyMessage } from "@ark/schema";
import { type anyOrNever, type Dict, type ErrorMessage, type EscapeToken, type Key, type keyError, type listable, type merge, type show } from "@ark/util";
import { type anyOrNever, type Dict, type ErrorMessage, type ErrorType, type EscapeToken, type Key, type listable, type merge, type show } from "@ark/util";
import type { ParseContext } from "../scope.js";

@@ -20,3 +20,3 @@ import type { inferDefinition, validateDefinition } from "./definition.js";

export type validateObjectLiteral<def, $, args> = {
[k in keyof def]: k extends IndexKey<infer indexDef> ? validateString<indexDef, $, args> extends ErrorMessage<infer message> ? keyError<message> : inferDefinition<indexDef, $, args> extends (PropertyKey | of<PropertyKey, {}>) ? validateDefinition<def[k], $, args> : keyError<writeInvalidPropertyKeyMessage<indexDef>> : k extends "..." ? inferDefinition<def[k], $, args> extends object ? validateDefinition<def[k], $, args> : keyError<writeInvalidSpreadTypeMessage<astToString<def[k]>>> : k extends "+" ? UndeclaredKeyBehavior : validateDefaultableValue<def, k, $, args>;
[k in keyof def]: k extends IndexKey<infer indexDef> ? validateString<indexDef, $, args> extends ErrorMessage<infer message> ? ErrorType<message> : inferDefinition<indexDef, $, args> extends (PropertyKey | of<PropertyKey, {}>) ? validateDefinition<def[k], $, args> : ErrorType<writeInvalidPropertyKeyMessage<indexDef>> : k extends "..." ? inferDefinition<def[k], $, args> extends object ? validateDefinition<def[k], $, args> : ErrorType<writeInvalidSpreadTypeMessage<astToString<def[k]>>> : k extends "+" ? UndeclaredKeyBehavior : validateDefaultableValue<def, k, $, args>;
};

@@ -23,0 +23,0 @@ type validateDefaultableValue<def, k extends keyof def, $, args> = def[k] extends DefaultValueTuple ? validateDefaultValueTuple<def[k], k, $, args> : validateDefinition<def[k], $, args>;

@@ -1,3 +0,3 @@

import type { Date, DateLiteral, Default, GenericProps, LimitLiteral, RegexLiteral, constrain, distillIn, distillOut, inferIntersection, normalizeLimit, string } from "@ark/schema";
import type { BigintLiteral, Hkt, array } from "@ark/util";
import type { Date, DateLiteral, Default, GenericHkt, GenericProps, LimitLiteral, RegexLiteral, constrain, distillIn, distillOut, inferIntersection, normalizeLimit, string } from "@ark/schema";
import type { BigintLiteral, array } from "@ark/util";
import type { UnparsedScope, resolve, tryInferSubmoduleReference } from "../../scope.js";

@@ -12,3 +12,3 @@ import type { inferDefinition } from "../definition.js";

export type GenericInstantiationAst<generic extends GenericProps = GenericProps, argAsts extends unknown[] = unknown[]> = [generic, "<>", argAsts];
export type inferExpression<ast extends array, $, args> = ast extends GenericInstantiationAst<infer generic, infer argAsts> ? generic extends Hkt.Kind ? Hkt.apply<generic, {
export type inferExpression<ast extends array, $, args> = ast extends GenericInstantiationAst<infer generic, infer argAsts> ? generic["bodyDef"] extends GenericHkt ? GenericHkt.instantiate<generic["bodyDef"], {
[i in keyof argAsts]: inferConstrainableAst<argAsts[i], $, args>;

@@ -15,0 +15,0 @@ }> : inferDefinition<generic["bodyDef"], generic["$"]["t"] extends UnparsedScope ? $ : generic["$"]["t"], {

@@ -17,3 +17,3 @@ import type { arkKind, GenericParamAst, GenericProps, PrivateDeclaration, writeMissingSubmoduleAccessMessage, writeUnsatisfiedParameterConstraintMessage } from "@ark/schema";

type writeUnexpectedExpressionMessage<expression extends string> = `Unexpectedly failed to parse the expression resulting from ${expression}`;
type validateGenericArgs<params extends array<GenericParamAst>, argAsts extends array, $, args, indices extends 1[]> = argAsts extends readonly [infer arg, ...infer argsTail] ? validateAst<arg, $, args> extends ErrorMessage<infer message> ? ErrorMessage<message> : inferAstRoot<arg, $, args> extends params[indices["length"]][1] ? validateGenericArgs<params, argsTail, $, args, [...indices, 1]> : ErrorMessage<writeUnsatisfiedParameterConstraintMessage<params[indices["length"]][0], typeToString<params[indices["length"]][1]>, astToString<arg>>> : undefined;
type validateGenericArgs<params extends array<GenericParamAst>, argAsts extends array, $, args, indices extends 1[]> = argAsts extends readonly [infer arg, ...infer argsTail] ? validateAst<arg, $, args> extends infer e extends ErrorMessage ? e : inferAstRoot<arg, $, args> extends params[indices["length"]][1] ? validateGenericArgs<params, argsTail, $, args, [...indices, 1]> : ErrorMessage<writeUnsatisfiedParameterConstraintMessage<params[indices["length"]][0], typeToString<params[indices["length"]][1]>, astToString<arg>>> : undefined;
export declare const writeUnsatisfiableExpressionError: <expression extends string>(expression: expression) => writeUnsatisfiableExpressionError<expression>;

@@ -30,3 +30,3 @@ export type writeUnsatisfiableExpressionError<expression extends string> = `${expression} results in an unsatisfiable type`;

export type validateString<def extends string, $, args> = validateAst<parseString<def, $, args>, $, args> extends (infer result extends ErrorMessage) ? result extends Completion<infer text> ? text : result : def;
type validateInfix<ast extends InfixExpression, $, args> = validateAst<ast[0], $, args> extends ErrorMessage<infer message> ? ErrorMessage<message> : validateAst<ast[2], $, args> extends ErrorMessage<infer message> ? ErrorMessage<message> : undefined;
type validateInfix<ast extends InfixExpression, $, args> = validateAst<ast[0], $, args> extends infer e extends ErrorMessage ? e : validateAst<ast[2], $, args> extends infer e extends ErrorMessage ? e : undefined;
export {};
import { InternalBaseScope, type AliasDefEntry, type ArkConfig, type BaseRoot, type BaseScope, type GenericArgResolutions, type GenericParamAst, type GenericParamDef, type GenericProps, type InternalResolutions, type PreparsedNodeResolution, type PrivateDeclaration, type arkKind, type destructuredExportContext, type destructuredImportContext, type exportedNameOf, type writeDuplicateAliasError } from "@ark/schema";
import { type anyOrNever, type array, type keyError, type nominal, type show } from "@ark/util";
import { parseGenericParams, type Generic, type GenericDeclaration, type GenericHktParser, type ParameterString, type baseGenericArgs, type parseValidGenericParams } from "./generic.js";
import { type ErrorType, type anyOrNever, type array, type nominal, type show } from "@ark/util";
import { parseGenericParams, type Generic, type GenericDeclaration, type GenericHktParser, type ParameterString, type baseGenericConstraints, type parseValidGenericParams } from "./generic.js";
import { type MatchParser } from "./match.js";

@@ -11,3 +11,3 @@ import type { Module } from "./module.js";

export type validateScope<def> = {
[k in keyof def]: k extends symbol ? unknown : parseScopeKey<k, def>["params"] extends infer params ? params extends array<GenericParamAst> ? params["length"] extends 0 ? def[k] extends Type | PreparsedResolution ? def[k] : k extends PrivateDeclaration<infer name extends keyof def & string> ? keyError<writeDuplicateAliasError<name>> : validateDefinition<def[k], bootstrapAliases<def>, {}> : validateDefinition<def[k], bootstrapAliases<def>, baseGenericArgs<params>> : params : never;
[k in keyof def]: k extends symbol ? unknown : parseScopeKey<k, def>["params"] extends infer params ? params extends array<GenericParamAst> ? params["length"] extends 0 ? def[k] extends Type | PreparsedResolution ? def[k] : k extends PrivateDeclaration<infer name extends keyof def & string> ? ErrorType<writeDuplicateAliasError<name>> : validateDefinition<def[k], bootstrapAliases<def>, {}> : validateDefinition<def[k], bootstrapAliases<def>, baseGenericConstraints<params>> : params : never;
};

@@ -80,9 +80,10 @@ export type inferScope<def> = inferBootstrapped<bootstrapAliases<def>>;

};
export type parseScopeKey<k, def> = k extends `${infer name}<${infer params}>` ? {
name: name;
params: parseGenericParams<params, bootstrapAliases<def>>;
} : {
export type parseScopeKey<k, def> = k extends `${infer name}<${infer params}>` ? parseGenericScopeKey<name, params, def> : {
name: k;
params: [];
};
type parseGenericScopeKey<name extends string, params extends string, def> = {
name: name;
params: parseGenericParams<params, bootstrapAliases<def>>;
};
export {};
import { ArkErrors, BaseRoot, type BaseMeta, type Disjoint, type DivisorSchema, type ExactLengthSchema, type ExclusiveDateRangeSchema, type ExclusiveNumericRangeSchema, type InclusiveDateRangeSchema, type InclusiveNumericRangeSchema, type Morph, type MorphAst, type NodeSchema, type Out, type PatternSchema, type Predicate, type PrimitiveConstraintKind, type Root, type arkKeyOf, type constrain, type constraintKindOf, type distillIn, type distillOut, type exclusivizeRangeSchema, type getArkKey, type inferIntersection, type inferMorphOut, type inferPipes, type inferPredicate, type toArkKey, type validateChainedAsArgs, type validateChainedConstraint, type validateStructuralOperand } from "@ark/schema";
import { Callable, type Constructor, type array, type conform, type unset } from "@ark/util";
import type { type } from "./ark.js";
import { type Generic, type ParameterString, type baseGenericArgs, type parseValidGenericParams, type validateParameterString } from "./generic.js";
import { type Generic, type ParameterString, type baseGenericConstraints, type parseValidGenericParams, type validateParameterString } from "./generic.js";
import type { inferDefinition, validateDeclared, validateDefinition } from "./parser/definition.js";

@@ -13,3 +13,3 @@ import type { IndexOneOperator, IndexZeroOperator, TupleInfixOperator } from "./parser/tuple.js";

<const zero, const one, const rest extends array>(_0: zero extends IndexZeroOperator ? zero : validateTypeRoot<zero, $>, _1: zero extends "keyof" ? validateTypeRoot<one, $> : zero extends "instanceof" ? conform<one, Constructor> : zero extends "===" ? conform<one, unknown> : conform<one, IndexOneOperator>, ..._2: zero extends "===" ? rest : zero extends "instanceof" ? conform<rest, readonly Constructor[]> : one extends TupleInfixOperator ? one extends ":" ? [Predicate<distillIn<inferTypeRoot<zero, $>>>] : one extends "=>" ? [Morph<distillOut<inferTypeRoot<zero, $>>, unknown>] : one extends "@" ? [string | BaseMeta] : [validateTypeRoot<rest[0], $>] : []): Type<inferTypeRoot<[zero, one, ...rest], $>, $>;
<params extends ParameterString, const def>(params: validateParameterString<params, $>, def: validateDefinition<def, $, baseGenericArgs<parseValidGenericParams<params, $>>>): Generic<parseValidGenericParams<params, $>, def, $>;
<params extends ParameterString, const def>(params: validateParameterString<params, $>, def: validateDefinition<def, $, baseGenericConstraints<parseValidGenericParams<params, $>>>): Generic<parseValidGenericParams<params, $>, def, $>;
raw(def: unknown): Type<any, $>;

@@ -53,2 +53,8 @@ errors: typeof ArkErrors;

}, $>;
required(this: validateStructuralOperand<"required", this>): Type<{
[k in keyof this["inferIn"]]-?: this["inferIn"][k];
}, $>;
partial(this: validateStructuralOperand<"partial", this>): Type<{
[k in keyof this["inferIn"]]?: this["inferIn"][k];
}, $>;
get<k1 extends arkKeyOf<t>>(k1: k1 | type.cast<k1>): Type<getArkKey<t, k1>, $>;

@@ -55,0 +61,0 @@ get<k1 extends arkKeyOf<t>, k2 extends arkKeyOf<getArkKey<t, k1>>>(k1: k1 | type.cast<k1>, k2: k2 | type.cast<k2>): Type<getArkKey<getArkKey<t, k1>, k2>, $>;

{
"name": "arktype",
"description": "TypeScript's 1:1 validator, optimized from editor to runtime",
"version": "2.0.0-beta.1",
"version": "2.0.0-beta.2",
"license": "MIT",

@@ -28,4 +28,4 @@ "author": {

"dependencies": {
"@ark/util": "0.1.1",
"@ark/schema": "0.2.1"
"@ark/util": "0.1.2",
"@ark/schema": "0.2.2"
},

@@ -32,0 +32,0 @@ "publishConfig": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc