JSPM

  • Created
  • Published
  • Downloads 339527
  • Score
    100M100P100Q168036F
  • License MIT

TypeScript's 1:1 validator, optimized from editor to runtime

Package Exports

  • arktype
  • arktype/config
  • arktype/internal/ark.d.ts
  • arktype/internal/ark.d.ts.map
  • arktype/internal/ark.js
  • arktype/internal/ark.js.map
  • arktype/internal/base.d.ts
  • arktype/internal/base.d.ts.map
  • arktype/internal/base.js
  • arktype/internal/base.js.map
  • arktype/internal/builtins/builtins.d.ts
  • arktype/internal/builtins/builtins.d.ts.map
  • arktype/internal/builtins/builtins.js
  • arktype/internal/builtins/builtins.js.map
  • arktype/internal/builtins/jsObjects.d.ts
  • arktype/internal/builtins/jsObjects.d.ts.map
  • arktype/internal/builtins/jsObjects.js
  • arktype/internal/builtins/jsObjects.js.map
  • arktype/internal/builtins/parsing.d.ts
  • arktype/internal/builtins/parsing.d.ts.map
  • arktype/internal/builtins/parsing.js
  • arktype/internal/builtins/parsing.js.map
  • arktype/internal/builtins/tsGenerics.d.ts
  • arktype/internal/builtins/tsGenerics.d.ts.map
  • arktype/internal/builtins/tsGenerics.js
  • arktype/internal/builtins/tsGenerics.js.map
  • arktype/internal/builtins/tsKeywords.d.ts
  • arktype/internal/builtins/tsKeywords.d.ts.map
  • arktype/internal/builtins/tsKeywords.js
  • arktype/internal/builtins/tsKeywords.js.map
  • arktype/internal/builtins/utils/creditCard.d.ts
  • arktype/internal/builtins/utils/creditCard.d.ts.map
  • arktype/internal/builtins/utils/creditCard.js
  • arktype/internal/builtins/utils/creditCard.js.map
  • arktype/internal/builtins/utils/date.d.ts
  • arktype/internal/builtins/utils/date.d.ts.map
  • arktype/internal/builtins/utils/date.js
  • arktype/internal/builtins/utils/date.js.map
  • arktype/internal/builtins/validation.d.ts
  • arktype/internal/builtins/validation.d.ts.map
  • arktype/internal/builtins/validation.js
  • arktype/internal/builtins/validation.js.map
  • arktype/internal/config.d.ts
  • arktype/internal/config.d.ts.map
  • arktype/internal/config.js
  • arktype/internal/config.js.map
  • arktype/internal/constraints/ast.d.ts
  • arktype/internal/constraints/ast.d.ts.map
  • arktype/internal/constraints/ast.js
  • arktype/internal/constraints/ast.js.map
  • arktype/internal/constraints/constraint.d.ts
  • arktype/internal/constraints/constraint.d.ts.map
  • arktype/internal/constraints/constraint.js
  • arktype/internal/constraints/constraint.js.map
  • arktype/internal/constraints/predicate.d.ts
  • arktype/internal/constraints/predicate.d.ts.map
  • arktype/internal/constraints/predicate.js
  • arktype/internal/constraints/predicate.js.map
  • arktype/internal/constraints/props/index.d.ts
  • arktype/internal/constraints/props/index.d.ts.map
  • arktype/internal/constraints/props/index.js
  • arktype/internal/constraints/props/index.js.map
  • arktype/internal/constraints/props/optional.d.ts
  • arktype/internal/constraints/props/optional.d.ts.map
  • arktype/internal/constraints/props/optional.js
  • arktype/internal/constraints/props/optional.js.map
  • arktype/internal/constraints/props/prop.d.ts
  • arktype/internal/constraints/props/prop.d.ts.map
  • arktype/internal/constraints/props/prop.js
  • arktype/internal/constraints/props/prop.js.map
  • arktype/internal/constraints/props/props.d.ts
  • arktype/internal/constraints/props/props.d.ts.map
  • arktype/internal/constraints/props/props.js
  • arktype/internal/constraints/props/props.js.map
  • arktype/internal/constraints/props/required.d.ts
  • arktype/internal/constraints/props/required.d.ts.map
  • arktype/internal/constraints/props/required.js
  • arktype/internal/constraints/props/required.js.map
  • arktype/internal/constraints/props/sequence.d.ts
  • arktype/internal/constraints/props/sequence.d.ts.map
  • arktype/internal/constraints/props/sequence.js
  • arktype/internal/constraints/props/sequence.js.map
  • arktype/internal/constraints/props/shared.d.ts
  • arktype/internal/constraints/props/shared.d.ts.map
  • arktype/internal/constraints/props/shared.js
  • arktype/internal/constraints/props/shared.js.map
  • arktype/internal/constraints/refinements/after.d.ts
  • arktype/internal/constraints/refinements/after.d.ts.map
  • arktype/internal/constraints/refinements/after.js
  • arktype/internal/constraints/refinements/after.js.map
  • arktype/internal/constraints/refinements/before.d.ts
  • arktype/internal/constraints/refinements/before.d.ts.map
  • arktype/internal/constraints/refinements/before.js
  • arktype/internal/constraints/refinements/before.js.map
  • arktype/internal/constraints/refinements/divisor.d.ts
  • arktype/internal/constraints/refinements/divisor.d.ts.map
  • arktype/internal/constraints/refinements/divisor.js
  • arktype/internal/constraints/refinements/divisor.js.map
  • arktype/internal/constraints/refinements/exactLength.d.ts
  • arktype/internal/constraints/refinements/exactLength.d.ts.map
  • arktype/internal/constraints/refinements/exactLength.js
  • arktype/internal/constraints/refinements/exactLength.js.map
  • arktype/internal/constraints/refinements/kinds.d.ts
  • arktype/internal/constraints/refinements/kinds.d.ts.map
  • arktype/internal/constraints/refinements/kinds.js
  • arktype/internal/constraints/refinements/kinds.js.map
  • arktype/internal/constraints/refinements/length.d.ts
  • arktype/internal/constraints/refinements/length.d.ts.map
  • arktype/internal/constraints/refinements/length.js
  • arktype/internal/constraints/refinements/length.js.map
  • arktype/internal/constraints/refinements/max.d.ts
  • arktype/internal/constraints/refinements/max.d.ts.map
  • arktype/internal/constraints/refinements/max.js
  • arktype/internal/constraints/refinements/max.js.map
  • arktype/internal/constraints/refinements/maxLength.d.ts
  • arktype/internal/constraints/refinements/maxLength.d.ts.map
  • arktype/internal/constraints/refinements/maxLength.js
  • arktype/internal/constraints/refinements/maxLength.js.map
  • arktype/internal/constraints/refinements/min.d.ts
  • arktype/internal/constraints/refinements/min.d.ts.map
  • arktype/internal/constraints/refinements/min.js
  • arktype/internal/constraints/refinements/min.js.map
  • arktype/internal/constraints/refinements/minLength.d.ts
  • arktype/internal/constraints/refinements/minLength.d.ts.map
  • arktype/internal/constraints/refinements/minLength.js
  • arktype/internal/constraints/refinements/minLength.js.map
  • arktype/internal/constraints/refinements/range.d.ts
  • arktype/internal/constraints/refinements/range.d.ts.map
  • arktype/internal/constraints/refinements/range.js
  • arktype/internal/constraints/refinements/range.js.map
  • arktype/internal/constraints/refinements/regex.d.ts
  • arktype/internal/constraints/refinements/regex.d.ts.map
  • arktype/internal/constraints/refinements/regex.js
  • arktype/internal/constraints/refinements/regex.js.map
  • arktype/internal/constraints/refinements/shared.d.ts
  • arktype/internal/constraints/refinements/shared.d.ts.map
  • arktype/internal/constraints/refinements/shared.js
  • arktype/internal/constraints/refinements/shared.js.map
  • arktype/internal/generic.d.ts
  • arktype/internal/generic.d.ts.map
  • arktype/internal/generic.js
  • arktype/internal/generic.js.map
  • arktype/internal/inference.d.ts
  • arktype/internal/inference.d.ts.map
  • arktype/internal/inference.js
  • arktype/internal/inference.js.map
  • arktype/internal/keywords/ark.d.ts
  • arktype/internal/keywords/ark.d.ts.map
  • arktype/internal/keywords/ark.js
  • arktype/internal/keywords/ark.js.map
  • arktype/internal/keywords/internal.d.ts
  • arktype/internal/keywords/internal.d.ts.map
  • arktype/internal/keywords/internal.js
  • arktype/internal/keywords/internal.js.map
  • arktype/internal/keywords/jsObject.d.ts
  • arktype/internal/keywords/jsObject.d.ts.map
  • arktype/internal/keywords/jsObject.js
  • arktype/internal/keywords/jsObject.js.map
  • arktype/internal/keywords/parsing.d.ts
  • arktype/internal/keywords/parsing.d.ts.map
  • arktype/internal/keywords/parsing.js
  • arktype/internal/keywords/parsing.js.map
  • arktype/internal/keywords/root.d.ts
  • arktype/internal/keywords/root.d.ts.map
  • arktype/internal/keywords/root.js
  • arktype/internal/keywords/root.js.map
  • arktype/internal/keywords/tsGenerics.d.ts
  • arktype/internal/keywords/tsGenerics.d.ts.map
  • arktype/internal/keywords/tsGenerics.js
  • arktype/internal/keywords/tsGenerics.js.map
  • arktype/internal/keywords/tsPrimitive.d.ts
  • arktype/internal/keywords/tsPrimitive.d.ts.map
  • arktype/internal/keywords/tsPrimitive.js
  • arktype/internal/keywords/tsPrimitive.js.map
  • arktype/internal/keywords/utils/creditCard.d.ts
  • arktype/internal/keywords/utils/creditCard.d.ts.map
  • arktype/internal/keywords/utils/creditCard.js
  • arktype/internal/keywords/utils/creditCard.js.map
  • arktype/internal/keywords/utils/date.d.ts
  • arktype/internal/keywords/utils/date.d.ts.map
  • arktype/internal/keywords/utils/date.js
  • arktype/internal/keywords/utils/date.js.map
  • arktype/internal/keywords/validation.d.ts
  • arktype/internal/keywords/validation.d.ts.map
  • arktype/internal/keywords/validation.js
  • arktype/internal/keywords/validation.js.map
  • arktype/internal/kinds.d.ts
  • arktype/internal/kinds.d.ts.map
  • arktype/internal/kinds.js
  • arktype/internal/kinds.js.map
  • arktype/internal/main.d.ts
  • arktype/internal/main.d.ts.map
  • arktype/internal/main.js
  • arktype/internal/main.js.map
  • arktype/internal/match.d.ts
  • arktype/internal/match.d.ts.map
  • arktype/internal/match.js
  • arktype/internal/match.js.map
  • arktype/internal/module.d.ts
  • arktype/internal/module.d.ts.map
  • arktype/internal/module.js
  • arktype/internal/module.js.map
  • arktype/internal/parse.d.ts
  • arktype/internal/parse.d.ts.map
  • arktype/internal/parse.js
  • arktype/internal/parse.js.map
  • arktype/internal/parser/definition.d.ts
  • arktype/internal/parser/definition.d.ts.map
  • arktype/internal/parser/definition.js
  • arktype/internal/parser/definition.js.map
  • arktype/internal/parser/generic.d.ts
  • arktype/internal/parser/generic.d.ts.map
  • arktype/internal/parser/generic.js
  • arktype/internal/parser/generic.js.map
  • arktype/internal/parser/objectLiteral.d.ts
  • arktype/internal/parser/objectLiteral.d.ts.map
  • arktype/internal/parser/objectLiteral.js
  • arktype/internal/parser/objectLiteral.js.map
  • arktype/internal/parser/semantic/bounds.d.ts
  • arktype/internal/parser/semantic/bounds.d.ts.map
  • arktype/internal/parser/semantic/bounds.js
  • arktype/internal/parser/semantic/bounds.js.map
  • arktype/internal/parser/semantic/divisor.d.ts
  • arktype/internal/parser/semantic/divisor.d.ts.map
  • arktype/internal/parser/semantic/divisor.js
  • arktype/internal/parser/semantic/divisor.js.map
  • arktype/internal/parser/semantic/infer.d.ts
  • arktype/internal/parser/semantic/infer.d.ts.map
  • arktype/internal/parser/semantic/infer.js
  • arktype/internal/parser/semantic/infer.js.map
  • arktype/internal/parser/semantic/utils.d.ts
  • arktype/internal/parser/semantic/utils.d.ts.map
  • arktype/internal/parser/semantic/utils.js
  • arktype/internal/parser/semantic/utils.js.map
  • arktype/internal/parser/semantic/validate.d.ts
  • arktype/internal/parser/semantic/validate.d.ts.map
  • arktype/internal/parser/semantic/validate.js
  • arktype/internal/parser/semantic/validate.js.map
  • arktype/internal/parser/string/reduce/dynamic.d.ts
  • arktype/internal/parser/string/reduce/dynamic.d.ts.map
  • arktype/internal/parser/string/reduce/dynamic.js
  • arktype/internal/parser/string/reduce/dynamic.js.map
  • arktype/internal/parser/string/reduce/shared.d.ts
  • arktype/internal/parser/string/reduce/shared.d.ts.map
  • arktype/internal/parser/string/reduce/shared.js
  • arktype/internal/parser/string/reduce/shared.js.map
  • arktype/internal/parser/string/reduce/static.d.ts
  • arktype/internal/parser/string/reduce/static.d.ts.map
  • arktype/internal/parser/string/reduce/static.js
  • arktype/internal/parser/string/reduce/static.js.map
  • arktype/internal/parser/string/shift/operand/date.d.ts
  • arktype/internal/parser/string/shift/operand/date.d.ts.map
  • arktype/internal/parser/string/shift/operand/date.js
  • arktype/internal/parser/string/shift/operand/date.js.map
  • arktype/internal/parser/string/shift/operand/enclosed.d.ts
  • arktype/internal/parser/string/shift/operand/enclosed.d.ts.map
  • arktype/internal/parser/string/shift/operand/enclosed.js
  • arktype/internal/parser/string/shift/operand/enclosed.js.map
  • arktype/internal/parser/string/shift/operand/genericArgs.d.ts
  • arktype/internal/parser/string/shift/operand/genericArgs.d.ts.map
  • arktype/internal/parser/string/shift/operand/genericArgs.js
  • arktype/internal/parser/string/shift/operand/genericArgs.js.map
  • arktype/internal/parser/string/shift/operand/operand.d.ts
  • arktype/internal/parser/string/shift/operand/operand.d.ts.map
  • arktype/internal/parser/string/shift/operand/operand.js
  • arktype/internal/parser/string/shift/operand/operand.js.map
  • arktype/internal/parser/string/shift/operand/unenclosed.d.ts
  • arktype/internal/parser/string/shift/operand/unenclosed.d.ts.map
  • arktype/internal/parser/string/shift/operand/unenclosed.js
  • arktype/internal/parser/string/shift/operand/unenclosed.js.map
  • arktype/internal/parser/string/shift/operator/bounds.d.ts
  • arktype/internal/parser/string/shift/operator/bounds.d.ts.map
  • arktype/internal/parser/string/shift/operator/bounds.js
  • arktype/internal/parser/string/shift/operator/bounds.js.map
  • arktype/internal/parser/string/shift/operator/divisor.d.ts
  • arktype/internal/parser/string/shift/operator/divisor.d.ts.map
  • arktype/internal/parser/string/shift/operator/divisor.js
  • arktype/internal/parser/string/shift/operator/divisor.js.map
  • arktype/internal/parser/string/shift/operator/operator.d.ts
  • arktype/internal/parser/string/shift/operator/operator.d.ts.map
  • arktype/internal/parser/string/shift/operator/operator.js
  • arktype/internal/parser/string/shift/operator/operator.js.map
  • arktype/internal/parser/string/shift/scanner.d.ts
  • arktype/internal/parser/string/shift/scanner.d.ts.map
  • arktype/internal/parser/string/shift/scanner.js
  • arktype/internal/parser/string/shift/scanner.js.map
  • arktype/internal/parser/string/string.d.ts
  • arktype/internal/parser/string/string.d.ts.map
  • arktype/internal/parser/string/string.js
  • arktype/internal/parser/string/string.js.map
  • arktype/internal/parser/tuple.d.ts
  • arktype/internal/parser/tuple.d.ts.map
  • arktype/internal/parser/tuple.js
  • arktype/internal/parser/tuple.js.map
  • arktype/internal/schema.d.ts
  • arktype/internal/schema.d.ts.map
  • arktype/internal/schema.js
  • arktype/internal/schema.js.map
  • arktype/internal/schemaScope.d.ts
  • arktype/internal/schemaScope.d.ts.map
  • arktype/internal/schemaScope.js
  • arktype/internal/schemaScope.js.map
  • arktype/internal/scope.d.ts
  • arktype/internal/scope.d.ts.map
  • arktype/internal/scope.js
  • arktype/internal/scope.js.map
  • arktype/internal/shared/compile.d.ts
  • arktype/internal/shared/compile.d.ts.map
  • arktype/internal/shared/compile.js
  • arktype/internal/shared/compile.js.map
  • arktype/internal/shared/context.d.ts
  • arktype/internal/shared/context.d.ts.map
  • arktype/internal/shared/context.js
  • arktype/internal/shared/context.js.map
  • arktype/internal/shared/declare.d.ts
  • arktype/internal/shared/declare.d.ts.map
  • arktype/internal/shared/declare.js
  • arktype/internal/shared/declare.js.map
  • arktype/internal/shared/disjoint.d.ts
  • arktype/internal/shared/disjoint.d.ts.map
  • arktype/internal/shared/disjoint.js
  • arktype/internal/shared/disjoint.js.map
  • arktype/internal/shared/errors.d.ts
  • arktype/internal/shared/errors.d.ts.map
  • arktype/internal/shared/errors.js
  • arktype/internal/shared/errors.js.map
  • arktype/internal/shared/implement.d.ts
  • arktype/internal/shared/implement.d.ts.map
  • arktype/internal/shared/implement.js
  • arktype/internal/shared/implement.js.map
  • arktype/internal/shared/inference.d.ts
  • arktype/internal/shared/inference.d.ts.map
  • arktype/internal/shared/inference.js
  • arktype/internal/shared/inference.js.map
  • arktype/internal/shared/intersections.d.ts
  • arktype/internal/shared/intersections.d.ts.map
  • arktype/internal/shared/intersections.js
  • arktype/internal/shared/intersections.js.map
  • arktype/internal/shared/traversal.d.ts
  • arktype/internal/shared/traversal.d.ts.map
  • arktype/internal/shared/traversal.js
  • arktype/internal/shared/traversal.js.map
  • arktype/internal/shared/utils.d.ts
  • arktype/internal/shared/utils.d.ts.map
  • arktype/internal/shared/utils.js
  • arktype/internal/shared/utils.js.map
  • arktype/internal/type.d.ts
  • arktype/internal/type.d.ts.map
  • arktype/internal/type.js
  • arktype/internal/type.js.map
  • arktype/internal/types/basis.d.ts
  • arktype/internal/types/basis.d.ts.map
  • arktype/internal/types/basis.js
  • arktype/internal/types/basis.js.map
  • arktype/internal/types/discriminate.d.ts
  • arktype/internal/types/discriminate.d.ts.map
  • arktype/internal/types/discriminate.js
  • arktype/internal/types/discriminate.js.map
  • arktype/internal/types/domain.d.ts
  • arktype/internal/types/domain.d.ts.map
  • arktype/internal/types/domain.js
  • arktype/internal/types/domain.js.map
  • arktype/internal/types/intersection.d.ts
  • arktype/internal/types/intersection.d.ts.map
  • arktype/internal/types/intersection.js
  • arktype/internal/types/intersection.js.map
  • arktype/internal/types/morph.d.ts
  • arktype/internal/types/morph.d.ts.map
  • arktype/internal/types/morph.js
  • arktype/internal/types/morph.js.map
  • arktype/internal/types/proto.d.ts
  • arktype/internal/types/proto.d.ts.map
  • arktype/internal/types/proto.js
  • arktype/internal/types/proto.js.map
  • arktype/internal/types/type.d.ts
  • arktype/internal/types/type.d.ts.map
  • arktype/internal/types/type.js
  • arktype/internal/types/type.js.map
  • arktype/internal/types/union.d.ts
  • arktype/internal/types/union.d.ts.map
  • arktype/internal/types/union.js
  • arktype/internal/types/union.js.map
  • arktype/internal/types/unit.d.ts
  • arktype/internal/types/unit.d.ts.map
  • arktype/internal/types/unit.js
  • arktype/internal/types/unit.js.map
  • arktype/internal/util.d.ts
  • arktype/internal/util.d.ts.map
  • arktype/internal/util.js
  • arktype/internal/util.js.map

Readme

ArkType

TypeScript's 1:1 validator, optimized from editor to runtime

ArkType is a runtime validation library that parses optimized validators from familiar, type-safe syntax.

It can be used to check external data like JSON payloads or form submissions at the boundaries of your code (similar to Zod or Yup).

Docs

See our docs site

Contributions

We accept and encourage pull requests from outside ArkType. Planned work is tracked in this GitHub project.

Depending on your level of familiarity with type systems and TS generics, some parts of the codebase may be hard to jump into. That said, there's plenty of opportunities for more straightforward contributions. We'd generally recommend starting with one of these issues labeled external-contributor-friendly.

If you're planning on submitting a non-trivial fix or a new feature, please create an issue first so everyone's on the same page. The last thing we want is for you to spend time on a submission we're unable to merge.

When you're ready, check out our guide to get started!

License

This project is licensed under the terms of the MIT license.

Code of Conduct

We will not tolerate any form of disrespect toward members of our community. Please refer to our Code of Conduct and reach out to david@arktype.io immediately if you've seen or experienced an interaction that may violate these standards.

Sponsorship

We've been working full-time on this project for multiple years and it means a lot to have the community behind us.

If the project has been useful to you and you are in a financial position to do so, please chip in via GitHub Sponsors.

Otherwise, consider sending me an email (david@arktype.io) or message me on Discord to let me know you're a fan of ArkType. Either would make my day!

ArkSponsors ⛵

sam-goodwin inspatiallabs

Sponsors 🥰

fubhy tmm mishushakov mewhhaha codeandcats
drwpwrs Timeraa Phalangers WilliamConnatser JameEnder
tylim88 jahands